1// Copyright 2020 Google LLC.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// Code generated file. DO NOT EDIT.
6
7// Package books provides access to the Books API.
8//
9// For product documentation, see: https://developers.google.com/books/docs/v1/getting_started
10//
11// Creating a client
12//
13// Usage example:
14//
15//   import "google.golang.org/api/books/v1"
16//   ...
17//   ctx := context.Background()
18//   booksService, err := books.NewService(ctx)
19//
20// In this example, Google Application Default Credentials are used for authentication.
21//
22// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
23//
24// Other authentication options
25//
26// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
27//
28//   booksService, err := books.NewService(ctx, option.WithAPIKey("AIza..."))
29//
30// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
31//
32//   config := &oauth2.Config{...}
33//   // ...
34//   token, err := config.Exchange(ctx, ...)
35//   booksService, err := books.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
36//
37// See https://godoc.org/google.golang.org/api/option/ for details on options.
38package books // import "google.golang.org/api/books/v1"
39
40import (
41	"bytes"
42	"context"
43	"encoding/json"
44	"errors"
45	"fmt"
46	"io"
47	"net/http"
48	"net/url"
49	"strconv"
50	"strings"
51
52	googleapi "google.golang.org/api/googleapi"
53	gensupport "google.golang.org/api/internal/gensupport"
54	option "google.golang.org/api/option"
55	internaloption "google.golang.org/api/option/internaloption"
56	htransport "google.golang.org/api/transport/http"
57)
58
59// Always reference these packages, just in case the auto-generated code
60// below doesn't.
61var _ = bytes.NewBuffer
62var _ = strconv.Itoa
63var _ = fmt.Sprintf
64var _ = json.NewDecoder
65var _ = io.Copy
66var _ = url.Parse
67var _ = gensupport.MarshalJSON
68var _ = googleapi.Version
69var _ = errors.New
70var _ = strings.Replace
71var _ = context.Canceled
72var _ = internaloption.WithDefaultEndpoint
73
74const apiId = "books:v1"
75const apiName = "books"
76const apiVersion = "v1"
77const basePath = "https://www.googleapis.com/books/v1/"
78
79// OAuth2 scopes used by this API.
80const (
81	// Manage your books
82	BooksScope = "https://www.googleapis.com/auth/books"
83)
84
85// NewService creates a new Service.
86func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
87	scopesOption := option.WithScopes(
88		"https://www.googleapis.com/auth/books",
89	)
90	// NOTE: prepend, so we don't override user-specified scopes.
91	opts = append([]option.ClientOption{scopesOption}, opts...)
92	opts = append(opts, internaloption.WithDefaultEndpoint(basePath))
93	client, endpoint, err := htransport.NewClient(ctx, opts...)
94	if err != nil {
95		return nil, err
96	}
97	s, err := New(client)
98	if err != nil {
99		return nil, err
100	}
101	if endpoint != "" {
102		s.BasePath = endpoint
103	}
104	return s, nil
105}
106
107// New creates a new Service. It uses the provided http.Client for requests.
108//
109// Deprecated: please use NewService instead.
110// To provide a custom HTTP client, use option.WithHTTPClient.
111// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
112func New(client *http.Client) (*Service, error) {
113	if client == nil {
114		return nil, errors.New("client is nil")
115	}
116	s := &Service{client: client, BasePath: basePath}
117	s.Bookshelves = NewBookshelvesService(s)
118	s.Cloudloading = NewCloudloadingService(s)
119	s.Dictionary = NewDictionaryService(s)
120	s.Familysharing = NewFamilysharingService(s)
121	s.Layers = NewLayersService(s)
122	s.Myconfig = NewMyconfigService(s)
123	s.Mylibrary = NewMylibraryService(s)
124	s.Notification = NewNotificationService(s)
125	s.Onboarding = NewOnboardingService(s)
126	s.Personalizedstream = NewPersonalizedstreamService(s)
127	s.Promooffer = NewPromoofferService(s)
128	s.Series = NewSeriesService(s)
129	s.Volumes = NewVolumesService(s)
130	return s, nil
131}
132
133type Service struct {
134	client    *http.Client
135	BasePath  string // API endpoint base URL
136	UserAgent string // optional additional User-Agent fragment
137
138	Bookshelves *BookshelvesService
139
140	Cloudloading *CloudloadingService
141
142	Dictionary *DictionaryService
143
144	Familysharing *FamilysharingService
145
146	Layers *LayersService
147
148	Myconfig *MyconfigService
149
150	Mylibrary *MylibraryService
151
152	Notification *NotificationService
153
154	Onboarding *OnboardingService
155
156	Personalizedstream *PersonalizedstreamService
157
158	Promooffer *PromoofferService
159
160	Series *SeriesService
161
162	Volumes *VolumesService
163}
164
165func (s *Service) userAgent() string {
166	if s.UserAgent == "" {
167		return googleapi.UserAgent
168	}
169	return googleapi.UserAgent + " " + s.UserAgent
170}
171
172func NewBookshelvesService(s *Service) *BookshelvesService {
173	rs := &BookshelvesService{s: s}
174	rs.Volumes = NewBookshelvesVolumesService(s)
175	return rs
176}
177
178type BookshelvesService struct {
179	s *Service
180
181	Volumes *BookshelvesVolumesService
182}
183
184func NewBookshelvesVolumesService(s *Service) *BookshelvesVolumesService {
185	rs := &BookshelvesVolumesService{s: s}
186	return rs
187}
188
189type BookshelvesVolumesService struct {
190	s *Service
191}
192
193func NewCloudloadingService(s *Service) *CloudloadingService {
194	rs := &CloudloadingService{s: s}
195	return rs
196}
197
198type CloudloadingService struct {
199	s *Service
200}
201
202func NewDictionaryService(s *Service) *DictionaryService {
203	rs := &DictionaryService{s: s}
204	return rs
205}
206
207type DictionaryService struct {
208	s *Service
209}
210
211func NewFamilysharingService(s *Service) *FamilysharingService {
212	rs := &FamilysharingService{s: s}
213	return rs
214}
215
216type FamilysharingService struct {
217	s *Service
218}
219
220func NewLayersService(s *Service) *LayersService {
221	rs := &LayersService{s: s}
222	rs.AnnotationData = NewLayersAnnotationDataService(s)
223	rs.VolumeAnnotations = NewLayersVolumeAnnotationsService(s)
224	return rs
225}
226
227type LayersService struct {
228	s *Service
229
230	AnnotationData *LayersAnnotationDataService
231
232	VolumeAnnotations *LayersVolumeAnnotationsService
233}
234
235func NewLayersAnnotationDataService(s *Service) *LayersAnnotationDataService {
236	rs := &LayersAnnotationDataService{s: s}
237	return rs
238}
239
240type LayersAnnotationDataService struct {
241	s *Service
242}
243
244func NewLayersVolumeAnnotationsService(s *Service) *LayersVolumeAnnotationsService {
245	rs := &LayersVolumeAnnotationsService{s: s}
246	return rs
247}
248
249type LayersVolumeAnnotationsService struct {
250	s *Service
251}
252
253func NewMyconfigService(s *Service) *MyconfigService {
254	rs := &MyconfigService{s: s}
255	return rs
256}
257
258type MyconfigService struct {
259	s *Service
260}
261
262func NewMylibraryService(s *Service) *MylibraryService {
263	rs := &MylibraryService{s: s}
264	rs.Annotations = NewMylibraryAnnotationsService(s)
265	rs.Bookshelves = NewMylibraryBookshelvesService(s)
266	rs.Readingpositions = NewMylibraryReadingpositionsService(s)
267	return rs
268}
269
270type MylibraryService struct {
271	s *Service
272
273	Annotations *MylibraryAnnotationsService
274
275	Bookshelves *MylibraryBookshelvesService
276
277	Readingpositions *MylibraryReadingpositionsService
278}
279
280func NewMylibraryAnnotationsService(s *Service) *MylibraryAnnotationsService {
281	rs := &MylibraryAnnotationsService{s: s}
282	return rs
283}
284
285type MylibraryAnnotationsService struct {
286	s *Service
287}
288
289func NewMylibraryBookshelvesService(s *Service) *MylibraryBookshelvesService {
290	rs := &MylibraryBookshelvesService{s: s}
291	rs.Volumes = NewMylibraryBookshelvesVolumesService(s)
292	return rs
293}
294
295type MylibraryBookshelvesService struct {
296	s *Service
297
298	Volumes *MylibraryBookshelvesVolumesService
299}
300
301func NewMylibraryBookshelvesVolumesService(s *Service) *MylibraryBookshelvesVolumesService {
302	rs := &MylibraryBookshelvesVolumesService{s: s}
303	return rs
304}
305
306type MylibraryBookshelvesVolumesService struct {
307	s *Service
308}
309
310func NewMylibraryReadingpositionsService(s *Service) *MylibraryReadingpositionsService {
311	rs := &MylibraryReadingpositionsService{s: s}
312	return rs
313}
314
315type MylibraryReadingpositionsService struct {
316	s *Service
317}
318
319func NewNotificationService(s *Service) *NotificationService {
320	rs := &NotificationService{s: s}
321	return rs
322}
323
324type NotificationService struct {
325	s *Service
326}
327
328func NewOnboardingService(s *Service) *OnboardingService {
329	rs := &OnboardingService{s: s}
330	return rs
331}
332
333type OnboardingService struct {
334	s *Service
335}
336
337func NewPersonalizedstreamService(s *Service) *PersonalizedstreamService {
338	rs := &PersonalizedstreamService{s: s}
339	return rs
340}
341
342type PersonalizedstreamService struct {
343	s *Service
344}
345
346func NewPromoofferService(s *Service) *PromoofferService {
347	rs := &PromoofferService{s: s}
348	return rs
349}
350
351type PromoofferService struct {
352	s *Service
353}
354
355func NewSeriesService(s *Service) *SeriesService {
356	rs := &SeriesService{s: s}
357	rs.Membership = NewSeriesMembershipService(s)
358	return rs
359}
360
361type SeriesService struct {
362	s *Service
363
364	Membership *SeriesMembershipService
365}
366
367func NewSeriesMembershipService(s *Service) *SeriesMembershipService {
368	rs := &SeriesMembershipService{s: s}
369	return rs
370}
371
372type SeriesMembershipService struct {
373	s *Service
374}
375
376func NewVolumesService(s *Service) *VolumesService {
377	rs := &VolumesService{s: s}
378	rs.Associated = NewVolumesAssociatedService(s)
379	rs.Mybooks = NewVolumesMybooksService(s)
380	rs.Recommended = NewVolumesRecommendedService(s)
381	rs.Useruploaded = NewVolumesUseruploadedService(s)
382	return rs
383}
384
385type VolumesService struct {
386	s *Service
387
388	Associated *VolumesAssociatedService
389
390	Mybooks *VolumesMybooksService
391
392	Recommended *VolumesRecommendedService
393
394	Useruploaded *VolumesUseruploadedService
395}
396
397func NewVolumesAssociatedService(s *Service) *VolumesAssociatedService {
398	rs := &VolumesAssociatedService{s: s}
399	return rs
400}
401
402type VolumesAssociatedService struct {
403	s *Service
404}
405
406func NewVolumesMybooksService(s *Service) *VolumesMybooksService {
407	rs := &VolumesMybooksService{s: s}
408	return rs
409}
410
411type VolumesMybooksService struct {
412	s *Service
413}
414
415func NewVolumesRecommendedService(s *Service) *VolumesRecommendedService {
416	rs := &VolumesRecommendedService{s: s}
417	return rs
418}
419
420type VolumesRecommendedService struct {
421	s *Service
422}
423
424func NewVolumesUseruploadedService(s *Service) *VolumesUseruploadedService {
425	rs := &VolumesUseruploadedService{s: s}
426	return rs
427}
428
429type VolumesUseruploadedService struct {
430	s *Service
431}
432
433type Annotation struct {
434	// AfterSelectedText: Anchor text after excerpt. For requests, if the
435	// user bookmarked a screen that has no flowing text on it, then this
436	// field should be empty.
437	AfterSelectedText string `json:"afterSelectedText,omitempty"`
438
439	// BeforeSelectedText: Anchor text before excerpt. For requests, if the
440	// user bookmarked a screen that has no flowing text on it, then this
441	// field should be empty.
442	BeforeSelectedText string `json:"beforeSelectedText,omitempty"`
443
444	// ClientVersionRanges: Selection ranges sent from the client.
445	ClientVersionRanges *AnnotationClientVersionRanges `json:"clientVersionRanges,omitempty"`
446
447	// Created: Timestamp for the created time of this annotation.
448	Created string `json:"created,omitempty"`
449
450	// CurrentVersionRanges: Selection ranges for the most recent content
451	// version.
452	CurrentVersionRanges *AnnotationCurrentVersionRanges `json:"currentVersionRanges,omitempty"`
453
454	// Data: User-created data for this annotation.
455	Data string `json:"data,omitempty"`
456
457	// Deleted: Indicates that this annotation is deleted.
458	Deleted bool `json:"deleted,omitempty"`
459
460	// HighlightStyle: The highlight style for this annotation.
461	HighlightStyle string `json:"highlightStyle,omitempty"`
462
463	// Id: Id of this annotation, in the form of a GUID.
464	Id string `json:"id,omitempty"`
465
466	// Kind: Resource type.
467	Kind string `json:"kind,omitempty"`
468
469	// LayerId: The layer this annotation is for.
470	LayerId string `json:"layerId,omitempty"`
471
472	LayerSummary *AnnotationLayerSummary `json:"layerSummary,omitempty"`
473
474	// PageIds: Pages that this annotation spans.
475	PageIds []string `json:"pageIds,omitempty"`
476
477	// SelectedText: Excerpt from the volume.
478	SelectedText string `json:"selectedText,omitempty"`
479
480	// SelfLink: URL to this resource.
481	SelfLink string `json:"selfLink,omitempty"`
482
483	// Updated: Timestamp for the last time this annotation was modified.
484	Updated string `json:"updated,omitempty"`
485
486	// VolumeId: The volume that this annotation belongs to.
487	VolumeId string `json:"volumeId,omitempty"`
488
489	// ServerResponse contains the HTTP response code and headers from the
490	// server.
491	googleapi.ServerResponse `json:"-"`
492
493	// ForceSendFields is a list of field names (e.g. "AfterSelectedText")
494	// to unconditionally include in API requests. By default, fields with
495	// empty values are omitted from API requests. However, any non-pointer,
496	// non-interface field appearing in ForceSendFields will be sent to the
497	// server regardless of whether the field is empty or not. This may be
498	// used to include empty fields in Patch requests.
499	ForceSendFields []string `json:"-"`
500
501	// NullFields is a list of field names (e.g. "AfterSelectedText") to
502	// include in API requests with the JSON null value. By default, fields
503	// with empty values are omitted from API requests. However, any field
504	// with an empty value appearing in NullFields will be sent to the
505	// server as null. It is an error if a field in this list has a
506	// non-empty value. This may be used to include null fields in Patch
507	// requests.
508	NullFields []string `json:"-"`
509}
510
511func (s *Annotation) MarshalJSON() ([]byte, error) {
512	type NoMethod Annotation
513	raw := NoMethod(*s)
514	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
515}
516
517// AnnotationClientVersionRanges: Selection ranges sent from the client.
518type AnnotationClientVersionRanges struct {
519	// CfiRange: Range in CFI format for this annotation sent by client.
520	CfiRange *BooksAnnotationsRange `json:"cfiRange,omitempty"`
521
522	// ContentVersion: Content version the client sent in.
523	ContentVersion string `json:"contentVersion,omitempty"`
524
525	// GbImageRange: Range in GB image format for this annotation sent by
526	// client.
527	GbImageRange *BooksAnnotationsRange `json:"gbImageRange,omitempty"`
528
529	// GbTextRange: Range in GB text format for this annotation sent by
530	// client.
531	GbTextRange *BooksAnnotationsRange `json:"gbTextRange,omitempty"`
532
533	// ImageCfiRange: Range in image CFI format for this annotation sent by
534	// client.
535	ImageCfiRange *BooksAnnotationsRange `json:"imageCfiRange,omitempty"`
536
537	// ForceSendFields is a list of field names (e.g. "CfiRange") to
538	// unconditionally include in API requests. By default, fields with
539	// empty values are omitted from API requests. However, any non-pointer,
540	// non-interface field appearing in ForceSendFields will be sent to the
541	// server regardless of whether the field is empty or not. This may be
542	// used to include empty fields in Patch requests.
543	ForceSendFields []string `json:"-"`
544
545	// NullFields is a list of field names (e.g. "CfiRange") to include in
546	// API requests with the JSON null value. By default, fields with empty
547	// values are omitted from API requests. However, any field with an
548	// empty value appearing in NullFields will be sent to the server as
549	// null. It is an error if a field in this list has a non-empty value.
550	// This may be used to include null fields in Patch requests.
551	NullFields []string `json:"-"`
552}
553
554func (s *AnnotationClientVersionRanges) MarshalJSON() ([]byte, error) {
555	type NoMethod AnnotationClientVersionRanges
556	raw := NoMethod(*s)
557	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
558}
559
560// AnnotationCurrentVersionRanges: Selection ranges for the most recent
561// content version.
562type AnnotationCurrentVersionRanges struct {
563	// CfiRange: Range in CFI format for this annotation for version above.
564	CfiRange *BooksAnnotationsRange `json:"cfiRange,omitempty"`
565
566	// ContentVersion: Content version applicable to ranges below.
567	ContentVersion string `json:"contentVersion,omitempty"`
568
569	// GbImageRange: Range in GB image format for this annotation for
570	// version above.
571	GbImageRange *BooksAnnotationsRange `json:"gbImageRange,omitempty"`
572
573	// GbTextRange: Range in GB text format for this annotation for version
574	// above.
575	GbTextRange *BooksAnnotationsRange `json:"gbTextRange,omitempty"`
576
577	// ImageCfiRange: Range in image CFI format for this annotation for
578	// version above.
579	ImageCfiRange *BooksAnnotationsRange `json:"imageCfiRange,omitempty"`
580
581	// ForceSendFields is a list of field names (e.g. "CfiRange") to
582	// unconditionally include in API requests. By default, fields with
583	// empty values are omitted from API requests. However, any non-pointer,
584	// non-interface field appearing in ForceSendFields will be sent to the
585	// server regardless of whether the field is empty or not. This may be
586	// used to include empty fields in Patch requests.
587	ForceSendFields []string `json:"-"`
588
589	// NullFields is a list of field names (e.g. "CfiRange") to include in
590	// API requests with the JSON null value. By default, fields with empty
591	// values are omitted from API requests. However, any field with an
592	// empty value appearing in NullFields will be sent to the server as
593	// null. It is an error if a field in this list has a non-empty value.
594	// This may be used to include null fields in Patch requests.
595	NullFields []string `json:"-"`
596}
597
598func (s *AnnotationCurrentVersionRanges) MarshalJSON() ([]byte, error) {
599	type NoMethod AnnotationCurrentVersionRanges
600	raw := NoMethod(*s)
601	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
602}
603
604type AnnotationLayerSummary struct {
605	// AllowedCharacterCount: Maximum allowed characters on this layer,
606	// especially for the "copy" layer.
607	AllowedCharacterCount int64 `json:"allowedCharacterCount,omitempty"`
608
609	// LimitType: Type of limitation on this layer. "limited" or "unlimited"
610	// for the "copy" layer.
611	LimitType string `json:"limitType,omitempty"`
612
613	// RemainingCharacterCount: Remaining allowed characters on this layer,
614	// especially for the "copy" layer.
615	RemainingCharacterCount int64 `json:"remainingCharacterCount,omitempty"`
616
617	// ForceSendFields is a list of field names (e.g.
618	// "AllowedCharacterCount") to unconditionally include in API requests.
619	// By default, fields with empty values are omitted from API requests.
620	// However, any non-pointer, non-interface field appearing in
621	// ForceSendFields will be sent to the server regardless of whether the
622	// field is empty or not. This may be used to include empty fields in
623	// Patch requests.
624	ForceSendFields []string `json:"-"`
625
626	// NullFields is a list of field names (e.g. "AllowedCharacterCount") to
627	// include in API requests with the JSON null value. By default, fields
628	// with empty values are omitted from API requests. However, any field
629	// with an empty value appearing in NullFields will be sent to the
630	// server as null. It is an error if a field in this list has a
631	// non-empty value. This may be used to include null fields in Patch
632	// requests.
633	NullFields []string `json:"-"`
634}
635
636func (s *AnnotationLayerSummary) MarshalJSON() ([]byte, error) {
637	type NoMethod AnnotationLayerSummary
638	raw := NoMethod(*s)
639	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
640}
641
642type Annotationdata struct {
643	// AnnotationType: The type of annotation this data is for.
644	AnnotationType string `json:"annotationType,omitempty"`
645
646	Data interface{} `json:"data,omitempty"`
647
648	// EncodedData: Base64 encoded data for this annotation data.
649	EncodedData string `json:"encoded_data,omitempty"`
650
651	// Id: Unique id for this annotation data.
652	Id string `json:"id,omitempty"`
653
654	// Kind: Resource Type
655	Kind string `json:"kind,omitempty"`
656
657	// LayerId: The Layer id for this data. *
658	LayerId string `json:"layerId,omitempty"`
659
660	// SelfLink: URL for this resource. *
661	SelfLink string `json:"selfLink,omitempty"`
662
663	// Updated: Timestamp for the last time this data was updated. (RFC 3339
664	// UTC date-time format).
665	Updated string `json:"updated,omitempty"`
666
667	// VolumeId: The volume id for this data. *
668	VolumeId string `json:"volumeId,omitempty"`
669
670	// ServerResponse contains the HTTP response code and headers from the
671	// server.
672	googleapi.ServerResponse `json:"-"`
673
674	// ForceSendFields is a list of field names (e.g. "AnnotationType") to
675	// unconditionally include in API requests. By default, fields with
676	// empty values are omitted from API requests. However, any non-pointer,
677	// non-interface field appearing in ForceSendFields will be sent to the
678	// server regardless of whether the field is empty or not. This may be
679	// used to include empty fields in Patch requests.
680	ForceSendFields []string `json:"-"`
681
682	// NullFields is a list of field names (e.g. "AnnotationType") to
683	// include in API requests with the JSON null value. By default, fields
684	// with empty values are omitted from API requests. However, any field
685	// with an empty value appearing in NullFields will be sent to the
686	// server as null. It is an error if a field in this list has a
687	// non-empty value. This may be used to include null fields in Patch
688	// requests.
689	NullFields []string `json:"-"`
690}
691
692func (s *Annotationdata) MarshalJSON() ([]byte, error) {
693	type NoMethod Annotationdata
694	raw := NoMethod(*s)
695	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
696}
697
698type Annotations struct {
699	// Items: A list of annotations.
700	Items []*Annotation `json:"items,omitempty"`
701
702	// Kind: Resource type.
703	Kind string `json:"kind,omitempty"`
704
705	// NextPageToken: Token to pass in for pagination for the next page.
706	// This will not be present if this request does not have more results.
707	NextPageToken string `json:"nextPageToken,omitempty"`
708
709	// TotalItems: Total number of annotations found. This may be greater
710	// than the number of notes returned in this response if results have
711	// been paginated.
712	TotalItems int64 `json:"totalItems,omitempty"`
713
714	// ServerResponse contains the HTTP response code and headers from the
715	// server.
716	googleapi.ServerResponse `json:"-"`
717
718	// ForceSendFields is a list of field names (e.g. "Items") to
719	// unconditionally include in API requests. By default, fields with
720	// empty values are omitted from API requests. However, any non-pointer,
721	// non-interface field appearing in ForceSendFields will be sent to the
722	// server regardless of whether the field is empty or not. This may be
723	// used to include empty fields in Patch requests.
724	ForceSendFields []string `json:"-"`
725
726	// NullFields is a list of field names (e.g. "Items") to include in API
727	// requests with the JSON null value. By default, fields with empty
728	// values are omitted from API requests. However, any field with an
729	// empty value appearing in NullFields will be sent to the server as
730	// null. It is an error if a field in this list has a non-empty value.
731	// This may be used to include null fields in Patch requests.
732	NullFields []string `json:"-"`
733}
734
735func (s *Annotations) MarshalJSON() ([]byte, error) {
736	type NoMethod Annotations
737	raw := NoMethod(*s)
738	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
739}
740
741type AnnotationsSummary struct {
742	Kind string `json:"kind,omitempty"`
743
744	Layers []*AnnotationsSummaryLayers `json:"layers,omitempty"`
745
746	// ServerResponse contains the HTTP response code and headers from the
747	// server.
748	googleapi.ServerResponse `json:"-"`
749
750	// ForceSendFields is a list of field names (e.g. "Kind") to
751	// unconditionally include in API requests. By default, fields with
752	// empty values are omitted from API requests. However, any non-pointer,
753	// non-interface field appearing in ForceSendFields will be sent to the
754	// server regardless of whether the field is empty or not. This may be
755	// used to include empty fields in Patch requests.
756	ForceSendFields []string `json:"-"`
757
758	// NullFields is a list of field names (e.g. "Kind") to include in API
759	// requests with the JSON null value. By default, fields with empty
760	// values are omitted from API requests. However, any field with an
761	// empty value appearing in NullFields will be sent to the server as
762	// null. It is an error if a field in this list has a non-empty value.
763	// This may be used to include null fields in Patch requests.
764	NullFields []string `json:"-"`
765}
766
767func (s *AnnotationsSummary) MarshalJSON() ([]byte, error) {
768	type NoMethod AnnotationsSummary
769	raw := NoMethod(*s)
770	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
771}
772
773type AnnotationsSummaryLayers struct {
774	AllowedCharacterCount int64 `json:"allowedCharacterCount,omitempty"`
775
776	LayerId string `json:"layerId,omitempty"`
777
778	LimitType string `json:"limitType,omitempty"`
779
780	RemainingCharacterCount int64 `json:"remainingCharacterCount,omitempty"`
781
782	Updated string `json:"updated,omitempty"`
783
784	// ForceSendFields is a list of field names (e.g.
785	// "AllowedCharacterCount") to unconditionally include in API requests.
786	// By default, fields with empty values are omitted from API requests.
787	// However, any non-pointer, non-interface field appearing in
788	// ForceSendFields will be sent to the server regardless of whether the
789	// field is empty or not. This may be used to include empty fields in
790	// Patch requests.
791	ForceSendFields []string `json:"-"`
792
793	// NullFields is a list of field names (e.g. "AllowedCharacterCount") to
794	// include in API requests with the JSON null value. By default, fields
795	// with empty values are omitted from API requests. However, any field
796	// with an empty value appearing in NullFields will be sent to the
797	// server as null. It is an error if a field in this list has a
798	// non-empty value. This may be used to include null fields in Patch
799	// requests.
800	NullFields []string `json:"-"`
801}
802
803func (s *AnnotationsSummaryLayers) MarshalJSON() ([]byte, error) {
804	type NoMethod AnnotationsSummaryLayers
805	raw := NoMethod(*s)
806	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
807}
808
809type Annotationsdata struct {
810	// Items: A list of Annotation Data.
811	Items []*Annotationdata `json:"items,omitempty"`
812
813	// Kind: Resource type
814	Kind string `json:"kind,omitempty"`
815
816	// NextPageToken: Token to pass in for pagination for the next page.
817	// This will not be present if this request does not have more results.
818	NextPageToken string `json:"nextPageToken,omitempty"`
819
820	// TotalItems: The total number of volume annotations found.
821	TotalItems int64 `json:"totalItems,omitempty"`
822
823	// ServerResponse contains the HTTP response code and headers from the
824	// server.
825	googleapi.ServerResponse `json:"-"`
826
827	// ForceSendFields is a list of field names (e.g. "Items") to
828	// unconditionally include in API requests. By default, fields with
829	// empty values are omitted from API requests. However, any non-pointer,
830	// non-interface field appearing in ForceSendFields will be sent to the
831	// server regardless of whether the field is empty or not. This may be
832	// used to include empty fields in Patch requests.
833	ForceSendFields []string `json:"-"`
834
835	// NullFields is a list of field names (e.g. "Items") to include in API
836	// requests with the JSON null value. By default, fields with empty
837	// values are omitted from API requests. However, any field with an
838	// empty value appearing in NullFields will be sent to the server as
839	// null. It is an error if a field in this list has a non-empty value.
840	// This may be used to include null fields in Patch requests.
841	NullFields []string `json:"-"`
842}
843
844func (s *Annotationsdata) MarshalJSON() ([]byte, error) {
845	type NoMethod Annotationsdata
846	raw := NoMethod(*s)
847	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
848}
849
850type BooksAnnotationsRange struct {
851	// EndOffset: The offset from the ending position.
852	EndOffset string `json:"endOffset,omitempty"`
853
854	// EndPosition: The ending position for the range.
855	EndPosition string `json:"endPosition,omitempty"`
856
857	// StartOffset: The offset from the starting position.
858	StartOffset string `json:"startOffset,omitempty"`
859
860	// StartPosition: The starting position for the range.
861	StartPosition string `json:"startPosition,omitempty"`
862
863	// ForceSendFields is a list of field names (e.g. "EndOffset") to
864	// unconditionally include in API requests. By default, fields with
865	// empty values are omitted from API requests. However, any non-pointer,
866	// non-interface field appearing in ForceSendFields will be sent to the
867	// server regardless of whether the field is empty or not. This may be
868	// used to include empty fields in Patch requests.
869	ForceSendFields []string `json:"-"`
870
871	// NullFields is a list of field names (e.g. "EndOffset") to include in
872	// API requests with the JSON null value. By default, fields with empty
873	// values are omitted from API requests. However, any field with an
874	// empty value appearing in NullFields will be sent to the server as
875	// null. It is an error if a field in this list has a non-empty value.
876	// This may be used to include null fields in Patch requests.
877	NullFields []string `json:"-"`
878}
879
880func (s *BooksAnnotationsRange) MarshalJSON() ([]byte, error) {
881	type NoMethod BooksAnnotationsRange
882	raw := NoMethod(*s)
883	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
884}
885
886type BooksCloudloadingResource struct {
887	Author string `json:"author,omitempty"`
888
889	ProcessingState string `json:"processingState,omitempty"`
890
891	Title string `json:"title,omitempty"`
892
893	VolumeId string `json:"volumeId,omitempty"`
894
895	// ServerResponse contains the HTTP response code and headers from the
896	// server.
897	googleapi.ServerResponse `json:"-"`
898
899	// ForceSendFields is a list of field names (e.g. "Author") to
900	// unconditionally include in API requests. By default, fields with
901	// empty values are omitted from API requests. However, any non-pointer,
902	// non-interface field appearing in ForceSendFields will be sent to the
903	// server regardless of whether the field is empty or not. This may be
904	// used to include empty fields in Patch requests.
905	ForceSendFields []string `json:"-"`
906
907	// NullFields is a list of field names (e.g. "Author") to include in API
908	// requests with the JSON null value. By default, fields with empty
909	// values are omitted from API requests. However, any field with an
910	// empty value appearing in NullFields will be sent to the server as
911	// null. It is an error if a field in this list has a non-empty value.
912	// This may be used to include null fields in Patch requests.
913	NullFields []string `json:"-"`
914}
915
916func (s *BooksCloudloadingResource) MarshalJSON() ([]byte, error) {
917	type NoMethod BooksCloudloadingResource
918	raw := NoMethod(*s)
919	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
920}
921
922type BooksSubscriptionReleaseInfo struct {
923	// AmountInMicros: Amount in micros of the specified currency code.
924	AmountInMicros int64 `json:"amountInMicros,omitempty,string"`
925
926	// CurrencyCode: Currency code of the amount.
927	CurrencyCode string `json:"currencyCode,omitempty"`
928
929	// ReleaseNumber: The release number of this issue/volume/book.
930	ReleaseNumber string `json:"releaseNumber,omitempty"`
931
932	// ReleaseTimestampUs: The release date.
933	ReleaseTimestampUs int64 `json:"releaseTimestampUs,omitempty,string"`
934
935	// ForceSendFields is a list of field names (e.g. "AmountInMicros") to
936	// unconditionally include in API requests. By default, fields with
937	// empty values are omitted from API requests. However, any non-pointer,
938	// non-interface field appearing in ForceSendFields will be sent to the
939	// server regardless of whether the field is empty or not. This may be
940	// used to include empty fields in Patch requests.
941	ForceSendFields []string `json:"-"`
942
943	// NullFields is a list of field names (e.g. "AmountInMicros") to
944	// include in API requests with the JSON null value. By default, fields
945	// with empty values are omitted from API requests. However, any field
946	// with an empty value appearing in NullFields will be sent to the
947	// server as null. It is an error if a field in this list has a
948	// non-empty value. This may be used to include null fields in Patch
949	// requests.
950	NullFields []string `json:"-"`
951}
952
953func (s *BooksSubscriptionReleaseInfo) MarshalJSON() ([]byte, error) {
954	type NoMethod BooksSubscriptionReleaseInfo
955	raw := NoMethod(*s)
956	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
957}
958
959type BooksVolumesRecommendedRateResponse struct {
960	ConsistencyToken string `json:"consistency_token,omitempty"`
961
962	// ServerResponse contains the HTTP response code and headers from the
963	// server.
964	googleapi.ServerResponse `json:"-"`
965
966	// ForceSendFields is a list of field names (e.g. "ConsistencyToken") to
967	// unconditionally include in API requests. By default, fields with
968	// empty values are omitted from API requests. However, any non-pointer,
969	// non-interface field appearing in ForceSendFields will be sent to the
970	// server regardless of whether the field is empty or not. This may be
971	// used to include empty fields in Patch requests.
972	ForceSendFields []string `json:"-"`
973
974	// NullFields is a list of field names (e.g. "ConsistencyToken") to
975	// include in API requests with the JSON null value. By default, fields
976	// with empty values are omitted from API requests. However, any field
977	// with an empty value appearing in NullFields will be sent to the
978	// server as null. It is an error if a field in this list has a
979	// non-empty value. This may be used to include null fields in Patch
980	// requests.
981	NullFields []string `json:"-"`
982}
983
984func (s *BooksVolumesRecommendedRateResponse) MarshalJSON() ([]byte, error) {
985	type NoMethod BooksVolumesRecommendedRateResponse
986	raw := NoMethod(*s)
987	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
988}
989
990type Bookshelf struct {
991	// Access: Whether this bookshelf is PUBLIC or PRIVATE.
992	Access string `json:"access,omitempty"`
993
994	// Created: Created time for this bookshelf (formatted UTC timestamp
995	// with millisecond resolution).
996	Created string `json:"created,omitempty"`
997
998	// Description: Description of this bookshelf.
999	Description string `json:"description,omitempty"`
1000
1001	// Id: Id of this bookshelf, only unique by user.
1002	Id int64 `json:"id,omitempty"`
1003
1004	// Kind: Resource type for bookshelf metadata.
1005	Kind string `json:"kind,omitempty"`
1006
1007	// SelfLink: URL to this resource.
1008	SelfLink string `json:"selfLink,omitempty"`
1009
1010	// Title: Title of this bookshelf.
1011	Title string `json:"title,omitempty"`
1012
1013	// Updated: Last modified time of this bookshelf (formatted UTC
1014	// timestamp with millisecond resolution).
1015	Updated string `json:"updated,omitempty"`
1016
1017	// VolumeCount: Number of volumes in this bookshelf.
1018	VolumeCount int64 `json:"volumeCount,omitempty"`
1019
1020	// VolumesLastUpdated: Last time a volume was added or removed from this
1021	// bookshelf (formatted UTC timestamp with millisecond resolution).
1022	VolumesLastUpdated string `json:"volumesLastUpdated,omitempty"`
1023
1024	// ServerResponse contains the HTTP response code and headers from the
1025	// server.
1026	googleapi.ServerResponse `json:"-"`
1027
1028	// ForceSendFields is a list of field names (e.g. "Access") to
1029	// unconditionally include in API requests. By default, fields with
1030	// empty values are omitted from API requests. However, any non-pointer,
1031	// non-interface field appearing in ForceSendFields will be sent to the
1032	// server regardless of whether the field is empty or not. This may be
1033	// used to include empty fields in Patch requests.
1034	ForceSendFields []string `json:"-"`
1035
1036	// NullFields is a list of field names (e.g. "Access") to include in API
1037	// requests with the JSON null value. By default, fields with empty
1038	// values are omitted from API requests. However, any field with an
1039	// empty value appearing in NullFields will be sent to the server as
1040	// null. It is an error if a field in this list has a non-empty value.
1041	// This may be used to include null fields in Patch requests.
1042	NullFields []string `json:"-"`
1043}
1044
1045func (s *Bookshelf) MarshalJSON() ([]byte, error) {
1046	type NoMethod Bookshelf
1047	raw := NoMethod(*s)
1048	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1049}
1050
1051type Bookshelves struct {
1052	// Items: A list of bookshelves.
1053	Items []*Bookshelf `json:"items,omitempty"`
1054
1055	// Kind: Resource type.
1056	Kind string `json:"kind,omitempty"`
1057
1058	// ServerResponse contains the HTTP response code and headers from the
1059	// server.
1060	googleapi.ServerResponse `json:"-"`
1061
1062	// ForceSendFields is a list of field names (e.g. "Items") to
1063	// unconditionally include in API requests. By default, fields with
1064	// empty values are omitted from API requests. However, any non-pointer,
1065	// non-interface field appearing in ForceSendFields will be sent to the
1066	// server regardless of whether the field is empty or not. This may be
1067	// used to include empty fields in Patch requests.
1068	ForceSendFields []string `json:"-"`
1069
1070	// NullFields is a list of field names (e.g. "Items") to include in API
1071	// requests with the JSON null value. By default, fields with empty
1072	// values are omitted from API requests. However, any field with an
1073	// empty value appearing in NullFields will be sent to the server as
1074	// null. It is an error if a field in this list has a non-empty value.
1075	// This may be used to include null fields in Patch requests.
1076	NullFields []string `json:"-"`
1077}
1078
1079func (s *Bookshelves) MarshalJSON() ([]byte, error) {
1080	type NoMethod Bookshelves
1081	raw := NoMethod(*s)
1082	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1083}
1084
1085type Category struct {
1086	// Items: A list of onboarding categories.
1087	Items []*CategoryItems `json:"items,omitempty"`
1088
1089	// Kind: Resource type.
1090	Kind string `json:"kind,omitempty"`
1091
1092	// ServerResponse contains the HTTP response code and headers from the
1093	// server.
1094	googleapi.ServerResponse `json:"-"`
1095
1096	// ForceSendFields is a list of field names (e.g. "Items") to
1097	// unconditionally include in API requests. By default, fields with
1098	// empty values are omitted from API requests. However, any non-pointer,
1099	// non-interface field appearing in ForceSendFields will be sent to the
1100	// server regardless of whether the field is empty or not. This may be
1101	// used to include empty fields in Patch requests.
1102	ForceSendFields []string `json:"-"`
1103
1104	// NullFields is a list of field names (e.g. "Items") to include in API
1105	// requests with the JSON null value. By default, fields with empty
1106	// values are omitted from API requests. However, any field with an
1107	// empty value appearing in NullFields will be sent to the server as
1108	// null. It is an error if a field in this list has a non-empty value.
1109	// This may be used to include null fields in Patch requests.
1110	NullFields []string `json:"-"`
1111}
1112
1113func (s *Category) MarshalJSON() ([]byte, error) {
1114	type NoMethod Category
1115	raw := NoMethod(*s)
1116	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1117}
1118
1119type CategoryItems struct {
1120	BadgeUrl string `json:"badgeUrl,omitempty"`
1121
1122	CategoryId string `json:"categoryId,omitempty"`
1123
1124	Name string `json:"name,omitempty"`
1125
1126	// ForceSendFields is a list of field names (e.g. "BadgeUrl") to
1127	// unconditionally include in API requests. By default, fields with
1128	// empty values are omitted from API requests. However, any non-pointer,
1129	// non-interface field appearing in ForceSendFields will be sent to the
1130	// server regardless of whether the field is empty or not. This may be
1131	// used to include empty fields in Patch requests.
1132	ForceSendFields []string `json:"-"`
1133
1134	// NullFields is a list of field names (e.g. "BadgeUrl") to include in
1135	// API requests with the JSON null value. By default, fields with empty
1136	// values are omitted from API requests. However, any field with an
1137	// empty value appearing in NullFields will be sent to the server as
1138	// null. It is an error if a field in this list has a non-empty value.
1139	// This may be used to include null fields in Patch requests.
1140	NullFields []string `json:"-"`
1141}
1142
1143func (s *CategoryItems) MarshalJSON() ([]byte, error) {
1144	type NoMethod CategoryItems
1145	raw := NoMethod(*s)
1146	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1147}
1148
1149type ConcurrentAccessRestriction struct {
1150	// DeviceAllowed: Whether access is granted for this (user, device,
1151	// volume).
1152	DeviceAllowed bool `json:"deviceAllowed,omitempty"`
1153
1154	// Kind: Resource type.
1155	Kind string `json:"kind,omitempty"`
1156
1157	// MaxConcurrentDevices: The maximum number of concurrent access
1158	// licenses for this volume.
1159	MaxConcurrentDevices int64 `json:"maxConcurrentDevices,omitempty"`
1160
1161	// Message: Error/warning message.
1162	Message string `json:"message,omitempty"`
1163
1164	// Nonce: Client nonce for verification. Download access and
1165	// client-validation only.
1166	Nonce string `json:"nonce,omitempty"`
1167
1168	// ReasonCode: Error/warning reason code.
1169	ReasonCode string `json:"reasonCode,omitempty"`
1170
1171	// Restricted: Whether this volume has any concurrent access
1172	// restrictions.
1173	Restricted bool `json:"restricted,omitempty"`
1174
1175	// Signature: Response signature.
1176	Signature string `json:"signature,omitempty"`
1177
1178	// Source: Client app identifier for verification. Download access and
1179	// client-validation only.
1180	Source string `json:"source,omitempty"`
1181
1182	// TimeWindowSeconds: Time in seconds for license auto-expiration.
1183	TimeWindowSeconds int64 `json:"timeWindowSeconds,omitempty"`
1184
1185	// VolumeId: Identifies the volume for which this entry applies.
1186	VolumeId string `json:"volumeId,omitempty"`
1187
1188	// ForceSendFields is a list of field names (e.g. "DeviceAllowed") to
1189	// unconditionally include in API requests. By default, fields with
1190	// empty values are omitted from API requests. However, any non-pointer,
1191	// non-interface field appearing in ForceSendFields will be sent to the
1192	// server regardless of whether the field is empty or not. This may be
1193	// used to include empty fields in Patch requests.
1194	ForceSendFields []string `json:"-"`
1195
1196	// NullFields is a list of field names (e.g. "DeviceAllowed") to include
1197	// in API requests with the JSON null value. By default, fields with
1198	// empty values are omitted from API requests. However, any field with
1199	// an empty value appearing in NullFields will be sent to the server as
1200	// null. It is an error if a field in this list has a non-empty value.
1201	// This may be used to include null fields in Patch requests.
1202	NullFields []string `json:"-"`
1203}
1204
1205func (s *ConcurrentAccessRestriction) MarshalJSON() ([]byte, error) {
1206	type NoMethod ConcurrentAccessRestriction
1207	raw := NoMethod(*s)
1208	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1209}
1210
1211type Dictlayerdata struct {
1212	Common *DictlayerdataCommon `json:"common,omitempty"`
1213
1214	Dict *DictlayerdataDict `json:"dict,omitempty"`
1215
1216	Kind string `json:"kind,omitempty"`
1217
1218	// ForceSendFields is a list of field names (e.g. "Common") to
1219	// unconditionally include in API requests. By default, fields with
1220	// empty values are omitted from API requests. However, any non-pointer,
1221	// non-interface field appearing in ForceSendFields will be sent to the
1222	// server regardless of whether the field is empty or not. This may be
1223	// used to include empty fields in Patch requests.
1224	ForceSendFields []string `json:"-"`
1225
1226	// NullFields is a list of field names (e.g. "Common") to include in API
1227	// requests with the JSON null value. By default, fields with empty
1228	// values are omitted from API requests. However, any field with an
1229	// empty value appearing in NullFields will be sent to the server as
1230	// null. It is an error if a field in this list has a non-empty value.
1231	// This may be used to include null fields in Patch requests.
1232	NullFields []string `json:"-"`
1233}
1234
1235func (s *Dictlayerdata) MarshalJSON() ([]byte, error) {
1236	type NoMethod Dictlayerdata
1237	raw := NoMethod(*s)
1238	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1239}
1240
1241type DictlayerdataCommon struct {
1242	// Title: The display title and localized canonical name to use when
1243	// searching for this entity on Google search.
1244	Title string `json:"title,omitempty"`
1245
1246	// ForceSendFields is a list of field names (e.g. "Title") to
1247	// unconditionally include in API requests. By default, fields with
1248	// empty values are omitted from API requests. However, any non-pointer,
1249	// non-interface field appearing in ForceSendFields will be sent to the
1250	// server regardless of whether the field is empty or not. This may be
1251	// used to include empty fields in Patch requests.
1252	ForceSendFields []string `json:"-"`
1253
1254	// NullFields is a list of field names (e.g. "Title") to include in API
1255	// requests with the JSON null value. By default, fields with empty
1256	// values are omitted from API requests. However, any field with an
1257	// empty value appearing in NullFields will be sent to the server as
1258	// null. It is an error if a field in this list has a non-empty value.
1259	// This may be used to include null fields in Patch requests.
1260	NullFields []string `json:"-"`
1261}
1262
1263func (s *DictlayerdataCommon) MarshalJSON() ([]byte, error) {
1264	type NoMethod DictlayerdataCommon
1265	raw := NoMethod(*s)
1266	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1267}
1268
1269type DictlayerdataDict struct {
1270	// Source: The source, url and attribution for this dictionary data.
1271	Source *DictlayerdataDictSource `json:"source,omitempty"`
1272
1273	Words []*DictlayerdataDictWords `json:"words,omitempty"`
1274
1275	// ForceSendFields is a list of field names (e.g. "Source") to
1276	// unconditionally include in API requests. By default, fields with
1277	// empty values are omitted from API requests. However, any non-pointer,
1278	// non-interface field appearing in ForceSendFields will be sent to the
1279	// server regardless of whether the field is empty or not. This may be
1280	// used to include empty fields in Patch requests.
1281	ForceSendFields []string `json:"-"`
1282
1283	// NullFields is a list of field names (e.g. "Source") to include in API
1284	// requests with the JSON null value. By default, fields with empty
1285	// values are omitted from API requests. However, any field with an
1286	// empty value appearing in NullFields will be sent to the server as
1287	// null. It is an error if a field in this list has a non-empty value.
1288	// This may be used to include null fields in Patch requests.
1289	NullFields []string `json:"-"`
1290}
1291
1292func (s *DictlayerdataDict) MarshalJSON() ([]byte, error) {
1293	type NoMethod DictlayerdataDict
1294	raw := NoMethod(*s)
1295	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1296}
1297
1298// DictlayerdataDictSource: The source, url and attribution for this
1299// dictionary data.
1300type DictlayerdataDictSource struct {
1301	Attribution string `json:"attribution,omitempty"`
1302
1303	Url string `json:"url,omitempty"`
1304
1305	// ForceSendFields is a list of field names (e.g. "Attribution") to
1306	// unconditionally include in API requests. By default, fields with
1307	// empty values are omitted from API requests. However, any non-pointer,
1308	// non-interface field appearing in ForceSendFields will be sent to the
1309	// server regardless of whether the field is empty or not. This may be
1310	// used to include empty fields in Patch requests.
1311	ForceSendFields []string `json:"-"`
1312
1313	// NullFields is a list of field names (e.g. "Attribution") to include
1314	// in API requests with the JSON null value. By default, fields with
1315	// empty values are omitted from API requests. However, any field with
1316	// an empty value appearing in NullFields will be sent to the server as
1317	// null. It is an error if a field in this list has a non-empty value.
1318	// This may be used to include null fields in Patch requests.
1319	NullFields []string `json:"-"`
1320}
1321
1322func (s *DictlayerdataDictSource) MarshalJSON() ([]byte, error) {
1323	type NoMethod DictlayerdataDictSource
1324	raw := NoMethod(*s)
1325	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1326}
1327
1328type DictlayerdataDictWords struct {
1329	Derivatives []*DictlayerdataDictWordsDerivatives `json:"derivatives,omitempty"`
1330
1331	Examples []*DictlayerdataDictWordsExamples `json:"examples,omitempty"`
1332
1333	Senses []*DictlayerdataDictWordsSenses `json:"senses,omitempty"`
1334
1335	// Source: The words with different meanings but not related words, e.g.
1336	// "go" (game) and "go" (verb).
1337	Source *DictlayerdataDictWordsSource `json:"source,omitempty"`
1338
1339	// ForceSendFields is a list of field names (e.g. "Derivatives") to
1340	// unconditionally include in API requests. By default, fields with
1341	// empty values are omitted from API requests. However, any non-pointer,
1342	// non-interface field appearing in ForceSendFields will be sent to the
1343	// server regardless of whether the field is empty or not. This may be
1344	// used to include empty fields in Patch requests.
1345	ForceSendFields []string `json:"-"`
1346
1347	// NullFields is a list of field names (e.g. "Derivatives") to include
1348	// in API requests with the JSON null value. By default, fields with
1349	// empty values are omitted from API requests. However, any field with
1350	// an empty value appearing in NullFields will be sent to the server as
1351	// null. It is an error if a field in this list has a non-empty value.
1352	// This may be used to include null fields in Patch requests.
1353	NullFields []string `json:"-"`
1354}
1355
1356func (s *DictlayerdataDictWords) MarshalJSON() ([]byte, error) {
1357	type NoMethod DictlayerdataDictWords
1358	raw := NoMethod(*s)
1359	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1360}
1361
1362type DictlayerdataDictWordsDerivatives struct {
1363	Source *DictlayerdataDictWordsDerivativesSource `json:"source,omitempty"`
1364
1365	Text string `json:"text,omitempty"`
1366
1367	// ForceSendFields is a list of field names (e.g. "Source") to
1368	// unconditionally include in API requests. By default, fields with
1369	// empty values are omitted from API requests. However, any non-pointer,
1370	// non-interface field appearing in ForceSendFields will be sent to the
1371	// server regardless of whether the field is empty or not. This may be
1372	// used to include empty fields in Patch requests.
1373	ForceSendFields []string `json:"-"`
1374
1375	// NullFields is a list of field names (e.g. "Source") to include in API
1376	// requests with the JSON null value. By default, fields with empty
1377	// values are omitted from API requests. However, any field with an
1378	// empty value appearing in NullFields will be sent to the server as
1379	// null. It is an error if a field in this list has a non-empty value.
1380	// This may be used to include null fields in Patch requests.
1381	NullFields []string `json:"-"`
1382}
1383
1384func (s *DictlayerdataDictWordsDerivatives) MarshalJSON() ([]byte, error) {
1385	type NoMethod DictlayerdataDictWordsDerivatives
1386	raw := NoMethod(*s)
1387	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1388}
1389
1390type DictlayerdataDictWordsDerivativesSource struct {
1391	Attribution string `json:"attribution,omitempty"`
1392
1393	Url string `json:"url,omitempty"`
1394
1395	// ForceSendFields is a list of field names (e.g. "Attribution") to
1396	// unconditionally include in API requests. By default, fields with
1397	// empty values are omitted from API requests. However, any non-pointer,
1398	// non-interface field appearing in ForceSendFields will be sent to the
1399	// server regardless of whether the field is empty or not. This may be
1400	// used to include empty fields in Patch requests.
1401	ForceSendFields []string `json:"-"`
1402
1403	// NullFields is a list of field names (e.g. "Attribution") to include
1404	// in API requests with the JSON null value. By default, fields with
1405	// empty values are omitted from API requests. However, any field with
1406	// an empty value appearing in NullFields will be sent to the server as
1407	// null. It is an error if a field in this list has a non-empty value.
1408	// This may be used to include null fields in Patch requests.
1409	NullFields []string `json:"-"`
1410}
1411
1412func (s *DictlayerdataDictWordsDerivativesSource) MarshalJSON() ([]byte, error) {
1413	type NoMethod DictlayerdataDictWordsDerivativesSource
1414	raw := NoMethod(*s)
1415	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1416}
1417
1418type DictlayerdataDictWordsExamples struct {
1419	Source *DictlayerdataDictWordsExamplesSource `json:"source,omitempty"`
1420
1421	Text string `json:"text,omitempty"`
1422
1423	// ForceSendFields is a list of field names (e.g. "Source") to
1424	// unconditionally include in API requests. By default, fields with
1425	// empty values are omitted from API requests. However, any non-pointer,
1426	// non-interface field appearing in ForceSendFields will be sent to the
1427	// server regardless of whether the field is empty or not. This may be
1428	// used to include empty fields in Patch requests.
1429	ForceSendFields []string `json:"-"`
1430
1431	// NullFields is a list of field names (e.g. "Source") to include in API
1432	// requests with the JSON null value. By default, fields with empty
1433	// values are omitted from API requests. However, any field with an
1434	// empty value appearing in NullFields will be sent to the server as
1435	// null. It is an error if a field in this list has a non-empty value.
1436	// This may be used to include null fields in Patch requests.
1437	NullFields []string `json:"-"`
1438}
1439
1440func (s *DictlayerdataDictWordsExamples) MarshalJSON() ([]byte, error) {
1441	type NoMethod DictlayerdataDictWordsExamples
1442	raw := NoMethod(*s)
1443	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1444}
1445
1446type DictlayerdataDictWordsExamplesSource struct {
1447	Attribution string `json:"attribution,omitempty"`
1448
1449	Url string `json:"url,omitempty"`
1450
1451	// ForceSendFields is a list of field names (e.g. "Attribution") to
1452	// unconditionally include in API requests. By default, fields with
1453	// empty values are omitted from API requests. However, any non-pointer,
1454	// non-interface field appearing in ForceSendFields will be sent to the
1455	// server regardless of whether the field is empty or not. This may be
1456	// used to include empty fields in Patch requests.
1457	ForceSendFields []string `json:"-"`
1458
1459	// NullFields is a list of field names (e.g. "Attribution") to include
1460	// in API requests with the JSON null value. By default, fields with
1461	// empty values are omitted from API requests. However, any field with
1462	// an empty value appearing in NullFields will be sent to the server as
1463	// null. It is an error if a field in this list has a non-empty value.
1464	// This may be used to include null fields in Patch requests.
1465	NullFields []string `json:"-"`
1466}
1467
1468func (s *DictlayerdataDictWordsExamplesSource) MarshalJSON() ([]byte, error) {
1469	type NoMethod DictlayerdataDictWordsExamplesSource
1470	raw := NoMethod(*s)
1471	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1472}
1473
1474type DictlayerdataDictWordsSenses struct {
1475	Conjugations []*DictlayerdataDictWordsSensesConjugations `json:"conjugations,omitempty"`
1476
1477	Definitions []*DictlayerdataDictWordsSensesDefinitions `json:"definitions,omitempty"`
1478
1479	PartOfSpeech string `json:"partOfSpeech,omitempty"`
1480
1481	Pronunciation string `json:"pronunciation,omitempty"`
1482
1483	PronunciationUrl string `json:"pronunciationUrl,omitempty"`
1484
1485	Source *DictlayerdataDictWordsSensesSource `json:"source,omitempty"`
1486
1487	Syllabification string `json:"syllabification,omitempty"`
1488
1489	Synonyms []*DictlayerdataDictWordsSensesSynonyms `json:"synonyms,omitempty"`
1490
1491	// ForceSendFields is a list of field names (e.g. "Conjugations") to
1492	// unconditionally include in API requests. By default, fields with
1493	// empty values are omitted from API requests. However, any non-pointer,
1494	// non-interface field appearing in ForceSendFields will be sent to the
1495	// server regardless of whether the field is empty or not. This may be
1496	// used to include empty fields in Patch requests.
1497	ForceSendFields []string `json:"-"`
1498
1499	// NullFields is a list of field names (e.g. "Conjugations") to include
1500	// in API requests with the JSON null value. By default, fields with
1501	// empty values are omitted from API requests. However, any field with
1502	// an empty value appearing in NullFields will be sent to the server as
1503	// null. It is an error if a field in this list has a non-empty value.
1504	// This may be used to include null fields in Patch requests.
1505	NullFields []string `json:"-"`
1506}
1507
1508func (s *DictlayerdataDictWordsSenses) MarshalJSON() ([]byte, error) {
1509	type NoMethod DictlayerdataDictWordsSenses
1510	raw := NoMethod(*s)
1511	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1512}
1513
1514type DictlayerdataDictWordsSensesConjugations struct {
1515	Type string `json:"type,omitempty"`
1516
1517	Value string `json:"value,omitempty"`
1518
1519	// ForceSendFields is a list of field names (e.g. "Type") to
1520	// unconditionally include in API requests. By default, fields with
1521	// empty values are omitted from API requests. However, any non-pointer,
1522	// non-interface field appearing in ForceSendFields will be sent to the
1523	// server regardless of whether the field is empty or not. This may be
1524	// used to include empty fields in Patch requests.
1525	ForceSendFields []string `json:"-"`
1526
1527	// NullFields is a list of field names (e.g. "Type") to include in API
1528	// requests with the JSON null value. By default, fields with empty
1529	// values are omitted from API requests. However, any field with an
1530	// empty value appearing in NullFields will be sent to the server as
1531	// null. It is an error if a field in this list has a non-empty value.
1532	// This may be used to include null fields in Patch requests.
1533	NullFields []string `json:"-"`
1534}
1535
1536func (s *DictlayerdataDictWordsSensesConjugations) MarshalJSON() ([]byte, error) {
1537	type NoMethod DictlayerdataDictWordsSensesConjugations
1538	raw := NoMethod(*s)
1539	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1540}
1541
1542type DictlayerdataDictWordsSensesDefinitions struct {
1543	Definition string `json:"definition,omitempty"`
1544
1545	Examples []*DictlayerdataDictWordsSensesDefinitionsExamples `json:"examples,omitempty"`
1546
1547	// ForceSendFields is a list of field names (e.g. "Definition") to
1548	// unconditionally include in API requests. By default, fields with
1549	// empty values are omitted from API requests. However, any non-pointer,
1550	// non-interface field appearing in ForceSendFields will be sent to the
1551	// server regardless of whether the field is empty or not. This may be
1552	// used to include empty fields in Patch requests.
1553	ForceSendFields []string `json:"-"`
1554
1555	// NullFields is a list of field names (e.g. "Definition") to include in
1556	// API requests with the JSON null value. By default, fields with empty
1557	// values are omitted from API requests. However, any field with an
1558	// empty value appearing in NullFields will be sent to the server as
1559	// null. It is an error if a field in this list has a non-empty value.
1560	// This may be used to include null fields in Patch requests.
1561	NullFields []string `json:"-"`
1562}
1563
1564func (s *DictlayerdataDictWordsSensesDefinitions) MarshalJSON() ([]byte, error) {
1565	type NoMethod DictlayerdataDictWordsSensesDefinitions
1566	raw := NoMethod(*s)
1567	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1568}
1569
1570type DictlayerdataDictWordsSensesDefinitionsExamples struct {
1571	Source *DictlayerdataDictWordsSensesDefinitionsExamplesSource `json:"source,omitempty"`
1572
1573	Text string `json:"text,omitempty"`
1574
1575	// ForceSendFields is a list of field names (e.g. "Source") to
1576	// unconditionally include in API requests. By default, fields with
1577	// empty values are omitted from API requests. However, any non-pointer,
1578	// non-interface field appearing in ForceSendFields will be sent to the
1579	// server regardless of whether the field is empty or not. This may be
1580	// used to include empty fields in Patch requests.
1581	ForceSendFields []string `json:"-"`
1582
1583	// NullFields is a list of field names (e.g. "Source") to include in API
1584	// requests with the JSON null value. By default, fields with empty
1585	// values are omitted from API requests. However, any field with an
1586	// empty value appearing in NullFields will be sent to the server as
1587	// null. It is an error if a field in this list has a non-empty value.
1588	// This may be used to include null fields in Patch requests.
1589	NullFields []string `json:"-"`
1590}
1591
1592func (s *DictlayerdataDictWordsSensesDefinitionsExamples) MarshalJSON() ([]byte, error) {
1593	type NoMethod DictlayerdataDictWordsSensesDefinitionsExamples
1594	raw := NoMethod(*s)
1595	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1596}
1597
1598type DictlayerdataDictWordsSensesDefinitionsExamplesSource struct {
1599	Attribution string `json:"attribution,omitempty"`
1600
1601	Url string `json:"url,omitempty"`
1602
1603	// ForceSendFields is a list of field names (e.g. "Attribution") to
1604	// unconditionally include in API requests. By default, fields with
1605	// empty values are omitted from API requests. However, any non-pointer,
1606	// non-interface field appearing in ForceSendFields will be sent to the
1607	// server regardless of whether the field is empty or not. This may be
1608	// used to include empty fields in Patch requests.
1609	ForceSendFields []string `json:"-"`
1610
1611	// NullFields is a list of field names (e.g. "Attribution") to include
1612	// in API requests with the JSON null value. By default, fields with
1613	// empty values are omitted from API requests. However, any field with
1614	// an empty value appearing in NullFields will be sent to the server as
1615	// null. It is an error if a field in this list has a non-empty value.
1616	// This may be used to include null fields in Patch requests.
1617	NullFields []string `json:"-"`
1618}
1619
1620func (s *DictlayerdataDictWordsSensesDefinitionsExamplesSource) MarshalJSON() ([]byte, error) {
1621	type NoMethod DictlayerdataDictWordsSensesDefinitionsExamplesSource
1622	raw := NoMethod(*s)
1623	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1624}
1625
1626type DictlayerdataDictWordsSensesSource struct {
1627	Attribution string `json:"attribution,omitempty"`
1628
1629	Url string `json:"url,omitempty"`
1630
1631	// ForceSendFields is a list of field names (e.g. "Attribution") to
1632	// unconditionally include in API requests. By default, fields with
1633	// empty values are omitted from API requests. However, any non-pointer,
1634	// non-interface field appearing in ForceSendFields will be sent to the
1635	// server regardless of whether the field is empty or not. This may be
1636	// used to include empty fields in Patch requests.
1637	ForceSendFields []string `json:"-"`
1638
1639	// NullFields is a list of field names (e.g. "Attribution") to include
1640	// in API requests with the JSON null value. By default, fields with
1641	// empty values are omitted from API requests. However, any field with
1642	// an empty value appearing in NullFields will be sent to the server as
1643	// null. It is an error if a field in this list has a non-empty value.
1644	// This may be used to include null fields in Patch requests.
1645	NullFields []string `json:"-"`
1646}
1647
1648func (s *DictlayerdataDictWordsSensesSource) MarshalJSON() ([]byte, error) {
1649	type NoMethod DictlayerdataDictWordsSensesSource
1650	raw := NoMethod(*s)
1651	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1652}
1653
1654type DictlayerdataDictWordsSensesSynonyms struct {
1655	Source *DictlayerdataDictWordsSensesSynonymsSource `json:"source,omitempty"`
1656
1657	Text string `json:"text,omitempty"`
1658
1659	// ForceSendFields is a list of field names (e.g. "Source") to
1660	// unconditionally include in API requests. By default, fields with
1661	// empty values are omitted from API requests. However, any non-pointer,
1662	// non-interface field appearing in ForceSendFields will be sent to the
1663	// server regardless of whether the field is empty or not. This may be
1664	// used to include empty fields in Patch requests.
1665	ForceSendFields []string `json:"-"`
1666
1667	// NullFields is a list of field names (e.g. "Source") to include in API
1668	// requests with the JSON null value. By default, fields with empty
1669	// values are omitted from API requests. However, any field with an
1670	// empty value appearing in NullFields will be sent to the server as
1671	// null. It is an error if a field in this list has a non-empty value.
1672	// This may be used to include null fields in Patch requests.
1673	NullFields []string `json:"-"`
1674}
1675
1676func (s *DictlayerdataDictWordsSensesSynonyms) MarshalJSON() ([]byte, error) {
1677	type NoMethod DictlayerdataDictWordsSensesSynonyms
1678	raw := NoMethod(*s)
1679	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1680}
1681
1682type DictlayerdataDictWordsSensesSynonymsSource struct {
1683	Attribution string `json:"attribution,omitempty"`
1684
1685	Url string `json:"url,omitempty"`
1686
1687	// ForceSendFields is a list of field names (e.g. "Attribution") to
1688	// unconditionally include in API requests. By default, fields with
1689	// empty values are omitted from API requests. However, any non-pointer,
1690	// non-interface field appearing in ForceSendFields will be sent to the
1691	// server regardless of whether the field is empty or not. This may be
1692	// used to include empty fields in Patch requests.
1693	ForceSendFields []string `json:"-"`
1694
1695	// NullFields is a list of field names (e.g. "Attribution") to include
1696	// in API requests with the JSON null value. By default, fields with
1697	// empty values are omitted from API requests. However, any field with
1698	// an empty value appearing in NullFields will be sent to the server as
1699	// null. It is an error if a field in this list has a non-empty value.
1700	// This may be used to include null fields in Patch requests.
1701	NullFields []string `json:"-"`
1702}
1703
1704func (s *DictlayerdataDictWordsSensesSynonymsSource) MarshalJSON() ([]byte, error) {
1705	type NoMethod DictlayerdataDictWordsSensesSynonymsSource
1706	raw := NoMethod(*s)
1707	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1708}
1709
1710// DictlayerdataDictWordsSource: The words with different meanings but
1711// not related words, e.g. "go" (game) and "go" (verb).
1712type DictlayerdataDictWordsSource struct {
1713	Attribution string `json:"attribution,omitempty"`
1714
1715	Url string `json:"url,omitempty"`
1716
1717	// ForceSendFields is a list of field names (e.g. "Attribution") to
1718	// unconditionally include in API requests. By default, fields with
1719	// empty values are omitted from API requests. However, any non-pointer,
1720	// non-interface field appearing in ForceSendFields will be sent to the
1721	// server regardless of whether the field is empty or not. This may be
1722	// used to include empty fields in Patch requests.
1723	ForceSendFields []string `json:"-"`
1724
1725	// NullFields is a list of field names (e.g. "Attribution") to include
1726	// in API requests with the JSON null value. By default, fields with
1727	// empty values are omitted from API requests. However, any field with
1728	// an empty value appearing in NullFields will be sent to the server as
1729	// null. It is an error if a field in this list has a non-empty value.
1730	// This may be used to include null fields in Patch requests.
1731	NullFields []string `json:"-"`
1732}
1733
1734func (s *DictlayerdataDictWordsSource) MarshalJSON() ([]byte, error) {
1735	type NoMethod DictlayerdataDictWordsSource
1736	raw := NoMethod(*s)
1737	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1738}
1739
1740type Discoveryclusters struct {
1741	Clusters []*DiscoveryclustersClusters `json:"clusters,omitempty"`
1742
1743	// Kind: Resorce type.
1744	Kind string `json:"kind,omitempty"`
1745
1746	TotalClusters int64 `json:"totalClusters,omitempty"`
1747
1748	// ServerResponse contains the HTTP response code and headers from the
1749	// server.
1750	googleapi.ServerResponse `json:"-"`
1751
1752	// ForceSendFields is a list of field names (e.g. "Clusters") to
1753	// unconditionally include in API requests. By default, fields with
1754	// empty values are omitted from API requests. However, any non-pointer,
1755	// non-interface field appearing in ForceSendFields will be sent to the
1756	// server regardless of whether the field is empty or not. This may be
1757	// used to include empty fields in Patch requests.
1758	ForceSendFields []string `json:"-"`
1759
1760	// NullFields is a list of field names (e.g. "Clusters") to include in
1761	// API requests with the JSON null value. By default, fields with empty
1762	// values are omitted from API requests. However, any field with an
1763	// empty value appearing in NullFields will be sent to the server as
1764	// null. It is an error if a field in this list has a non-empty value.
1765	// This may be used to include null fields in Patch requests.
1766	NullFields []string `json:"-"`
1767}
1768
1769func (s *Discoveryclusters) MarshalJSON() ([]byte, error) {
1770	type NoMethod Discoveryclusters
1771	raw := NoMethod(*s)
1772	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1773}
1774
1775type DiscoveryclustersClusters struct {
1776	BannerWithContentContainer *DiscoveryclustersClustersBannerWithContentContainer `json:"banner_with_content_container,omitempty"`
1777
1778	SubTitle string `json:"subTitle,omitempty"`
1779
1780	Title string `json:"title,omitempty"`
1781
1782	TotalVolumes int64 `json:"totalVolumes,omitempty"`
1783
1784	Uid string `json:"uid,omitempty"`
1785
1786	Volumes []*Volume `json:"volumes,omitempty"`
1787
1788	// ForceSendFields is a list of field names (e.g.
1789	// "BannerWithContentContainer") to unconditionally include in API
1790	// requests. By default, fields with empty values are omitted from API
1791	// requests. However, any non-pointer, non-interface field appearing in
1792	// ForceSendFields will be sent to the server regardless of whether the
1793	// field is empty or not. This may be used to include empty fields in
1794	// Patch requests.
1795	ForceSendFields []string `json:"-"`
1796
1797	// NullFields is a list of field names (e.g.
1798	// "BannerWithContentContainer") to include in API requests with the
1799	// JSON null value. By default, fields with empty values are omitted
1800	// from API requests. However, any field with an empty value appearing
1801	// in NullFields will be sent to the server as null. It is an error if a
1802	// field in this list has a non-empty value. This may be used to include
1803	// null fields in Patch requests.
1804	NullFields []string `json:"-"`
1805}
1806
1807func (s *DiscoveryclustersClusters) MarshalJSON() ([]byte, error) {
1808	type NoMethod DiscoveryclustersClusters
1809	raw := NoMethod(*s)
1810	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1811}
1812
1813type DiscoveryclustersClustersBannerWithContentContainer struct {
1814	FillColorArgb string `json:"fillColorArgb,omitempty"`
1815
1816	ImageUrl string `json:"imageUrl,omitempty"`
1817
1818	MaskColorArgb string `json:"maskColorArgb,omitempty"`
1819
1820	MoreButtonText string `json:"moreButtonText,omitempty"`
1821
1822	MoreButtonUrl string `json:"moreButtonUrl,omitempty"`
1823
1824	TextColorArgb string `json:"textColorArgb,omitempty"`
1825
1826	// ForceSendFields is a list of field names (e.g. "FillColorArgb") to
1827	// unconditionally include in API requests. By default, fields with
1828	// empty values are omitted from API requests. However, any non-pointer,
1829	// non-interface field appearing in ForceSendFields will be sent to the
1830	// server regardless of whether the field is empty or not. This may be
1831	// used to include empty fields in Patch requests.
1832	ForceSendFields []string `json:"-"`
1833
1834	// NullFields is a list of field names (e.g. "FillColorArgb") to include
1835	// in API requests with the JSON null value. By default, fields with
1836	// empty values are omitted from API requests. However, any field with
1837	// an empty value appearing in NullFields will be sent to the server as
1838	// null. It is an error if a field in this list has a non-empty value.
1839	// This may be used to include null fields in Patch requests.
1840	NullFields []string `json:"-"`
1841}
1842
1843func (s *DiscoveryclustersClustersBannerWithContentContainer) MarshalJSON() ([]byte, error) {
1844	type NoMethod DiscoveryclustersClustersBannerWithContentContainer
1845	raw := NoMethod(*s)
1846	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1847}
1848
1849type DownloadAccessRestriction struct {
1850	// DeviceAllowed: If restricted, whether access is granted for this
1851	// (user, device, volume).
1852	DeviceAllowed bool `json:"deviceAllowed,omitempty"`
1853
1854	// DownloadsAcquired: If restricted, the number of content download
1855	// licenses already acquired (including the requesting client, if
1856	// licensed).
1857	DownloadsAcquired int64 `json:"downloadsAcquired,omitempty"`
1858
1859	// JustAcquired: If deviceAllowed, whether access was just acquired with
1860	// this request.
1861	JustAcquired bool `json:"justAcquired,omitempty"`
1862
1863	// Kind: Resource type.
1864	Kind string `json:"kind,omitempty"`
1865
1866	// MaxDownloadDevices: If restricted, the maximum number of content
1867	// download licenses for this volume.
1868	MaxDownloadDevices int64 `json:"maxDownloadDevices,omitempty"`
1869
1870	// Message: Error/warning message.
1871	Message string `json:"message,omitempty"`
1872
1873	// Nonce: Client nonce for verification. Download access and
1874	// client-validation only.
1875	Nonce string `json:"nonce,omitempty"`
1876
1877	// ReasonCode: Error/warning reason code. Additional codes may be added
1878	// in the future. 0 OK 100 ACCESS_DENIED_PUBLISHER_LIMIT 101
1879	// ACCESS_DENIED_LIMIT 200 WARNING_USED_LAST_ACCESS
1880	ReasonCode string `json:"reasonCode,omitempty"`
1881
1882	// Restricted: Whether this volume has any download access restrictions.
1883	Restricted bool `json:"restricted,omitempty"`
1884
1885	// Signature: Response signature.
1886	Signature string `json:"signature,omitempty"`
1887
1888	// Source: Client app identifier for verification. Download access and
1889	// client-validation only.
1890	Source string `json:"source,omitempty"`
1891
1892	// VolumeId: Identifies the volume for which this entry applies.
1893	VolumeId string `json:"volumeId,omitempty"`
1894
1895	// ForceSendFields is a list of field names (e.g. "DeviceAllowed") to
1896	// unconditionally include in API requests. By default, fields with
1897	// empty values are omitted from API requests. However, any non-pointer,
1898	// non-interface field appearing in ForceSendFields will be sent to the
1899	// server regardless of whether the field is empty or not. This may be
1900	// used to include empty fields in Patch requests.
1901	ForceSendFields []string `json:"-"`
1902
1903	// NullFields is a list of field names (e.g. "DeviceAllowed") to include
1904	// in API requests with the JSON null value. By default, fields with
1905	// empty values are omitted from API requests. However, any field with
1906	// an empty value appearing in NullFields will be sent to the server as
1907	// null. It is an error if a field in this list has a non-empty value.
1908	// This may be used to include null fields in Patch requests.
1909	NullFields []string `json:"-"`
1910}
1911
1912func (s *DownloadAccessRestriction) MarshalJSON() ([]byte, error) {
1913	type NoMethod DownloadAccessRestriction
1914	raw := NoMethod(*s)
1915	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1916}
1917
1918type DownloadAccesses struct {
1919	// DownloadAccessList: A list of download access responses.
1920	DownloadAccessList []*DownloadAccessRestriction `json:"downloadAccessList,omitempty"`
1921
1922	// Kind: Resource type.
1923	Kind string `json:"kind,omitempty"`
1924
1925	// ServerResponse contains the HTTP response code and headers from the
1926	// server.
1927	googleapi.ServerResponse `json:"-"`
1928
1929	// ForceSendFields is a list of field names (e.g. "DownloadAccessList")
1930	// to unconditionally include in API requests. By default, fields with
1931	// empty values are omitted from API requests. However, any non-pointer,
1932	// non-interface field appearing in ForceSendFields will be sent to the
1933	// server regardless of whether the field is empty or not. This may be
1934	// used to include empty fields in Patch requests.
1935	ForceSendFields []string `json:"-"`
1936
1937	// NullFields is a list of field names (e.g. "DownloadAccessList") to
1938	// include in API requests with the JSON null value. By default, fields
1939	// with empty values are omitted from API requests. However, any field
1940	// with an empty value appearing in NullFields will be sent to the
1941	// server as null. It is an error if a field in this list has a
1942	// non-empty value. This may be used to include null fields in Patch
1943	// requests.
1944	NullFields []string `json:"-"`
1945}
1946
1947func (s *DownloadAccesses) MarshalJSON() ([]byte, error) {
1948	type NoMethod DownloadAccesses
1949	raw := NoMethod(*s)
1950	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1951}
1952
1953type FamilyInfo struct {
1954	// Kind: Resource type.
1955	Kind string `json:"kind,omitempty"`
1956
1957	// Membership: Family membership info of the user that made the request.
1958	Membership *FamilyInfoMembership `json:"membership,omitempty"`
1959
1960	// ServerResponse contains the HTTP response code and headers from the
1961	// server.
1962	googleapi.ServerResponse `json:"-"`
1963
1964	// ForceSendFields is a list of field names (e.g. "Kind") to
1965	// unconditionally include in API requests. By default, fields with
1966	// empty values are omitted from API requests. However, any non-pointer,
1967	// non-interface field appearing in ForceSendFields will be sent to the
1968	// server regardless of whether the field is empty or not. This may be
1969	// used to include empty fields in Patch requests.
1970	ForceSendFields []string `json:"-"`
1971
1972	// NullFields is a list of field names (e.g. "Kind") to include in API
1973	// requests with the JSON null value. By default, fields with empty
1974	// values are omitted from API requests. However, any field with an
1975	// empty value appearing in NullFields will be sent to the server as
1976	// null. It is an error if a field in this list has a non-empty value.
1977	// This may be used to include null fields in Patch requests.
1978	NullFields []string `json:"-"`
1979}
1980
1981func (s *FamilyInfo) MarshalJSON() ([]byte, error) {
1982	type NoMethod FamilyInfo
1983	raw := NoMethod(*s)
1984	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1985}
1986
1987// FamilyInfoMembership: Family membership info of the user that made
1988// the request.
1989type FamilyInfoMembership struct {
1990	// AcquirePermission: Restrictions on user buying and acquiring content.
1991	AcquirePermission string `json:"acquirePermission,omitempty"`
1992
1993	// AgeGroup: The age group of the user.
1994	AgeGroup string `json:"ageGroup,omitempty"`
1995
1996	// AllowedMaturityRating: The maximum allowed maturity rating for the
1997	// user.
1998	AllowedMaturityRating string `json:"allowedMaturityRating,omitempty"`
1999
2000	IsInFamily bool `json:"isInFamily,omitempty"`
2001
2002	// Role: The role of the user in the family.
2003	Role string `json:"role,omitempty"`
2004
2005	// ForceSendFields is a list of field names (e.g. "AcquirePermission")
2006	// to unconditionally include in API requests. By default, fields with
2007	// empty values are omitted from API requests. However, any non-pointer,
2008	// non-interface field appearing in ForceSendFields will be sent to the
2009	// server regardless of whether the field is empty or not. This may be
2010	// used to include empty fields in Patch requests.
2011	ForceSendFields []string `json:"-"`
2012
2013	// NullFields is a list of field names (e.g. "AcquirePermission") to
2014	// include in API requests with the JSON null value. By default, fields
2015	// with empty values are omitted from API requests. However, any field
2016	// with an empty value appearing in NullFields will be sent to the
2017	// server as null. It is an error if a field in this list has a
2018	// non-empty value. This may be used to include null fields in Patch
2019	// requests.
2020	NullFields []string `json:"-"`
2021}
2022
2023func (s *FamilyInfoMembership) MarshalJSON() ([]byte, error) {
2024	type NoMethod FamilyInfoMembership
2025	raw := NoMethod(*s)
2026	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2027}
2028
2029type Geolayerdata struct {
2030	Common *GeolayerdataCommon `json:"common,omitempty"`
2031
2032	Geo *GeolayerdataGeo `json:"geo,omitempty"`
2033
2034	Kind string `json:"kind,omitempty"`
2035
2036	// ForceSendFields is a list of field names (e.g. "Common") to
2037	// unconditionally include in API requests. By default, fields with
2038	// empty values are omitted from API requests. However, any non-pointer,
2039	// non-interface field appearing in ForceSendFields will be sent to the
2040	// server regardless of whether the field is empty or not. This may be
2041	// used to include empty fields in Patch requests.
2042	ForceSendFields []string `json:"-"`
2043
2044	// NullFields is a list of field names (e.g. "Common") to include in API
2045	// requests with the JSON null value. By default, fields with empty
2046	// values are omitted from API requests. However, any field with an
2047	// empty value appearing in NullFields will be sent to the server as
2048	// null. It is an error if a field in this list has a non-empty value.
2049	// This may be used to include null fields in Patch requests.
2050	NullFields []string `json:"-"`
2051}
2052
2053func (s *Geolayerdata) MarshalJSON() ([]byte, error) {
2054	type NoMethod Geolayerdata
2055	raw := NoMethod(*s)
2056	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2057}
2058
2059type GeolayerdataCommon struct {
2060	// Lang: The language of the information url and description.
2061	Lang string `json:"lang,omitempty"`
2062
2063	// PreviewImageUrl: The URL for the preview image information.
2064	PreviewImageUrl string `json:"previewImageUrl,omitempty"`
2065
2066	// Snippet: The description for this location.
2067	Snippet string `json:"snippet,omitempty"`
2068
2069	// SnippetUrl: The URL for information for this location. Ex: wikipedia
2070	// link.
2071	SnippetUrl string `json:"snippetUrl,omitempty"`
2072
2073	// Title: The display title and localized canonical name to use when
2074	// searching for this entity on Google search.
2075	Title string `json:"title,omitempty"`
2076
2077	// ForceSendFields is a list of field names (e.g. "Lang") to
2078	// unconditionally include in API requests. By default, fields with
2079	// empty values are omitted from API requests. However, any non-pointer,
2080	// non-interface field appearing in ForceSendFields will be sent to the
2081	// server regardless of whether the field is empty or not. This may be
2082	// used to include empty fields in Patch requests.
2083	ForceSendFields []string `json:"-"`
2084
2085	// NullFields is a list of field names (e.g. "Lang") to include in API
2086	// requests with the JSON null value. By default, fields with empty
2087	// values are omitted from API requests. However, any field with an
2088	// empty value appearing in NullFields will be sent to the server as
2089	// null. It is an error if a field in this list has a non-empty value.
2090	// This may be used to include null fields in Patch requests.
2091	NullFields []string `json:"-"`
2092}
2093
2094func (s *GeolayerdataCommon) MarshalJSON() ([]byte, error) {
2095	type NoMethod GeolayerdataCommon
2096	raw := NoMethod(*s)
2097	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2098}
2099
2100type GeolayerdataGeo struct {
2101	// Boundary: The boundary of the location as a set of loops containing
2102	// pairs of latitude, longitude coordinates.
2103	Boundary [][]*GeolayerdataGeoBoundaryItem `json:"boundary,omitempty"`
2104
2105	// CachePolicy: The cache policy active for this data. EX: UNRESTRICTED,
2106	// RESTRICTED, NEVER
2107	CachePolicy string `json:"cachePolicy,omitempty"`
2108
2109	// CountryCode: The country code of the location.
2110	CountryCode string `json:"countryCode,omitempty"`
2111
2112	// Latitude: The latitude of the location.
2113	Latitude float64 `json:"latitude,omitempty"`
2114
2115	// Longitude: The longitude of the location.
2116	Longitude float64 `json:"longitude,omitempty"`
2117
2118	// MapType: The type of map that should be used for this location. EX:
2119	// HYBRID, ROADMAP, SATELLITE, TERRAIN
2120	MapType string `json:"mapType,omitempty"`
2121
2122	// Viewport: The viewport for showing this location. This is a latitude,
2123	// longitude rectangle.
2124	Viewport *GeolayerdataGeoViewport `json:"viewport,omitempty"`
2125
2126	// Zoom: The Zoom level to use for the map. Zoom levels between 0 (the
2127	// lowest zoom level, in which the entire world can be seen on one map)
2128	// to 21+ (down to individual buildings). See:
2129	// https://developers.google.com/maps/documentation/staticmaps/#Zoomlevels
2130	Zoom int64 `json:"zoom,omitempty"`
2131
2132	// ForceSendFields is a list of field names (e.g. "Boundary") to
2133	// unconditionally include in API requests. By default, fields with
2134	// empty values are omitted from API requests. However, any non-pointer,
2135	// non-interface field appearing in ForceSendFields will be sent to the
2136	// server regardless of whether the field is empty or not. This may be
2137	// used to include empty fields in Patch requests.
2138	ForceSendFields []string `json:"-"`
2139
2140	// NullFields is a list of field names (e.g. "Boundary") to include in
2141	// API requests with the JSON null value. By default, fields with empty
2142	// values are omitted from API requests. However, any field with an
2143	// empty value appearing in NullFields will be sent to the server as
2144	// null. It is an error if a field in this list has a non-empty value.
2145	// This may be used to include null fields in Patch requests.
2146	NullFields []string `json:"-"`
2147}
2148
2149func (s *GeolayerdataGeo) MarshalJSON() ([]byte, error) {
2150	type NoMethod GeolayerdataGeo
2151	raw := NoMethod(*s)
2152	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2153}
2154
2155func (s *GeolayerdataGeo) UnmarshalJSON(data []byte) error {
2156	type NoMethod GeolayerdataGeo
2157	var s1 struct {
2158		Latitude  gensupport.JSONFloat64 `json:"latitude"`
2159		Longitude gensupport.JSONFloat64 `json:"longitude"`
2160		*NoMethod
2161	}
2162	s1.NoMethod = (*NoMethod)(s)
2163	if err := json.Unmarshal(data, &s1); err != nil {
2164		return err
2165	}
2166	s.Latitude = float64(s1.Latitude)
2167	s.Longitude = float64(s1.Longitude)
2168	return nil
2169}
2170
2171type GeolayerdataGeoBoundaryItem struct {
2172	Latitude int64 `json:"latitude,omitempty"`
2173
2174	Longitude int64 `json:"longitude,omitempty"`
2175
2176	// ForceSendFields is a list of field names (e.g. "Latitude") to
2177	// unconditionally include in API requests. By default, fields with
2178	// empty values are omitted from API requests. However, any non-pointer,
2179	// non-interface field appearing in ForceSendFields will be sent to the
2180	// server regardless of whether the field is empty or not. This may be
2181	// used to include empty fields in Patch requests.
2182	ForceSendFields []string `json:"-"`
2183
2184	// NullFields is a list of field names (e.g. "Latitude") to include in
2185	// API requests with the JSON null value. By default, fields with empty
2186	// values are omitted from API requests. However, any field with an
2187	// empty value appearing in NullFields will be sent to the server as
2188	// null. It is an error if a field in this list has a non-empty value.
2189	// This may be used to include null fields in Patch requests.
2190	NullFields []string `json:"-"`
2191}
2192
2193func (s *GeolayerdataGeoBoundaryItem) MarshalJSON() ([]byte, error) {
2194	type NoMethod GeolayerdataGeoBoundaryItem
2195	raw := NoMethod(*s)
2196	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2197}
2198
2199// GeolayerdataGeoViewport: The viewport for showing this location. This
2200// is a latitude, longitude rectangle.
2201type GeolayerdataGeoViewport struct {
2202	Hi *GeolayerdataGeoViewportHi `json:"hi,omitempty"`
2203
2204	Lo *GeolayerdataGeoViewportLo `json:"lo,omitempty"`
2205
2206	// ForceSendFields is a list of field names (e.g. "Hi") to
2207	// unconditionally include in API requests. By default, fields with
2208	// empty values are omitted from API requests. However, any non-pointer,
2209	// non-interface field appearing in ForceSendFields will be sent to the
2210	// server regardless of whether the field is empty or not. This may be
2211	// used to include empty fields in Patch requests.
2212	ForceSendFields []string `json:"-"`
2213
2214	// NullFields is a list of field names (e.g. "Hi") to include in API
2215	// requests with the JSON null value. By default, fields with empty
2216	// values are omitted from API requests. However, any field with an
2217	// empty value appearing in NullFields will be sent to the server as
2218	// null. It is an error if a field in this list has a non-empty value.
2219	// This may be used to include null fields in Patch requests.
2220	NullFields []string `json:"-"`
2221}
2222
2223func (s *GeolayerdataGeoViewport) MarshalJSON() ([]byte, error) {
2224	type NoMethod GeolayerdataGeoViewport
2225	raw := NoMethod(*s)
2226	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2227}
2228
2229type GeolayerdataGeoViewportHi struct {
2230	Latitude float64 `json:"latitude,omitempty"`
2231
2232	Longitude float64 `json:"longitude,omitempty"`
2233
2234	// ForceSendFields is a list of field names (e.g. "Latitude") to
2235	// unconditionally include in API requests. By default, fields with
2236	// empty values are omitted from API requests. However, any non-pointer,
2237	// non-interface field appearing in ForceSendFields will be sent to the
2238	// server regardless of whether the field is empty or not. This may be
2239	// used to include empty fields in Patch requests.
2240	ForceSendFields []string `json:"-"`
2241
2242	// NullFields is a list of field names (e.g. "Latitude") to include in
2243	// API requests with the JSON null value. By default, fields with empty
2244	// values are omitted from API requests. However, any field with an
2245	// empty value appearing in NullFields will be sent to the server as
2246	// null. It is an error if a field in this list has a non-empty value.
2247	// This may be used to include null fields in Patch requests.
2248	NullFields []string `json:"-"`
2249}
2250
2251func (s *GeolayerdataGeoViewportHi) MarshalJSON() ([]byte, error) {
2252	type NoMethod GeolayerdataGeoViewportHi
2253	raw := NoMethod(*s)
2254	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2255}
2256
2257func (s *GeolayerdataGeoViewportHi) UnmarshalJSON(data []byte) error {
2258	type NoMethod GeolayerdataGeoViewportHi
2259	var s1 struct {
2260		Latitude  gensupport.JSONFloat64 `json:"latitude"`
2261		Longitude gensupport.JSONFloat64 `json:"longitude"`
2262		*NoMethod
2263	}
2264	s1.NoMethod = (*NoMethod)(s)
2265	if err := json.Unmarshal(data, &s1); err != nil {
2266		return err
2267	}
2268	s.Latitude = float64(s1.Latitude)
2269	s.Longitude = float64(s1.Longitude)
2270	return nil
2271}
2272
2273type GeolayerdataGeoViewportLo struct {
2274	Latitude float64 `json:"latitude,omitempty"`
2275
2276	Longitude float64 `json:"longitude,omitempty"`
2277
2278	// ForceSendFields is a list of field names (e.g. "Latitude") to
2279	// unconditionally include in API requests. By default, fields with
2280	// empty values are omitted from API requests. However, any non-pointer,
2281	// non-interface field appearing in ForceSendFields will be sent to the
2282	// server regardless of whether the field is empty or not. This may be
2283	// used to include empty fields in Patch requests.
2284	ForceSendFields []string `json:"-"`
2285
2286	// NullFields is a list of field names (e.g. "Latitude") to include in
2287	// API requests with the JSON null value. By default, fields with empty
2288	// values are omitted from API requests. However, any field with an
2289	// empty value appearing in NullFields will be sent to the server as
2290	// null. It is an error if a field in this list has a non-empty value.
2291	// This may be used to include null fields in Patch requests.
2292	NullFields []string `json:"-"`
2293}
2294
2295func (s *GeolayerdataGeoViewportLo) MarshalJSON() ([]byte, error) {
2296	type NoMethod GeolayerdataGeoViewportLo
2297	raw := NoMethod(*s)
2298	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2299}
2300
2301func (s *GeolayerdataGeoViewportLo) UnmarshalJSON(data []byte) error {
2302	type NoMethod GeolayerdataGeoViewportLo
2303	var s1 struct {
2304		Latitude  gensupport.JSONFloat64 `json:"latitude"`
2305		Longitude gensupport.JSONFloat64 `json:"longitude"`
2306		*NoMethod
2307	}
2308	s1.NoMethod = (*NoMethod)(s)
2309	if err := json.Unmarshal(data, &s1); err != nil {
2310		return err
2311	}
2312	s.Latitude = float64(s1.Latitude)
2313	s.Longitude = float64(s1.Longitude)
2314	return nil
2315}
2316
2317type Layersummaries struct {
2318	// Items: A list of layer summary items.
2319	Items []*Layersummary `json:"items,omitempty"`
2320
2321	// Kind: Resource type.
2322	Kind string `json:"kind,omitempty"`
2323
2324	// TotalItems: The total number of layer summaries found.
2325	TotalItems int64 `json:"totalItems,omitempty"`
2326
2327	// ServerResponse contains the HTTP response code and headers from the
2328	// server.
2329	googleapi.ServerResponse `json:"-"`
2330
2331	// ForceSendFields is a list of field names (e.g. "Items") to
2332	// unconditionally include in API requests. By default, fields with
2333	// empty values are omitted from API requests. However, any non-pointer,
2334	// non-interface field appearing in ForceSendFields will be sent to the
2335	// server regardless of whether the field is empty or not. This may be
2336	// used to include empty fields in Patch requests.
2337	ForceSendFields []string `json:"-"`
2338
2339	// NullFields is a list of field names (e.g. "Items") to include in API
2340	// requests with the JSON null value. By default, fields with empty
2341	// values are omitted from API requests. However, any field with an
2342	// empty value appearing in NullFields will be sent to the server as
2343	// null. It is an error if a field in this list has a non-empty value.
2344	// This may be used to include null fields in Patch requests.
2345	NullFields []string `json:"-"`
2346}
2347
2348func (s *Layersummaries) MarshalJSON() ([]byte, error) {
2349	type NoMethod Layersummaries
2350	raw := NoMethod(*s)
2351	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2352}
2353
2354type Layersummary struct {
2355	// AnnotationCount: The number of annotations for this layer.
2356	AnnotationCount int64 `json:"annotationCount,omitempty"`
2357
2358	// AnnotationTypes: The list of annotation types contained for this
2359	// layer.
2360	AnnotationTypes []string `json:"annotationTypes,omitempty"`
2361
2362	// AnnotationsDataLink: Link to get data for this annotation.
2363	AnnotationsDataLink string `json:"annotationsDataLink,omitempty"`
2364
2365	// AnnotationsLink: The link to get the annotations for this layer.
2366	AnnotationsLink string `json:"annotationsLink,omitempty"`
2367
2368	// ContentVersion: The content version this resource is for.
2369	ContentVersion string `json:"contentVersion,omitempty"`
2370
2371	// DataCount: The number of data items for this layer.
2372	DataCount int64 `json:"dataCount,omitempty"`
2373
2374	// Id: Unique id of this layer summary.
2375	Id string `json:"id,omitempty"`
2376
2377	// Kind: Resource Type
2378	Kind string `json:"kind,omitempty"`
2379
2380	// LayerId: The layer id for this summary.
2381	LayerId string `json:"layerId,omitempty"`
2382
2383	// SelfLink: URL to this resource.
2384	SelfLink string `json:"selfLink,omitempty"`
2385
2386	// Updated: Timestamp for the last time an item in this layer was
2387	// updated. (RFC 3339 UTC date-time format).
2388	Updated string `json:"updated,omitempty"`
2389
2390	// VolumeAnnotationsVersion: The current version of this layer's volume
2391	// annotations. Note that this version applies only to the data in the
2392	// books.layers.volumeAnnotations.* responses. The actual annotation
2393	// data is versioned separately.
2394	VolumeAnnotationsVersion string `json:"volumeAnnotationsVersion,omitempty"`
2395
2396	// VolumeId: The volume id this resource is for.
2397	VolumeId string `json:"volumeId,omitempty"`
2398
2399	// ServerResponse contains the HTTP response code and headers from the
2400	// server.
2401	googleapi.ServerResponse `json:"-"`
2402
2403	// ForceSendFields is a list of field names (e.g. "AnnotationCount") to
2404	// unconditionally include in API requests. By default, fields with
2405	// empty values are omitted from API requests. However, any non-pointer,
2406	// non-interface field appearing in ForceSendFields will be sent to the
2407	// server regardless of whether the field is empty or not. This may be
2408	// used to include empty fields in Patch requests.
2409	ForceSendFields []string `json:"-"`
2410
2411	// NullFields is a list of field names (e.g. "AnnotationCount") to
2412	// include in API requests with the JSON null value. By default, fields
2413	// with empty values are omitted from API requests. However, any field
2414	// with an empty value appearing in NullFields will be sent to the
2415	// server as null. It is an error if a field in this list has a
2416	// non-empty value. This may be used to include null fields in Patch
2417	// requests.
2418	NullFields []string `json:"-"`
2419}
2420
2421func (s *Layersummary) MarshalJSON() ([]byte, error) {
2422	type NoMethod Layersummary
2423	raw := NoMethod(*s)
2424	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2425}
2426
2427type Metadata struct {
2428	// Items: A list of offline dictionary metadata.
2429	Items []*MetadataItems `json:"items,omitempty"`
2430
2431	// Kind: Resource type.
2432	Kind string `json:"kind,omitempty"`
2433
2434	// ServerResponse contains the HTTP response code and headers from the
2435	// server.
2436	googleapi.ServerResponse `json:"-"`
2437
2438	// ForceSendFields is a list of field names (e.g. "Items") to
2439	// unconditionally include in API requests. By default, fields with
2440	// empty values are omitted from API requests. However, any non-pointer,
2441	// non-interface field appearing in ForceSendFields will be sent to the
2442	// server regardless of whether the field is empty or not. This may be
2443	// used to include empty fields in Patch requests.
2444	ForceSendFields []string `json:"-"`
2445
2446	// NullFields is a list of field names (e.g. "Items") to include in API
2447	// requests with the JSON null value. By default, fields with empty
2448	// values are omitted from API requests. However, any field with an
2449	// empty value appearing in NullFields will be sent to the server as
2450	// null. It is an error if a field in this list has a non-empty value.
2451	// This may be used to include null fields in Patch requests.
2452	NullFields []string `json:"-"`
2453}
2454
2455func (s *Metadata) MarshalJSON() ([]byte, error) {
2456	type NoMethod Metadata
2457	raw := NoMethod(*s)
2458	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2459}
2460
2461type MetadataItems struct {
2462	DownloadUrl string `json:"download_url,omitempty"`
2463
2464	EncryptedKey string `json:"encrypted_key,omitempty"`
2465
2466	Language string `json:"language,omitempty"`
2467
2468	Size int64 `json:"size,omitempty,string"`
2469
2470	Version int64 `json:"version,omitempty,string"`
2471
2472	// ForceSendFields is a list of field names (e.g. "DownloadUrl") to
2473	// unconditionally include in API requests. By default, fields with
2474	// empty values are omitted from API requests. However, any non-pointer,
2475	// non-interface field appearing in ForceSendFields will be sent to the
2476	// server regardless of whether the field is empty or not. This may be
2477	// used to include empty fields in Patch requests.
2478	ForceSendFields []string `json:"-"`
2479
2480	// NullFields is a list of field names (e.g. "DownloadUrl") to include
2481	// in API requests with the JSON null value. By default, fields with
2482	// empty values are omitted from API requests. However, any field with
2483	// an empty value appearing in NullFields will be sent to the server as
2484	// null. It is an error if a field in this list has a non-empty value.
2485	// This may be used to include null fields in Patch requests.
2486	NullFields []string `json:"-"`
2487}
2488
2489func (s *MetadataItems) MarshalJSON() ([]byte, error) {
2490	type NoMethod MetadataItems
2491	raw := NoMethod(*s)
2492	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2493}
2494
2495type Notification struct {
2496	Body string `json:"body,omitempty"`
2497
2498	// CrmExperimentIds: The list of crm experiment ids.
2499	CrmExperimentIds googleapi.Int64s `json:"crmExperimentIds,omitempty"`
2500
2501	DocId string `json:"doc_id,omitempty"`
2502
2503	DocType string `json:"doc_type,omitempty"`
2504
2505	DontShowNotification bool `json:"dont_show_notification,omitempty"`
2506
2507	IconUrl string `json:"iconUrl,omitempty"`
2508
2509	IsDocumentMature bool `json:"is_document_mature,omitempty"`
2510
2511	// Kind: Resource type.
2512	Kind string `json:"kind,omitempty"`
2513
2514	NotificationGroup string `json:"notificationGroup,omitempty"`
2515
2516	NotificationType string `json:"notification_type,omitempty"`
2517
2518	PcampaignId string `json:"pcampaign_id,omitempty"`
2519
2520	Reason string `json:"reason,omitempty"`
2521
2522	ShowNotificationSettingsAction bool `json:"show_notification_settings_action,omitempty"`
2523
2524	TargetUrl string `json:"targetUrl,omitempty"`
2525
2526	TimeToExpireMs int64 `json:"timeToExpireMs,omitempty,string"`
2527
2528	Title string `json:"title,omitempty"`
2529
2530	// ServerResponse contains the HTTP response code and headers from the
2531	// server.
2532	googleapi.ServerResponse `json:"-"`
2533
2534	// ForceSendFields is a list of field names (e.g. "Body") to
2535	// unconditionally include in API requests. By default, fields with
2536	// empty values are omitted from API requests. However, any non-pointer,
2537	// non-interface field appearing in ForceSendFields will be sent to the
2538	// server regardless of whether the field is empty or not. This may be
2539	// used to include empty fields in Patch requests.
2540	ForceSendFields []string `json:"-"`
2541
2542	// NullFields is a list of field names (e.g. "Body") to include in API
2543	// requests with the JSON null value. By default, fields with empty
2544	// values are omitted from API requests. However, any field with an
2545	// empty value appearing in NullFields will be sent to the server as
2546	// null. It is an error if a field in this list has a non-empty value.
2547	// This may be used to include null fields in Patch requests.
2548	NullFields []string `json:"-"`
2549}
2550
2551func (s *Notification) MarshalJSON() ([]byte, error) {
2552	type NoMethod Notification
2553	raw := NoMethod(*s)
2554	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2555}
2556
2557type Offers struct {
2558	// Items: A list of offers.
2559	Items []*OffersItems `json:"items,omitempty"`
2560
2561	// Kind: Resource type.
2562	Kind string `json:"kind,omitempty"`
2563
2564	// ServerResponse contains the HTTP response code and headers from the
2565	// server.
2566	googleapi.ServerResponse `json:"-"`
2567
2568	// ForceSendFields is a list of field names (e.g. "Items") to
2569	// unconditionally include in API requests. By default, fields with
2570	// empty values are omitted from API requests. However, any non-pointer,
2571	// non-interface field appearing in ForceSendFields will be sent to the
2572	// server regardless of whether the field is empty or not. This may be
2573	// used to include empty fields in Patch requests.
2574	ForceSendFields []string `json:"-"`
2575
2576	// NullFields is a list of field names (e.g. "Items") to include in API
2577	// requests with the JSON null value. By default, fields with empty
2578	// values are omitted from API requests. However, any field with an
2579	// empty value appearing in NullFields will be sent to the server as
2580	// null. It is an error if a field in this list has a non-empty value.
2581	// This may be used to include null fields in Patch requests.
2582	NullFields []string `json:"-"`
2583}
2584
2585func (s *Offers) MarshalJSON() ([]byte, error) {
2586	type NoMethod Offers
2587	raw := NoMethod(*s)
2588	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2589}
2590
2591type OffersItems struct {
2592	ArtUrl string `json:"artUrl,omitempty"`
2593
2594	GservicesKey string `json:"gservicesKey,omitempty"`
2595
2596	Id string `json:"id,omitempty"`
2597
2598	Items []*OffersItemsItems `json:"items,omitempty"`
2599
2600	// ForceSendFields is a list of field names (e.g. "ArtUrl") to
2601	// unconditionally include in API requests. By default, fields with
2602	// empty values are omitted from API requests. However, any non-pointer,
2603	// non-interface field appearing in ForceSendFields will be sent to the
2604	// server regardless of whether the field is empty or not. This may be
2605	// used to include empty fields in Patch requests.
2606	ForceSendFields []string `json:"-"`
2607
2608	// NullFields is a list of field names (e.g. "ArtUrl") to include in API
2609	// requests with the JSON null value. By default, fields with empty
2610	// values are omitted from API requests. However, any field with an
2611	// empty value appearing in NullFields will be sent to the server as
2612	// null. It is an error if a field in this list has a non-empty value.
2613	// This may be used to include null fields in Patch requests.
2614	NullFields []string `json:"-"`
2615}
2616
2617func (s *OffersItems) MarshalJSON() ([]byte, error) {
2618	type NoMethod OffersItems
2619	raw := NoMethod(*s)
2620	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2621}
2622
2623type OffersItemsItems struct {
2624	Author string `json:"author,omitempty"`
2625
2626	CanonicalVolumeLink string `json:"canonicalVolumeLink,omitempty"`
2627
2628	CoverUrl string `json:"coverUrl,omitempty"`
2629
2630	Description string `json:"description,omitempty"`
2631
2632	Title string `json:"title,omitempty"`
2633
2634	VolumeId string `json:"volumeId,omitempty"`
2635
2636	// ForceSendFields is a list of field names (e.g. "Author") to
2637	// unconditionally include in API requests. By default, fields with
2638	// empty values are omitted from API requests. However, any non-pointer,
2639	// non-interface field appearing in ForceSendFields will be sent to the
2640	// server regardless of whether the field is empty or not. This may be
2641	// used to include empty fields in Patch requests.
2642	ForceSendFields []string `json:"-"`
2643
2644	// NullFields is a list of field names (e.g. "Author") to include in API
2645	// requests with the JSON null value. By default, fields with empty
2646	// values are omitted from API requests. However, any field with an
2647	// empty value appearing in NullFields will be sent to the server as
2648	// null. It is an error if a field in this list has a non-empty value.
2649	// This may be used to include null fields in Patch requests.
2650	NullFields []string `json:"-"`
2651}
2652
2653func (s *OffersItemsItems) MarshalJSON() ([]byte, error) {
2654	type NoMethod OffersItemsItems
2655	raw := NoMethod(*s)
2656	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2657}
2658
2659type ReadingPosition struct {
2660	// EpubCfiPosition: Position in an EPUB as a CFI.
2661	EpubCfiPosition string `json:"epubCfiPosition,omitempty"`
2662
2663	// GbImagePosition: Position in a volume for image-based content.
2664	GbImagePosition string `json:"gbImagePosition,omitempty"`
2665
2666	// GbTextPosition: Position in a volume for text-based content.
2667	GbTextPosition string `json:"gbTextPosition,omitempty"`
2668
2669	// Kind: Resource type for a reading position.
2670	Kind string `json:"kind,omitempty"`
2671
2672	// PdfPosition: Position in a PDF file.
2673	PdfPosition string `json:"pdfPosition,omitempty"`
2674
2675	// Updated: Timestamp when this reading position was last updated
2676	// (formatted UTC timestamp with millisecond resolution).
2677	Updated string `json:"updated,omitempty"`
2678
2679	// VolumeId: Volume id associated with this reading position.
2680	VolumeId string `json:"volumeId,omitempty"`
2681
2682	// ServerResponse contains the HTTP response code and headers from the
2683	// server.
2684	googleapi.ServerResponse `json:"-"`
2685
2686	// ForceSendFields is a list of field names (e.g. "EpubCfiPosition") to
2687	// unconditionally include in API requests. By default, fields with
2688	// empty values are omitted from API requests. However, any non-pointer,
2689	// non-interface field appearing in ForceSendFields will be sent to the
2690	// server regardless of whether the field is empty or not. This may be
2691	// used to include empty fields in Patch requests.
2692	ForceSendFields []string `json:"-"`
2693
2694	// NullFields is a list of field names (e.g. "EpubCfiPosition") to
2695	// include in API requests with the JSON null value. By default, fields
2696	// with empty values are omitted from API requests. However, any field
2697	// with an empty value appearing in NullFields will be sent to the
2698	// server as null. It is an error if a field in this list has a
2699	// non-empty value. This may be used to include null fields in Patch
2700	// requests.
2701	NullFields []string `json:"-"`
2702}
2703
2704func (s *ReadingPosition) MarshalJSON() ([]byte, error) {
2705	type NoMethod ReadingPosition
2706	raw := NoMethod(*s)
2707	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2708}
2709
2710type RequestAccess struct {
2711	// ConcurrentAccess: A concurrent access response.
2712	ConcurrentAccess *ConcurrentAccessRestriction `json:"concurrentAccess,omitempty"`
2713
2714	// DownloadAccess: A download access response.
2715	DownloadAccess *DownloadAccessRestriction `json:"downloadAccess,omitempty"`
2716
2717	// Kind: Resource type.
2718	Kind string `json:"kind,omitempty"`
2719
2720	// ServerResponse contains the HTTP response code and headers from the
2721	// server.
2722	googleapi.ServerResponse `json:"-"`
2723
2724	// ForceSendFields is a list of field names (e.g. "ConcurrentAccess") to
2725	// unconditionally include in API requests. By default, fields with
2726	// empty values are omitted from API requests. However, any non-pointer,
2727	// non-interface field appearing in ForceSendFields will be sent to the
2728	// server regardless of whether the field is empty or not. This may be
2729	// used to include empty fields in Patch requests.
2730	ForceSendFields []string `json:"-"`
2731
2732	// NullFields is a list of field names (e.g. "ConcurrentAccess") to
2733	// include in API requests with the JSON null value. By default, fields
2734	// with empty values are omitted from API requests. However, any field
2735	// with an empty value appearing in NullFields will be sent to the
2736	// server as null. It is an error if a field in this list has a
2737	// non-empty value. This may be used to include null fields in Patch
2738	// requests.
2739	NullFields []string `json:"-"`
2740}
2741
2742func (s *RequestAccess) MarshalJSON() ([]byte, error) {
2743	type NoMethod RequestAccess
2744	raw := NoMethod(*s)
2745	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2746}
2747
2748type Review struct {
2749	// Author: Author of this review.
2750	Author *ReviewAuthor `json:"author,omitempty"`
2751
2752	// Content: Review text.
2753	Content string `json:"content,omitempty"`
2754
2755	// Date: Date of this review.
2756	Date string `json:"date,omitempty"`
2757
2758	// FullTextUrl: URL for the full review text, for reviews gathered from
2759	// the web.
2760	FullTextUrl string `json:"fullTextUrl,omitempty"`
2761
2762	// Kind: Resource type for a review.
2763	Kind string `json:"kind,omitempty"`
2764
2765	// Rating: Star rating for this review. Possible values are ONE, TWO,
2766	// THREE, FOUR, FIVE or NOT_RATED.
2767	Rating string `json:"rating,omitempty"`
2768
2769	// Source: Information regarding the source of this review, when the
2770	// review is not from a Google Books user.
2771	Source *ReviewSource `json:"source,omitempty"`
2772
2773	// Title: Title for this review.
2774	Title string `json:"title,omitempty"`
2775
2776	// Type: Source type for this review. Possible values are EDITORIAL,
2777	// WEB_USER or GOOGLE_USER.
2778	Type string `json:"type,omitempty"`
2779
2780	// VolumeId: Volume that this review is for.
2781	VolumeId string `json:"volumeId,omitempty"`
2782
2783	// ForceSendFields is a list of field names (e.g. "Author") to
2784	// unconditionally include in API requests. By default, fields with
2785	// empty values are omitted from API requests. However, any non-pointer,
2786	// non-interface field appearing in ForceSendFields will be sent to the
2787	// server regardless of whether the field is empty or not. This may be
2788	// used to include empty fields in Patch requests.
2789	ForceSendFields []string `json:"-"`
2790
2791	// NullFields is a list of field names (e.g. "Author") to include in API
2792	// requests with the JSON null value. By default, fields with empty
2793	// values are omitted from API requests. However, any field with an
2794	// empty value appearing in NullFields will be sent to the server as
2795	// null. It is an error if a field in this list has a non-empty value.
2796	// This may be used to include null fields in Patch requests.
2797	NullFields []string `json:"-"`
2798}
2799
2800func (s *Review) MarshalJSON() ([]byte, error) {
2801	type NoMethod Review
2802	raw := NoMethod(*s)
2803	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2804}
2805
2806// ReviewAuthor: Author of this review.
2807type ReviewAuthor struct {
2808	// DisplayName: Name of this person.
2809	DisplayName string `json:"displayName,omitempty"`
2810
2811	// ForceSendFields is a list of field names (e.g. "DisplayName") to
2812	// unconditionally include in API requests. By default, fields with
2813	// empty values are omitted from API requests. However, any non-pointer,
2814	// non-interface field appearing in ForceSendFields will be sent to the
2815	// server regardless of whether the field is empty or not. This may be
2816	// used to include empty fields in Patch requests.
2817	ForceSendFields []string `json:"-"`
2818
2819	// NullFields is a list of field names (e.g. "DisplayName") to include
2820	// in API requests with the JSON null value. By default, fields with
2821	// empty values are omitted from API requests. However, any field with
2822	// an empty value appearing in NullFields will be sent to the server as
2823	// null. It is an error if a field in this list has a non-empty value.
2824	// This may be used to include null fields in Patch requests.
2825	NullFields []string `json:"-"`
2826}
2827
2828func (s *ReviewAuthor) MarshalJSON() ([]byte, error) {
2829	type NoMethod ReviewAuthor
2830	raw := NoMethod(*s)
2831	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2832}
2833
2834// ReviewSource: Information regarding the source of this review, when
2835// the review is not from a Google Books user.
2836type ReviewSource struct {
2837	// Description: Name of the source.
2838	Description string `json:"description,omitempty"`
2839
2840	// ExtraDescription: Extra text about the source of the review.
2841	ExtraDescription string `json:"extraDescription,omitempty"`
2842
2843	// Url: URL of the source of the review.
2844	Url string `json:"url,omitempty"`
2845
2846	// ForceSendFields is a list of field names (e.g. "Description") to
2847	// unconditionally include in API requests. By default, fields with
2848	// empty values are omitted from API requests. However, any non-pointer,
2849	// non-interface field appearing in ForceSendFields will be sent to the
2850	// server regardless of whether the field is empty or not. This may be
2851	// used to include empty fields in Patch requests.
2852	ForceSendFields []string `json:"-"`
2853
2854	// NullFields is a list of field names (e.g. "Description") to include
2855	// in API requests with the JSON null value. By default, fields with
2856	// empty values are omitted from API requests. However, any field with
2857	// an empty value appearing in NullFields will be sent to the server as
2858	// null. It is an error if a field in this list has a non-empty value.
2859	// This may be used to include null fields in Patch requests.
2860	NullFields []string `json:"-"`
2861}
2862
2863func (s *ReviewSource) MarshalJSON() ([]byte, error) {
2864	type NoMethod ReviewSource
2865	raw := NoMethod(*s)
2866	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2867}
2868
2869type Series struct {
2870	// Kind: Resource type.
2871	Kind string `json:"kind,omitempty"`
2872
2873	Series []*SeriesSeries `json:"series,omitempty"`
2874
2875	// ServerResponse contains the HTTP response code and headers from the
2876	// server.
2877	googleapi.ServerResponse `json:"-"`
2878
2879	// ForceSendFields is a list of field names (e.g. "Kind") to
2880	// unconditionally include in API requests. By default, fields with
2881	// empty values are omitted from API requests. However, any non-pointer,
2882	// non-interface field appearing in ForceSendFields will be sent to the
2883	// server regardless of whether the field is empty or not. This may be
2884	// used to include empty fields in Patch requests.
2885	ForceSendFields []string `json:"-"`
2886
2887	// NullFields is a list of field names (e.g. "Kind") to include in API
2888	// requests with the JSON null value. By default, fields with empty
2889	// values are omitted from API requests. However, any field with an
2890	// empty value appearing in NullFields will be sent to the server as
2891	// null. It is an error if a field in this list has a non-empty value.
2892	// This may be used to include null fields in Patch requests.
2893	NullFields []string `json:"-"`
2894}
2895
2896func (s *Series) MarshalJSON() ([]byte, error) {
2897	type NoMethod Series
2898	raw := NoMethod(*s)
2899	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2900}
2901
2902type SeriesSeries struct {
2903	BannerImageUrl string `json:"bannerImageUrl,omitempty"`
2904
2905	EligibleForSubscription bool `json:"eligibleForSubscription,omitempty"`
2906
2907	ImageUrl string `json:"imageUrl,omitempty"`
2908
2909	IsComplete bool `json:"isComplete,omitempty"`
2910
2911	SeriesFormatType string `json:"seriesFormatType,omitempty"`
2912
2913	SeriesId string `json:"seriesId,omitempty"`
2914
2915	SeriesSubscriptionReleaseInfo *SeriesSeriesSeriesSubscriptionReleaseInfo `json:"seriesSubscriptionReleaseInfo,omitempty"`
2916
2917	SeriesType string `json:"seriesType,omitempty"`
2918
2919	SubscriptionId string `json:"subscriptionId,omitempty"`
2920
2921	Title string `json:"title,omitempty"`
2922
2923	// ForceSendFields is a list of field names (e.g. "BannerImageUrl") to
2924	// unconditionally include in API requests. By default, fields with
2925	// empty values are omitted from API requests. However, any non-pointer,
2926	// non-interface field appearing in ForceSendFields will be sent to the
2927	// server regardless of whether the field is empty or not. This may be
2928	// used to include empty fields in Patch requests.
2929	ForceSendFields []string `json:"-"`
2930
2931	// NullFields is a list of field names (e.g. "BannerImageUrl") to
2932	// include in API requests with the JSON null value. By default, fields
2933	// with empty values are omitted from API requests. However, any field
2934	// with an empty value appearing in NullFields will be sent to the
2935	// server as null. It is an error if a field in this list has a
2936	// non-empty value. This may be used to include null fields in Patch
2937	// requests.
2938	NullFields []string `json:"-"`
2939}
2940
2941func (s *SeriesSeries) MarshalJSON() ([]byte, error) {
2942	type NoMethod SeriesSeries
2943	raw := NoMethod(*s)
2944	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2945}
2946
2947type SeriesSeriesSeriesSubscriptionReleaseInfo struct {
2948	// CancellationTimestampUs: Cancellation date of the series subscription
2949	// (or when it ends).
2950	CancellationTimestampUs int64 `json:"cancellationTimestampUs,omitempty,string"`
2951
2952	// CurrentReleaseInfo: Release information for the last release.
2953	CurrentReleaseInfo *BooksSubscriptionReleaseInfo `json:"currentReleaseInfo,omitempty"`
2954
2955	// NextReleaseInfo: Release information for the next release.
2956	NextReleaseInfo *BooksSubscriptionReleaseInfo `json:"nextReleaseInfo,omitempty"`
2957
2958	// SeriesSubscriptionType: series subscription type.
2959	SeriesSubscriptionType string `json:"seriesSubscriptionType,omitempty"`
2960
2961	// ForceSendFields is a list of field names (e.g.
2962	// "CancellationTimestampUs") to unconditionally include in API
2963	// requests. By default, fields with empty values are omitted from API
2964	// requests. However, any non-pointer, non-interface field appearing in
2965	// ForceSendFields will be sent to the server regardless of whether the
2966	// field is empty or not. This may be used to include empty fields in
2967	// Patch requests.
2968	ForceSendFields []string `json:"-"`
2969
2970	// NullFields is a list of field names (e.g. "CancellationTimestampUs")
2971	// to include in API requests with the JSON null value. By default,
2972	// fields with empty values are omitted from API requests. However, any
2973	// field with an empty value appearing in NullFields will be sent to the
2974	// server as null. It is an error if a field in this list has a
2975	// non-empty value. This may be used to include null fields in Patch
2976	// requests.
2977	NullFields []string `json:"-"`
2978}
2979
2980func (s *SeriesSeriesSeriesSubscriptionReleaseInfo) MarshalJSON() ([]byte, error) {
2981	type NoMethod SeriesSeriesSeriesSubscriptionReleaseInfo
2982	raw := NoMethod(*s)
2983	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2984}
2985
2986type Seriesmembership struct {
2987	// Kind: Resorce type.
2988	Kind string `json:"kind,omitempty"`
2989
2990	Member []*Volume `json:"member,omitempty"`
2991
2992	NextPageToken string `json:"nextPageToken,omitempty"`
2993
2994	// ServerResponse contains the HTTP response code and headers from the
2995	// server.
2996	googleapi.ServerResponse `json:"-"`
2997
2998	// ForceSendFields is a list of field names (e.g. "Kind") to
2999	// unconditionally include in API requests. By default, fields with
3000	// empty values are omitted from API requests. However, any non-pointer,
3001	// non-interface field appearing in ForceSendFields will be sent to the
3002	// server regardless of whether the field is empty or not. This may be
3003	// used to include empty fields in Patch requests.
3004	ForceSendFields []string `json:"-"`
3005
3006	// NullFields is a list of field names (e.g. "Kind") to include in API
3007	// requests with the JSON null value. By default, fields with empty
3008	// values are omitted from API requests. However, any field with an
3009	// empty value appearing in NullFields will be sent to the server as
3010	// null. It is an error if a field in this list has a non-empty value.
3011	// This may be used to include null fields in Patch requests.
3012	NullFields []string `json:"-"`
3013}
3014
3015func (s *Seriesmembership) MarshalJSON() ([]byte, error) {
3016	type NoMethod Seriesmembership
3017	raw := NoMethod(*s)
3018	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3019}
3020
3021type Usersettings struct {
3022	// Kind: Resource type.
3023	Kind string `json:"kind,omitempty"`
3024
3025	// NotesExport: User settings in sub-objects, each for different
3026	// purposes.
3027	NotesExport *UsersettingsNotesExport `json:"notesExport,omitempty"`
3028
3029	Notification *UsersettingsNotification `json:"notification,omitempty"`
3030
3031	// ServerResponse contains the HTTP response code and headers from the
3032	// server.
3033	googleapi.ServerResponse `json:"-"`
3034
3035	// ForceSendFields is a list of field names (e.g. "Kind") to
3036	// unconditionally include in API requests. By default, fields with
3037	// empty values are omitted from API requests. However, any non-pointer,
3038	// non-interface field appearing in ForceSendFields will be sent to the
3039	// server regardless of whether the field is empty or not. This may be
3040	// used to include empty fields in Patch requests.
3041	ForceSendFields []string `json:"-"`
3042
3043	// NullFields is a list of field names (e.g. "Kind") to include in API
3044	// requests with the JSON null value. By default, fields with empty
3045	// values are omitted from API requests. However, any field with an
3046	// empty value appearing in NullFields will be sent to the server as
3047	// null. It is an error if a field in this list has a non-empty value.
3048	// This may be used to include null fields in Patch requests.
3049	NullFields []string `json:"-"`
3050}
3051
3052func (s *Usersettings) MarshalJSON() ([]byte, error) {
3053	type NoMethod Usersettings
3054	raw := NoMethod(*s)
3055	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3056}
3057
3058// UsersettingsNotesExport: User settings in sub-objects, each for
3059// different purposes.
3060type UsersettingsNotesExport struct {
3061	FolderName string `json:"folderName,omitempty"`
3062
3063	IsEnabled bool `json:"isEnabled,omitempty"`
3064
3065	// ForceSendFields is a list of field names (e.g. "FolderName") to
3066	// unconditionally include in API requests. By default, fields with
3067	// empty values are omitted from API requests. However, any non-pointer,
3068	// non-interface field appearing in ForceSendFields will be sent to the
3069	// server regardless of whether the field is empty or not. This may be
3070	// used to include empty fields in Patch requests.
3071	ForceSendFields []string `json:"-"`
3072
3073	// NullFields is a list of field names (e.g. "FolderName") to include in
3074	// API requests with the JSON null value. By default, fields with empty
3075	// values are omitted from API requests. However, any field with an
3076	// empty value appearing in NullFields will be sent to the server as
3077	// null. It is an error if a field in this list has a non-empty value.
3078	// This may be used to include null fields in Patch requests.
3079	NullFields []string `json:"-"`
3080}
3081
3082func (s *UsersettingsNotesExport) MarshalJSON() ([]byte, error) {
3083	type NoMethod UsersettingsNotesExport
3084	raw := NoMethod(*s)
3085	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3086}
3087
3088type UsersettingsNotification struct {
3089	MatchMyInterests *UsersettingsNotificationMatchMyInterests `json:"matchMyInterests,omitempty"`
3090
3091	MoreFromAuthors *UsersettingsNotificationMoreFromAuthors `json:"moreFromAuthors,omitempty"`
3092
3093	MoreFromSeries *UsersettingsNotificationMoreFromSeries `json:"moreFromSeries,omitempty"`
3094
3095	PriceDrop *UsersettingsNotificationPriceDrop `json:"priceDrop,omitempty"`
3096
3097	RewardExpirations *UsersettingsNotificationRewardExpirations `json:"rewardExpirations,omitempty"`
3098
3099	// ForceSendFields is a list of field names (e.g. "MatchMyInterests") to
3100	// unconditionally include in API requests. By default, fields with
3101	// empty values are omitted from API requests. However, any non-pointer,
3102	// non-interface field appearing in ForceSendFields will be sent to the
3103	// server regardless of whether the field is empty or not. This may be
3104	// used to include empty fields in Patch requests.
3105	ForceSendFields []string `json:"-"`
3106
3107	// NullFields is a list of field names (e.g. "MatchMyInterests") to
3108	// include in API requests with the JSON null value. By default, fields
3109	// with empty values are omitted from API requests. However, any field
3110	// with an empty value appearing in NullFields will be sent to the
3111	// server as null. It is an error if a field in this list has a
3112	// non-empty value. This may be used to include null fields in Patch
3113	// requests.
3114	NullFields []string `json:"-"`
3115}
3116
3117func (s *UsersettingsNotification) MarshalJSON() ([]byte, error) {
3118	type NoMethod UsersettingsNotification
3119	raw := NoMethod(*s)
3120	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3121}
3122
3123type UsersettingsNotificationMatchMyInterests struct {
3124	OptedState string `json:"opted_state,omitempty"`
3125
3126	// ForceSendFields is a list of field names (e.g. "OptedState") to
3127	// unconditionally include in API requests. By default, fields with
3128	// empty values are omitted from API requests. However, any non-pointer,
3129	// non-interface field appearing in ForceSendFields will be sent to the
3130	// server regardless of whether the field is empty or not. This may be
3131	// used to include empty fields in Patch requests.
3132	ForceSendFields []string `json:"-"`
3133
3134	// NullFields is a list of field names (e.g. "OptedState") to include in
3135	// API requests with the JSON null value. By default, fields with empty
3136	// values are omitted from API requests. However, any field with an
3137	// empty value appearing in NullFields will be sent to the server as
3138	// null. It is an error if a field in this list has a non-empty value.
3139	// This may be used to include null fields in Patch requests.
3140	NullFields []string `json:"-"`
3141}
3142
3143func (s *UsersettingsNotificationMatchMyInterests) MarshalJSON() ([]byte, error) {
3144	type NoMethod UsersettingsNotificationMatchMyInterests
3145	raw := NoMethod(*s)
3146	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3147}
3148
3149type UsersettingsNotificationMoreFromAuthors struct {
3150	OptedState string `json:"opted_state,omitempty"`
3151
3152	// ForceSendFields is a list of field names (e.g. "OptedState") to
3153	// unconditionally include in API requests. By default, fields with
3154	// empty values are omitted from API requests. However, any non-pointer,
3155	// non-interface field appearing in ForceSendFields will be sent to the
3156	// server regardless of whether the field is empty or not. This may be
3157	// used to include empty fields in Patch requests.
3158	ForceSendFields []string `json:"-"`
3159
3160	// NullFields is a list of field names (e.g. "OptedState") to include in
3161	// API requests with the JSON null value. By default, fields with empty
3162	// values are omitted from API requests. However, any field with an
3163	// empty value appearing in NullFields will be sent to the server as
3164	// null. It is an error if a field in this list has a non-empty value.
3165	// This may be used to include null fields in Patch requests.
3166	NullFields []string `json:"-"`
3167}
3168
3169func (s *UsersettingsNotificationMoreFromAuthors) MarshalJSON() ([]byte, error) {
3170	type NoMethod UsersettingsNotificationMoreFromAuthors
3171	raw := NoMethod(*s)
3172	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3173}
3174
3175type UsersettingsNotificationMoreFromSeries struct {
3176	OptedState string `json:"opted_state,omitempty"`
3177
3178	// ForceSendFields is a list of field names (e.g. "OptedState") to
3179	// unconditionally include in API requests. By default, fields with
3180	// empty values are omitted from API requests. However, any non-pointer,
3181	// non-interface field appearing in ForceSendFields will be sent to the
3182	// server regardless of whether the field is empty or not. This may be
3183	// used to include empty fields in Patch requests.
3184	ForceSendFields []string `json:"-"`
3185
3186	// NullFields is a list of field names (e.g. "OptedState") to include in
3187	// API requests with the JSON null value. By default, fields with empty
3188	// values are omitted from API requests. However, any field with an
3189	// empty value appearing in NullFields will be sent to the server as
3190	// null. It is an error if a field in this list has a non-empty value.
3191	// This may be used to include null fields in Patch requests.
3192	NullFields []string `json:"-"`
3193}
3194
3195func (s *UsersettingsNotificationMoreFromSeries) MarshalJSON() ([]byte, error) {
3196	type NoMethod UsersettingsNotificationMoreFromSeries
3197	raw := NoMethod(*s)
3198	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3199}
3200
3201type UsersettingsNotificationPriceDrop struct {
3202	OptedState string `json:"opted_state,omitempty"`
3203
3204	// ForceSendFields is a list of field names (e.g. "OptedState") to
3205	// unconditionally include in API requests. By default, fields with
3206	// empty values are omitted from API requests. However, any non-pointer,
3207	// non-interface field appearing in ForceSendFields will be sent to the
3208	// server regardless of whether the field is empty or not. This may be
3209	// used to include empty fields in Patch requests.
3210	ForceSendFields []string `json:"-"`
3211
3212	// NullFields is a list of field names (e.g. "OptedState") to include in
3213	// API requests with the JSON null value. By default, fields with empty
3214	// values are omitted from API requests. However, any field with an
3215	// empty value appearing in NullFields will be sent to the server as
3216	// null. It is an error if a field in this list has a non-empty value.
3217	// This may be used to include null fields in Patch requests.
3218	NullFields []string `json:"-"`
3219}
3220
3221func (s *UsersettingsNotificationPriceDrop) MarshalJSON() ([]byte, error) {
3222	type NoMethod UsersettingsNotificationPriceDrop
3223	raw := NoMethod(*s)
3224	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3225}
3226
3227type UsersettingsNotificationRewardExpirations struct {
3228	OptedState string `json:"opted_state,omitempty"`
3229
3230	// ForceSendFields is a list of field names (e.g. "OptedState") to
3231	// unconditionally include in API requests. By default, fields with
3232	// empty values are omitted from API requests. However, any non-pointer,
3233	// non-interface field appearing in ForceSendFields will be sent to the
3234	// server regardless of whether the field is empty or not. This may be
3235	// used to include empty fields in Patch requests.
3236	ForceSendFields []string `json:"-"`
3237
3238	// NullFields is a list of field names (e.g. "OptedState") to include in
3239	// API requests with the JSON null value. By default, fields with empty
3240	// values are omitted from API requests. However, any field with an
3241	// empty value appearing in NullFields will be sent to the server as
3242	// null. It is an error if a field in this list has a non-empty value.
3243	// This may be used to include null fields in Patch requests.
3244	NullFields []string `json:"-"`
3245}
3246
3247func (s *UsersettingsNotificationRewardExpirations) MarshalJSON() ([]byte, error) {
3248	type NoMethod UsersettingsNotificationRewardExpirations
3249	raw := NoMethod(*s)
3250	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3251}
3252
3253type Volume struct {
3254	// AccessInfo: Any information about a volume related to reading or
3255	// obtaining that volume text. This information can depend on country
3256	// (books may be public domain in one country but not in another, e.g.).
3257	AccessInfo *VolumeAccessInfo `json:"accessInfo,omitempty"`
3258
3259	// Etag: Opaque identifier for a specific version of a volume resource.
3260	// (In LITE projection)
3261	Etag string `json:"etag,omitempty"`
3262
3263	// Id: Unique identifier for a volume. (In LITE projection.)
3264	Id string `json:"id,omitempty"`
3265
3266	// Kind: Resource type for a volume. (In LITE projection.)
3267	Kind string `json:"kind,omitempty"`
3268
3269	// LayerInfo: What layers exist in this volume and high level
3270	// information about them.
3271	LayerInfo *VolumeLayerInfo `json:"layerInfo,omitempty"`
3272
3273	// RecommendedInfo: Recommendation related information for this volume.
3274	RecommendedInfo *VolumeRecommendedInfo `json:"recommendedInfo,omitempty"`
3275
3276	// SaleInfo: Any information about a volume related to the eBookstore
3277	// and/or purchaseability. This information can depend on the country
3278	// where the request originates from (i.e. books may not be for sale in
3279	// certain countries).
3280	SaleInfo *VolumeSaleInfo `json:"saleInfo,omitempty"`
3281
3282	// SearchInfo: Search result information related to this volume.
3283	SearchInfo *VolumeSearchInfo `json:"searchInfo,omitempty"`
3284
3285	// SelfLink: URL to this resource. (In LITE projection.)
3286	SelfLink string `json:"selfLink,omitempty"`
3287
3288	// UserInfo: User specific information related to this volume. (e.g.
3289	// page this user last read or whether they purchased this book)
3290	UserInfo *VolumeUserInfo `json:"userInfo,omitempty"`
3291
3292	// VolumeInfo: General volume information.
3293	VolumeInfo *VolumeVolumeInfo `json:"volumeInfo,omitempty"`
3294
3295	// ServerResponse contains the HTTP response code and headers from the
3296	// server.
3297	googleapi.ServerResponse `json:"-"`
3298
3299	// ForceSendFields is a list of field names (e.g. "AccessInfo") to
3300	// unconditionally include in API requests. By default, fields with
3301	// empty values are omitted from API requests. However, any non-pointer,
3302	// non-interface field appearing in ForceSendFields will be sent to the
3303	// server regardless of whether the field is empty or not. This may be
3304	// used to include empty fields in Patch requests.
3305	ForceSendFields []string `json:"-"`
3306
3307	// NullFields is a list of field names (e.g. "AccessInfo") to include in
3308	// API requests with the JSON null value. By default, fields with empty
3309	// values are omitted from API requests. However, any field with an
3310	// empty value appearing in NullFields will be sent to the server as
3311	// null. It is an error if a field in this list has a non-empty value.
3312	// This may be used to include null fields in Patch requests.
3313	NullFields []string `json:"-"`
3314}
3315
3316func (s *Volume) MarshalJSON() ([]byte, error) {
3317	type NoMethod Volume
3318	raw := NoMethod(*s)
3319	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3320}
3321
3322// VolumeAccessInfo: Any information about a volume related to reading
3323// or obtaining that volume text. This information can depend on country
3324// (books may be public domain in one country but not in another, e.g.).
3325type VolumeAccessInfo struct {
3326	// AccessViewStatus: Combines the access and viewability of this volume
3327	// into a single status field for this user. Values can be
3328	// FULL_PURCHASED, FULL_PUBLIC_DOMAIN, SAMPLE or NONE. (In LITE
3329	// projection.)
3330	AccessViewStatus string `json:"accessViewStatus,omitempty"`
3331
3332	// Country: The two-letter ISO_3166-1 country code for which this access
3333	// information is valid. (In LITE projection.)
3334	Country string `json:"country,omitempty"`
3335
3336	// DownloadAccess: Information about a volume's download license access
3337	// restrictions.
3338	DownloadAccess *DownloadAccessRestriction `json:"downloadAccess,omitempty"`
3339
3340	// DriveImportedContentLink: URL to the Google Drive viewer if this
3341	// volume is uploaded by the user by selecting the file from Google
3342	// Drive.
3343	DriveImportedContentLink string `json:"driveImportedContentLink,omitempty"`
3344
3345	// Embeddable: Whether this volume can be embedded in a viewport using
3346	// the Embedded Viewer API.
3347	Embeddable bool `json:"embeddable,omitempty"`
3348
3349	// Epub: Information about epub content. (In LITE projection.)
3350	Epub *VolumeAccessInfoEpub `json:"epub,omitempty"`
3351
3352	// ExplicitOfflineLicenseManagement: Whether this volume requires that
3353	// the client explicitly request offline download license rather than
3354	// have it done automatically when loading the content, if the client
3355	// supports it.
3356	ExplicitOfflineLicenseManagement bool `json:"explicitOfflineLicenseManagement,omitempty"`
3357
3358	// Pdf: Information about pdf content. (In LITE projection.)
3359	Pdf *VolumeAccessInfoPdf `json:"pdf,omitempty"`
3360
3361	// PublicDomain: Whether or not this book is public domain in the
3362	// country listed above.
3363	PublicDomain bool `json:"publicDomain,omitempty"`
3364
3365	// QuoteSharingAllowed: Whether quote sharing is allowed for this
3366	// volume.
3367	QuoteSharingAllowed bool `json:"quoteSharingAllowed,omitempty"`
3368
3369	// TextToSpeechPermission: Whether text-to-speech is permitted for this
3370	// volume. Values can be ALLOWED, ALLOWED_FOR_ACCESSIBILITY, or
3371	// NOT_ALLOWED.
3372	TextToSpeechPermission string `json:"textToSpeechPermission,omitempty"`
3373
3374	// ViewOrderUrl: For ordered but not yet processed orders, we give a URL
3375	// that can be used to go to the appropriate Google Wallet page.
3376	ViewOrderUrl string `json:"viewOrderUrl,omitempty"`
3377
3378	// Viewability: The read access of a volume. Possible values are
3379	// PARTIAL, ALL_PAGES, NO_PAGES or UNKNOWN. This value depends on the
3380	// country listed above. A value of PARTIAL means that the publisher has
3381	// allowed some portion of the volume to be viewed publicly, without
3382	// purchase. This can apply to eBooks as well as non-eBooks. Public
3383	// domain books will always have a value of ALL_PAGES.
3384	Viewability string `json:"viewability,omitempty"`
3385
3386	// WebReaderLink: URL to read this volume on the Google Books site. Link
3387	// will not allow users to read non-viewable volumes.
3388	WebReaderLink string `json:"webReaderLink,omitempty"`
3389
3390	// ForceSendFields is a list of field names (e.g. "AccessViewStatus") to
3391	// unconditionally include in API requests. By default, fields with
3392	// empty values are omitted from API requests. However, any non-pointer,
3393	// non-interface field appearing in ForceSendFields will be sent to the
3394	// server regardless of whether the field is empty or not. This may be
3395	// used to include empty fields in Patch requests.
3396	ForceSendFields []string `json:"-"`
3397
3398	// NullFields is a list of field names (e.g. "AccessViewStatus") to
3399	// include in API requests with the JSON null value. By default, fields
3400	// with empty values are omitted from API requests. However, any field
3401	// with an empty value appearing in NullFields will be sent to the
3402	// server as null. It is an error if a field in this list has a
3403	// non-empty value. This may be used to include null fields in Patch
3404	// requests.
3405	NullFields []string `json:"-"`
3406}
3407
3408func (s *VolumeAccessInfo) MarshalJSON() ([]byte, error) {
3409	type NoMethod VolumeAccessInfo
3410	raw := NoMethod(*s)
3411	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3412}
3413
3414// VolumeAccessInfoEpub: Information about epub content. (In LITE
3415// projection.)
3416type VolumeAccessInfoEpub struct {
3417	// AcsTokenLink: URL to retrieve ACS token for epub download. (In LITE
3418	// projection.)
3419	AcsTokenLink string `json:"acsTokenLink,omitempty"`
3420
3421	// DownloadLink: URL to download epub. (In LITE projection.)
3422	DownloadLink string `json:"downloadLink,omitempty"`
3423
3424	// IsAvailable: Is a flowing text epub available either as public domain
3425	// or for purchase. (In LITE projection.)
3426	IsAvailable bool `json:"isAvailable,omitempty"`
3427
3428	// ForceSendFields is a list of field names (e.g. "AcsTokenLink") to
3429	// unconditionally include in API requests. By default, fields with
3430	// empty values are omitted from API requests. However, any non-pointer,
3431	// non-interface field appearing in ForceSendFields will be sent to the
3432	// server regardless of whether the field is empty or not. This may be
3433	// used to include empty fields in Patch requests.
3434	ForceSendFields []string `json:"-"`
3435
3436	// NullFields is a list of field names (e.g. "AcsTokenLink") to include
3437	// in API requests with the JSON null value. By default, fields with
3438	// empty values are omitted from API requests. However, any field with
3439	// an empty value appearing in NullFields will be sent to the server as
3440	// null. It is an error if a field in this list has a non-empty value.
3441	// This may be used to include null fields in Patch requests.
3442	NullFields []string `json:"-"`
3443}
3444
3445func (s *VolumeAccessInfoEpub) MarshalJSON() ([]byte, error) {
3446	type NoMethod VolumeAccessInfoEpub
3447	raw := NoMethod(*s)
3448	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3449}
3450
3451// VolumeAccessInfoPdf: Information about pdf content. (In LITE
3452// projection.)
3453type VolumeAccessInfoPdf struct {
3454	// AcsTokenLink: URL to retrieve ACS token for pdf download. (In LITE
3455	// projection.)
3456	AcsTokenLink string `json:"acsTokenLink,omitempty"`
3457
3458	// DownloadLink: URL to download pdf. (In LITE projection.)
3459	DownloadLink string `json:"downloadLink,omitempty"`
3460
3461	// IsAvailable: Is a scanned image pdf available either as public domain
3462	// or for purchase. (In LITE projection.)
3463	IsAvailable bool `json:"isAvailable,omitempty"`
3464
3465	// ForceSendFields is a list of field names (e.g. "AcsTokenLink") to
3466	// unconditionally include in API requests. By default, fields with
3467	// empty values are omitted from API requests. However, any non-pointer,
3468	// non-interface field appearing in ForceSendFields will be sent to the
3469	// server regardless of whether the field is empty or not. This may be
3470	// used to include empty fields in Patch requests.
3471	ForceSendFields []string `json:"-"`
3472
3473	// NullFields is a list of field names (e.g. "AcsTokenLink") to include
3474	// in API requests with the JSON null value. By default, fields with
3475	// empty values are omitted from API requests. However, any field with
3476	// an empty value appearing in NullFields will be sent to the server as
3477	// null. It is an error if a field in this list has a non-empty value.
3478	// This may be used to include null fields in Patch requests.
3479	NullFields []string `json:"-"`
3480}
3481
3482func (s *VolumeAccessInfoPdf) MarshalJSON() ([]byte, error) {
3483	type NoMethod VolumeAccessInfoPdf
3484	raw := NoMethod(*s)
3485	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3486}
3487
3488// VolumeLayerInfo: What layers exist in this volume and high level
3489// information about them.
3490type VolumeLayerInfo struct {
3491	// Layers: A layer should appear here if and only if the layer exists
3492	// for this book.
3493	Layers []*VolumeLayerInfoLayers `json:"layers,omitempty"`
3494
3495	// ForceSendFields is a list of field names (e.g. "Layers") to
3496	// unconditionally include in API requests. By default, fields with
3497	// empty values are omitted from API requests. However, any non-pointer,
3498	// non-interface field appearing in ForceSendFields will be sent to the
3499	// server regardless of whether the field is empty or not. This may be
3500	// used to include empty fields in Patch requests.
3501	ForceSendFields []string `json:"-"`
3502
3503	// NullFields is a list of field names (e.g. "Layers") to include in API
3504	// requests with the JSON null value. By default, fields with empty
3505	// values are omitted from API requests. However, any field with an
3506	// empty value appearing in NullFields will be sent to the server as
3507	// null. It is an error if a field in this list has a non-empty value.
3508	// This may be used to include null fields in Patch requests.
3509	NullFields []string `json:"-"`
3510}
3511
3512func (s *VolumeLayerInfo) MarshalJSON() ([]byte, error) {
3513	type NoMethod VolumeLayerInfo
3514	raw := NoMethod(*s)
3515	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3516}
3517
3518type VolumeLayerInfoLayers struct {
3519	// LayerId: The layer id of this layer (e.g. "geo").
3520	LayerId string `json:"layerId,omitempty"`
3521
3522	// VolumeAnnotationsVersion: The current version of this layer's volume
3523	// annotations. Note that this version applies only to the data in the
3524	// books.layers.volumeAnnotations.* responses. The actual annotation
3525	// data is versioned separately.
3526	VolumeAnnotationsVersion string `json:"volumeAnnotationsVersion,omitempty"`
3527
3528	// ForceSendFields is a list of field names (e.g. "LayerId") to
3529	// unconditionally include in API requests. By default, fields with
3530	// empty values are omitted from API requests. However, any non-pointer,
3531	// non-interface field appearing in ForceSendFields will be sent to the
3532	// server regardless of whether the field is empty or not. This may be
3533	// used to include empty fields in Patch requests.
3534	ForceSendFields []string `json:"-"`
3535
3536	// NullFields is a list of field names (e.g. "LayerId") to include in
3537	// API requests with the JSON null value. By default, fields with empty
3538	// values are omitted from API requests. However, any field with an
3539	// empty value appearing in NullFields will be sent to the server as
3540	// null. It is an error if a field in this list has a non-empty value.
3541	// This may be used to include null fields in Patch requests.
3542	NullFields []string `json:"-"`
3543}
3544
3545func (s *VolumeLayerInfoLayers) MarshalJSON() ([]byte, error) {
3546	type NoMethod VolumeLayerInfoLayers
3547	raw := NoMethod(*s)
3548	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3549}
3550
3551// VolumeRecommendedInfo: Recommendation related information for this
3552// volume.
3553type VolumeRecommendedInfo struct {
3554	// Explanation: A text explaining why this volume is recommended.
3555	Explanation string `json:"explanation,omitempty"`
3556
3557	// ForceSendFields is a list of field names (e.g. "Explanation") to
3558	// unconditionally include in API requests. By default, fields with
3559	// empty values are omitted from API requests. However, any non-pointer,
3560	// non-interface field appearing in ForceSendFields will be sent to the
3561	// server regardless of whether the field is empty or not. This may be
3562	// used to include empty fields in Patch requests.
3563	ForceSendFields []string `json:"-"`
3564
3565	// NullFields is a list of field names (e.g. "Explanation") to include
3566	// in API requests with the JSON null value. By default, fields with
3567	// empty values are omitted from API requests. However, any field with
3568	// an empty value appearing in NullFields will be sent to the server as
3569	// null. It is an error if a field in this list has a non-empty value.
3570	// This may be used to include null fields in Patch requests.
3571	NullFields []string `json:"-"`
3572}
3573
3574func (s *VolumeRecommendedInfo) MarshalJSON() ([]byte, error) {
3575	type NoMethod VolumeRecommendedInfo
3576	raw := NoMethod(*s)
3577	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3578}
3579
3580// VolumeSaleInfo: Any information about a volume related to the
3581// eBookstore and/or purchaseability. This information can depend on the
3582// country where the request originates from (i.e. books may not be for
3583// sale in certain countries).
3584type VolumeSaleInfo struct {
3585	// BuyLink: URL to purchase this volume on the Google Books site. (In
3586	// LITE projection)
3587	BuyLink string `json:"buyLink,omitempty"`
3588
3589	// Country: The two-letter ISO_3166-1 country code for which this sale
3590	// information is valid. (In LITE projection.)
3591	Country string `json:"country,omitempty"`
3592
3593	// IsEbook: Whether or not this volume is an eBook (can be added to the
3594	// My eBooks shelf).
3595	IsEbook bool `json:"isEbook,omitempty"`
3596
3597	// ListPrice: Suggested retail price. (In LITE projection.)
3598	ListPrice *VolumeSaleInfoListPrice `json:"listPrice,omitempty"`
3599
3600	// Offers: Offers available for this volume (sales and rentals).
3601	Offers []*VolumeSaleInfoOffers `json:"offers,omitempty"`
3602
3603	// OnSaleDate: The date on which this book is available for sale.
3604	OnSaleDate string `json:"onSaleDate,omitempty"`
3605
3606	// RetailPrice: The actual selling price of the book. This is the same
3607	// as the suggested retail or list price unless there are offers or
3608	// discounts on this volume. (In LITE projection.)
3609	RetailPrice *VolumeSaleInfoRetailPrice `json:"retailPrice,omitempty"`
3610
3611	// Saleability: Whether or not this book is available for sale or
3612	// offered for free in the Google eBookstore for the country listed
3613	// above. Possible values are FOR_SALE, FOR_RENTAL_ONLY,
3614	// FOR_SALE_AND_RENTAL, FREE, NOT_FOR_SALE, or FOR_PREORDER.
3615	Saleability string `json:"saleability,omitempty"`
3616
3617	// ForceSendFields is a list of field names (e.g. "BuyLink") to
3618	// unconditionally include in API requests. By default, fields with
3619	// empty values are omitted from API requests. However, any non-pointer,
3620	// non-interface field appearing in ForceSendFields will be sent to the
3621	// server regardless of whether the field is empty or not. This may be
3622	// used to include empty fields in Patch requests.
3623	ForceSendFields []string `json:"-"`
3624
3625	// NullFields is a list of field names (e.g. "BuyLink") to include in
3626	// API requests with the JSON null value. By default, fields with empty
3627	// values are omitted from API requests. However, any field with an
3628	// empty value appearing in NullFields will be sent to the server as
3629	// null. It is an error if a field in this list has a non-empty value.
3630	// This may be used to include null fields in Patch requests.
3631	NullFields []string `json:"-"`
3632}
3633
3634func (s *VolumeSaleInfo) MarshalJSON() ([]byte, error) {
3635	type NoMethod VolumeSaleInfo
3636	raw := NoMethod(*s)
3637	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3638}
3639
3640// VolumeSaleInfoListPrice: Suggested retail price. (In LITE
3641// projection.)
3642type VolumeSaleInfoListPrice struct {
3643	// Amount: Amount in the currency listed below. (In LITE projection.)
3644	Amount float64 `json:"amount,omitempty"`
3645
3646	// CurrencyCode: An ISO 4217, three-letter currency code. (In LITE
3647	// projection.)
3648	CurrencyCode string `json:"currencyCode,omitempty"`
3649
3650	// ForceSendFields is a list of field names (e.g. "Amount") to
3651	// unconditionally include in API requests. By default, fields with
3652	// empty values are omitted from API requests. However, any non-pointer,
3653	// non-interface field appearing in ForceSendFields will be sent to the
3654	// server regardless of whether the field is empty or not. This may be
3655	// used to include empty fields in Patch requests.
3656	ForceSendFields []string `json:"-"`
3657
3658	// NullFields is a list of field names (e.g. "Amount") to include in API
3659	// requests with the JSON null value. By default, fields with empty
3660	// values are omitted from API requests. However, any field with an
3661	// empty value appearing in NullFields will be sent to the server as
3662	// null. It is an error if a field in this list has a non-empty value.
3663	// This may be used to include null fields in Patch requests.
3664	NullFields []string `json:"-"`
3665}
3666
3667func (s *VolumeSaleInfoListPrice) MarshalJSON() ([]byte, error) {
3668	type NoMethod VolumeSaleInfoListPrice
3669	raw := NoMethod(*s)
3670	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3671}
3672
3673func (s *VolumeSaleInfoListPrice) UnmarshalJSON(data []byte) error {
3674	type NoMethod VolumeSaleInfoListPrice
3675	var s1 struct {
3676		Amount gensupport.JSONFloat64 `json:"amount"`
3677		*NoMethod
3678	}
3679	s1.NoMethod = (*NoMethod)(s)
3680	if err := json.Unmarshal(data, &s1); err != nil {
3681		return err
3682	}
3683	s.Amount = float64(s1.Amount)
3684	return nil
3685}
3686
3687type VolumeSaleInfoOffers struct {
3688	// FinskyOfferType: The finsky offer type (e.g., PURCHASE=0 RENTAL=3)
3689	FinskyOfferType int64 `json:"finskyOfferType,omitempty"`
3690
3691	// Giftable: Indicates whether the offer is giftable.
3692	Giftable bool `json:"giftable,omitempty"`
3693
3694	// ListPrice: Offer list (=undiscounted) price in Micros.
3695	ListPrice *VolumeSaleInfoOffersListPrice `json:"listPrice,omitempty"`
3696
3697	// RentalDuration: The rental duration (for rental offers only).
3698	RentalDuration *VolumeSaleInfoOffersRentalDuration `json:"rentalDuration,omitempty"`
3699
3700	// RetailPrice: Offer retail (=discounted) price in Micros
3701	RetailPrice *VolumeSaleInfoOffersRetailPrice `json:"retailPrice,omitempty"`
3702
3703	// ForceSendFields is a list of field names (e.g. "FinskyOfferType") to
3704	// unconditionally include in API requests. By default, fields with
3705	// empty values are omitted from API requests. However, any non-pointer,
3706	// non-interface field appearing in ForceSendFields will be sent to the
3707	// server regardless of whether the field is empty or not. This may be
3708	// used to include empty fields in Patch requests.
3709	ForceSendFields []string `json:"-"`
3710
3711	// NullFields is a list of field names (e.g. "FinskyOfferType") to
3712	// include in API requests with the JSON null value. By default, fields
3713	// with empty values are omitted from API requests. However, any field
3714	// with an empty value appearing in NullFields will be sent to the
3715	// server as null. It is an error if a field in this list has a
3716	// non-empty value. This may be used to include null fields in Patch
3717	// requests.
3718	NullFields []string `json:"-"`
3719}
3720
3721func (s *VolumeSaleInfoOffers) MarshalJSON() ([]byte, error) {
3722	type NoMethod VolumeSaleInfoOffers
3723	raw := NoMethod(*s)
3724	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3725}
3726
3727// VolumeSaleInfoOffersListPrice: Offer list (=undiscounted) price in
3728// Micros.
3729type VolumeSaleInfoOffersListPrice struct {
3730	AmountInMicros float64 `json:"amountInMicros,omitempty"`
3731
3732	CurrencyCode string `json:"currencyCode,omitempty"`
3733
3734	// ForceSendFields is a list of field names (e.g. "AmountInMicros") to
3735	// unconditionally include in API requests. By default, fields with
3736	// empty values are omitted from API requests. However, any non-pointer,
3737	// non-interface field appearing in ForceSendFields will be sent to the
3738	// server regardless of whether the field is empty or not. This may be
3739	// used to include empty fields in Patch requests.
3740	ForceSendFields []string `json:"-"`
3741
3742	// NullFields is a list of field names (e.g. "AmountInMicros") to
3743	// include in API requests with the JSON null value. By default, fields
3744	// with empty values are omitted from API requests. However, any field
3745	// with an empty value appearing in NullFields will be sent to the
3746	// server as null. It is an error if a field in this list has a
3747	// non-empty value. This may be used to include null fields in Patch
3748	// requests.
3749	NullFields []string `json:"-"`
3750}
3751
3752func (s *VolumeSaleInfoOffersListPrice) MarshalJSON() ([]byte, error) {
3753	type NoMethod VolumeSaleInfoOffersListPrice
3754	raw := NoMethod(*s)
3755	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3756}
3757
3758func (s *VolumeSaleInfoOffersListPrice) UnmarshalJSON(data []byte) error {
3759	type NoMethod VolumeSaleInfoOffersListPrice
3760	var s1 struct {
3761		AmountInMicros gensupport.JSONFloat64 `json:"amountInMicros"`
3762		*NoMethod
3763	}
3764	s1.NoMethod = (*NoMethod)(s)
3765	if err := json.Unmarshal(data, &s1); err != nil {
3766		return err
3767	}
3768	s.AmountInMicros = float64(s1.AmountInMicros)
3769	return nil
3770}
3771
3772// VolumeSaleInfoOffersRentalDuration: The rental duration (for rental
3773// offers only).
3774type VolumeSaleInfoOffersRentalDuration struct {
3775	Count float64 `json:"count,omitempty"`
3776
3777	Unit string `json:"unit,omitempty"`
3778
3779	// ForceSendFields is a list of field names (e.g. "Count") to
3780	// unconditionally include in API requests. By default, fields with
3781	// empty values are omitted from API requests. However, any non-pointer,
3782	// non-interface field appearing in ForceSendFields will be sent to the
3783	// server regardless of whether the field is empty or not. This may be
3784	// used to include empty fields in Patch requests.
3785	ForceSendFields []string `json:"-"`
3786
3787	// NullFields is a list of field names (e.g. "Count") to include in API
3788	// requests with the JSON null value. By default, fields with empty
3789	// values are omitted from API requests. However, any field with an
3790	// empty value appearing in NullFields will be sent to the server as
3791	// null. It is an error if a field in this list has a non-empty value.
3792	// This may be used to include null fields in Patch requests.
3793	NullFields []string `json:"-"`
3794}
3795
3796func (s *VolumeSaleInfoOffersRentalDuration) MarshalJSON() ([]byte, error) {
3797	type NoMethod VolumeSaleInfoOffersRentalDuration
3798	raw := NoMethod(*s)
3799	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3800}
3801
3802func (s *VolumeSaleInfoOffersRentalDuration) UnmarshalJSON(data []byte) error {
3803	type NoMethod VolumeSaleInfoOffersRentalDuration
3804	var s1 struct {
3805		Count gensupport.JSONFloat64 `json:"count"`
3806		*NoMethod
3807	}
3808	s1.NoMethod = (*NoMethod)(s)
3809	if err := json.Unmarshal(data, &s1); err != nil {
3810		return err
3811	}
3812	s.Count = float64(s1.Count)
3813	return nil
3814}
3815
3816// VolumeSaleInfoOffersRetailPrice: Offer retail (=discounted) price in
3817// Micros
3818type VolumeSaleInfoOffersRetailPrice struct {
3819	AmountInMicros float64 `json:"amountInMicros,omitempty"`
3820
3821	CurrencyCode string `json:"currencyCode,omitempty"`
3822
3823	// ForceSendFields is a list of field names (e.g. "AmountInMicros") to
3824	// unconditionally include in API requests. By default, fields with
3825	// empty values are omitted from API requests. However, any non-pointer,
3826	// non-interface field appearing in ForceSendFields will be sent to the
3827	// server regardless of whether the field is empty or not. This may be
3828	// used to include empty fields in Patch requests.
3829	ForceSendFields []string `json:"-"`
3830
3831	// NullFields is a list of field names (e.g. "AmountInMicros") to
3832	// include in API requests with the JSON null value. By default, fields
3833	// with empty values are omitted from API requests. However, any field
3834	// with an empty value appearing in NullFields will be sent to the
3835	// server as null. It is an error if a field in this list has a
3836	// non-empty value. This may be used to include null fields in Patch
3837	// requests.
3838	NullFields []string `json:"-"`
3839}
3840
3841func (s *VolumeSaleInfoOffersRetailPrice) MarshalJSON() ([]byte, error) {
3842	type NoMethod VolumeSaleInfoOffersRetailPrice
3843	raw := NoMethod(*s)
3844	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3845}
3846
3847func (s *VolumeSaleInfoOffersRetailPrice) UnmarshalJSON(data []byte) error {
3848	type NoMethod VolumeSaleInfoOffersRetailPrice
3849	var s1 struct {
3850		AmountInMicros gensupport.JSONFloat64 `json:"amountInMicros"`
3851		*NoMethod
3852	}
3853	s1.NoMethod = (*NoMethod)(s)
3854	if err := json.Unmarshal(data, &s1); err != nil {
3855		return err
3856	}
3857	s.AmountInMicros = float64(s1.AmountInMicros)
3858	return nil
3859}
3860
3861// VolumeSaleInfoRetailPrice: The actual selling price of the book. This
3862// is the same as the suggested retail or list price unless there are
3863// offers or discounts on this volume. (In LITE projection.)
3864type VolumeSaleInfoRetailPrice struct {
3865	// Amount: Amount in the currency listed below. (In LITE projection.)
3866	Amount float64 `json:"amount,omitempty"`
3867
3868	// CurrencyCode: An ISO 4217, three-letter currency code. (In LITE
3869	// projection.)
3870	CurrencyCode string `json:"currencyCode,omitempty"`
3871
3872	// ForceSendFields is a list of field names (e.g. "Amount") to
3873	// unconditionally include in API requests. By default, fields with
3874	// empty values are omitted from API requests. However, any non-pointer,
3875	// non-interface field appearing in ForceSendFields will be sent to the
3876	// server regardless of whether the field is empty or not. This may be
3877	// used to include empty fields in Patch requests.
3878	ForceSendFields []string `json:"-"`
3879
3880	// NullFields is a list of field names (e.g. "Amount") to include in API
3881	// requests with the JSON null value. By default, fields with empty
3882	// values are omitted from API requests. However, any field with an
3883	// empty value appearing in NullFields will be sent to the server as
3884	// null. It is an error if a field in this list has a non-empty value.
3885	// This may be used to include null fields in Patch requests.
3886	NullFields []string `json:"-"`
3887}
3888
3889func (s *VolumeSaleInfoRetailPrice) MarshalJSON() ([]byte, error) {
3890	type NoMethod VolumeSaleInfoRetailPrice
3891	raw := NoMethod(*s)
3892	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3893}
3894
3895func (s *VolumeSaleInfoRetailPrice) UnmarshalJSON(data []byte) error {
3896	type NoMethod VolumeSaleInfoRetailPrice
3897	var s1 struct {
3898		Amount gensupport.JSONFloat64 `json:"amount"`
3899		*NoMethod
3900	}
3901	s1.NoMethod = (*NoMethod)(s)
3902	if err := json.Unmarshal(data, &s1); err != nil {
3903		return err
3904	}
3905	s.Amount = float64(s1.Amount)
3906	return nil
3907}
3908
3909// VolumeSearchInfo: Search result information related to this volume.
3910type VolumeSearchInfo struct {
3911	// TextSnippet: A text snippet containing the search query.
3912	TextSnippet string `json:"textSnippet,omitempty"`
3913
3914	// ForceSendFields is a list of field names (e.g. "TextSnippet") to
3915	// unconditionally include in API requests. By default, fields with
3916	// empty values are omitted from API requests. However, any non-pointer,
3917	// non-interface field appearing in ForceSendFields will be sent to the
3918	// server regardless of whether the field is empty or not. This may be
3919	// used to include empty fields in Patch requests.
3920	ForceSendFields []string `json:"-"`
3921
3922	// NullFields is a list of field names (e.g. "TextSnippet") to include
3923	// in API requests with the JSON null value. By default, fields with
3924	// empty values are omitted from API requests. However, any field with
3925	// an empty value appearing in NullFields will be sent to the server as
3926	// null. It is an error if a field in this list has a non-empty value.
3927	// This may be used to include null fields in Patch requests.
3928	NullFields []string `json:"-"`
3929}
3930
3931func (s *VolumeSearchInfo) MarshalJSON() ([]byte, error) {
3932	type NoMethod VolumeSearchInfo
3933	raw := NoMethod(*s)
3934	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3935}
3936
3937// VolumeUserInfo: User specific information related to this volume.
3938// (e.g. page this user last read or whether they purchased this book)
3939type VolumeUserInfo struct {
3940	// AcquiredTime: Timestamp when this volume was acquired by the user.
3941	// (RFC 3339 UTC date-time format) Acquiring includes purchase, user
3942	// upload, receiving family sharing, etc.
3943	AcquiredTime string `json:"acquiredTime,omitempty"`
3944
3945	// AcquisitionType: How this volume was acquired.
3946	AcquisitionType int64 `json:"acquisitionType,omitempty"`
3947
3948	// Copy: Copy/Paste accounting information.
3949	Copy *VolumeUserInfoCopy `json:"copy,omitempty"`
3950
3951	// EntitlementType: Whether this volume is purchased, sample, pd
3952	// download etc.
3953	EntitlementType int64 `json:"entitlementType,omitempty"`
3954
3955	// FamilySharing: Information on the ability to share with the family.
3956	FamilySharing *VolumeUserInfoFamilySharing `json:"familySharing,omitempty"`
3957
3958	// IsFamilySharedFromUser: Whether or not the user shared this volume
3959	// with the family.
3960	IsFamilySharedFromUser bool `json:"isFamilySharedFromUser,omitempty"`
3961
3962	// IsFamilySharedToUser: Whether or not the user received this volume
3963	// through family sharing.
3964	IsFamilySharedToUser bool `json:"isFamilySharedToUser,omitempty"`
3965
3966	// IsFamilySharingAllowed: Deprecated: Replaced by familySharing.
3967	IsFamilySharingAllowed bool `json:"isFamilySharingAllowed,omitempty"`
3968
3969	// IsFamilySharingDisabledByFop: Deprecated: Replaced by familySharing.
3970	IsFamilySharingDisabledByFop bool `json:"isFamilySharingDisabledByFop,omitempty"`
3971
3972	// IsInMyBooks: Whether or not this volume is currently in "my books."
3973	IsInMyBooks bool `json:"isInMyBooks,omitempty"`
3974
3975	// IsPreordered: Whether or not this volume was pre-ordered by the
3976	// authenticated user making the request. (In LITE projection.)
3977	IsPreordered bool `json:"isPreordered,omitempty"`
3978
3979	// IsPurchased: Whether or not this volume was purchased by the
3980	// authenticated user making the request. (In LITE projection.)
3981	IsPurchased bool `json:"isPurchased,omitempty"`
3982
3983	// IsUploaded: Whether or not this volume was user uploaded.
3984	IsUploaded bool `json:"isUploaded,omitempty"`
3985
3986	// ReadingPosition: The user's current reading position in the volume,
3987	// if one is available. (In LITE projection.)
3988	ReadingPosition *ReadingPosition `json:"readingPosition,omitempty"`
3989
3990	// RentalPeriod: Period during this book is/was a valid rental.
3991	RentalPeriod *VolumeUserInfoRentalPeriod `json:"rentalPeriod,omitempty"`
3992
3993	// RentalState: Whether this book is an active or an expired rental.
3994	RentalState string `json:"rentalState,omitempty"`
3995
3996	// Review: This user's review of this volume, if one exists.
3997	Review *Review `json:"review,omitempty"`
3998
3999	// Updated: Timestamp when this volume was last modified by a user
4000	// action, such as a reading position update, volume purchase or writing
4001	// a review. (RFC 3339 UTC date-time format).
4002	Updated string `json:"updated,omitempty"`
4003
4004	UserUploadedVolumeInfo *VolumeUserInfoUserUploadedVolumeInfo `json:"userUploadedVolumeInfo,omitempty"`
4005
4006	// ForceSendFields is a list of field names (e.g. "AcquiredTime") to
4007	// unconditionally include in API requests. By default, fields with
4008	// empty values are omitted from API requests. However, any non-pointer,
4009	// non-interface field appearing in ForceSendFields will be sent to the
4010	// server regardless of whether the field is empty or not. This may be
4011	// used to include empty fields in Patch requests.
4012	ForceSendFields []string `json:"-"`
4013
4014	// NullFields is a list of field names (e.g. "AcquiredTime") to include
4015	// in API requests with the JSON null value. By default, fields with
4016	// empty values are omitted from API requests. However, any field with
4017	// an empty value appearing in NullFields will be sent to the server as
4018	// null. It is an error if a field in this list has a non-empty value.
4019	// This may be used to include null fields in Patch requests.
4020	NullFields []string `json:"-"`
4021}
4022
4023func (s *VolumeUserInfo) MarshalJSON() ([]byte, error) {
4024	type NoMethod VolumeUserInfo
4025	raw := NoMethod(*s)
4026	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4027}
4028
4029// VolumeUserInfoCopy: Copy/Paste accounting information.
4030type VolumeUserInfoCopy struct {
4031	AllowedCharacterCount int64 `json:"allowedCharacterCount,omitempty"`
4032
4033	LimitType string `json:"limitType,omitempty"`
4034
4035	RemainingCharacterCount int64 `json:"remainingCharacterCount,omitempty"`
4036
4037	Updated string `json:"updated,omitempty"`
4038
4039	// ForceSendFields is a list of field names (e.g.
4040	// "AllowedCharacterCount") to unconditionally include in API requests.
4041	// By default, fields with empty values are omitted from API requests.
4042	// However, any non-pointer, non-interface field appearing in
4043	// ForceSendFields will be sent to the server regardless of whether the
4044	// field is empty or not. This may be used to include empty fields in
4045	// Patch requests.
4046	ForceSendFields []string `json:"-"`
4047
4048	// NullFields is a list of field names (e.g. "AllowedCharacterCount") to
4049	// include in API requests with the JSON null value. By default, fields
4050	// with empty values are omitted from API requests. However, any field
4051	// with an empty value appearing in NullFields will be sent to the
4052	// server as null. It is an error if a field in this list has a
4053	// non-empty value. This may be used to include null fields in Patch
4054	// requests.
4055	NullFields []string `json:"-"`
4056}
4057
4058func (s *VolumeUserInfoCopy) MarshalJSON() ([]byte, error) {
4059	type NoMethod VolumeUserInfoCopy
4060	raw := NoMethod(*s)
4061	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4062}
4063
4064// VolumeUserInfoFamilySharing: Information on the ability to share with
4065// the family.
4066type VolumeUserInfoFamilySharing struct {
4067	// FamilyRole: The role of the user in the family.
4068	FamilyRole string `json:"familyRole,omitempty"`
4069
4070	// IsSharingAllowed: Whether or not this volume can be shared with the
4071	// family by the user. This includes sharing eligibility of both the
4072	// volume and the user. If the value is true, the user can initiate a
4073	// family sharing action.
4074	IsSharingAllowed bool `json:"isSharingAllowed,omitempty"`
4075
4076	// IsSharingDisabledByFop: Whether or not sharing this volume is
4077	// temporarily disabled due to issues with the Family Wallet.
4078	IsSharingDisabledByFop bool `json:"isSharingDisabledByFop,omitempty"`
4079
4080	// ForceSendFields is a list of field names (e.g. "FamilyRole") to
4081	// unconditionally include in API requests. By default, fields with
4082	// empty values are omitted from API requests. However, any non-pointer,
4083	// non-interface field appearing in ForceSendFields will be sent to the
4084	// server regardless of whether the field is empty or not. This may be
4085	// used to include empty fields in Patch requests.
4086	ForceSendFields []string `json:"-"`
4087
4088	// NullFields is a list of field names (e.g. "FamilyRole") to include in
4089	// API requests with the JSON null value. By default, fields with empty
4090	// values are omitted from API requests. However, any field with an
4091	// empty value appearing in NullFields will be sent to the server as
4092	// null. It is an error if a field in this list has a non-empty value.
4093	// This may be used to include null fields in Patch requests.
4094	NullFields []string `json:"-"`
4095}
4096
4097func (s *VolumeUserInfoFamilySharing) MarshalJSON() ([]byte, error) {
4098	type NoMethod VolumeUserInfoFamilySharing
4099	raw := NoMethod(*s)
4100	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4101}
4102
4103// VolumeUserInfoRentalPeriod: Period during this book is/was a valid
4104// rental.
4105type VolumeUserInfoRentalPeriod struct {
4106	EndUtcSec int64 `json:"endUtcSec,omitempty,string"`
4107
4108	StartUtcSec int64 `json:"startUtcSec,omitempty,string"`
4109
4110	// ForceSendFields is a list of field names (e.g. "EndUtcSec") to
4111	// unconditionally include in API requests. By default, fields with
4112	// empty values are omitted from API requests. However, any non-pointer,
4113	// non-interface field appearing in ForceSendFields will be sent to the
4114	// server regardless of whether the field is empty or not. This may be
4115	// used to include empty fields in Patch requests.
4116	ForceSendFields []string `json:"-"`
4117
4118	// NullFields is a list of field names (e.g. "EndUtcSec") to include in
4119	// API requests with the JSON null value. By default, fields with empty
4120	// values are omitted from API requests. However, any field with an
4121	// empty value appearing in NullFields will be sent to the server as
4122	// null. It is an error if a field in this list has a non-empty value.
4123	// This may be used to include null fields in Patch requests.
4124	NullFields []string `json:"-"`
4125}
4126
4127func (s *VolumeUserInfoRentalPeriod) MarshalJSON() ([]byte, error) {
4128	type NoMethod VolumeUserInfoRentalPeriod
4129	raw := NoMethod(*s)
4130	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4131}
4132
4133type VolumeUserInfoUserUploadedVolumeInfo struct {
4134	ProcessingState string `json:"processingState,omitempty"`
4135
4136	// ForceSendFields is a list of field names (e.g. "ProcessingState") to
4137	// unconditionally include in API requests. By default, fields with
4138	// empty values are omitted from API requests. However, any non-pointer,
4139	// non-interface field appearing in ForceSendFields will be sent to the
4140	// server regardless of whether the field is empty or not. This may be
4141	// used to include empty fields in Patch requests.
4142	ForceSendFields []string `json:"-"`
4143
4144	// NullFields is a list of field names (e.g. "ProcessingState") to
4145	// include in API requests with the JSON null value. By default, fields
4146	// with empty values are omitted from API requests. However, any field
4147	// with an empty value appearing in NullFields will be sent to the
4148	// server as null. It is an error if a field in this list has a
4149	// non-empty value. This may be used to include null fields in Patch
4150	// requests.
4151	NullFields []string `json:"-"`
4152}
4153
4154func (s *VolumeUserInfoUserUploadedVolumeInfo) MarshalJSON() ([]byte, error) {
4155	type NoMethod VolumeUserInfoUserUploadedVolumeInfo
4156	raw := NoMethod(*s)
4157	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4158}
4159
4160// VolumeVolumeInfo: General volume information.
4161type VolumeVolumeInfo struct {
4162	// AllowAnonLogging: Whether anonymous logging should be allowed.
4163	AllowAnonLogging bool `json:"allowAnonLogging,omitempty"`
4164
4165	// Authors: The names of the authors and/or editors for this volume. (In
4166	// LITE projection)
4167	Authors []string `json:"authors,omitempty"`
4168
4169	// AverageRating: The mean review rating for this volume. (min = 1.0,
4170	// max = 5.0)
4171	AverageRating float64 `json:"averageRating,omitempty"`
4172
4173	// CanonicalVolumeLink: Canonical URL for a volume. (In LITE
4174	// projection.)
4175	CanonicalVolumeLink string `json:"canonicalVolumeLink,omitempty"`
4176
4177	// Categories: A list of subject categories, such as "Fiction",
4178	// "Suspense", etc.
4179	Categories []string `json:"categories,omitempty"`
4180
4181	// ComicsContent: Whether the volume has comics content.
4182	ComicsContent bool `json:"comicsContent,omitempty"`
4183
4184	// ContentVersion: An identifier for the version of the volume content
4185	// (text & images). (In LITE projection)
4186	ContentVersion string `json:"contentVersion,omitempty"`
4187
4188	// Description: A synopsis of the volume. The text of the description is
4189	// formatted in HTML and includes simple formatting elements, such as b,
4190	// i, and br tags. (In LITE projection.)
4191	Description string `json:"description,omitempty"`
4192
4193	// Dimensions: Physical dimensions of this volume.
4194	Dimensions *VolumeVolumeInfoDimensions `json:"dimensions,omitempty"`
4195
4196	// ImageLinks: A list of image links for all the sizes that are
4197	// available. (In LITE projection.)
4198	ImageLinks *VolumeVolumeInfoImageLinks `json:"imageLinks,omitempty"`
4199
4200	// IndustryIdentifiers: Industry standard identifiers for this volume.
4201	IndustryIdentifiers []*VolumeVolumeInfoIndustryIdentifiers `json:"industryIdentifiers,omitempty"`
4202
4203	// InfoLink: URL to view information about this volume on the Google
4204	// Books site. (In LITE projection)
4205	InfoLink string `json:"infoLink,omitempty"`
4206
4207	// Language: Best language for this volume (based on content). It is the
4208	// two-letter ISO 639-1 code such as 'fr', 'en', etc.
4209	Language string `json:"language,omitempty"`
4210
4211	// MainCategory: The main category to which this volume belongs. It will
4212	// be the category from the categories list returned below that has the
4213	// highest weight.
4214	MainCategory string `json:"mainCategory,omitempty"`
4215
4216	MaturityRating string `json:"maturityRating,omitempty"`
4217
4218	// PageCount: Total number of pages as per publisher metadata.
4219	PageCount int64 `json:"pageCount,omitempty"`
4220
4221	// PanelizationSummary: A top-level summary of the panelization info in
4222	// this volume.
4223	PanelizationSummary *VolumeVolumeInfoPanelizationSummary `json:"panelizationSummary,omitempty"`
4224
4225	// PreviewLink: URL to preview this volume on the Google Books site.
4226	PreviewLink string `json:"previewLink,omitempty"`
4227
4228	// PrintType: Type of publication of this volume. Possible values are
4229	// BOOK or MAGAZINE.
4230	PrintType string `json:"printType,omitempty"`
4231
4232	// PrintedPageCount: Total number of printed pages in generated pdf
4233	// representation.
4234	PrintedPageCount int64 `json:"printedPageCount,omitempty"`
4235
4236	// PublishedDate: Date of publication. (In LITE projection.)
4237	PublishedDate string `json:"publishedDate,omitempty"`
4238
4239	// Publisher: Publisher of this volume. (In LITE projection.)
4240	Publisher string `json:"publisher,omitempty"`
4241
4242	// RatingsCount: The number of review ratings for this volume.
4243	RatingsCount int64 `json:"ratingsCount,omitempty"`
4244
4245	// ReadingModes: The reading modes available for this volume.
4246	ReadingModes interface{} `json:"readingModes,omitempty"`
4247
4248	// SamplePageCount: Total number of sample pages as per publisher
4249	// metadata.
4250	SamplePageCount int64 `json:"samplePageCount,omitempty"`
4251
4252	SeriesInfo *Volumeseriesinfo `json:"seriesInfo,omitempty"`
4253
4254	// Subtitle: Volume subtitle. (In LITE projection.)
4255	Subtitle string `json:"subtitle,omitempty"`
4256
4257	// Title: Volume title. (In LITE projection.)
4258	Title string `json:"title,omitempty"`
4259
4260	// ForceSendFields is a list of field names (e.g. "AllowAnonLogging") to
4261	// unconditionally include in API requests. By default, fields with
4262	// empty values are omitted from API requests. However, any non-pointer,
4263	// non-interface field appearing in ForceSendFields will be sent to the
4264	// server regardless of whether the field is empty or not. This may be
4265	// used to include empty fields in Patch requests.
4266	ForceSendFields []string `json:"-"`
4267
4268	// NullFields is a list of field names (e.g. "AllowAnonLogging") to
4269	// include in API requests with the JSON null value. By default, fields
4270	// with empty values are omitted from API requests. However, any field
4271	// with an empty value appearing in NullFields will be sent to the
4272	// server as null. It is an error if a field in this list has a
4273	// non-empty value. This may be used to include null fields in Patch
4274	// requests.
4275	NullFields []string `json:"-"`
4276}
4277
4278func (s *VolumeVolumeInfo) MarshalJSON() ([]byte, error) {
4279	type NoMethod VolumeVolumeInfo
4280	raw := NoMethod(*s)
4281	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4282}
4283
4284func (s *VolumeVolumeInfo) UnmarshalJSON(data []byte) error {
4285	type NoMethod VolumeVolumeInfo
4286	var s1 struct {
4287		AverageRating gensupport.JSONFloat64 `json:"averageRating"`
4288		*NoMethod
4289	}
4290	s1.NoMethod = (*NoMethod)(s)
4291	if err := json.Unmarshal(data, &s1); err != nil {
4292		return err
4293	}
4294	s.AverageRating = float64(s1.AverageRating)
4295	return nil
4296}
4297
4298// VolumeVolumeInfoDimensions: Physical dimensions of this volume.
4299type VolumeVolumeInfoDimensions struct {
4300	// Height: Height or length of this volume (in cm).
4301	Height string `json:"height,omitempty"`
4302
4303	// Thickness: Thickness of this volume (in cm).
4304	Thickness string `json:"thickness,omitempty"`
4305
4306	// Width: Width of this volume (in cm).
4307	Width string `json:"width,omitempty"`
4308
4309	// ForceSendFields is a list of field names (e.g. "Height") to
4310	// unconditionally include in API requests. By default, fields with
4311	// empty values are omitted from API requests. However, any non-pointer,
4312	// non-interface field appearing in ForceSendFields will be sent to the
4313	// server regardless of whether the field is empty or not. This may be
4314	// used to include empty fields in Patch requests.
4315	ForceSendFields []string `json:"-"`
4316
4317	// NullFields is a list of field names (e.g. "Height") to include in API
4318	// requests with the JSON null value. By default, fields with empty
4319	// values are omitted from API requests. However, any field with an
4320	// empty value appearing in NullFields will be sent to the server as
4321	// null. It is an error if a field in this list has a non-empty value.
4322	// This may be used to include null fields in Patch requests.
4323	NullFields []string `json:"-"`
4324}
4325
4326func (s *VolumeVolumeInfoDimensions) MarshalJSON() ([]byte, error) {
4327	type NoMethod VolumeVolumeInfoDimensions
4328	raw := NoMethod(*s)
4329	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4330}
4331
4332// VolumeVolumeInfoImageLinks: A list of image links for all the sizes
4333// that are available. (In LITE projection.)
4334type VolumeVolumeInfoImageLinks struct {
4335	// ExtraLarge: Image link for extra large size (width of ~1280 pixels).
4336	// (In LITE projection)
4337	ExtraLarge string `json:"extraLarge,omitempty"`
4338
4339	// Large: Image link for large size (width of ~800 pixels). (In LITE
4340	// projection)
4341	Large string `json:"large,omitempty"`
4342
4343	// Medium: Image link for medium size (width of ~575 pixels). (In LITE
4344	// projection)
4345	Medium string `json:"medium,omitempty"`
4346
4347	// Small: Image link for small size (width of ~300 pixels). (In LITE
4348	// projection)
4349	Small string `json:"small,omitempty"`
4350
4351	// SmallThumbnail: Image link for small thumbnail size (width of ~80
4352	// pixels). (In LITE projection)
4353	SmallThumbnail string `json:"smallThumbnail,omitempty"`
4354
4355	// Thumbnail: Image link for thumbnail size (width of ~128 pixels). (In
4356	// LITE projection)
4357	Thumbnail string `json:"thumbnail,omitempty"`
4358
4359	// ForceSendFields is a list of field names (e.g. "ExtraLarge") to
4360	// unconditionally include in API requests. By default, fields with
4361	// empty values are omitted from API requests. However, any non-pointer,
4362	// non-interface field appearing in ForceSendFields will be sent to the
4363	// server regardless of whether the field is empty or not. This may be
4364	// used to include empty fields in Patch requests.
4365	ForceSendFields []string `json:"-"`
4366
4367	// NullFields is a list of field names (e.g. "ExtraLarge") to include in
4368	// API requests with the JSON null value. By default, fields with empty
4369	// values are omitted from API requests. However, any field with an
4370	// empty value appearing in NullFields will be sent to the server as
4371	// null. It is an error if a field in this list has a non-empty value.
4372	// This may be used to include null fields in Patch requests.
4373	NullFields []string `json:"-"`
4374}
4375
4376func (s *VolumeVolumeInfoImageLinks) MarshalJSON() ([]byte, error) {
4377	type NoMethod VolumeVolumeInfoImageLinks
4378	raw := NoMethod(*s)
4379	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4380}
4381
4382type VolumeVolumeInfoIndustryIdentifiers struct {
4383	// Identifier: Industry specific volume identifier.
4384	Identifier string `json:"identifier,omitempty"`
4385
4386	// Type: Identifier type. Possible values are ISBN_10, ISBN_13, ISSN and
4387	// OTHER.
4388	Type string `json:"type,omitempty"`
4389
4390	// ForceSendFields is a list of field names (e.g. "Identifier") to
4391	// unconditionally include in API requests. By default, fields with
4392	// empty values are omitted from API requests. However, any non-pointer,
4393	// non-interface field appearing in ForceSendFields will be sent to the
4394	// server regardless of whether the field is empty or not. This may be
4395	// used to include empty fields in Patch requests.
4396	ForceSendFields []string `json:"-"`
4397
4398	// NullFields is a list of field names (e.g. "Identifier") to include in
4399	// API requests with the JSON null value. By default, fields with empty
4400	// values are omitted from API requests. However, any field with an
4401	// empty value appearing in NullFields will be sent to the server as
4402	// null. It is an error if a field in this list has a non-empty value.
4403	// This may be used to include null fields in Patch requests.
4404	NullFields []string `json:"-"`
4405}
4406
4407func (s *VolumeVolumeInfoIndustryIdentifiers) MarshalJSON() ([]byte, error) {
4408	type NoMethod VolumeVolumeInfoIndustryIdentifiers
4409	raw := NoMethod(*s)
4410	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4411}
4412
4413// VolumeVolumeInfoPanelizationSummary: A top-level summary of the
4414// panelization info in this volume.
4415type VolumeVolumeInfoPanelizationSummary struct {
4416	ContainsEpubBubbles bool `json:"containsEpubBubbles,omitempty"`
4417
4418	ContainsImageBubbles bool `json:"containsImageBubbles,omitempty"`
4419
4420	EpubBubbleVersion string `json:"epubBubbleVersion,omitempty"`
4421
4422	ImageBubbleVersion string `json:"imageBubbleVersion,omitempty"`
4423
4424	// ForceSendFields is a list of field names (e.g. "ContainsEpubBubbles")
4425	// to unconditionally include in API requests. By default, fields with
4426	// empty values are omitted from API requests. However, any non-pointer,
4427	// non-interface field appearing in ForceSendFields will be sent to the
4428	// server regardless of whether the field is empty or not. This may be
4429	// used to include empty fields in Patch requests.
4430	ForceSendFields []string `json:"-"`
4431
4432	// NullFields is a list of field names (e.g. "ContainsEpubBubbles") to
4433	// include in API requests with the JSON null value. By default, fields
4434	// with empty values are omitted from API requests. However, any field
4435	// with an empty value appearing in NullFields will be sent to the
4436	// server as null. It is an error if a field in this list has a
4437	// non-empty value. This may be used to include null fields in Patch
4438	// requests.
4439	NullFields []string `json:"-"`
4440}
4441
4442func (s *VolumeVolumeInfoPanelizationSummary) MarshalJSON() ([]byte, error) {
4443	type NoMethod VolumeVolumeInfoPanelizationSummary
4444	raw := NoMethod(*s)
4445	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4446}
4447
4448type Volume2 struct {
4449	// Items: A list of volumes.
4450	Items []*Volume `json:"items,omitempty"`
4451
4452	// Kind: Resource type.
4453	Kind string `json:"kind,omitempty"`
4454
4455	NextPageToken string `json:"nextPageToken,omitempty"`
4456
4457	// ServerResponse contains the HTTP response code and headers from the
4458	// server.
4459	googleapi.ServerResponse `json:"-"`
4460
4461	// ForceSendFields is a list of field names (e.g. "Items") to
4462	// unconditionally include in API requests. By default, fields with
4463	// empty values are omitted from API requests. However, any non-pointer,
4464	// non-interface field appearing in ForceSendFields will be sent to the
4465	// server regardless of whether the field is empty or not. This may be
4466	// used to include empty fields in Patch requests.
4467	ForceSendFields []string `json:"-"`
4468
4469	// NullFields is a list of field names (e.g. "Items") to include in API
4470	// requests with the JSON null value. By default, fields with empty
4471	// values are omitted from API requests. However, any field with an
4472	// empty value appearing in NullFields will be sent to the server as
4473	// null. It is an error if a field in this list has a non-empty value.
4474	// This may be used to include null fields in Patch requests.
4475	NullFields []string `json:"-"`
4476}
4477
4478func (s *Volume2) MarshalJSON() ([]byte, error) {
4479	type NoMethod Volume2
4480	raw := NoMethod(*s)
4481	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4482}
4483
4484type Volumeannotation struct {
4485	// AnnotationDataId: The annotation data id for this volume annotation.
4486	AnnotationDataId string `json:"annotationDataId,omitempty"`
4487
4488	// AnnotationDataLink: Link to get data for this annotation.
4489	AnnotationDataLink string `json:"annotationDataLink,omitempty"`
4490
4491	// AnnotationType: The type of annotation this is.
4492	AnnotationType string `json:"annotationType,omitempty"`
4493
4494	// ContentRanges: The content ranges to identify the selected text.
4495	ContentRanges *VolumeannotationContentRanges `json:"contentRanges,omitempty"`
4496
4497	// Data: Data for this annotation.
4498	Data string `json:"data,omitempty"`
4499
4500	// Deleted: Indicates that this annotation is deleted.
4501	Deleted bool `json:"deleted,omitempty"`
4502
4503	// Id: Unique id of this volume annotation.
4504	Id string `json:"id,omitempty"`
4505
4506	// Kind: Resource Type
4507	Kind string `json:"kind,omitempty"`
4508
4509	// LayerId: The Layer this annotation is for.
4510	LayerId string `json:"layerId,omitempty"`
4511
4512	// PageIds: Pages the annotation spans.
4513	PageIds []string `json:"pageIds,omitempty"`
4514
4515	// SelectedText: Excerpt from the volume.
4516	SelectedText string `json:"selectedText,omitempty"`
4517
4518	// SelfLink: URL to this resource.
4519	SelfLink string `json:"selfLink,omitempty"`
4520
4521	// Updated: Timestamp for the last time this anntoation was updated.
4522	// (RFC 3339 UTC date-time format).
4523	Updated string `json:"updated,omitempty"`
4524
4525	// VolumeId: The Volume this annotation is for.
4526	VolumeId string `json:"volumeId,omitempty"`
4527
4528	// ServerResponse contains the HTTP response code and headers from the
4529	// server.
4530	googleapi.ServerResponse `json:"-"`
4531
4532	// ForceSendFields is a list of field names (e.g. "AnnotationDataId") to
4533	// unconditionally include in API requests. By default, fields with
4534	// empty values are omitted from API requests. However, any non-pointer,
4535	// non-interface field appearing in ForceSendFields will be sent to the
4536	// server regardless of whether the field is empty or not. This may be
4537	// used to include empty fields in Patch requests.
4538	ForceSendFields []string `json:"-"`
4539
4540	// NullFields is a list of field names (e.g. "AnnotationDataId") to
4541	// include in API requests with the JSON null value. By default, fields
4542	// with empty values are omitted from API requests. However, any field
4543	// with an empty value appearing in NullFields will be sent to the
4544	// server as null. It is an error if a field in this list has a
4545	// non-empty value. This may be used to include null fields in Patch
4546	// requests.
4547	NullFields []string `json:"-"`
4548}
4549
4550func (s *Volumeannotation) MarshalJSON() ([]byte, error) {
4551	type NoMethod Volumeannotation
4552	raw := NoMethod(*s)
4553	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4554}
4555
4556// VolumeannotationContentRanges: The content ranges to identify the
4557// selected text.
4558type VolumeannotationContentRanges struct {
4559	// CfiRange: Range in CFI format for this annotation for version above.
4560	CfiRange *BooksAnnotationsRange `json:"cfiRange,omitempty"`
4561
4562	// ContentVersion: Content version applicable to ranges below.
4563	ContentVersion string `json:"contentVersion,omitempty"`
4564
4565	// GbImageRange: Range in GB image format for this annotation for
4566	// version above.
4567	GbImageRange *BooksAnnotationsRange `json:"gbImageRange,omitempty"`
4568
4569	// GbTextRange: Range in GB text format for this annotation for version
4570	// above.
4571	GbTextRange *BooksAnnotationsRange `json:"gbTextRange,omitempty"`
4572
4573	// ForceSendFields is a list of field names (e.g. "CfiRange") to
4574	// unconditionally include in API requests. By default, fields with
4575	// empty values are omitted from API requests. However, any non-pointer,
4576	// non-interface field appearing in ForceSendFields will be sent to the
4577	// server regardless of whether the field is empty or not. This may be
4578	// used to include empty fields in Patch requests.
4579	ForceSendFields []string `json:"-"`
4580
4581	// NullFields is a list of field names (e.g. "CfiRange") to include in
4582	// API requests with the JSON null value. By default, fields with empty
4583	// values are omitted from API requests. However, any field with an
4584	// empty value appearing in NullFields will be sent to the server as
4585	// null. It is an error if a field in this list has a non-empty value.
4586	// This may be used to include null fields in Patch requests.
4587	NullFields []string `json:"-"`
4588}
4589
4590func (s *VolumeannotationContentRanges) MarshalJSON() ([]byte, error) {
4591	type NoMethod VolumeannotationContentRanges
4592	raw := NoMethod(*s)
4593	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4594}
4595
4596type Volumeannotations struct {
4597	// Items: A list of volume annotations.
4598	Items []*Volumeannotation `json:"items,omitempty"`
4599
4600	// Kind: Resource type
4601	Kind string `json:"kind,omitempty"`
4602
4603	// NextPageToken: Token to pass in for pagination for the next page.
4604	// This will not be present if this request does not have more results.
4605	NextPageToken string `json:"nextPageToken,omitempty"`
4606
4607	// TotalItems: The total number of volume annotations found.
4608	TotalItems int64 `json:"totalItems,omitempty"`
4609
4610	// Version: The version string for all of the volume annotations in this
4611	// layer (not just the ones in this response). Note: the version string
4612	// doesn't apply to the annotation data, just the information in this
4613	// response (e.g. the location of annotations in the book).
4614	Version string `json:"version,omitempty"`
4615
4616	// ServerResponse contains the HTTP response code and headers from the
4617	// server.
4618	googleapi.ServerResponse `json:"-"`
4619
4620	// ForceSendFields is a list of field names (e.g. "Items") to
4621	// unconditionally include in API requests. By default, fields with
4622	// empty values are omitted from API requests. However, any non-pointer,
4623	// non-interface field appearing in ForceSendFields will be sent to the
4624	// server regardless of whether the field is empty or not. This may be
4625	// used to include empty fields in Patch requests.
4626	ForceSendFields []string `json:"-"`
4627
4628	// NullFields is a list of field names (e.g. "Items") to include in API
4629	// requests with the JSON null value. By default, fields with empty
4630	// values are omitted from API requests. However, any field with an
4631	// empty value appearing in NullFields will be sent to the server as
4632	// null. It is an error if a field in this list has a non-empty value.
4633	// This may be used to include null fields in Patch requests.
4634	NullFields []string `json:"-"`
4635}
4636
4637func (s *Volumeannotations) MarshalJSON() ([]byte, error) {
4638	type NoMethod Volumeannotations
4639	raw := NoMethod(*s)
4640	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4641}
4642
4643type Volumes struct {
4644	// Items: A list of volumes.
4645	Items []*Volume `json:"items,omitempty"`
4646
4647	// Kind: Resource type.
4648	Kind string `json:"kind,omitempty"`
4649
4650	// TotalItems: Total number of volumes found. This might be greater than
4651	// the number of volumes returned in this response if results have been
4652	// paginated.
4653	TotalItems int64 `json:"totalItems,omitempty"`
4654
4655	// ServerResponse contains the HTTP response code and headers from the
4656	// server.
4657	googleapi.ServerResponse `json:"-"`
4658
4659	// ForceSendFields is a list of field names (e.g. "Items") to
4660	// unconditionally include in API requests. By default, fields with
4661	// empty values are omitted from API requests. However, any non-pointer,
4662	// non-interface field appearing in ForceSendFields will be sent to the
4663	// server regardless of whether the field is empty or not. This may be
4664	// used to include empty fields in Patch requests.
4665	ForceSendFields []string `json:"-"`
4666
4667	// NullFields is a list of field names (e.g. "Items") to include in API
4668	// requests with the JSON null value. By default, fields with empty
4669	// values are omitted from API requests. However, any field with an
4670	// empty value appearing in NullFields will be sent to the server as
4671	// null. It is an error if a field in this list has a non-empty value.
4672	// This may be used to include null fields in Patch requests.
4673	NullFields []string `json:"-"`
4674}
4675
4676func (s *Volumes) MarshalJSON() ([]byte, error) {
4677	type NoMethod Volumes
4678	raw := NoMethod(*s)
4679	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4680}
4681
4682type Volumeseriesinfo struct {
4683	// BookDisplayNumber: The display number string. This should be used
4684	// only for display purposes and the actual sequence should be inferred
4685	// from the below orderNumber.
4686	BookDisplayNumber string `json:"bookDisplayNumber,omitempty"`
4687
4688	// Kind: Resource type.
4689	Kind string `json:"kind,omitempty"`
4690
4691	// ShortSeriesBookTitle: Short book title in the context of the series.
4692	ShortSeriesBookTitle string `json:"shortSeriesBookTitle,omitempty"`
4693
4694	VolumeSeries []*VolumeseriesinfoVolumeSeries `json:"volumeSeries,omitempty"`
4695
4696	// ForceSendFields is a list of field names (e.g. "BookDisplayNumber")
4697	// to unconditionally include in API requests. By default, fields with
4698	// empty values are omitted from API requests. However, any non-pointer,
4699	// non-interface field appearing in ForceSendFields will be sent to the
4700	// server regardless of whether the field is empty or not. This may be
4701	// used to include empty fields in Patch requests.
4702	ForceSendFields []string `json:"-"`
4703
4704	// NullFields is a list of field names (e.g. "BookDisplayNumber") to
4705	// include in API requests with the JSON null value. By default, fields
4706	// with empty values are omitted from API requests. However, any field
4707	// with an empty value appearing in NullFields will be sent to the
4708	// server as null. It is an error if a field in this list has a
4709	// non-empty value. This may be used to include null fields in Patch
4710	// requests.
4711	NullFields []string `json:"-"`
4712}
4713
4714func (s *Volumeseriesinfo) MarshalJSON() ([]byte, error) {
4715	type NoMethod Volumeseriesinfo
4716	raw := NoMethod(*s)
4717	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4718}
4719
4720type VolumeseriesinfoVolumeSeries struct {
4721	// Issue: List of issues. Applicable only for Collection Edition and
4722	// Omnibus.
4723	Issue []*VolumeseriesinfoVolumeSeriesIssue `json:"issue,omitempty"`
4724
4725	// OrderNumber: The book order number in the series.
4726	OrderNumber int64 `json:"orderNumber,omitempty"`
4727
4728	// SeriesBookType: The book type in the context of series. Examples -
4729	// Single Issue, Collection Edition, etc.
4730	SeriesBookType string `json:"seriesBookType,omitempty"`
4731
4732	// SeriesId: The series id.
4733	SeriesId string `json:"seriesId,omitempty"`
4734
4735	// ForceSendFields is a list of field names (e.g. "Issue") to
4736	// unconditionally include in API requests. By default, fields with
4737	// empty values are omitted from API requests. However, any non-pointer,
4738	// non-interface field appearing in ForceSendFields will be sent to the
4739	// server regardless of whether the field is empty or not. This may be
4740	// used to include empty fields in Patch requests.
4741	ForceSendFields []string `json:"-"`
4742
4743	// NullFields is a list of field names (e.g. "Issue") to include in API
4744	// requests with the JSON null value. By default, fields with empty
4745	// values are omitted from API requests. However, any field with an
4746	// empty value appearing in NullFields will be sent to the server as
4747	// null. It is an error if a field in this list has a non-empty value.
4748	// This may be used to include null fields in Patch requests.
4749	NullFields []string `json:"-"`
4750}
4751
4752func (s *VolumeseriesinfoVolumeSeries) MarshalJSON() ([]byte, error) {
4753	type NoMethod VolumeseriesinfoVolumeSeries
4754	raw := NoMethod(*s)
4755	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4756}
4757
4758type VolumeseriesinfoVolumeSeriesIssue struct {
4759	IssueDisplayNumber string `json:"issueDisplayNumber,omitempty"`
4760
4761	IssueOrderNumber int64 `json:"issueOrderNumber,omitempty"`
4762
4763	// ForceSendFields is a list of field names (e.g. "IssueDisplayNumber")
4764	// to unconditionally include in API requests. By default, fields with
4765	// empty values are omitted from API requests. However, any non-pointer,
4766	// non-interface field appearing in ForceSendFields will be sent to the
4767	// server regardless of whether the field is empty or not. This may be
4768	// used to include empty fields in Patch requests.
4769	ForceSendFields []string `json:"-"`
4770
4771	// NullFields is a list of field names (e.g. "IssueDisplayNumber") to
4772	// include in API requests with the JSON null value. By default, fields
4773	// with empty values are omitted from API requests. However, any field
4774	// with an empty value appearing in NullFields will be sent to the
4775	// server as null. It is an error if a field in this list has a
4776	// non-empty value. This may be used to include null fields in Patch
4777	// requests.
4778	NullFields []string `json:"-"`
4779}
4780
4781func (s *VolumeseriesinfoVolumeSeriesIssue) MarshalJSON() ([]byte, error) {
4782	type NoMethod VolumeseriesinfoVolumeSeriesIssue
4783	raw := NoMethod(*s)
4784	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4785}
4786
4787// method id "books.bookshelves.get":
4788
4789type BookshelvesGetCall struct {
4790	s            *Service
4791	userId       string
4792	shelf        string
4793	urlParams_   gensupport.URLParams
4794	ifNoneMatch_ string
4795	ctx_         context.Context
4796	header_      http.Header
4797}
4798
4799// Get: Retrieves metadata for a specific bookshelf for the specified
4800// user.
4801func (r *BookshelvesService) Get(userId string, shelf string) *BookshelvesGetCall {
4802	c := &BookshelvesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4803	c.userId = userId
4804	c.shelf = shelf
4805	return c
4806}
4807
4808// Source sets the optional parameter "source": String to identify the
4809// originator of this request.
4810func (c *BookshelvesGetCall) Source(source string) *BookshelvesGetCall {
4811	c.urlParams_.Set("source", source)
4812	return c
4813}
4814
4815// Fields allows partial responses to be retrieved. See
4816// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4817// for more information.
4818func (c *BookshelvesGetCall) Fields(s ...googleapi.Field) *BookshelvesGetCall {
4819	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4820	return c
4821}
4822
4823// IfNoneMatch sets the optional parameter which makes the operation
4824// fail if the object's ETag matches the given value. This is useful for
4825// getting updates only after the object has changed since the last
4826// request. Use googleapi.IsNotModified to check whether the response
4827// error from Do is the result of In-None-Match.
4828func (c *BookshelvesGetCall) IfNoneMatch(entityTag string) *BookshelvesGetCall {
4829	c.ifNoneMatch_ = entityTag
4830	return c
4831}
4832
4833// Context sets the context to be used in this call's Do method. Any
4834// pending HTTP request will be aborted if the provided context is
4835// canceled.
4836func (c *BookshelvesGetCall) Context(ctx context.Context) *BookshelvesGetCall {
4837	c.ctx_ = ctx
4838	return c
4839}
4840
4841// Header returns an http.Header that can be modified by the caller to
4842// add HTTP headers to the request.
4843func (c *BookshelvesGetCall) Header() http.Header {
4844	if c.header_ == nil {
4845		c.header_ = make(http.Header)
4846	}
4847	return c.header_
4848}
4849
4850func (c *BookshelvesGetCall) doRequest(alt string) (*http.Response, error) {
4851	reqHeaders := make(http.Header)
4852	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
4853	for k, v := range c.header_ {
4854		reqHeaders[k] = v
4855	}
4856	reqHeaders.Set("User-Agent", c.s.userAgent())
4857	if c.ifNoneMatch_ != "" {
4858		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
4859	}
4860	var body io.Reader = nil
4861	c.urlParams_.Set("alt", alt)
4862	c.urlParams_.Set("prettyPrint", "false")
4863	urls := googleapi.ResolveRelative(c.s.BasePath, "users/{userId}/bookshelves/{shelf}")
4864	urls += "?" + c.urlParams_.Encode()
4865	req, err := http.NewRequest("GET", urls, body)
4866	if err != nil {
4867		return nil, err
4868	}
4869	req.Header = reqHeaders
4870	googleapi.Expand(req.URL, map[string]string{
4871		"userId": c.userId,
4872		"shelf":  c.shelf,
4873	})
4874	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4875}
4876
4877// Do executes the "books.bookshelves.get" call.
4878// Exactly one of *Bookshelf or error will be non-nil. Any non-2xx
4879// status code is an error. Response headers are in either
4880// *Bookshelf.ServerResponse.Header or (if a response was returned at
4881// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
4882// to check whether the returned error was because
4883// http.StatusNotModified was returned.
4884func (c *BookshelvesGetCall) Do(opts ...googleapi.CallOption) (*Bookshelf, error) {
4885	gensupport.SetOptions(c.urlParams_, opts...)
4886	res, err := c.doRequest("json")
4887	if res != nil && res.StatusCode == http.StatusNotModified {
4888		if res.Body != nil {
4889			res.Body.Close()
4890		}
4891		return nil, &googleapi.Error{
4892			Code:   res.StatusCode,
4893			Header: res.Header,
4894		}
4895	}
4896	if err != nil {
4897		return nil, err
4898	}
4899	defer googleapi.CloseBody(res)
4900	if err := googleapi.CheckResponse(res); err != nil {
4901		return nil, err
4902	}
4903	ret := &Bookshelf{
4904		ServerResponse: googleapi.ServerResponse{
4905			Header:         res.Header,
4906			HTTPStatusCode: res.StatusCode,
4907		},
4908	}
4909	target := &ret
4910	if err := gensupport.DecodeResponse(target, res); err != nil {
4911		return nil, err
4912	}
4913	return ret, nil
4914	// {
4915	//   "description": "Retrieves metadata for a specific bookshelf for the specified user.",
4916	//   "httpMethod": "GET",
4917	//   "id": "books.bookshelves.get",
4918	//   "parameterOrder": [
4919	//     "userId",
4920	//     "shelf"
4921	//   ],
4922	//   "parameters": {
4923	//     "shelf": {
4924	//       "description": "ID of bookshelf to retrieve.",
4925	//       "location": "path",
4926	//       "required": true,
4927	//       "type": "string"
4928	//     },
4929	//     "source": {
4930	//       "description": "String to identify the originator of this request.",
4931	//       "location": "query",
4932	//       "type": "string"
4933	//     },
4934	//     "userId": {
4935	//       "description": "ID of user for whom to retrieve bookshelves.",
4936	//       "location": "path",
4937	//       "required": true,
4938	//       "type": "string"
4939	//     }
4940	//   },
4941	//   "path": "users/{userId}/bookshelves/{shelf}",
4942	//   "response": {
4943	//     "$ref": "Bookshelf"
4944	//   },
4945	//   "scopes": [
4946	//     "https://www.googleapis.com/auth/books"
4947	//   ]
4948	// }
4949
4950}
4951
4952// method id "books.bookshelves.list":
4953
4954type BookshelvesListCall struct {
4955	s            *Service
4956	userId       string
4957	urlParams_   gensupport.URLParams
4958	ifNoneMatch_ string
4959	ctx_         context.Context
4960	header_      http.Header
4961}
4962
4963// List: Retrieves a list of public bookshelves for the specified user.
4964func (r *BookshelvesService) List(userId string) *BookshelvesListCall {
4965	c := &BookshelvesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4966	c.userId = userId
4967	return c
4968}
4969
4970// Source sets the optional parameter "source": String to identify the
4971// originator of this request.
4972func (c *BookshelvesListCall) Source(source string) *BookshelvesListCall {
4973	c.urlParams_.Set("source", source)
4974	return c
4975}
4976
4977// Fields allows partial responses to be retrieved. See
4978// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4979// for more information.
4980func (c *BookshelvesListCall) Fields(s ...googleapi.Field) *BookshelvesListCall {
4981	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4982	return c
4983}
4984
4985// IfNoneMatch sets the optional parameter which makes the operation
4986// fail if the object's ETag matches the given value. This is useful for
4987// getting updates only after the object has changed since the last
4988// request. Use googleapi.IsNotModified to check whether the response
4989// error from Do is the result of In-None-Match.
4990func (c *BookshelvesListCall) IfNoneMatch(entityTag string) *BookshelvesListCall {
4991	c.ifNoneMatch_ = entityTag
4992	return c
4993}
4994
4995// Context sets the context to be used in this call's Do method. Any
4996// pending HTTP request will be aborted if the provided context is
4997// canceled.
4998func (c *BookshelvesListCall) Context(ctx context.Context) *BookshelvesListCall {
4999	c.ctx_ = ctx
5000	return c
5001}
5002
5003// Header returns an http.Header that can be modified by the caller to
5004// add HTTP headers to the request.
5005func (c *BookshelvesListCall) Header() http.Header {
5006	if c.header_ == nil {
5007		c.header_ = make(http.Header)
5008	}
5009	return c.header_
5010}
5011
5012func (c *BookshelvesListCall) doRequest(alt string) (*http.Response, error) {
5013	reqHeaders := make(http.Header)
5014	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
5015	for k, v := range c.header_ {
5016		reqHeaders[k] = v
5017	}
5018	reqHeaders.Set("User-Agent", c.s.userAgent())
5019	if c.ifNoneMatch_ != "" {
5020		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
5021	}
5022	var body io.Reader = nil
5023	c.urlParams_.Set("alt", alt)
5024	c.urlParams_.Set("prettyPrint", "false")
5025	urls := googleapi.ResolveRelative(c.s.BasePath, "users/{userId}/bookshelves")
5026	urls += "?" + c.urlParams_.Encode()
5027	req, err := http.NewRequest("GET", urls, body)
5028	if err != nil {
5029		return nil, err
5030	}
5031	req.Header = reqHeaders
5032	googleapi.Expand(req.URL, map[string]string{
5033		"userId": c.userId,
5034	})
5035	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5036}
5037
5038// Do executes the "books.bookshelves.list" call.
5039// Exactly one of *Bookshelves or error will be non-nil. Any non-2xx
5040// status code is an error. Response headers are in either
5041// *Bookshelves.ServerResponse.Header or (if a response was returned at
5042// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
5043// to check whether the returned error was because
5044// http.StatusNotModified was returned.
5045func (c *BookshelvesListCall) Do(opts ...googleapi.CallOption) (*Bookshelves, error) {
5046	gensupport.SetOptions(c.urlParams_, opts...)
5047	res, err := c.doRequest("json")
5048	if res != nil && res.StatusCode == http.StatusNotModified {
5049		if res.Body != nil {
5050			res.Body.Close()
5051		}
5052		return nil, &googleapi.Error{
5053			Code:   res.StatusCode,
5054			Header: res.Header,
5055		}
5056	}
5057	if err != nil {
5058		return nil, err
5059	}
5060	defer googleapi.CloseBody(res)
5061	if err := googleapi.CheckResponse(res); err != nil {
5062		return nil, err
5063	}
5064	ret := &Bookshelves{
5065		ServerResponse: googleapi.ServerResponse{
5066			Header:         res.Header,
5067			HTTPStatusCode: res.StatusCode,
5068		},
5069	}
5070	target := &ret
5071	if err := gensupport.DecodeResponse(target, res); err != nil {
5072		return nil, err
5073	}
5074	return ret, nil
5075	// {
5076	//   "description": "Retrieves a list of public bookshelves for the specified user.",
5077	//   "httpMethod": "GET",
5078	//   "id": "books.bookshelves.list",
5079	//   "parameterOrder": [
5080	//     "userId"
5081	//   ],
5082	//   "parameters": {
5083	//     "source": {
5084	//       "description": "String to identify the originator of this request.",
5085	//       "location": "query",
5086	//       "type": "string"
5087	//     },
5088	//     "userId": {
5089	//       "description": "ID of user for whom to retrieve bookshelves.",
5090	//       "location": "path",
5091	//       "required": true,
5092	//       "type": "string"
5093	//     }
5094	//   },
5095	//   "path": "users/{userId}/bookshelves",
5096	//   "response": {
5097	//     "$ref": "Bookshelves"
5098	//   },
5099	//   "scopes": [
5100	//     "https://www.googleapis.com/auth/books"
5101	//   ]
5102	// }
5103
5104}
5105
5106// method id "books.bookshelves.volumes.list":
5107
5108type BookshelvesVolumesListCall struct {
5109	s            *Service
5110	userId       string
5111	shelf        string
5112	urlParams_   gensupport.URLParams
5113	ifNoneMatch_ string
5114	ctx_         context.Context
5115	header_      http.Header
5116}
5117
5118// List: Retrieves volumes in a specific bookshelf for the specified
5119// user.
5120func (r *BookshelvesVolumesService) List(userId string, shelf string) *BookshelvesVolumesListCall {
5121	c := &BookshelvesVolumesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5122	c.userId = userId
5123	c.shelf = shelf
5124	return c
5125}
5126
5127// MaxResults sets the optional parameter "maxResults": Maximum number
5128// of results to return
5129func (c *BookshelvesVolumesListCall) MaxResults(maxResults int64) *BookshelvesVolumesListCall {
5130	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
5131	return c
5132}
5133
5134// ShowPreorders sets the optional parameter "showPreorders": Set to
5135// true to show pre-ordered books. Defaults to false.
5136func (c *BookshelvesVolumesListCall) ShowPreorders(showPreorders bool) *BookshelvesVolumesListCall {
5137	c.urlParams_.Set("showPreorders", fmt.Sprint(showPreorders))
5138	return c
5139}
5140
5141// Source sets the optional parameter "source": String to identify the
5142// originator of this request.
5143func (c *BookshelvesVolumesListCall) Source(source string) *BookshelvesVolumesListCall {
5144	c.urlParams_.Set("source", source)
5145	return c
5146}
5147
5148// StartIndex sets the optional parameter "startIndex": Index of the
5149// first element to return (starts at 0)
5150func (c *BookshelvesVolumesListCall) StartIndex(startIndex int64) *BookshelvesVolumesListCall {
5151	c.urlParams_.Set("startIndex", fmt.Sprint(startIndex))
5152	return c
5153}
5154
5155// Fields allows partial responses to be retrieved. See
5156// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5157// for more information.
5158func (c *BookshelvesVolumesListCall) Fields(s ...googleapi.Field) *BookshelvesVolumesListCall {
5159	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5160	return c
5161}
5162
5163// IfNoneMatch sets the optional parameter which makes the operation
5164// fail if the object's ETag matches the given value. This is useful for
5165// getting updates only after the object has changed since the last
5166// request. Use googleapi.IsNotModified to check whether the response
5167// error from Do is the result of In-None-Match.
5168func (c *BookshelvesVolumesListCall) IfNoneMatch(entityTag string) *BookshelvesVolumesListCall {
5169	c.ifNoneMatch_ = entityTag
5170	return c
5171}
5172
5173// Context sets the context to be used in this call's Do method. Any
5174// pending HTTP request will be aborted if the provided context is
5175// canceled.
5176func (c *BookshelvesVolumesListCall) Context(ctx context.Context) *BookshelvesVolumesListCall {
5177	c.ctx_ = ctx
5178	return c
5179}
5180
5181// Header returns an http.Header that can be modified by the caller to
5182// add HTTP headers to the request.
5183func (c *BookshelvesVolumesListCall) Header() http.Header {
5184	if c.header_ == nil {
5185		c.header_ = make(http.Header)
5186	}
5187	return c.header_
5188}
5189
5190func (c *BookshelvesVolumesListCall) doRequest(alt string) (*http.Response, error) {
5191	reqHeaders := make(http.Header)
5192	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
5193	for k, v := range c.header_ {
5194		reqHeaders[k] = v
5195	}
5196	reqHeaders.Set("User-Agent", c.s.userAgent())
5197	if c.ifNoneMatch_ != "" {
5198		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
5199	}
5200	var body io.Reader = nil
5201	c.urlParams_.Set("alt", alt)
5202	c.urlParams_.Set("prettyPrint", "false")
5203	urls := googleapi.ResolveRelative(c.s.BasePath, "users/{userId}/bookshelves/{shelf}/volumes")
5204	urls += "?" + c.urlParams_.Encode()
5205	req, err := http.NewRequest("GET", urls, body)
5206	if err != nil {
5207		return nil, err
5208	}
5209	req.Header = reqHeaders
5210	googleapi.Expand(req.URL, map[string]string{
5211		"userId": c.userId,
5212		"shelf":  c.shelf,
5213	})
5214	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5215}
5216
5217// Do executes the "books.bookshelves.volumes.list" call.
5218// Exactly one of *Volumes or error will be non-nil. Any non-2xx status
5219// code is an error. Response headers are in either
5220// *Volumes.ServerResponse.Header or (if a response was returned at all)
5221// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
5222// check whether the returned error was because http.StatusNotModified
5223// was returned.
5224func (c *BookshelvesVolumesListCall) Do(opts ...googleapi.CallOption) (*Volumes, error) {
5225	gensupport.SetOptions(c.urlParams_, opts...)
5226	res, err := c.doRequest("json")
5227	if res != nil && res.StatusCode == http.StatusNotModified {
5228		if res.Body != nil {
5229			res.Body.Close()
5230		}
5231		return nil, &googleapi.Error{
5232			Code:   res.StatusCode,
5233			Header: res.Header,
5234		}
5235	}
5236	if err != nil {
5237		return nil, err
5238	}
5239	defer googleapi.CloseBody(res)
5240	if err := googleapi.CheckResponse(res); err != nil {
5241		return nil, err
5242	}
5243	ret := &Volumes{
5244		ServerResponse: googleapi.ServerResponse{
5245			Header:         res.Header,
5246			HTTPStatusCode: res.StatusCode,
5247		},
5248	}
5249	target := &ret
5250	if err := gensupport.DecodeResponse(target, res); err != nil {
5251		return nil, err
5252	}
5253	return ret, nil
5254	// {
5255	//   "description": "Retrieves volumes in a specific bookshelf for the specified user.",
5256	//   "httpMethod": "GET",
5257	//   "id": "books.bookshelves.volumes.list",
5258	//   "parameterOrder": [
5259	//     "userId",
5260	//     "shelf"
5261	//   ],
5262	//   "parameters": {
5263	//     "maxResults": {
5264	//       "description": "Maximum number of results to return",
5265	//       "format": "uint32",
5266	//       "location": "query",
5267	//       "minimum": "0",
5268	//       "type": "integer"
5269	//     },
5270	//     "shelf": {
5271	//       "description": "ID of bookshelf to retrieve volumes.",
5272	//       "location": "path",
5273	//       "required": true,
5274	//       "type": "string"
5275	//     },
5276	//     "showPreorders": {
5277	//       "description": "Set to true to show pre-ordered books. Defaults to false.",
5278	//       "location": "query",
5279	//       "type": "boolean"
5280	//     },
5281	//     "source": {
5282	//       "description": "String to identify the originator of this request.",
5283	//       "location": "query",
5284	//       "type": "string"
5285	//     },
5286	//     "startIndex": {
5287	//       "description": "Index of the first element to return (starts at 0)",
5288	//       "format": "uint32",
5289	//       "location": "query",
5290	//       "minimum": "0",
5291	//       "type": "integer"
5292	//     },
5293	//     "userId": {
5294	//       "description": "ID of user for whom to retrieve bookshelf volumes.",
5295	//       "location": "path",
5296	//       "required": true,
5297	//       "type": "string"
5298	//     }
5299	//   },
5300	//   "path": "users/{userId}/bookshelves/{shelf}/volumes",
5301	//   "response": {
5302	//     "$ref": "Volumes"
5303	//   },
5304	//   "scopes": [
5305	//     "https://www.googleapis.com/auth/books"
5306	//   ]
5307	// }
5308
5309}
5310
5311// method id "books.cloudloading.addBook":
5312
5313type CloudloadingAddBookCall struct {
5314	s          *Service
5315	urlParams_ gensupport.URLParams
5316	ctx_       context.Context
5317	header_    http.Header
5318}
5319
5320// AddBook:
5321func (r *CloudloadingService) AddBook() *CloudloadingAddBookCall {
5322	c := &CloudloadingAddBookCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5323	return c
5324}
5325
5326// DriveDocumentId sets the optional parameter "drive_document_id": A
5327// drive document id. The upload_client_token must not be set.
5328func (c *CloudloadingAddBookCall) DriveDocumentId(driveDocumentId string) *CloudloadingAddBookCall {
5329	c.urlParams_.Set("drive_document_id", driveDocumentId)
5330	return c
5331}
5332
5333// MimeType sets the optional parameter "mime_type": The document MIME
5334// type. It can be set only if the drive_document_id is set.
5335func (c *CloudloadingAddBookCall) MimeType(mimeType string) *CloudloadingAddBookCall {
5336	c.urlParams_.Set("mime_type", mimeType)
5337	return c
5338}
5339
5340// Name sets the optional parameter "name": The document name. It can be
5341// set only if the drive_document_id is set.
5342func (c *CloudloadingAddBookCall) Name(name string) *CloudloadingAddBookCall {
5343	c.urlParams_.Set("name", name)
5344	return c
5345}
5346
5347// UploadClientToken sets the optional parameter "upload_client_token":
5348func (c *CloudloadingAddBookCall) UploadClientToken(uploadClientToken string) *CloudloadingAddBookCall {
5349	c.urlParams_.Set("upload_client_token", uploadClientToken)
5350	return c
5351}
5352
5353// Fields allows partial responses to be retrieved. See
5354// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5355// for more information.
5356func (c *CloudloadingAddBookCall) Fields(s ...googleapi.Field) *CloudloadingAddBookCall {
5357	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5358	return c
5359}
5360
5361// Context sets the context to be used in this call's Do method. Any
5362// pending HTTP request will be aborted if the provided context is
5363// canceled.
5364func (c *CloudloadingAddBookCall) Context(ctx context.Context) *CloudloadingAddBookCall {
5365	c.ctx_ = ctx
5366	return c
5367}
5368
5369// Header returns an http.Header that can be modified by the caller to
5370// add HTTP headers to the request.
5371func (c *CloudloadingAddBookCall) Header() http.Header {
5372	if c.header_ == nil {
5373		c.header_ = make(http.Header)
5374	}
5375	return c.header_
5376}
5377
5378func (c *CloudloadingAddBookCall) doRequest(alt string) (*http.Response, error) {
5379	reqHeaders := make(http.Header)
5380	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
5381	for k, v := range c.header_ {
5382		reqHeaders[k] = v
5383	}
5384	reqHeaders.Set("User-Agent", c.s.userAgent())
5385	var body io.Reader = nil
5386	c.urlParams_.Set("alt", alt)
5387	c.urlParams_.Set("prettyPrint", "false")
5388	urls := googleapi.ResolveRelative(c.s.BasePath, "cloudloading/addBook")
5389	urls += "?" + c.urlParams_.Encode()
5390	req, err := http.NewRequest("POST", urls, body)
5391	if err != nil {
5392		return nil, err
5393	}
5394	req.Header = reqHeaders
5395	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5396}
5397
5398// Do executes the "books.cloudloading.addBook" call.
5399// Exactly one of *BooksCloudloadingResource or error will be non-nil.
5400// Any non-2xx status code is an error. Response headers are in either
5401// *BooksCloudloadingResource.ServerResponse.Header or (if a response
5402// was returned at all) in error.(*googleapi.Error).Header. Use
5403// googleapi.IsNotModified to check whether the returned error was
5404// because http.StatusNotModified was returned.
5405func (c *CloudloadingAddBookCall) Do(opts ...googleapi.CallOption) (*BooksCloudloadingResource, error) {
5406	gensupport.SetOptions(c.urlParams_, opts...)
5407	res, err := c.doRequest("json")
5408	if res != nil && res.StatusCode == http.StatusNotModified {
5409		if res.Body != nil {
5410			res.Body.Close()
5411		}
5412		return nil, &googleapi.Error{
5413			Code:   res.StatusCode,
5414			Header: res.Header,
5415		}
5416	}
5417	if err != nil {
5418		return nil, err
5419	}
5420	defer googleapi.CloseBody(res)
5421	if err := googleapi.CheckResponse(res); err != nil {
5422		return nil, err
5423	}
5424	ret := &BooksCloudloadingResource{
5425		ServerResponse: googleapi.ServerResponse{
5426			Header:         res.Header,
5427			HTTPStatusCode: res.StatusCode,
5428		},
5429	}
5430	target := &ret
5431	if err := gensupport.DecodeResponse(target, res); err != nil {
5432		return nil, err
5433	}
5434	return ret, nil
5435	// {
5436	//   "description": "",
5437	//   "httpMethod": "POST",
5438	//   "id": "books.cloudloading.addBook",
5439	//   "parameters": {
5440	//     "drive_document_id": {
5441	//       "description": "A drive document id. The upload_client_token must not be set.",
5442	//       "location": "query",
5443	//       "type": "string"
5444	//     },
5445	//     "mime_type": {
5446	//       "description": "The document MIME type. It can be set only if the drive_document_id is set.",
5447	//       "location": "query",
5448	//       "type": "string"
5449	//     },
5450	//     "name": {
5451	//       "description": "The document name. It can be set only if the drive_document_id is set.",
5452	//       "location": "query",
5453	//       "type": "string"
5454	//     },
5455	//     "upload_client_token": {
5456	//       "location": "query",
5457	//       "type": "string"
5458	//     }
5459	//   },
5460	//   "path": "cloudloading/addBook",
5461	//   "response": {
5462	//     "$ref": "BooksCloudloadingResource"
5463	//   },
5464	//   "scopes": [
5465	//     "https://www.googleapis.com/auth/books"
5466	//   ]
5467	// }
5468
5469}
5470
5471// method id "books.cloudloading.deleteBook":
5472
5473type CloudloadingDeleteBookCall struct {
5474	s          *Service
5475	urlParams_ gensupport.URLParams
5476	ctx_       context.Context
5477	header_    http.Header
5478}
5479
5480// DeleteBook: Remove the book and its contents
5481func (r *CloudloadingService) DeleteBook(volumeId string) *CloudloadingDeleteBookCall {
5482	c := &CloudloadingDeleteBookCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5483	c.urlParams_.Set("volumeId", volumeId)
5484	return c
5485}
5486
5487// Fields allows partial responses to be retrieved. See
5488// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5489// for more information.
5490func (c *CloudloadingDeleteBookCall) Fields(s ...googleapi.Field) *CloudloadingDeleteBookCall {
5491	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5492	return c
5493}
5494
5495// Context sets the context to be used in this call's Do method. Any
5496// pending HTTP request will be aborted if the provided context is
5497// canceled.
5498func (c *CloudloadingDeleteBookCall) Context(ctx context.Context) *CloudloadingDeleteBookCall {
5499	c.ctx_ = ctx
5500	return c
5501}
5502
5503// Header returns an http.Header that can be modified by the caller to
5504// add HTTP headers to the request.
5505func (c *CloudloadingDeleteBookCall) Header() http.Header {
5506	if c.header_ == nil {
5507		c.header_ = make(http.Header)
5508	}
5509	return c.header_
5510}
5511
5512func (c *CloudloadingDeleteBookCall) doRequest(alt string) (*http.Response, error) {
5513	reqHeaders := make(http.Header)
5514	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
5515	for k, v := range c.header_ {
5516		reqHeaders[k] = v
5517	}
5518	reqHeaders.Set("User-Agent", c.s.userAgent())
5519	var body io.Reader = nil
5520	c.urlParams_.Set("alt", alt)
5521	c.urlParams_.Set("prettyPrint", "false")
5522	urls := googleapi.ResolveRelative(c.s.BasePath, "cloudloading/deleteBook")
5523	urls += "?" + c.urlParams_.Encode()
5524	req, err := http.NewRequest("POST", urls, body)
5525	if err != nil {
5526		return nil, err
5527	}
5528	req.Header = reqHeaders
5529	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5530}
5531
5532// Do executes the "books.cloudloading.deleteBook" call.
5533func (c *CloudloadingDeleteBookCall) Do(opts ...googleapi.CallOption) error {
5534	gensupport.SetOptions(c.urlParams_, opts...)
5535	res, err := c.doRequest("json")
5536	if err != nil {
5537		return err
5538	}
5539	defer googleapi.CloseBody(res)
5540	if err := googleapi.CheckResponse(res); err != nil {
5541		return err
5542	}
5543	return nil
5544	// {
5545	//   "description": "Remove the book and its contents",
5546	//   "httpMethod": "POST",
5547	//   "id": "books.cloudloading.deleteBook",
5548	//   "parameterOrder": [
5549	//     "volumeId"
5550	//   ],
5551	//   "parameters": {
5552	//     "volumeId": {
5553	//       "description": "The id of the book to be removed.",
5554	//       "location": "query",
5555	//       "required": true,
5556	//       "type": "string"
5557	//     }
5558	//   },
5559	//   "path": "cloudloading/deleteBook",
5560	//   "scopes": [
5561	//     "https://www.googleapis.com/auth/books"
5562	//   ]
5563	// }
5564
5565}
5566
5567// method id "books.cloudloading.updateBook":
5568
5569type CloudloadingUpdateBookCall struct {
5570	s                         *Service
5571	bookscloudloadingresource *BooksCloudloadingResource
5572	urlParams_                gensupport.URLParams
5573	ctx_                      context.Context
5574	header_                   http.Header
5575}
5576
5577// UpdateBook:
5578func (r *CloudloadingService) UpdateBook(bookscloudloadingresource *BooksCloudloadingResource) *CloudloadingUpdateBookCall {
5579	c := &CloudloadingUpdateBookCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5580	c.bookscloudloadingresource = bookscloudloadingresource
5581	return c
5582}
5583
5584// Fields allows partial responses to be retrieved. See
5585// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5586// for more information.
5587func (c *CloudloadingUpdateBookCall) Fields(s ...googleapi.Field) *CloudloadingUpdateBookCall {
5588	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5589	return c
5590}
5591
5592// Context sets the context to be used in this call's Do method. Any
5593// pending HTTP request will be aborted if the provided context is
5594// canceled.
5595func (c *CloudloadingUpdateBookCall) Context(ctx context.Context) *CloudloadingUpdateBookCall {
5596	c.ctx_ = ctx
5597	return c
5598}
5599
5600// Header returns an http.Header that can be modified by the caller to
5601// add HTTP headers to the request.
5602func (c *CloudloadingUpdateBookCall) Header() http.Header {
5603	if c.header_ == nil {
5604		c.header_ = make(http.Header)
5605	}
5606	return c.header_
5607}
5608
5609func (c *CloudloadingUpdateBookCall) doRequest(alt string) (*http.Response, error) {
5610	reqHeaders := make(http.Header)
5611	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
5612	for k, v := range c.header_ {
5613		reqHeaders[k] = v
5614	}
5615	reqHeaders.Set("User-Agent", c.s.userAgent())
5616	var body io.Reader = nil
5617	body, err := googleapi.WithoutDataWrapper.JSONReader(c.bookscloudloadingresource)
5618	if err != nil {
5619		return nil, err
5620	}
5621	reqHeaders.Set("Content-Type", "application/json")
5622	c.urlParams_.Set("alt", alt)
5623	c.urlParams_.Set("prettyPrint", "false")
5624	urls := googleapi.ResolveRelative(c.s.BasePath, "cloudloading/updateBook")
5625	urls += "?" + c.urlParams_.Encode()
5626	req, err := http.NewRequest("POST", urls, body)
5627	if err != nil {
5628		return nil, err
5629	}
5630	req.Header = reqHeaders
5631	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5632}
5633
5634// Do executes the "books.cloudloading.updateBook" call.
5635// Exactly one of *BooksCloudloadingResource or error will be non-nil.
5636// Any non-2xx status code is an error. Response headers are in either
5637// *BooksCloudloadingResource.ServerResponse.Header or (if a response
5638// was returned at all) in error.(*googleapi.Error).Header. Use
5639// googleapi.IsNotModified to check whether the returned error was
5640// because http.StatusNotModified was returned.
5641func (c *CloudloadingUpdateBookCall) Do(opts ...googleapi.CallOption) (*BooksCloudloadingResource, error) {
5642	gensupport.SetOptions(c.urlParams_, opts...)
5643	res, err := c.doRequest("json")
5644	if res != nil && res.StatusCode == http.StatusNotModified {
5645		if res.Body != nil {
5646			res.Body.Close()
5647		}
5648		return nil, &googleapi.Error{
5649			Code:   res.StatusCode,
5650			Header: res.Header,
5651		}
5652	}
5653	if err != nil {
5654		return nil, err
5655	}
5656	defer googleapi.CloseBody(res)
5657	if err := googleapi.CheckResponse(res); err != nil {
5658		return nil, err
5659	}
5660	ret := &BooksCloudloadingResource{
5661		ServerResponse: googleapi.ServerResponse{
5662			Header:         res.Header,
5663			HTTPStatusCode: res.StatusCode,
5664		},
5665	}
5666	target := &ret
5667	if err := gensupport.DecodeResponse(target, res); err != nil {
5668		return nil, err
5669	}
5670	return ret, nil
5671	// {
5672	//   "description": "",
5673	//   "httpMethod": "POST",
5674	//   "id": "books.cloudloading.updateBook",
5675	//   "path": "cloudloading/updateBook",
5676	//   "request": {
5677	//     "$ref": "BooksCloudloadingResource"
5678	//   },
5679	//   "response": {
5680	//     "$ref": "BooksCloudloadingResource"
5681	//   },
5682	//   "scopes": [
5683	//     "https://www.googleapis.com/auth/books"
5684	//   ]
5685	// }
5686
5687}
5688
5689// method id "books.dictionary.listOfflineMetadata":
5690
5691type DictionaryListOfflineMetadataCall struct {
5692	s            *Service
5693	urlParams_   gensupport.URLParams
5694	ifNoneMatch_ string
5695	ctx_         context.Context
5696	header_      http.Header
5697}
5698
5699// ListOfflineMetadata: Returns a list of offline dictionary metadata
5700// available
5701func (r *DictionaryService) ListOfflineMetadata(cpksver string) *DictionaryListOfflineMetadataCall {
5702	c := &DictionaryListOfflineMetadataCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5703	c.urlParams_.Set("cpksver", cpksver)
5704	return c
5705}
5706
5707// Fields allows partial responses to be retrieved. See
5708// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5709// for more information.
5710func (c *DictionaryListOfflineMetadataCall) Fields(s ...googleapi.Field) *DictionaryListOfflineMetadataCall {
5711	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5712	return c
5713}
5714
5715// IfNoneMatch sets the optional parameter which makes the operation
5716// fail if the object's ETag matches the given value. This is useful for
5717// getting updates only after the object has changed since the last
5718// request. Use googleapi.IsNotModified to check whether the response
5719// error from Do is the result of In-None-Match.
5720func (c *DictionaryListOfflineMetadataCall) IfNoneMatch(entityTag string) *DictionaryListOfflineMetadataCall {
5721	c.ifNoneMatch_ = entityTag
5722	return c
5723}
5724
5725// Context sets the context to be used in this call's Do method. Any
5726// pending HTTP request will be aborted if the provided context is
5727// canceled.
5728func (c *DictionaryListOfflineMetadataCall) Context(ctx context.Context) *DictionaryListOfflineMetadataCall {
5729	c.ctx_ = ctx
5730	return c
5731}
5732
5733// Header returns an http.Header that can be modified by the caller to
5734// add HTTP headers to the request.
5735func (c *DictionaryListOfflineMetadataCall) Header() http.Header {
5736	if c.header_ == nil {
5737		c.header_ = make(http.Header)
5738	}
5739	return c.header_
5740}
5741
5742func (c *DictionaryListOfflineMetadataCall) doRequest(alt string) (*http.Response, error) {
5743	reqHeaders := make(http.Header)
5744	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
5745	for k, v := range c.header_ {
5746		reqHeaders[k] = v
5747	}
5748	reqHeaders.Set("User-Agent", c.s.userAgent())
5749	if c.ifNoneMatch_ != "" {
5750		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
5751	}
5752	var body io.Reader = nil
5753	c.urlParams_.Set("alt", alt)
5754	c.urlParams_.Set("prettyPrint", "false")
5755	urls := googleapi.ResolveRelative(c.s.BasePath, "dictionary/listOfflineMetadata")
5756	urls += "?" + c.urlParams_.Encode()
5757	req, err := http.NewRequest("GET", urls, body)
5758	if err != nil {
5759		return nil, err
5760	}
5761	req.Header = reqHeaders
5762	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5763}
5764
5765// Do executes the "books.dictionary.listOfflineMetadata" call.
5766// Exactly one of *Metadata or error will be non-nil. Any non-2xx status
5767// code is an error. Response headers are in either
5768// *Metadata.ServerResponse.Header or (if a response was returned at
5769// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
5770// to check whether the returned error was because
5771// http.StatusNotModified was returned.
5772func (c *DictionaryListOfflineMetadataCall) Do(opts ...googleapi.CallOption) (*Metadata, error) {
5773	gensupport.SetOptions(c.urlParams_, opts...)
5774	res, err := c.doRequest("json")
5775	if res != nil && res.StatusCode == http.StatusNotModified {
5776		if res.Body != nil {
5777			res.Body.Close()
5778		}
5779		return nil, &googleapi.Error{
5780			Code:   res.StatusCode,
5781			Header: res.Header,
5782		}
5783	}
5784	if err != nil {
5785		return nil, err
5786	}
5787	defer googleapi.CloseBody(res)
5788	if err := googleapi.CheckResponse(res); err != nil {
5789		return nil, err
5790	}
5791	ret := &Metadata{
5792		ServerResponse: googleapi.ServerResponse{
5793			Header:         res.Header,
5794			HTTPStatusCode: res.StatusCode,
5795		},
5796	}
5797	target := &ret
5798	if err := gensupport.DecodeResponse(target, res); err != nil {
5799		return nil, err
5800	}
5801	return ret, nil
5802	// {
5803	//   "description": "Returns a list of offline dictionary metadata available",
5804	//   "httpMethod": "GET",
5805	//   "id": "books.dictionary.listOfflineMetadata",
5806	//   "parameterOrder": [
5807	//     "cpksver"
5808	//   ],
5809	//   "parameters": {
5810	//     "cpksver": {
5811	//       "description": "The device/version ID from which to request the data.",
5812	//       "location": "query",
5813	//       "required": true,
5814	//       "type": "string"
5815	//     }
5816	//   },
5817	//   "path": "dictionary/listOfflineMetadata",
5818	//   "response": {
5819	//     "$ref": "Metadata"
5820	//   },
5821	//   "scopes": [
5822	//     "https://www.googleapis.com/auth/books"
5823	//   ]
5824	// }
5825
5826}
5827
5828// method id "books.familysharing.getFamilyInfo":
5829
5830type FamilysharingGetFamilyInfoCall struct {
5831	s            *Service
5832	urlParams_   gensupport.URLParams
5833	ifNoneMatch_ string
5834	ctx_         context.Context
5835	header_      http.Header
5836}
5837
5838// GetFamilyInfo: Gets information regarding the family that the user is
5839// part of.
5840func (r *FamilysharingService) GetFamilyInfo() *FamilysharingGetFamilyInfoCall {
5841	c := &FamilysharingGetFamilyInfoCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5842	return c
5843}
5844
5845// Source sets the optional parameter "source": String to identify the
5846// originator of this request.
5847func (c *FamilysharingGetFamilyInfoCall) Source(source string) *FamilysharingGetFamilyInfoCall {
5848	c.urlParams_.Set("source", source)
5849	return c
5850}
5851
5852// Fields allows partial responses to be retrieved. See
5853// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5854// for more information.
5855func (c *FamilysharingGetFamilyInfoCall) Fields(s ...googleapi.Field) *FamilysharingGetFamilyInfoCall {
5856	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5857	return c
5858}
5859
5860// IfNoneMatch sets the optional parameter which makes the operation
5861// fail if the object's ETag matches the given value. This is useful for
5862// getting updates only after the object has changed since the last
5863// request. Use googleapi.IsNotModified to check whether the response
5864// error from Do is the result of In-None-Match.
5865func (c *FamilysharingGetFamilyInfoCall) IfNoneMatch(entityTag string) *FamilysharingGetFamilyInfoCall {
5866	c.ifNoneMatch_ = entityTag
5867	return c
5868}
5869
5870// Context sets the context to be used in this call's Do method. Any
5871// pending HTTP request will be aborted if the provided context is
5872// canceled.
5873func (c *FamilysharingGetFamilyInfoCall) Context(ctx context.Context) *FamilysharingGetFamilyInfoCall {
5874	c.ctx_ = ctx
5875	return c
5876}
5877
5878// Header returns an http.Header that can be modified by the caller to
5879// add HTTP headers to the request.
5880func (c *FamilysharingGetFamilyInfoCall) Header() http.Header {
5881	if c.header_ == nil {
5882		c.header_ = make(http.Header)
5883	}
5884	return c.header_
5885}
5886
5887func (c *FamilysharingGetFamilyInfoCall) doRequest(alt string) (*http.Response, error) {
5888	reqHeaders := make(http.Header)
5889	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
5890	for k, v := range c.header_ {
5891		reqHeaders[k] = v
5892	}
5893	reqHeaders.Set("User-Agent", c.s.userAgent())
5894	if c.ifNoneMatch_ != "" {
5895		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
5896	}
5897	var body io.Reader = nil
5898	c.urlParams_.Set("alt", alt)
5899	c.urlParams_.Set("prettyPrint", "false")
5900	urls := googleapi.ResolveRelative(c.s.BasePath, "familysharing/getFamilyInfo")
5901	urls += "?" + c.urlParams_.Encode()
5902	req, err := http.NewRequest("GET", urls, body)
5903	if err != nil {
5904		return nil, err
5905	}
5906	req.Header = reqHeaders
5907	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5908}
5909
5910// Do executes the "books.familysharing.getFamilyInfo" call.
5911// Exactly one of *FamilyInfo or error will be non-nil. Any non-2xx
5912// status code is an error. Response headers are in either
5913// *FamilyInfo.ServerResponse.Header or (if a response was returned at
5914// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
5915// to check whether the returned error was because
5916// http.StatusNotModified was returned.
5917func (c *FamilysharingGetFamilyInfoCall) Do(opts ...googleapi.CallOption) (*FamilyInfo, error) {
5918	gensupport.SetOptions(c.urlParams_, opts...)
5919	res, err := c.doRequest("json")
5920	if res != nil && res.StatusCode == http.StatusNotModified {
5921		if res.Body != nil {
5922			res.Body.Close()
5923		}
5924		return nil, &googleapi.Error{
5925			Code:   res.StatusCode,
5926			Header: res.Header,
5927		}
5928	}
5929	if err != nil {
5930		return nil, err
5931	}
5932	defer googleapi.CloseBody(res)
5933	if err := googleapi.CheckResponse(res); err != nil {
5934		return nil, err
5935	}
5936	ret := &FamilyInfo{
5937		ServerResponse: googleapi.ServerResponse{
5938			Header:         res.Header,
5939			HTTPStatusCode: res.StatusCode,
5940		},
5941	}
5942	target := &ret
5943	if err := gensupport.DecodeResponse(target, res); err != nil {
5944		return nil, err
5945	}
5946	return ret, nil
5947	// {
5948	//   "description": "Gets information regarding the family that the user is part of.",
5949	//   "httpMethod": "GET",
5950	//   "id": "books.familysharing.getFamilyInfo",
5951	//   "parameters": {
5952	//     "source": {
5953	//       "description": "String to identify the originator of this request.",
5954	//       "location": "query",
5955	//       "type": "string"
5956	//     }
5957	//   },
5958	//   "path": "familysharing/getFamilyInfo",
5959	//   "response": {
5960	//     "$ref": "FamilyInfo"
5961	//   },
5962	//   "scopes": [
5963	//     "https://www.googleapis.com/auth/books"
5964	//   ]
5965	// }
5966
5967}
5968
5969// method id "books.familysharing.share":
5970
5971type FamilysharingShareCall struct {
5972	s          *Service
5973	urlParams_ gensupport.URLParams
5974	ctx_       context.Context
5975	header_    http.Header
5976}
5977
5978// Share: Initiates sharing of the content with the user's family. Empty
5979// response indicates success.
5980func (r *FamilysharingService) Share() *FamilysharingShareCall {
5981	c := &FamilysharingShareCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5982	return c
5983}
5984
5985// DocId sets the optional parameter "docId": The docid to share.
5986func (c *FamilysharingShareCall) DocId(docId string) *FamilysharingShareCall {
5987	c.urlParams_.Set("docId", docId)
5988	return c
5989}
5990
5991// Source sets the optional parameter "source": String to identify the
5992// originator of this request.
5993func (c *FamilysharingShareCall) Source(source string) *FamilysharingShareCall {
5994	c.urlParams_.Set("source", source)
5995	return c
5996}
5997
5998// VolumeId sets the optional parameter "volumeId": The volume to share.
5999func (c *FamilysharingShareCall) VolumeId(volumeId string) *FamilysharingShareCall {
6000	c.urlParams_.Set("volumeId", volumeId)
6001	return c
6002}
6003
6004// Fields allows partial responses to be retrieved. See
6005// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6006// for more information.
6007func (c *FamilysharingShareCall) Fields(s ...googleapi.Field) *FamilysharingShareCall {
6008	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6009	return c
6010}
6011
6012// Context sets the context to be used in this call's Do method. Any
6013// pending HTTP request will be aborted if the provided context is
6014// canceled.
6015func (c *FamilysharingShareCall) Context(ctx context.Context) *FamilysharingShareCall {
6016	c.ctx_ = ctx
6017	return c
6018}
6019
6020// Header returns an http.Header that can be modified by the caller to
6021// add HTTP headers to the request.
6022func (c *FamilysharingShareCall) Header() http.Header {
6023	if c.header_ == nil {
6024		c.header_ = make(http.Header)
6025	}
6026	return c.header_
6027}
6028
6029func (c *FamilysharingShareCall) doRequest(alt string) (*http.Response, error) {
6030	reqHeaders := make(http.Header)
6031	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
6032	for k, v := range c.header_ {
6033		reqHeaders[k] = v
6034	}
6035	reqHeaders.Set("User-Agent", c.s.userAgent())
6036	var body io.Reader = nil
6037	c.urlParams_.Set("alt", alt)
6038	c.urlParams_.Set("prettyPrint", "false")
6039	urls := googleapi.ResolveRelative(c.s.BasePath, "familysharing/share")
6040	urls += "?" + c.urlParams_.Encode()
6041	req, err := http.NewRequest("POST", urls, body)
6042	if err != nil {
6043		return nil, err
6044	}
6045	req.Header = reqHeaders
6046	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6047}
6048
6049// Do executes the "books.familysharing.share" call.
6050func (c *FamilysharingShareCall) Do(opts ...googleapi.CallOption) error {
6051	gensupport.SetOptions(c.urlParams_, opts...)
6052	res, err := c.doRequest("json")
6053	if err != nil {
6054		return err
6055	}
6056	defer googleapi.CloseBody(res)
6057	if err := googleapi.CheckResponse(res); err != nil {
6058		return err
6059	}
6060	return nil
6061	// {
6062	//   "description": "Initiates sharing of the content with the user's family. Empty response indicates success.",
6063	//   "httpMethod": "POST",
6064	//   "id": "books.familysharing.share",
6065	//   "parameters": {
6066	//     "docId": {
6067	//       "description": "The docid to share.",
6068	//       "location": "query",
6069	//       "type": "string"
6070	//     },
6071	//     "source": {
6072	//       "description": "String to identify the originator of this request.",
6073	//       "location": "query",
6074	//       "type": "string"
6075	//     },
6076	//     "volumeId": {
6077	//       "description": "The volume to share.",
6078	//       "location": "query",
6079	//       "type": "string"
6080	//     }
6081	//   },
6082	//   "path": "familysharing/share",
6083	//   "scopes": [
6084	//     "https://www.googleapis.com/auth/books"
6085	//   ]
6086	// }
6087
6088}
6089
6090// method id "books.familysharing.unshare":
6091
6092type FamilysharingUnshareCall struct {
6093	s          *Service
6094	urlParams_ gensupport.URLParams
6095	ctx_       context.Context
6096	header_    http.Header
6097}
6098
6099// Unshare: Initiates revoking content that has already been shared with
6100// the user's family. Empty response indicates success.
6101func (r *FamilysharingService) Unshare() *FamilysharingUnshareCall {
6102	c := &FamilysharingUnshareCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6103	return c
6104}
6105
6106// DocId sets the optional parameter "docId": The docid to unshare.
6107func (c *FamilysharingUnshareCall) DocId(docId string) *FamilysharingUnshareCall {
6108	c.urlParams_.Set("docId", docId)
6109	return c
6110}
6111
6112// Source sets the optional parameter "source": String to identify the
6113// originator of this request.
6114func (c *FamilysharingUnshareCall) Source(source string) *FamilysharingUnshareCall {
6115	c.urlParams_.Set("source", source)
6116	return c
6117}
6118
6119// VolumeId sets the optional parameter "volumeId": The volume to
6120// unshare.
6121func (c *FamilysharingUnshareCall) VolumeId(volumeId string) *FamilysharingUnshareCall {
6122	c.urlParams_.Set("volumeId", volumeId)
6123	return c
6124}
6125
6126// Fields allows partial responses to be retrieved. See
6127// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6128// for more information.
6129func (c *FamilysharingUnshareCall) Fields(s ...googleapi.Field) *FamilysharingUnshareCall {
6130	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6131	return c
6132}
6133
6134// Context sets the context to be used in this call's Do method. Any
6135// pending HTTP request will be aborted if the provided context is
6136// canceled.
6137func (c *FamilysharingUnshareCall) Context(ctx context.Context) *FamilysharingUnshareCall {
6138	c.ctx_ = ctx
6139	return c
6140}
6141
6142// Header returns an http.Header that can be modified by the caller to
6143// add HTTP headers to the request.
6144func (c *FamilysharingUnshareCall) Header() http.Header {
6145	if c.header_ == nil {
6146		c.header_ = make(http.Header)
6147	}
6148	return c.header_
6149}
6150
6151func (c *FamilysharingUnshareCall) doRequest(alt string) (*http.Response, error) {
6152	reqHeaders := make(http.Header)
6153	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
6154	for k, v := range c.header_ {
6155		reqHeaders[k] = v
6156	}
6157	reqHeaders.Set("User-Agent", c.s.userAgent())
6158	var body io.Reader = nil
6159	c.urlParams_.Set("alt", alt)
6160	c.urlParams_.Set("prettyPrint", "false")
6161	urls := googleapi.ResolveRelative(c.s.BasePath, "familysharing/unshare")
6162	urls += "?" + c.urlParams_.Encode()
6163	req, err := http.NewRequest("POST", urls, body)
6164	if err != nil {
6165		return nil, err
6166	}
6167	req.Header = reqHeaders
6168	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6169}
6170
6171// Do executes the "books.familysharing.unshare" call.
6172func (c *FamilysharingUnshareCall) Do(opts ...googleapi.CallOption) error {
6173	gensupport.SetOptions(c.urlParams_, opts...)
6174	res, err := c.doRequest("json")
6175	if err != nil {
6176		return err
6177	}
6178	defer googleapi.CloseBody(res)
6179	if err := googleapi.CheckResponse(res); err != nil {
6180		return err
6181	}
6182	return nil
6183	// {
6184	//   "description": "Initiates revoking content that has already been shared with the user's family. Empty response indicates success.",
6185	//   "httpMethod": "POST",
6186	//   "id": "books.familysharing.unshare",
6187	//   "parameters": {
6188	//     "docId": {
6189	//       "description": "The docid to unshare.",
6190	//       "location": "query",
6191	//       "type": "string"
6192	//     },
6193	//     "source": {
6194	//       "description": "String to identify the originator of this request.",
6195	//       "location": "query",
6196	//       "type": "string"
6197	//     },
6198	//     "volumeId": {
6199	//       "description": "The volume to unshare.",
6200	//       "location": "query",
6201	//       "type": "string"
6202	//     }
6203	//   },
6204	//   "path": "familysharing/unshare",
6205	//   "scopes": [
6206	//     "https://www.googleapis.com/auth/books"
6207	//   ]
6208	// }
6209
6210}
6211
6212// method id "books.layers.get":
6213
6214type LayersGetCall struct {
6215	s            *Service
6216	volumeId     string
6217	summaryId    string
6218	urlParams_   gensupport.URLParams
6219	ifNoneMatch_ string
6220	ctx_         context.Context
6221	header_      http.Header
6222}
6223
6224// Get: Gets the layer summary for a volume.
6225func (r *LayersService) Get(volumeId string, summaryId string) *LayersGetCall {
6226	c := &LayersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6227	c.volumeId = volumeId
6228	c.summaryId = summaryId
6229	return c
6230}
6231
6232// ContentVersion sets the optional parameter "contentVersion": The
6233// content version for the requested volume.
6234func (c *LayersGetCall) ContentVersion(contentVersion string) *LayersGetCall {
6235	c.urlParams_.Set("contentVersion", contentVersion)
6236	return c
6237}
6238
6239// Source sets the optional parameter "source": String to identify the
6240// originator of this request.
6241func (c *LayersGetCall) Source(source string) *LayersGetCall {
6242	c.urlParams_.Set("source", source)
6243	return c
6244}
6245
6246// Fields allows partial responses to be retrieved. See
6247// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6248// for more information.
6249func (c *LayersGetCall) Fields(s ...googleapi.Field) *LayersGetCall {
6250	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6251	return c
6252}
6253
6254// IfNoneMatch sets the optional parameter which makes the operation
6255// fail if the object's ETag matches the given value. This is useful for
6256// getting updates only after the object has changed since the last
6257// request. Use googleapi.IsNotModified to check whether the response
6258// error from Do is the result of In-None-Match.
6259func (c *LayersGetCall) IfNoneMatch(entityTag string) *LayersGetCall {
6260	c.ifNoneMatch_ = entityTag
6261	return c
6262}
6263
6264// Context sets the context to be used in this call's Do method. Any
6265// pending HTTP request will be aborted if the provided context is
6266// canceled.
6267func (c *LayersGetCall) Context(ctx context.Context) *LayersGetCall {
6268	c.ctx_ = ctx
6269	return c
6270}
6271
6272// Header returns an http.Header that can be modified by the caller to
6273// add HTTP headers to the request.
6274func (c *LayersGetCall) Header() http.Header {
6275	if c.header_ == nil {
6276		c.header_ = make(http.Header)
6277	}
6278	return c.header_
6279}
6280
6281func (c *LayersGetCall) doRequest(alt string) (*http.Response, error) {
6282	reqHeaders := make(http.Header)
6283	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
6284	for k, v := range c.header_ {
6285		reqHeaders[k] = v
6286	}
6287	reqHeaders.Set("User-Agent", c.s.userAgent())
6288	if c.ifNoneMatch_ != "" {
6289		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
6290	}
6291	var body io.Reader = nil
6292	c.urlParams_.Set("alt", alt)
6293	c.urlParams_.Set("prettyPrint", "false")
6294	urls := googleapi.ResolveRelative(c.s.BasePath, "volumes/{volumeId}/layersummary/{summaryId}")
6295	urls += "?" + c.urlParams_.Encode()
6296	req, err := http.NewRequest("GET", urls, body)
6297	if err != nil {
6298		return nil, err
6299	}
6300	req.Header = reqHeaders
6301	googleapi.Expand(req.URL, map[string]string{
6302		"volumeId":  c.volumeId,
6303		"summaryId": c.summaryId,
6304	})
6305	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6306}
6307
6308// Do executes the "books.layers.get" call.
6309// Exactly one of *Layersummary or error will be non-nil. Any non-2xx
6310// status code is an error. Response headers are in either
6311// *Layersummary.ServerResponse.Header or (if a response was returned at
6312// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
6313// to check whether the returned error was because
6314// http.StatusNotModified was returned.
6315func (c *LayersGetCall) Do(opts ...googleapi.CallOption) (*Layersummary, error) {
6316	gensupport.SetOptions(c.urlParams_, opts...)
6317	res, err := c.doRequest("json")
6318	if res != nil && res.StatusCode == http.StatusNotModified {
6319		if res.Body != nil {
6320			res.Body.Close()
6321		}
6322		return nil, &googleapi.Error{
6323			Code:   res.StatusCode,
6324			Header: res.Header,
6325		}
6326	}
6327	if err != nil {
6328		return nil, err
6329	}
6330	defer googleapi.CloseBody(res)
6331	if err := googleapi.CheckResponse(res); err != nil {
6332		return nil, err
6333	}
6334	ret := &Layersummary{
6335		ServerResponse: googleapi.ServerResponse{
6336			Header:         res.Header,
6337			HTTPStatusCode: res.StatusCode,
6338		},
6339	}
6340	target := &ret
6341	if err := gensupport.DecodeResponse(target, res); err != nil {
6342		return nil, err
6343	}
6344	return ret, nil
6345	// {
6346	//   "description": "Gets the layer summary for a volume.",
6347	//   "httpMethod": "GET",
6348	//   "id": "books.layers.get",
6349	//   "parameterOrder": [
6350	//     "volumeId",
6351	//     "summaryId"
6352	//   ],
6353	//   "parameters": {
6354	//     "contentVersion": {
6355	//       "description": "The content version for the requested volume.",
6356	//       "location": "query",
6357	//       "type": "string"
6358	//     },
6359	//     "source": {
6360	//       "description": "String to identify the originator of this request.",
6361	//       "location": "query",
6362	//       "type": "string"
6363	//     },
6364	//     "summaryId": {
6365	//       "description": "The ID for the layer to get the summary for.",
6366	//       "location": "path",
6367	//       "required": true,
6368	//       "type": "string"
6369	//     },
6370	//     "volumeId": {
6371	//       "description": "The volume to retrieve layers for.",
6372	//       "location": "path",
6373	//       "required": true,
6374	//       "type": "string"
6375	//     }
6376	//   },
6377	//   "path": "volumes/{volumeId}/layersummary/{summaryId}",
6378	//   "response": {
6379	//     "$ref": "Layersummary"
6380	//   },
6381	//   "scopes": [
6382	//     "https://www.googleapis.com/auth/books"
6383	//   ]
6384	// }
6385
6386}
6387
6388// method id "books.layers.list":
6389
6390type LayersListCall struct {
6391	s            *Service
6392	volumeId     string
6393	urlParams_   gensupport.URLParams
6394	ifNoneMatch_ string
6395	ctx_         context.Context
6396	header_      http.Header
6397}
6398
6399// List: List the layer summaries for a volume.
6400func (r *LayersService) List(volumeId string) *LayersListCall {
6401	c := &LayersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6402	c.volumeId = volumeId
6403	return c
6404}
6405
6406// ContentVersion sets the optional parameter "contentVersion": The
6407// content version for the requested volume.
6408func (c *LayersListCall) ContentVersion(contentVersion string) *LayersListCall {
6409	c.urlParams_.Set("contentVersion", contentVersion)
6410	return c
6411}
6412
6413// MaxResults sets the optional parameter "maxResults": Maximum number
6414// of results to return
6415func (c *LayersListCall) MaxResults(maxResults int64) *LayersListCall {
6416	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
6417	return c
6418}
6419
6420// PageToken sets the optional parameter "pageToken": The value of the
6421// nextToken from the previous page.
6422func (c *LayersListCall) PageToken(pageToken string) *LayersListCall {
6423	c.urlParams_.Set("pageToken", pageToken)
6424	return c
6425}
6426
6427// Source sets the optional parameter "source": String to identify the
6428// originator of this request.
6429func (c *LayersListCall) Source(source string) *LayersListCall {
6430	c.urlParams_.Set("source", source)
6431	return c
6432}
6433
6434// Fields allows partial responses to be retrieved. See
6435// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6436// for more information.
6437func (c *LayersListCall) Fields(s ...googleapi.Field) *LayersListCall {
6438	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6439	return c
6440}
6441
6442// IfNoneMatch sets the optional parameter which makes the operation
6443// fail if the object's ETag matches the given value. This is useful for
6444// getting updates only after the object has changed since the last
6445// request. Use googleapi.IsNotModified to check whether the response
6446// error from Do is the result of In-None-Match.
6447func (c *LayersListCall) IfNoneMatch(entityTag string) *LayersListCall {
6448	c.ifNoneMatch_ = entityTag
6449	return c
6450}
6451
6452// Context sets the context to be used in this call's Do method. Any
6453// pending HTTP request will be aborted if the provided context is
6454// canceled.
6455func (c *LayersListCall) Context(ctx context.Context) *LayersListCall {
6456	c.ctx_ = ctx
6457	return c
6458}
6459
6460// Header returns an http.Header that can be modified by the caller to
6461// add HTTP headers to the request.
6462func (c *LayersListCall) Header() http.Header {
6463	if c.header_ == nil {
6464		c.header_ = make(http.Header)
6465	}
6466	return c.header_
6467}
6468
6469func (c *LayersListCall) doRequest(alt string) (*http.Response, error) {
6470	reqHeaders := make(http.Header)
6471	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
6472	for k, v := range c.header_ {
6473		reqHeaders[k] = v
6474	}
6475	reqHeaders.Set("User-Agent", c.s.userAgent())
6476	if c.ifNoneMatch_ != "" {
6477		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
6478	}
6479	var body io.Reader = nil
6480	c.urlParams_.Set("alt", alt)
6481	c.urlParams_.Set("prettyPrint", "false")
6482	urls := googleapi.ResolveRelative(c.s.BasePath, "volumes/{volumeId}/layersummary")
6483	urls += "?" + c.urlParams_.Encode()
6484	req, err := http.NewRequest("GET", urls, body)
6485	if err != nil {
6486		return nil, err
6487	}
6488	req.Header = reqHeaders
6489	googleapi.Expand(req.URL, map[string]string{
6490		"volumeId": c.volumeId,
6491	})
6492	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6493}
6494
6495// Do executes the "books.layers.list" call.
6496// Exactly one of *Layersummaries or error will be non-nil. Any non-2xx
6497// status code is an error. Response headers are in either
6498// *Layersummaries.ServerResponse.Header or (if a response was returned
6499// at all) in error.(*googleapi.Error).Header. Use
6500// googleapi.IsNotModified to check whether the returned error was
6501// because http.StatusNotModified was returned.
6502func (c *LayersListCall) Do(opts ...googleapi.CallOption) (*Layersummaries, error) {
6503	gensupport.SetOptions(c.urlParams_, opts...)
6504	res, err := c.doRequest("json")
6505	if res != nil && res.StatusCode == http.StatusNotModified {
6506		if res.Body != nil {
6507			res.Body.Close()
6508		}
6509		return nil, &googleapi.Error{
6510			Code:   res.StatusCode,
6511			Header: res.Header,
6512		}
6513	}
6514	if err != nil {
6515		return nil, err
6516	}
6517	defer googleapi.CloseBody(res)
6518	if err := googleapi.CheckResponse(res); err != nil {
6519		return nil, err
6520	}
6521	ret := &Layersummaries{
6522		ServerResponse: googleapi.ServerResponse{
6523			Header:         res.Header,
6524			HTTPStatusCode: res.StatusCode,
6525		},
6526	}
6527	target := &ret
6528	if err := gensupport.DecodeResponse(target, res); err != nil {
6529		return nil, err
6530	}
6531	return ret, nil
6532	// {
6533	//   "description": "List the layer summaries for a volume.",
6534	//   "httpMethod": "GET",
6535	//   "id": "books.layers.list",
6536	//   "parameterOrder": [
6537	//     "volumeId"
6538	//   ],
6539	//   "parameters": {
6540	//     "contentVersion": {
6541	//       "description": "The content version for the requested volume.",
6542	//       "location": "query",
6543	//       "type": "string"
6544	//     },
6545	//     "maxResults": {
6546	//       "description": "Maximum number of results to return",
6547	//       "format": "uint32",
6548	//       "location": "query",
6549	//       "maximum": "200",
6550	//       "minimum": "0",
6551	//       "type": "integer"
6552	//     },
6553	//     "pageToken": {
6554	//       "description": "The value of the nextToken from the previous page.",
6555	//       "location": "query",
6556	//       "type": "string"
6557	//     },
6558	//     "source": {
6559	//       "description": "String to identify the originator of this request.",
6560	//       "location": "query",
6561	//       "type": "string"
6562	//     },
6563	//     "volumeId": {
6564	//       "description": "The volume to retrieve layers for.",
6565	//       "location": "path",
6566	//       "required": true,
6567	//       "type": "string"
6568	//     }
6569	//   },
6570	//   "path": "volumes/{volumeId}/layersummary",
6571	//   "response": {
6572	//     "$ref": "Layersummaries"
6573	//   },
6574	//   "scopes": [
6575	//     "https://www.googleapis.com/auth/books"
6576	//   ]
6577	// }
6578
6579}
6580
6581// method id "books.layers.annotationData.get":
6582
6583type LayersAnnotationDataGetCall struct {
6584	s                *Service
6585	volumeId         string
6586	layerId          string
6587	annotationDataId string
6588	urlParams_       gensupport.URLParams
6589	ifNoneMatch_     string
6590	ctx_             context.Context
6591	header_          http.Header
6592}
6593
6594// Get: Gets the annotation data.
6595func (r *LayersAnnotationDataService) Get(volumeId string, layerId string, annotationDataId string, contentVersion string) *LayersAnnotationDataGetCall {
6596	c := &LayersAnnotationDataGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6597	c.volumeId = volumeId
6598	c.layerId = layerId
6599	c.annotationDataId = annotationDataId
6600	c.urlParams_.Set("contentVersion", contentVersion)
6601	return c
6602}
6603
6604// AllowWebDefinitions sets the optional parameter
6605// "allowWebDefinitions": For the dictionary layer. Whether or not to
6606// allow web definitions.
6607func (c *LayersAnnotationDataGetCall) AllowWebDefinitions(allowWebDefinitions bool) *LayersAnnotationDataGetCall {
6608	c.urlParams_.Set("allowWebDefinitions", fmt.Sprint(allowWebDefinitions))
6609	return c
6610}
6611
6612// H sets the optional parameter "h": The requested pixel height for any
6613// images. If height is provided width must also be provided.
6614func (c *LayersAnnotationDataGetCall) H(h int64) *LayersAnnotationDataGetCall {
6615	c.urlParams_.Set("h", fmt.Sprint(h))
6616	return c
6617}
6618
6619// Locale sets the optional parameter "locale": The locale information
6620// for the data. ISO-639-1 language and ISO-3166-1 country code. Ex:
6621// 'en_US'.
6622func (c *LayersAnnotationDataGetCall) Locale(locale string) *LayersAnnotationDataGetCall {
6623	c.urlParams_.Set("locale", locale)
6624	return c
6625}
6626
6627// Scale sets the optional parameter "scale": The requested scale for
6628// the image.
6629func (c *LayersAnnotationDataGetCall) Scale(scale int64) *LayersAnnotationDataGetCall {
6630	c.urlParams_.Set("scale", fmt.Sprint(scale))
6631	return c
6632}
6633
6634// Source sets the optional parameter "source": String to identify the
6635// originator of this request.
6636func (c *LayersAnnotationDataGetCall) Source(source string) *LayersAnnotationDataGetCall {
6637	c.urlParams_.Set("source", source)
6638	return c
6639}
6640
6641// W sets the optional parameter "w": The requested pixel width for any
6642// images. If width is provided height must also be provided.
6643func (c *LayersAnnotationDataGetCall) W(w int64) *LayersAnnotationDataGetCall {
6644	c.urlParams_.Set("w", fmt.Sprint(w))
6645	return c
6646}
6647
6648// Fields allows partial responses to be retrieved. See
6649// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6650// for more information.
6651func (c *LayersAnnotationDataGetCall) Fields(s ...googleapi.Field) *LayersAnnotationDataGetCall {
6652	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6653	return c
6654}
6655
6656// IfNoneMatch sets the optional parameter which makes the operation
6657// fail if the object's ETag matches the given value. This is useful for
6658// getting updates only after the object has changed since the last
6659// request. Use googleapi.IsNotModified to check whether the response
6660// error from Do is the result of In-None-Match.
6661func (c *LayersAnnotationDataGetCall) IfNoneMatch(entityTag string) *LayersAnnotationDataGetCall {
6662	c.ifNoneMatch_ = entityTag
6663	return c
6664}
6665
6666// Context sets the context to be used in this call's Do method. Any
6667// pending HTTP request will be aborted if the provided context is
6668// canceled.
6669func (c *LayersAnnotationDataGetCall) Context(ctx context.Context) *LayersAnnotationDataGetCall {
6670	c.ctx_ = ctx
6671	return c
6672}
6673
6674// Header returns an http.Header that can be modified by the caller to
6675// add HTTP headers to the request.
6676func (c *LayersAnnotationDataGetCall) Header() http.Header {
6677	if c.header_ == nil {
6678		c.header_ = make(http.Header)
6679	}
6680	return c.header_
6681}
6682
6683func (c *LayersAnnotationDataGetCall) doRequest(alt string) (*http.Response, error) {
6684	reqHeaders := make(http.Header)
6685	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
6686	for k, v := range c.header_ {
6687		reqHeaders[k] = v
6688	}
6689	reqHeaders.Set("User-Agent", c.s.userAgent())
6690	if c.ifNoneMatch_ != "" {
6691		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
6692	}
6693	var body io.Reader = nil
6694	c.urlParams_.Set("alt", alt)
6695	c.urlParams_.Set("prettyPrint", "false")
6696	urls := googleapi.ResolveRelative(c.s.BasePath, "volumes/{volumeId}/layers/{layerId}/data/{annotationDataId}")
6697	urls += "?" + c.urlParams_.Encode()
6698	req, err := http.NewRequest("GET", urls, body)
6699	if err != nil {
6700		return nil, err
6701	}
6702	req.Header = reqHeaders
6703	googleapi.Expand(req.URL, map[string]string{
6704		"volumeId":         c.volumeId,
6705		"layerId":          c.layerId,
6706		"annotationDataId": c.annotationDataId,
6707	})
6708	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6709}
6710
6711// Do executes the "books.layers.annotationData.get" call.
6712// Exactly one of *Annotationdata or error will be non-nil. Any non-2xx
6713// status code is an error. Response headers are in either
6714// *Annotationdata.ServerResponse.Header or (if a response was returned
6715// at all) in error.(*googleapi.Error).Header. Use
6716// googleapi.IsNotModified to check whether the returned error was
6717// because http.StatusNotModified was returned.
6718func (c *LayersAnnotationDataGetCall) Do(opts ...googleapi.CallOption) (*Annotationdata, error) {
6719	gensupport.SetOptions(c.urlParams_, opts...)
6720	res, err := c.doRequest("json")
6721	if res != nil && res.StatusCode == http.StatusNotModified {
6722		if res.Body != nil {
6723			res.Body.Close()
6724		}
6725		return nil, &googleapi.Error{
6726			Code:   res.StatusCode,
6727			Header: res.Header,
6728		}
6729	}
6730	if err != nil {
6731		return nil, err
6732	}
6733	defer googleapi.CloseBody(res)
6734	if err := googleapi.CheckResponse(res); err != nil {
6735		return nil, err
6736	}
6737	ret := &Annotationdata{
6738		ServerResponse: googleapi.ServerResponse{
6739			Header:         res.Header,
6740			HTTPStatusCode: res.StatusCode,
6741		},
6742	}
6743	target := &ret
6744	if err := gensupport.DecodeResponse(target, res); err != nil {
6745		return nil, err
6746	}
6747	return ret, nil
6748	// {
6749	//   "description": "Gets the annotation data.",
6750	//   "httpMethod": "GET",
6751	//   "id": "books.layers.annotationData.get",
6752	//   "parameterOrder": [
6753	//     "volumeId",
6754	//     "layerId",
6755	//     "annotationDataId",
6756	//     "contentVersion"
6757	//   ],
6758	//   "parameters": {
6759	//     "allowWebDefinitions": {
6760	//       "description": "For the dictionary layer. Whether or not to allow web definitions.",
6761	//       "location": "query",
6762	//       "type": "boolean"
6763	//     },
6764	//     "annotationDataId": {
6765	//       "description": "The ID of the annotation data to retrieve.",
6766	//       "location": "path",
6767	//       "required": true,
6768	//       "type": "string"
6769	//     },
6770	//     "contentVersion": {
6771	//       "description": "The content version for the volume you are trying to retrieve.",
6772	//       "location": "query",
6773	//       "required": true,
6774	//       "type": "string"
6775	//     },
6776	//     "h": {
6777	//       "description": "The requested pixel height for any images. If height is provided width must also be provided.",
6778	//       "format": "int32",
6779	//       "location": "query",
6780	//       "type": "integer"
6781	//     },
6782	//     "layerId": {
6783	//       "description": "The ID for the layer to get the annotations.",
6784	//       "location": "path",
6785	//       "required": true,
6786	//       "type": "string"
6787	//     },
6788	//     "locale": {
6789	//       "description": "The locale information for the data. ISO-639-1 language and ISO-3166-1 country code. Ex: 'en_US'.",
6790	//       "location": "query",
6791	//       "type": "string"
6792	//     },
6793	//     "scale": {
6794	//       "description": "The requested scale for the image.",
6795	//       "format": "int32",
6796	//       "location": "query",
6797	//       "minimum": "0",
6798	//       "type": "integer"
6799	//     },
6800	//     "source": {
6801	//       "description": "String to identify the originator of this request.",
6802	//       "location": "query",
6803	//       "type": "string"
6804	//     },
6805	//     "volumeId": {
6806	//       "description": "The volume to retrieve annotations for.",
6807	//       "location": "path",
6808	//       "required": true,
6809	//       "type": "string"
6810	//     },
6811	//     "w": {
6812	//       "description": "The requested pixel width for any images. If width is provided height must also be provided.",
6813	//       "format": "int32",
6814	//       "location": "query",
6815	//       "type": "integer"
6816	//     }
6817	//   },
6818	//   "path": "volumes/{volumeId}/layers/{layerId}/data/{annotationDataId}",
6819	//   "response": {
6820	//     "$ref": "Annotationdata"
6821	//   },
6822	//   "scopes": [
6823	//     "https://www.googleapis.com/auth/books"
6824	//   ]
6825	// }
6826
6827}
6828
6829// method id "books.layers.annotationData.list":
6830
6831type LayersAnnotationDataListCall struct {
6832	s            *Service
6833	volumeId     string
6834	layerId      string
6835	urlParams_   gensupport.URLParams
6836	ifNoneMatch_ string
6837	ctx_         context.Context
6838	header_      http.Header
6839}
6840
6841// List: Gets the annotation data for a volume and layer.
6842func (r *LayersAnnotationDataService) List(volumeId string, layerId string, contentVersion string) *LayersAnnotationDataListCall {
6843	c := &LayersAnnotationDataListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6844	c.volumeId = volumeId
6845	c.layerId = layerId
6846	c.urlParams_.Set("contentVersion", contentVersion)
6847	return c
6848}
6849
6850// AnnotationDataId sets the optional parameter "annotationDataId": The
6851// list of Annotation Data Ids to retrieve. Pagination is ignored if
6852// this is set.
6853func (c *LayersAnnotationDataListCall) AnnotationDataId(annotationDataId ...string) *LayersAnnotationDataListCall {
6854	c.urlParams_.SetMulti("annotationDataId", append([]string{}, annotationDataId...))
6855	return c
6856}
6857
6858// H sets the optional parameter "h": The requested pixel height for any
6859// images. If height is provided width must also be provided.
6860func (c *LayersAnnotationDataListCall) H(h int64) *LayersAnnotationDataListCall {
6861	c.urlParams_.Set("h", fmt.Sprint(h))
6862	return c
6863}
6864
6865// Locale sets the optional parameter "locale": The locale information
6866// for the data. ISO-639-1 language and ISO-3166-1 country code. Ex:
6867// 'en_US'.
6868func (c *LayersAnnotationDataListCall) Locale(locale string) *LayersAnnotationDataListCall {
6869	c.urlParams_.Set("locale", locale)
6870	return c
6871}
6872
6873// MaxResults sets the optional parameter "maxResults": Maximum number
6874// of results to return
6875func (c *LayersAnnotationDataListCall) MaxResults(maxResults int64) *LayersAnnotationDataListCall {
6876	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
6877	return c
6878}
6879
6880// PageToken sets the optional parameter "pageToken": The value of the
6881// nextToken from the previous page.
6882func (c *LayersAnnotationDataListCall) PageToken(pageToken string) *LayersAnnotationDataListCall {
6883	c.urlParams_.Set("pageToken", pageToken)
6884	return c
6885}
6886
6887// Scale sets the optional parameter "scale": The requested scale for
6888// the image.
6889func (c *LayersAnnotationDataListCall) Scale(scale int64) *LayersAnnotationDataListCall {
6890	c.urlParams_.Set("scale", fmt.Sprint(scale))
6891	return c
6892}
6893
6894// Source sets the optional parameter "source": String to identify the
6895// originator of this request.
6896func (c *LayersAnnotationDataListCall) Source(source string) *LayersAnnotationDataListCall {
6897	c.urlParams_.Set("source", source)
6898	return c
6899}
6900
6901// UpdatedMax sets the optional parameter "updatedMax": RFC 3339
6902// timestamp to restrict to items updated prior to this timestamp
6903// (exclusive).
6904func (c *LayersAnnotationDataListCall) UpdatedMax(updatedMax string) *LayersAnnotationDataListCall {
6905	c.urlParams_.Set("updatedMax", updatedMax)
6906	return c
6907}
6908
6909// UpdatedMin sets the optional parameter "updatedMin": RFC 3339
6910// timestamp to restrict to items updated since this timestamp
6911// (inclusive).
6912func (c *LayersAnnotationDataListCall) UpdatedMin(updatedMin string) *LayersAnnotationDataListCall {
6913	c.urlParams_.Set("updatedMin", updatedMin)
6914	return c
6915}
6916
6917// W sets the optional parameter "w": The requested pixel width for any
6918// images. If width is provided height must also be provided.
6919func (c *LayersAnnotationDataListCall) W(w int64) *LayersAnnotationDataListCall {
6920	c.urlParams_.Set("w", fmt.Sprint(w))
6921	return c
6922}
6923
6924// Fields allows partial responses to be retrieved. See
6925// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6926// for more information.
6927func (c *LayersAnnotationDataListCall) Fields(s ...googleapi.Field) *LayersAnnotationDataListCall {
6928	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6929	return c
6930}
6931
6932// IfNoneMatch sets the optional parameter which makes the operation
6933// fail if the object's ETag matches the given value. This is useful for
6934// getting updates only after the object has changed since the last
6935// request. Use googleapi.IsNotModified to check whether the response
6936// error from Do is the result of In-None-Match.
6937func (c *LayersAnnotationDataListCall) IfNoneMatch(entityTag string) *LayersAnnotationDataListCall {
6938	c.ifNoneMatch_ = entityTag
6939	return c
6940}
6941
6942// Context sets the context to be used in this call's Do method. Any
6943// pending HTTP request will be aborted if the provided context is
6944// canceled.
6945func (c *LayersAnnotationDataListCall) Context(ctx context.Context) *LayersAnnotationDataListCall {
6946	c.ctx_ = ctx
6947	return c
6948}
6949
6950// Header returns an http.Header that can be modified by the caller to
6951// add HTTP headers to the request.
6952func (c *LayersAnnotationDataListCall) Header() http.Header {
6953	if c.header_ == nil {
6954		c.header_ = make(http.Header)
6955	}
6956	return c.header_
6957}
6958
6959func (c *LayersAnnotationDataListCall) doRequest(alt string) (*http.Response, error) {
6960	reqHeaders := make(http.Header)
6961	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
6962	for k, v := range c.header_ {
6963		reqHeaders[k] = v
6964	}
6965	reqHeaders.Set("User-Agent", c.s.userAgent())
6966	if c.ifNoneMatch_ != "" {
6967		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
6968	}
6969	var body io.Reader = nil
6970	c.urlParams_.Set("alt", alt)
6971	c.urlParams_.Set("prettyPrint", "false")
6972	urls := googleapi.ResolveRelative(c.s.BasePath, "volumes/{volumeId}/layers/{layerId}/data")
6973	urls += "?" + c.urlParams_.Encode()
6974	req, err := http.NewRequest("GET", urls, body)
6975	if err != nil {
6976		return nil, err
6977	}
6978	req.Header = reqHeaders
6979	googleapi.Expand(req.URL, map[string]string{
6980		"volumeId": c.volumeId,
6981		"layerId":  c.layerId,
6982	})
6983	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6984}
6985
6986// Do executes the "books.layers.annotationData.list" call.
6987// Exactly one of *Annotationsdata or error will be non-nil. Any non-2xx
6988// status code is an error. Response headers are in either
6989// *Annotationsdata.ServerResponse.Header or (if a response was returned
6990// at all) in error.(*googleapi.Error).Header. Use
6991// googleapi.IsNotModified to check whether the returned error was
6992// because http.StatusNotModified was returned.
6993func (c *LayersAnnotationDataListCall) Do(opts ...googleapi.CallOption) (*Annotationsdata, error) {
6994	gensupport.SetOptions(c.urlParams_, opts...)
6995	res, err := c.doRequest("json")
6996	if res != nil && res.StatusCode == http.StatusNotModified {
6997		if res.Body != nil {
6998			res.Body.Close()
6999		}
7000		return nil, &googleapi.Error{
7001			Code:   res.StatusCode,
7002			Header: res.Header,
7003		}
7004	}
7005	if err != nil {
7006		return nil, err
7007	}
7008	defer googleapi.CloseBody(res)
7009	if err := googleapi.CheckResponse(res); err != nil {
7010		return nil, err
7011	}
7012	ret := &Annotationsdata{
7013		ServerResponse: googleapi.ServerResponse{
7014			Header:         res.Header,
7015			HTTPStatusCode: res.StatusCode,
7016		},
7017	}
7018	target := &ret
7019	if err := gensupport.DecodeResponse(target, res); err != nil {
7020		return nil, err
7021	}
7022	return ret, nil
7023	// {
7024	//   "description": "Gets the annotation data for a volume and layer.",
7025	//   "httpMethod": "GET",
7026	//   "id": "books.layers.annotationData.list",
7027	//   "parameterOrder": [
7028	//     "volumeId",
7029	//     "layerId",
7030	//     "contentVersion"
7031	//   ],
7032	//   "parameters": {
7033	//     "annotationDataId": {
7034	//       "description": "The list of Annotation Data Ids to retrieve. Pagination is ignored if this is set.",
7035	//       "location": "query",
7036	//       "repeated": true,
7037	//       "type": "string"
7038	//     },
7039	//     "contentVersion": {
7040	//       "description": "The content version for the requested volume.",
7041	//       "location": "query",
7042	//       "required": true,
7043	//       "type": "string"
7044	//     },
7045	//     "h": {
7046	//       "description": "The requested pixel height for any images. If height is provided width must also be provided.",
7047	//       "format": "int32",
7048	//       "location": "query",
7049	//       "type": "integer"
7050	//     },
7051	//     "layerId": {
7052	//       "description": "The ID for the layer to get the annotation data.",
7053	//       "location": "path",
7054	//       "required": true,
7055	//       "type": "string"
7056	//     },
7057	//     "locale": {
7058	//       "description": "The locale information for the data. ISO-639-1 language and ISO-3166-1 country code. Ex: 'en_US'.",
7059	//       "location": "query",
7060	//       "type": "string"
7061	//     },
7062	//     "maxResults": {
7063	//       "description": "Maximum number of results to return",
7064	//       "format": "uint32",
7065	//       "location": "query",
7066	//       "maximum": "200",
7067	//       "minimum": "0",
7068	//       "type": "integer"
7069	//     },
7070	//     "pageToken": {
7071	//       "description": "The value of the nextToken from the previous page.",
7072	//       "location": "query",
7073	//       "type": "string"
7074	//     },
7075	//     "scale": {
7076	//       "description": "The requested scale for the image.",
7077	//       "format": "int32",
7078	//       "location": "query",
7079	//       "minimum": "0",
7080	//       "type": "integer"
7081	//     },
7082	//     "source": {
7083	//       "description": "String to identify the originator of this request.",
7084	//       "location": "query",
7085	//       "type": "string"
7086	//     },
7087	//     "updatedMax": {
7088	//       "description": "RFC 3339 timestamp to restrict to items updated prior to this timestamp (exclusive).",
7089	//       "location": "query",
7090	//       "type": "string"
7091	//     },
7092	//     "updatedMin": {
7093	//       "description": "RFC 3339 timestamp to restrict to items updated since this timestamp (inclusive).",
7094	//       "location": "query",
7095	//       "type": "string"
7096	//     },
7097	//     "volumeId": {
7098	//       "description": "The volume to retrieve annotation data for.",
7099	//       "location": "path",
7100	//       "required": true,
7101	//       "type": "string"
7102	//     },
7103	//     "w": {
7104	//       "description": "The requested pixel width for any images. If width is provided height must also be provided.",
7105	//       "format": "int32",
7106	//       "location": "query",
7107	//       "type": "integer"
7108	//     }
7109	//   },
7110	//   "path": "volumes/{volumeId}/layers/{layerId}/data",
7111	//   "response": {
7112	//     "$ref": "Annotationsdata"
7113	//   },
7114	//   "scopes": [
7115	//     "https://www.googleapis.com/auth/books"
7116	//   ]
7117	// }
7118
7119}
7120
7121// Pages invokes f for each page of results.
7122// A non-nil error returned from f will halt the iteration.
7123// The provided context supersedes any context provided to the Context method.
7124func (c *LayersAnnotationDataListCall) Pages(ctx context.Context, f func(*Annotationsdata) error) error {
7125	c.ctx_ = ctx
7126	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
7127	for {
7128		x, err := c.Do()
7129		if err != nil {
7130			return err
7131		}
7132		if err := f(x); err != nil {
7133			return err
7134		}
7135		if x.NextPageToken == "" {
7136			return nil
7137		}
7138		c.PageToken(x.NextPageToken)
7139	}
7140}
7141
7142// method id "books.layers.volumeAnnotations.get":
7143
7144type LayersVolumeAnnotationsGetCall struct {
7145	s            *Service
7146	volumeId     string
7147	layerId      string
7148	annotationId string
7149	urlParams_   gensupport.URLParams
7150	ifNoneMatch_ string
7151	ctx_         context.Context
7152	header_      http.Header
7153}
7154
7155// Get: Gets the volume annotation.
7156func (r *LayersVolumeAnnotationsService) Get(volumeId string, layerId string, annotationId string) *LayersVolumeAnnotationsGetCall {
7157	c := &LayersVolumeAnnotationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7158	c.volumeId = volumeId
7159	c.layerId = layerId
7160	c.annotationId = annotationId
7161	return c
7162}
7163
7164// Locale sets the optional parameter "locale": The locale information
7165// for the data. ISO-639-1 language and ISO-3166-1 country code. Ex:
7166// 'en_US'.
7167func (c *LayersVolumeAnnotationsGetCall) Locale(locale string) *LayersVolumeAnnotationsGetCall {
7168	c.urlParams_.Set("locale", locale)
7169	return c
7170}
7171
7172// Source sets the optional parameter "source": String to identify the
7173// originator of this request.
7174func (c *LayersVolumeAnnotationsGetCall) Source(source string) *LayersVolumeAnnotationsGetCall {
7175	c.urlParams_.Set("source", source)
7176	return c
7177}
7178
7179// Fields allows partial responses to be retrieved. See
7180// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7181// for more information.
7182func (c *LayersVolumeAnnotationsGetCall) Fields(s ...googleapi.Field) *LayersVolumeAnnotationsGetCall {
7183	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7184	return c
7185}
7186
7187// IfNoneMatch sets the optional parameter which makes the operation
7188// fail if the object's ETag matches the given value. This is useful for
7189// getting updates only after the object has changed since the last
7190// request. Use googleapi.IsNotModified to check whether the response
7191// error from Do is the result of In-None-Match.
7192func (c *LayersVolumeAnnotationsGetCall) IfNoneMatch(entityTag string) *LayersVolumeAnnotationsGetCall {
7193	c.ifNoneMatch_ = entityTag
7194	return c
7195}
7196
7197// Context sets the context to be used in this call's Do method. Any
7198// pending HTTP request will be aborted if the provided context is
7199// canceled.
7200func (c *LayersVolumeAnnotationsGetCall) Context(ctx context.Context) *LayersVolumeAnnotationsGetCall {
7201	c.ctx_ = ctx
7202	return c
7203}
7204
7205// Header returns an http.Header that can be modified by the caller to
7206// add HTTP headers to the request.
7207func (c *LayersVolumeAnnotationsGetCall) Header() http.Header {
7208	if c.header_ == nil {
7209		c.header_ = make(http.Header)
7210	}
7211	return c.header_
7212}
7213
7214func (c *LayersVolumeAnnotationsGetCall) doRequest(alt string) (*http.Response, error) {
7215	reqHeaders := make(http.Header)
7216	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
7217	for k, v := range c.header_ {
7218		reqHeaders[k] = v
7219	}
7220	reqHeaders.Set("User-Agent", c.s.userAgent())
7221	if c.ifNoneMatch_ != "" {
7222		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
7223	}
7224	var body io.Reader = nil
7225	c.urlParams_.Set("alt", alt)
7226	c.urlParams_.Set("prettyPrint", "false")
7227	urls := googleapi.ResolveRelative(c.s.BasePath, "volumes/{volumeId}/layers/{layerId}/annotations/{annotationId}")
7228	urls += "?" + c.urlParams_.Encode()
7229	req, err := http.NewRequest("GET", urls, body)
7230	if err != nil {
7231		return nil, err
7232	}
7233	req.Header = reqHeaders
7234	googleapi.Expand(req.URL, map[string]string{
7235		"volumeId":     c.volumeId,
7236		"layerId":      c.layerId,
7237		"annotationId": c.annotationId,
7238	})
7239	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7240}
7241
7242// Do executes the "books.layers.volumeAnnotations.get" call.
7243// Exactly one of *Volumeannotation or error will be non-nil. Any
7244// non-2xx status code is an error. Response headers are in either
7245// *Volumeannotation.ServerResponse.Header or (if a response was
7246// returned at all) in error.(*googleapi.Error).Header. Use
7247// googleapi.IsNotModified to check whether the returned error was
7248// because http.StatusNotModified was returned.
7249func (c *LayersVolumeAnnotationsGetCall) Do(opts ...googleapi.CallOption) (*Volumeannotation, error) {
7250	gensupport.SetOptions(c.urlParams_, opts...)
7251	res, err := c.doRequest("json")
7252	if res != nil && res.StatusCode == http.StatusNotModified {
7253		if res.Body != nil {
7254			res.Body.Close()
7255		}
7256		return nil, &googleapi.Error{
7257			Code:   res.StatusCode,
7258			Header: res.Header,
7259		}
7260	}
7261	if err != nil {
7262		return nil, err
7263	}
7264	defer googleapi.CloseBody(res)
7265	if err := googleapi.CheckResponse(res); err != nil {
7266		return nil, err
7267	}
7268	ret := &Volumeannotation{
7269		ServerResponse: googleapi.ServerResponse{
7270			Header:         res.Header,
7271			HTTPStatusCode: res.StatusCode,
7272		},
7273	}
7274	target := &ret
7275	if err := gensupport.DecodeResponse(target, res); err != nil {
7276		return nil, err
7277	}
7278	return ret, nil
7279	// {
7280	//   "description": "Gets the volume annotation.",
7281	//   "httpMethod": "GET",
7282	//   "id": "books.layers.volumeAnnotations.get",
7283	//   "parameterOrder": [
7284	//     "volumeId",
7285	//     "layerId",
7286	//     "annotationId"
7287	//   ],
7288	//   "parameters": {
7289	//     "annotationId": {
7290	//       "description": "The ID of the volume annotation to retrieve.",
7291	//       "location": "path",
7292	//       "required": true,
7293	//       "type": "string"
7294	//     },
7295	//     "layerId": {
7296	//       "description": "The ID for the layer to get the annotations.",
7297	//       "location": "path",
7298	//       "required": true,
7299	//       "type": "string"
7300	//     },
7301	//     "locale": {
7302	//       "description": "The locale information for the data. ISO-639-1 language and ISO-3166-1 country code. Ex: 'en_US'.",
7303	//       "location": "query",
7304	//       "type": "string"
7305	//     },
7306	//     "source": {
7307	//       "description": "String to identify the originator of this request.",
7308	//       "location": "query",
7309	//       "type": "string"
7310	//     },
7311	//     "volumeId": {
7312	//       "description": "The volume to retrieve annotations for.",
7313	//       "location": "path",
7314	//       "required": true,
7315	//       "type": "string"
7316	//     }
7317	//   },
7318	//   "path": "volumes/{volumeId}/layers/{layerId}/annotations/{annotationId}",
7319	//   "response": {
7320	//     "$ref": "Volumeannotation"
7321	//   },
7322	//   "scopes": [
7323	//     "https://www.googleapis.com/auth/books"
7324	//   ]
7325	// }
7326
7327}
7328
7329// method id "books.layers.volumeAnnotations.list":
7330
7331type LayersVolumeAnnotationsListCall struct {
7332	s            *Service
7333	volumeId     string
7334	layerId      string
7335	urlParams_   gensupport.URLParams
7336	ifNoneMatch_ string
7337	ctx_         context.Context
7338	header_      http.Header
7339}
7340
7341// List: Gets the volume annotations for a volume and layer.
7342func (r *LayersVolumeAnnotationsService) List(volumeId string, layerId string, contentVersion string) *LayersVolumeAnnotationsListCall {
7343	c := &LayersVolumeAnnotationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7344	c.volumeId = volumeId
7345	c.layerId = layerId
7346	c.urlParams_.Set("contentVersion", contentVersion)
7347	return c
7348}
7349
7350// EndOffset sets the optional parameter "endOffset": The end offset to
7351// end retrieving data from.
7352func (c *LayersVolumeAnnotationsListCall) EndOffset(endOffset string) *LayersVolumeAnnotationsListCall {
7353	c.urlParams_.Set("endOffset", endOffset)
7354	return c
7355}
7356
7357// EndPosition sets the optional parameter "endPosition": The end
7358// position to end retrieving data from.
7359func (c *LayersVolumeAnnotationsListCall) EndPosition(endPosition string) *LayersVolumeAnnotationsListCall {
7360	c.urlParams_.Set("endPosition", endPosition)
7361	return c
7362}
7363
7364// Locale sets the optional parameter "locale": The locale information
7365// for the data. ISO-639-1 language and ISO-3166-1 country code. Ex:
7366// 'en_US'.
7367func (c *LayersVolumeAnnotationsListCall) Locale(locale string) *LayersVolumeAnnotationsListCall {
7368	c.urlParams_.Set("locale", locale)
7369	return c
7370}
7371
7372// MaxResults sets the optional parameter "maxResults": Maximum number
7373// of results to return
7374func (c *LayersVolumeAnnotationsListCall) MaxResults(maxResults int64) *LayersVolumeAnnotationsListCall {
7375	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
7376	return c
7377}
7378
7379// PageToken sets the optional parameter "pageToken": The value of the
7380// nextToken from the previous page.
7381func (c *LayersVolumeAnnotationsListCall) PageToken(pageToken string) *LayersVolumeAnnotationsListCall {
7382	c.urlParams_.Set("pageToken", pageToken)
7383	return c
7384}
7385
7386// ShowDeleted sets the optional parameter "showDeleted": Set to true to
7387// return deleted annotations. updatedMin must be in the request to use
7388// this. Defaults to false.
7389func (c *LayersVolumeAnnotationsListCall) ShowDeleted(showDeleted bool) *LayersVolumeAnnotationsListCall {
7390	c.urlParams_.Set("showDeleted", fmt.Sprint(showDeleted))
7391	return c
7392}
7393
7394// Source sets the optional parameter "source": String to identify the
7395// originator of this request.
7396func (c *LayersVolumeAnnotationsListCall) Source(source string) *LayersVolumeAnnotationsListCall {
7397	c.urlParams_.Set("source", source)
7398	return c
7399}
7400
7401// StartOffset sets the optional parameter "startOffset": The start
7402// offset to start retrieving data from.
7403func (c *LayersVolumeAnnotationsListCall) StartOffset(startOffset string) *LayersVolumeAnnotationsListCall {
7404	c.urlParams_.Set("startOffset", startOffset)
7405	return c
7406}
7407
7408// StartPosition sets the optional parameter "startPosition": The start
7409// position to start retrieving data from.
7410func (c *LayersVolumeAnnotationsListCall) StartPosition(startPosition string) *LayersVolumeAnnotationsListCall {
7411	c.urlParams_.Set("startPosition", startPosition)
7412	return c
7413}
7414
7415// UpdatedMax sets the optional parameter "updatedMax": RFC 3339
7416// timestamp to restrict to items updated prior to this timestamp
7417// (exclusive).
7418func (c *LayersVolumeAnnotationsListCall) UpdatedMax(updatedMax string) *LayersVolumeAnnotationsListCall {
7419	c.urlParams_.Set("updatedMax", updatedMax)
7420	return c
7421}
7422
7423// UpdatedMin sets the optional parameter "updatedMin": RFC 3339
7424// timestamp to restrict to items updated since this timestamp
7425// (inclusive).
7426func (c *LayersVolumeAnnotationsListCall) UpdatedMin(updatedMin string) *LayersVolumeAnnotationsListCall {
7427	c.urlParams_.Set("updatedMin", updatedMin)
7428	return c
7429}
7430
7431// VolumeAnnotationsVersion sets the optional parameter
7432// "volumeAnnotationsVersion": The version of the volume annotations
7433// that you are requesting.
7434func (c *LayersVolumeAnnotationsListCall) VolumeAnnotationsVersion(volumeAnnotationsVersion string) *LayersVolumeAnnotationsListCall {
7435	c.urlParams_.Set("volumeAnnotationsVersion", volumeAnnotationsVersion)
7436	return c
7437}
7438
7439// Fields allows partial responses to be retrieved. See
7440// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7441// for more information.
7442func (c *LayersVolumeAnnotationsListCall) Fields(s ...googleapi.Field) *LayersVolumeAnnotationsListCall {
7443	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7444	return c
7445}
7446
7447// IfNoneMatch sets the optional parameter which makes the operation
7448// fail if the object's ETag matches the given value. This is useful for
7449// getting updates only after the object has changed since the last
7450// request. Use googleapi.IsNotModified to check whether the response
7451// error from Do is the result of In-None-Match.
7452func (c *LayersVolumeAnnotationsListCall) IfNoneMatch(entityTag string) *LayersVolumeAnnotationsListCall {
7453	c.ifNoneMatch_ = entityTag
7454	return c
7455}
7456
7457// Context sets the context to be used in this call's Do method. Any
7458// pending HTTP request will be aborted if the provided context is
7459// canceled.
7460func (c *LayersVolumeAnnotationsListCall) Context(ctx context.Context) *LayersVolumeAnnotationsListCall {
7461	c.ctx_ = ctx
7462	return c
7463}
7464
7465// Header returns an http.Header that can be modified by the caller to
7466// add HTTP headers to the request.
7467func (c *LayersVolumeAnnotationsListCall) Header() http.Header {
7468	if c.header_ == nil {
7469		c.header_ = make(http.Header)
7470	}
7471	return c.header_
7472}
7473
7474func (c *LayersVolumeAnnotationsListCall) doRequest(alt string) (*http.Response, error) {
7475	reqHeaders := make(http.Header)
7476	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
7477	for k, v := range c.header_ {
7478		reqHeaders[k] = v
7479	}
7480	reqHeaders.Set("User-Agent", c.s.userAgent())
7481	if c.ifNoneMatch_ != "" {
7482		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
7483	}
7484	var body io.Reader = nil
7485	c.urlParams_.Set("alt", alt)
7486	c.urlParams_.Set("prettyPrint", "false")
7487	urls := googleapi.ResolveRelative(c.s.BasePath, "volumes/{volumeId}/layers/{layerId}")
7488	urls += "?" + c.urlParams_.Encode()
7489	req, err := http.NewRequest("GET", urls, body)
7490	if err != nil {
7491		return nil, err
7492	}
7493	req.Header = reqHeaders
7494	googleapi.Expand(req.URL, map[string]string{
7495		"volumeId": c.volumeId,
7496		"layerId":  c.layerId,
7497	})
7498	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7499}
7500
7501// Do executes the "books.layers.volumeAnnotations.list" call.
7502// Exactly one of *Volumeannotations or error will be non-nil. Any
7503// non-2xx status code is an error. Response headers are in either
7504// *Volumeannotations.ServerResponse.Header or (if a response was
7505// returned at all) in error.(*googleapi.Error).Header. Use
7506// googleapi.IsNotModified to check whether the returned error was
7507// because http.StatusNotModified was returned.
7508func (c *LayersVolumeAnnotationsListCall) Do(opts ...googleapi.CallOption) (*Volumeannotations, error) {
7509	gensupport.SetOptions(c.urlParams_, opts...)
7510	res, err := c.doRequest("json")
7511	if res != nil && res.StatusCode == http.StatusNotModified {
7512		if res.Body != nil {
7513			res.Body.Close()
7514		}
7515		return nil, &googleapi.Error{
7516			Code:   res.StatusCode,
7517			Header: res.Header,
7518		}
7519	}
7520	if err != nil {
7521		return nil, err
7522	}
7523	defer googleapi.CloseBody(res)
7524	if err := googleapi.CheckResponse(res); err != nil {
7525		return nil, err
7526	}
7527	ret := &Volumeannotations{
7528		ServerResponse: googleapi.ServerResponse{
7529			Header:         res.Header,
7530			HTTPStatusCode: res.StatusCode,
7531		},
7532	}
7533	target := &ret
7534	if err := gensupport.DecodeResponse(target, res); err != nil {
7535		return nil, err
7536	}
7537	return ret, nil
7538	// {
7539	//   "description": "Gets the volume annotations for a volume and layer.",
7540	//   "httpMethod": "GET",
7541	//   "id": "books.layers.volumeAnnotations.list",
7542	//   "parameterOrder": [
7543	//     "volumeId",
7544	//     "layerId",
7545	//     "contentVersion"
7546	//   ],
7547	//   "parameters": {
7548	//     "contentVersion": {
7549	//       "description": "The content version for the requested volume.",
7550	//       "location": "query",
7551	//       "required": true,
7552	//       "type": "string"
7553	//     },
7554	//     "endOffset": {
7555	//       "description": "The end offset to end retrieving data from.",
7556	//       "location": "query",
7557	//       "type": "string"
7558	//     },
7559	//     "endPosition": {
7560	//       "description": "The end position to end retrieving data from.",
7561	//       "location": "query",
7562	//       "type": "string"
7563	//     },
7564	//     "layerId": {
7565	//       "description": "The ID for the layer to get the annotations.",
7566	//       "location": "path",
7567	//       "required": true,
7568	//       "type": "string"
7569	//     },
7570	//     "locale": {
7571	//       "description": "The locale information for the data. ISO-639-1 language and ISO-3166-1 country code. Ex: 'en_US'.",
7572	//       "location": "query",
7573	//       "type": "string"
7574	//     },
7575	//     "maxResults": {
7576	//       "description": "Maximum number of results to return",
7577	//       "format": "uint32",
7578	//       "location": "query",
7579	//       "maximum": "200",
7580	//       "minimum": "0",
7581	//       "type": "integer"
7582	//     },
7583	//     "pageToken": {
7584	//       "description": "The value of the nextToken from the previous page.",
7585	//       "location": "query",
7586	//       "type": "string"
7587	//     },
7588	//     "showDeleted": {
7589	//       "description": "Set to true to return deleted annotations. updatedMin must be in the request to use this. Defaults to false.",
7590	//       "location": "query",
7591	//       "type": "boolean"
7592	//     },
7593	//     "source": {
7594	//       "description": "String to identify the originator of this request.",
7595	//       "location": "query",
7596	//       "type": "string"
7597	//     },
7598	//     "startOffset": {
7599	//       "description": "The start offset to start retrieving data from.",
7600	//       "location": "query",
7601	//       "type": "string"
7602	//     },
7603	//     "startPosition": {
7604	//       "description": "The start position to start retrieving data from.",
7605	//       "location": "query",
7606	//       "type": "string"
7607	//     },
7608	//     "updatedMax": {
7609	//       "description": "RFC 3339 timestamp to restrict to items updated prior to this timestamp (exclusive).",
7610	//       "location": "query",
7611	//       "type": "string"
7612	//     },
7613	//     "updatedMin": {
7614	//       "description": "RFC 3339 timestamp to restrict to items updated since this timestamp (inclusive).",
7615	//       "location": "query",
7616	//       "type": "string"
7617	//     },
7618	//     "volumeAnnotationsVersion": {
7619	//       "description": "The version of the volume annotations that you are requesting.",
7620	//       "location": "query",
7621	//       "type": "string"
7622	//     },
7623	//     "volumeId": {
7624	//       "description": "The volume to retrieve annotations for.",
7625	//       "location": "path",
7626	//       "required": true,
7627	//       "type": "string"
7628	//     }
7629	//   },
7630	//   "path": "volumes/{volumeId}/layers/{layerId}",
7631	//   "response": {
7632	//     "$ref": "Volumeannotations"
7633	//   },
7634	//   "scopes": [
7635	//     "https://www.googleapis.com/auth/books"
7636	//   ]
7637	// }
7638
7639}
7640
7641// Pages invokes f for each page of results.
7642// A non-nil error returned from f will halt the iteration.
7643// The provided context supersedes any context provided to the Context method.
7644func (c *LayersVolumeAnnotationsListCall) Pages(ctx context.Context, f func(*Volumeannotations) error) error {
7645	c.ctx_ = ctx
7646	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
7647	for {
7648		x, err := c.Do()
7649		if err != nil {
7650			return err
7651		}
7652		if err := f(x); err != nil {
7653			return err
7654		}
7655		if x.NextPageToken == "" {
7656			return nil
7657		}
7658		c.PageToken(x.NextPageToken)
7659	}
7660}
7661
7662// method id "books.myconfig.getUserSettings":
7663
7664type MyconfigGetUserSettingsCall struct {
7665	s            *Service
7666	urlParams_   gensupport.URLParams
7667	ifNoneMatch_ string
7668	ctx_         context.Context
7669	header_      http.Header
7670}
7671
7672// GetUserSettings: Gets the current settings for the user.
7673func (r *MyconfigService) GetUserSettings() *MyconfigGetUserSettingsCall {
7674	c := &MyconfigGetUserSettingsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7675	return c
7676}
7677
7678// Fields allows partial responses to be retrieved. See
7679// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7680// for more information.
7681func (c *MyconfigGetUserSettingsCall) Fields(s ...googleapi.Field) *MyconfigGetUserSettingsCall {
7682	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7683	return c
7684}
7685
7686// IfNoneMatch sets the optional parameter which makes the operation
7687// fail if the object's ETag matches the given value. This is useful for
7688// getting updates only after the object has changed since the last
7689// request. Use googleapi.IsNotModified to check whether the response
7690// error from Do is the result of In-None-Match.
7691func (c *MyconfigGetUserSettingsCall) IfNoneMatch(entityTag string) *MyconfigGetUserSettingsCall {
7692	c.ifNoneMatch_ = entityTag
7693	return c
7694}
7695
7696// Context sets the context to be used in this call's Do method. Any
7697// pending HTTP request will be aborted if the provided context is
7698// canceled.
7699func (c *MyconfigGetUserSettingsCall) Context(ctx context.Context) *MyconfigGetUserSettingsCall {
7700	c.ctx_ = ctx
7701	return c
7702}
7703
7704// Header returns an http.Header that can be modified by the caller to
7705// add HTTP headers to the request.
7706func (c *MyconfigGetUserSettingsCall) Header() http.Header {
7707	if c.header_ == nil {
7708		c.header_ = make(http.Header)
7709	}
7710	return c.header_
7711}
7712
7713func (c *MyconfigGetUserSettingsCall) doRequest(alt string) (*http.Response, error) {
7714	reqHeaders := make(http.Header)
7715	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
7716	for k, v := range c.header_ {
7717		reqHeaders[k] = v
7718	}
7719	reqHeaders.Set("User-Agent", c.s.userAgent())
7720	if c.ifNoneMatch_ != "" {
7721		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
7722	}
7723	var body io.Reader = nil
7724	c.urlParams_.Set("alt", alt)
7725	c.urlParams_.Set("prettyPrint", "false")
7726	urls := googleapi.ResolveRelative(c.s.BasePath, "myconfig/getUserSettings")
7727	urls += "?" + c.urlParams_.Encode()
7728	req, err := http.NewRequest("GET", urls, body)
7729	if err != nil {
7730		return nil, err
7731	}
7732	req.Header = reqHeaders
7733	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7734}
7735
7736// Do executes the "books.myconfig.getUserSettings" call.
7737// Exactly one of *Usersettings or error will be non-nil. Any non-2xx
7738// status code is an error. Response headers are in either
7739// *Usersettings.ServerResponse.Header or (if a response was returned at
7740// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
7741// to check whether the returned error was because
7742// http.StatusNotModified was returned.
7743func (c *MyconfigGetUserSettingsCall) Do(opts ...googleapi.CallOption) (*Usersettings, error) {
7744	gensupport.SetOptions(c.urlParams_, opts...)
7745	res, err := c.doRequest("json")
7746	if res != nil && res.StatusCode == http.StatusNotModified {
7747		if res.Body != nil {
7748			res.Body.Close()
7749		}
7750		return nil, &googleapi.Error{
7751			Code:   res.StatusCode,
7752			Header: res.Header,
7753		}
7754	}
7755	if err != nil {
7756		return nil, err
7757	}
7758	defer googleapi.CloseBody(res)
7759	if err := googleapi.CheckResponse(res); err != nil {
7760		return nil, err
7761	}
7762	ret := &Usersettings{
7763		ServerResponse: googleapi.ServerResponse{
7764			Header:         res.Header,
7765			HTTPStatusCode: res.StatusCode,
7766		},
7767	}
7768	target := &ret
7769	if err := gensupport.DecodeResponse(target, res); err != nil {
7770		return nil, err
7771	}
7772	return ret, nil
7773	// {
7774	//   "description": "Gets the current settings for the user.",
7775	//   "httpMethod": "GET",
7776	//   "id": "books.myconfig.getUserSettings",
7777	//   "path": "myconfig/getUserSettings",
7778	//   "response": {
7779	//     "$ref": "Usersettings"
7780	//   },
7781	//   "scopes": [
7782	//     "https://www.googleapis.com/auth/books"
7783	//   ]
7784	// }
7785
7786}
7787
7788// method id "books.myconfig.releaseDownloadAccess":
7789
7790type MyconfigReleaseDownloadAccessCall struct {
7791	s          *Service
7792	urlParams_ gensupport.URLParams
7793	ctx_       context.Context
7794	header_    http.Header
7795}
7796
7797// ReleaseDownloadAccess: Release downloaded content access restriction.
7798func (r *MyconfigService) ReleaseDownloadAccess(volumeIds []string, cpksver string) *MyconfigReleaseDownloadAccessCall {
7799	c := &MyconfigReleaseDownloadAccessCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7800	c.urlParams_.SetMulti("volumeIds", append([]string{}, volumeIds...))
7801	c.urlParams_.Set("cpksver", cpksver)
7802	return c
7803}
7804
7805// Locale sets the optional parameter "locale": ISO-639-1, ISO-3166-1
7806// codes for message localization, i.e. en_US.
7807func (c *MyconfigReleaseDownloadAccessCall) Locale(locale string) *MyconfigReleaseDownloadAccessCall {
7808	c.urlParams_.Set("locale", locale)
7809	return c
7810}
7811
7812// Source sets the optional parameter "source": String to identify the
7813// originator of this request.
7814func (c *MyconfigReleaseDownloadAccessCall) Source(source string) *MyconfigReleaseDownloadAccessCall {
7815	c.urlParams_.Set("source", source)
7816	return c
7817}
7818
7819// Fields allows partial responses to be retrieved. See
7820// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7821// for more information.
7822func (c *MyconfigReleaseDownloadAccessCall) Fields(s ...googleapi.Field) *MyconfigReleaseDownloadAccessCall {
7823	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7824	return c
7825}
7826
7827// Context sets the context to be used in this call's Do method. Any
7828// pending HTTP request will be aborted if the provided context is
7829// canceled.
7830func (c *MyconfigReleaseDownloadAccessCall) Context(ctx context.Context) *MyconfigReleaseDownloadAccessCall {
7831	c.ctx_ = ctx
7832	return c
7833}
7834
7835// Header returns an http.Header that can be modified by the caller to
7836// add HTTP headers to the request.
7837func (c *MyconfigReleaseDownloadAccessCall) Header() http.Header {
7838	if c.header_ == nil {
7839		c.header_ = make(http.Header)
7840	}
7841	return c.header_
7842}
7843
7844func (c *MyconfigReleaseDownloadAccessCall) doRequest(alt string) (*http.Response, error) {
7845	reqHeaders := make(http.Header)
7846	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
7847	for k, v := range c.header_ {
7848		reqHeaders[k] = v
7849	}
7850	reqHeaders.Set("User-Agent", c.s.userAgent())
7851	var body io.Reader = nil
7852	c.urlParams_.Set("alt", alt)
7853	c.urlParams_.Set("prettyPrint", "false")
7854	urls := googleapi.ResolveRelative(c.s.BasePath, "myconfig/releaseDownloadAccess")
7855	urls += "?" + c.urlParams_.Encode()
7856	req, err := http.NewRequest("POST", urls, body)
7857	if err != nil {
7858		return nil, err
7859	}
7860	req.Header = reqHeaders
7861	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7862}
7863
7864// Do executes the "books.myconfig.releaseDownloadAccess" call.
7865// Exactly one of *DownloadAccesses or error will be non-nil. Any
7866// non-2xx status code is an error. Response headers are in either
7867// *DownloadAccesses.ServerResponse.Header or (if a response was
7868// returned at all) in error.(*googleapi.Error).Header. Use
7869// googleapi.IsNotModified to check whether the returned error was
7870// because http.StatusNotModified was returned.
7871func (c *MyconfigReleaseDownloadAccessCall) Do(opts ...googleapi.CallOption) (*DownloadAccesses, error) {
7872	gensupport.SetOptions(c.urlParams_, opts...)
7873	res, err := c.doRequest("json")
7874	if res != nil && res.StatusCode == http.StatusNotModified {
7875		if res.Body != nil {
7876			res.Body.Close()
7877		}
7878		return nil, &googleapi.Error{
7879			Code:   res.StatusCode,
7880			Header: res.Header,
7881		}
7882	}
7883	if err != nil {
7884		return nil, err
7885	}
7886	defer googleapi.CloseBody(res)
7887	if err := googleapi.CheckResponse(res); err != nil {
7888		return nil, err
7889	}
7890	ret := &DownloadAccesses{
7891		ServerResponse: googleapi.ServerResponse{
7892			Header:         res.Header,
7893			HTTPStatusCode: res.StatusCode,
7894		},
7895	}
7896	target := &ret
7897	if err := gensupport.DecodeResponse(target, res); err != nil {
7898		return nil, err
7899	}
7900	return ret, nil
7901	// {
7902	//   "description": "Release downloaded content access restriction.",
7903	//   "httpMethod": "POST",
7904	//   "id": "books.myconfig.releaseDownloadAccess",
7905	//   "parameterOrder": [
7906	//     "volumeIds",
7907	//     "cpksver"
7908	//   ],
7909	//   "parameters": {
7910	//     "cpksver": {
7911	//       "description": "The device/version ID from which to release the restriction.",
7912	//       "location": "query",
7913	//       "required": true,
7914	//       "type": "string"
7915	//     },
7916	//     "locale": {
7917	//       "description": "ISO-639-1, ISO-3166-1 codes for message localization, i.e. en_US.",
7918	//       "location": "query",
7919	//       "type": "string"
7920	//     },
7921	//     "source": {
7922	//       "description": "String to identify the originator of this request.",
7923	//       "location": "query",
7924	//       "type": "string"
7925	//     },
7926	//     "volumeIds": {
7927	//       "description": "The volume(s) to release restrictions for.",
7928	//       "location": "query",
7929	//       "repeated": true,
7930	//       "required": true,
7931	//       "type": "string"
7932	//     }
7933	//   },
7934	//   "path": "myconfig/releaseDownloadAccess",
7935	//   "response": {
7936	//     "$ref": "DownloadAccesses"
7937	//   },
7938	//   "scopes": [
7939	//     "https://www.googleapis.com/auth/books"
7940	//   ]
7941	// }
7942
7943}
7944
7945// method id "books.myconfig.requestAccess":
7946
7947type MyconfigRequestAccessCall struct {
7948	s          *Service
7949	urlParams_ gensupport.URLParams
7950	ctx_       context.Context
7951	header_    http.Header
7952}
7953
7954// RequestAccess: Request concurrent and download access restrictions.
7955func (r *MyconfigService) RequestAccess(source string, volumeId string, nonce string, cpksver string) *MyconfigRequestAccessCall {
7956	c := &MyconfigRequestAccessCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7957	c.urlParams_.Set("source", source)
7958	c.urlParams_.Set("volumeId", volumeId)
7959	c.urlParams_.Set("nonce", nonce)
7960	c.urlParams_.Set("cpksver", cpksver)
7961	return c
7962}
7963
7964// LicenseTypes sets the optional parameter "licenseTypes": The type of
7965// access license to request. If not specified, the default is BOTH.
7966//
7967// Possible values:
7968//   "BOTH" - Both concurrent and download licenses.
7969//   "CONCURRENT" - Concurrent access license.
7970//   "DOWNLOAD" - Offline download access license.
7971func (c *MyconfigRequestAccessCall) LicenseTypes(licenseTypes string) *MyconfigRequestAccessCall {
7972	c.urlParams_.Set("licenseTypes", licenseTypes)
7973	return c
7974}
7975
7976// Locale sets the optional parameter "locale": ISO-639-1, ISO-3166-1
7977// codes for message localization, i.e. en_US.
7978func (c *MyconfigRequestAccessCall) Locale(locale string) *MyconfigRequestAccessCall {
7979	c.urlParams_.Set("locale", locale)
7980	return c
7981}
7982
7983// Fields allows partial responses to be retrieved. See
7984// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7985// for more information.
7986func (c *MyconfigRequestAccessCall) Fields(s ...googleapi.Field) *MyconfigRequestAccessCall {
7987	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7988	return c
7989}
7990
7991// Context sets the context to be used in this call's Do method. Any
7992// pending HTTP request will be aborted if the provided context is
7993// canceled.
7994func (c *MyconfigRequestAccessCall) Context(ctx context.Context) *MyconfigRequestAccessCall {
7995	c.ctx_ = ctx
7996	return c
7997}
7998
7999// Header returns an http.Header that can be modified by the caller to
8000// add HTTP headers to the request.
8001func (c *MyconfigRequestAccessCall) Header() http.Header {
8002	if c.header_ == nil {
8003		c.header_ = make(http.Header)
8004	}
8005	return c.header_
8006}
8007
8008func (c *MyconfigRequestAccessCall) doRequest(alt string) (*http.Response, error) {
8009	reqHeaders := make(http.Header)
8010	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
8011	for k, v := range c.header_ {
8012		reqHeaders[k] = v
8013	}
8014	reqHeaders.Set("User-Agent", c.s.userAgent())
8015	var body io.Reader = nil
8016	c.urlParams_.Set("alt", alt)
8017	c.urlParams_.Set("prettyPrint", "false")
8018	urls := googleapi.ResolveRelative(c.s.BasePath, "myconfig/requestAccess")
8019	urls += "?" + c.urlParams_.Encode()
8020	req, err := http.NewRequest("POST", urls, body)
8021	if err != nil {
8022		return nil, err
8023	}
8024	req.Header = reqHeaders
8025	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8026}
8027
8028// Do executes the "books.myconfig.requestAccess" call.
8029// Exactly one of *RequestAccess or error will be non-nil. Any non-2xx
8030// status code is an error. Response headers are in either
8031// *RequestAccess.ServerResponse.Header or (if a response was returned
8032// at all) in error.(*googleapi.Error).Header. Use
8033// googleapi.IsNotModified to check whether the returned error was
8034// because http.StatusNotModified was returned.
8035func (c *MyconfigRequestAccessCall) Do(opts ...googleapi.CallOption) (*RequestAccess, error) {
8036	gensupport.SetOptions(c.urlParams_, opts...)
8037	res, err := c.doRequest("json")
8038	if res != nil && res.StatusCode == http.StatusNotModified {
8039		if res.Body != nil {
8040			res.Body.Close()
8041		}
8042		return nil, &googleapi.Error{
8043			Code:   res.StatusCode,
8044			Header: res.Header,
8045		}
8046	}
8047	if err != nil {
8048		return nil, err
8049	}
8050	defer googleapi.CloseBody(res)
8051	if err := googleapi.CheckResponse(res); err != nil {
8052		return nil, err
8053	}
8054	ret := &RequestAccess{
8055		ServerResponse: googleapi.ServerResponse{
8056			Header:         res.Header,
8057			HTTPStatusCode: res.StatusCode,
8058		},
8059	}
8060	target := &ret
8061	if err := gensupport.DecodeResponse(target, res); err != nil {
8062		return nil, err
8063	}
8064	return ret, nil
8065	// {
8066	//   "description": "Request concurrent and download access restrictions.",
8067	//   "httpMethod": "POST",
8068	//   "id": "books.myconfig.requestAccess",
8069	//   "parameterOrder": [
8070	//     "source",
8071	//     "volumeId",
8072	//     "nonce",
8073	//     "cpksver"
8074	//   ],
8075	//   "parameters": {
8076	//     "cpksver": {
8077	//       "description": "The device/version ID from which to request the restrictions.",
8078	//       "location": "query",
8079	//       "required": true,
8080	//       "type": "string"
8081	//     },
8082	//     "licenseTypes": {
8083	//       "description": "The type of access license to request. If not specified, the default is BOTH.",
8084	//       "enum": [
8085	//         "BOTH",
8086	//         "CONCURRENT",
8087	//         "DOWNLOAD"
8088	//       ],
8089	//       "enumDescriptions": [
8090	//         "Both concurrent and download licenses.",
8091	//         "Concurrent access license.",
8092	//         "Offline download access license."
8093	//       ],
8094	//       "location": "query",
8095	//       "type": "string"
8096	//     },
8097	//     "locale": {
8098	//       "description": "ISO-639-1, ISO-3166-1 codes for message localization, i.e. en_US.",
8099	//       "location": "query",
8100	//       "type": "string"
8101	//     },
8102	//     "nonce": {
8103	//       "description": "The client nonce value.",
8104	//       "location": "query",
8105	//       "required": true,
8106	//       "type": "string"
8107	//     },
8108	//     "source": {
8109	//       "description": "String to identify the originator of this request.",
8110	//       "location": "query",
8111	//       "required": true,
8112	//       "type": "string"
8113	//     },
8114	//     "volumeId": {
8115	//       "description": "The volume to request concurrent/download restrictions for.",
8116	//       "location": "query",
8117	//       "required": true,
8118	//       "type": "string"
8119	//     }
8120	//   },
8121	//   "path": "myconfig/requestAccess",
8122	//   "response": {
8123	//     "$ref": "RequestAccess"
8124	//   },
8125	//   "scopes": [
8126	//     "https://www.googleapis.com/auth/books"
8127	//   ]
8128	// }
8129
8130}
8131
8132// method id "books.myconfig.syncVolumeLicenses":
8133
8134type MyconfigSyncVolumeLicensesCall struct {
8135	s          *Service
8136	urlParams_ gensupport.URLParams
8137	ctx_       context.Context
8138	header_    http.Header
8139}
8140
8141// SyncVolumeLicenses: Request downloaded content access for specified
8142// volumes on the My eBooks shelf.
8143func (r *MyconfigService) SyncVolumeLicenses(source string, nonce string, cpksver string) *MyconfigSyncVolumeLicensesCall {
8144	c := &MyconfigSyncVolumeLicensesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8145	c.urlParams_.Set("source", source)
8146	c.urlParams_.Set("nonce", nonce)
8147	c.urlParams_.Set("cpksver", cpksver)
8148	return c
8149}
8150
8151// Features sets the optional parameter "features": List of features
8152// supported by the client, i.e., 'RENTALS'
8153//
8154// Possible values:
8155//   "RENTALS" - Client supports rentals.
8156func (c *MyconfigSyncVolumeLicensesCall) Features(features ...string) *MyconfigSyncVolumeLicensesCall {
8157	c.urlParams_.SetMulti("features", append([]string{}, features...))
8158	return c
8159}
8160
8161// IncludeNonComicsSeries sets the optional parameter
8162// "includeNonComicsSeries": Set to true to include non-comics series.
8163// Defaults to false.
8164func (c *MyconfigSyncVolumeLicensesCall) IncludeNonComicsSeries(includeNonComicsSeries bool) *MyconfigSyncVolumeLicensesCall {
8165	c.urlParams_.Set("includeNonComicsSeries", fmt.Sprint(includeNonComicsSeries))
8166	return c
8167}
8168
8169// Locale sets the optional parameter "locale": ISO-639-1, ISO-3166-1
8170// codes for message localization, i.e. en_US.
8171func (c *MyconfigSyncVolumeLicensesCall) Locale(locale string) *MyconfigSyncVolumeLicensesCall {
8172	c.urlParams_.Set("locale", locale)
8173	return c
8174}
8175
8176// ShowPreorders sets the optional parameter "showPreorders": Set to
8177// true to show pre-ordered books. Defaults to false.
8178func (c *MyconfigSyncVolumeLicensesCall) ShowPreorders(showPreorders bool) *MyconfigSyncVolumeLicensesCall {
8179	c.urlParams_.Set("showPreorders", fmt.Sprint(showPreorders))
8180	return c
8181}
8182
8183// VolumeIds sets the optional parameter "volumeIds": The volume(s) to
8184// request download restrictions for.
8185func (c *MyconfigSyncVolumeLicensesCall) VolumeIds(volumeIds ...string) *MyconfigSyncVolumeLicensesCall {
8186	c.urlParams_.SetMulti("volumeIds", append([]string{}, volumeIds...))
8187	return c
8188}
8189
8190// Fields allows partial responses to be retrieved. See
8191// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8192// for more information.
8193func (c *MyconfigSyncVolumeLicensesCall) Fields(s ...googleapi.Field) *MyconfigSyncVolumeLicensesCall {
8194	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8195	return c
8196}
8197
8198// Context sets the context to be used in this call's Do method. Any
8199// pending HTTP request will be aborted if the provided context is
8200// canceled.
8201func (c *MyconfigSyncVolumeLicensesCall) Context(ctx context.Context) *MyconfigSyncVolumeLicensesCall {
8202	c.ctx_ = ctx
8203	return c
8204}
8205
8206// Header returns an http.Header that can be modified by the caller to
8207// add HTTP headers to the request.
8208func (c *MyconfigSyncVolumeLicensesCall) Header() http.Header {
8209	if c.header_ == nil {
8210		c.header_ = make(http.Header)
8211	}
8212	return c.header_
8213}
8214
8215func (c *MyconfigSyncVolumeLicensesCall) doRequest(alt string) (*http.Response, error) {
8216	reqHeaders := make(http.Header)
8217	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
8218	for k, v := range c.header_ {
8219		reqHeaders[k] = v
8220	}
8221	reqHeaders.Set("User-Agent", c.s.userAgent())
8222	var body io.Reader = nil
8223	c.urlParams_.Set("alt", alt)
8224	c.urlParams_.Set("prettyPrint", "false")
8225	urls := googleapi.ResolveRelative(c.s.BasePath, "myconfig/syncVolumeLicenses")
8226	urls += "?" + c.urlParams_.Encode()
8227	req, err := http.NewRequest("POST", urls, body)
8228	if err != nil {
8229		return nil, err
8230	}
8231	req.Header = reqHeaders
8232	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8233}
8234
8235// Do executes the "books.myconfig.syncVolumeLicenses" call.
8236// Exactly one of *Volumes or error will be non-nil. Any non-2xx status
8237// code is an error. Response headers are in either
8238// *Volumes.ServerResponse.Header or (if a response was returned at all)
8239// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
8240// check whether the returned error was because http.StatusNotModified
8241// was returned.
8242func (c *MyconfigSyncVolumeLicensesCall) Do(opts ...googleapi.CallOption) (*Volumes, error) {
8243	gensupport.SetOptions(c.urlParams_, opts...)
8244	res, err := c.doRequest("json")
8245	if res != nil && res.StatusCode == http.StatusNotModified {
8246		if res.Body != nil {
8247			res.Body.Close()
8248		}
8249		return nil, &googleapi.Error{
8250			Code:   res.StatusCode,
8251			Header: res.Header,
8252		}
8253	}
8254	if err != nil {
8255		return nil, err
8256	}
8257	defer googleapi.CloseBody(res)
8258	if err := googleapi.CheckResponse(res); err != nil {
8259		return nil, err
8260	}
8261	ret := &Volumes{
8262		ServerResponse: googleapi.ServerResponse{
8263			Header:         res.Header,
8264			HTTPStatusCode: res.StatusCode,
8265		},
8266	}
8267	target := &ret
8268	if err := gensupport.DecodeResponse(target, res); err != nil {
8269		return nil, err
8270	}
8271	return ret, nil
8272	// {
8273	//   "description": "Request downloaded content access for specified volumes on the My eBooks shelf.",
8274	//   "httpMethod": "POST",
8275	//   "id": "books.myconfig.syncVolumeLicenses",
8276	//   "parameterOrder": [
8277	//     "source",
8278	//     "nonce",
8279	//     "cpksver"
8280	//   ],
8281	//   "parameters": {
8282	//     "cpksver": {
8283	//       "description": "The device/version ID from which to release the restriction.",
8284	//       "location": "query",
8285	//       "required": true,
8286	//       "type": "string"
8287	//     },
8288	//     "features": {
8289	//       "description": "List of features supported by the client, i.e., 'RENTALS'",
8290	//       "enum": [
8291	//         "RENTALS"
8292	//       ],
8293	//       "enumDescriptions": [
8294	//         "Client supports rentals."
8295	//       ],
8296	//       "location": "query",
8297	//       "repeated": true,
8298	//       "type": "string"
8299	//     },
8300	//     "includeNonComicsSeries": {
8301	//       "description": "Set to true to include non-comics series. Defaults to false.",
8302	//       "location": "query",
8303	//       "type": "boolean"
8304	//     },
8305	//     "locale": {
8306	//       "description": "ISO-639-1, ISO-3166-1 codes for message localization, i.e. en_US.",
8307	//       "location": "query",
8308	//       "type": "string"
8309	//     },
8310	//     "nonce": {
8311	//       "description": "The client nonce value.",
8312	//       "location": "query",
8313	//       "required": true,
8314	//       "type": "string"
8315	//     },
8316	//     "showPreorders": {
8317	//       "description": "Set to true to show pre-ordered books. Defaults to false.",
8318	//       "location": "query",
8319	//       "type": "boolean"
8320	//     },
8321	//     "source": {
8322	//       "description": "String to identify the originator of this request.",
8323	//       "location": "query",
8324	//       "required": true,
8325	//       "type": "string"
8326	//     },
8327	//     "volumeIds": {
8328	//       "description": "The volume(s) to request download restrictions for.",
8329	//       "location": "query",
8330	//       "repeated": true,
8331	//       "type": "string"
8332	//     }
8333	//   },
8334	//   "path": "myconfig/syncVolumeLicenses",
8335	//   "response": {
8336	//     "$ref": "Volumes"
8337	//   },
8338	//   "scopes": [
8339	//     "https://www.googleapis.com/auth/books"
8340	//   ]
8341	// }
8342
8343}
8344
8345// method id "books.myconfig.updateUserSettings":
8346
8347type MyconfigUpdateUserSettingsCall struct {
8348	s            *Service
8349	usersettings *Usersettings
8350	urlParams_   gensupport.URLParams
8351	ctx_         context.Context
8352	header_      http.Header
8353}
8354
8355// UpdateUserSettings: Sets the settings for the user. If a sub-object
8356// is specified, it will overwrite the existing sub-object stored in the
8357// server. Unspecified sub-objects will retain the existing value.
8358func (r *MyconfigService) UpdateUserSettings(usersettings *Usersettings) *MyconfigUpdateUserSettingsCall {
8359	c := &MyconfigUpdateUserSettingsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8360	c.usersettings = usersettings
8361	return c
8362}
8363
8364// Fields allows partial responses to be retrieved. See
8365// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8366// for more information.
8367func (c *MyconfigUpdateUserSettingsCall) Fields(s ...googleapi.Field) *MyconfigUpdateUserSettingsCall {
8368	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8369	return c
8370}
8371
8372// Context sets the context to be used in this call's Do method. Any
8373// pending HTTP request will be aborted if the provided context is
8374// canceled.
8375func (c *MyconfigUpdateUserSettingsCall) Context(ctx context.Context) *MyconfigUpdateUserSettingsCall {
8376	c.ctx_ = ctx
8377	return c
8378}
8379
8380// Header returns an http.Header that can be modified by the caller to
8381// add HTTP headers to the request.
8382func (c *MyconfigUpdateUserSettingsCall) Header() http.Header {
8383	if c.header_ == nil {
8384		c.header_ = make(http.Header)
8385	}
8386	return c.header_
8387}
8388
8389func (c *MyconfigUpdateUserSettingsCall) doRequest(alt string) (*http.Response, error) {
8390	reqHeaders := make(http.Header)
8391	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
8392	for k, v := range c.header_ {
8393		reqHeaders[k] = v
8394	}
8395	reqHeaders.Set("User-Agent", c.s.userAgent())
8396	var body io.Reader = nil
8397	body, err := googleapi.WithoutDataWrapper.JSONReader(c.usersettings)
8398	if err != nil {
8399		return nil, err
8400	}
8401	reqHeaders.Set("Content-Type", "application/json")
8402	c.urlParams_.Set("alt", alt)
8403	c.urlParams_.Set("prettyPrint", "false")
8404	urls := googleapi.ResolveRelative(c.s.BasePath, "myconfig/updateUserSettings")
8405	urls += "?" + c.urlParams_.Encode()
8406	req, err := http.NewRequest("POST", urls, body)
8407	if err != nil {
8408		return nil, err
8409	}
8410	req.Header = reqHeaders
8411	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8412}
8413
8414// Do executes the "books.myconfig.updateUserSettings" call.
8415// Exactly one of *Usersettings or error will be non-nil. Any non-2xx
8416// status code is an error. Response headers are in either
8417// *Usersettings.ServerResponse.Header or (if a response was returned at
8418// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
8419// to check whether the returned error was because
8420// http.StatusNotModified was returned.
8421func (c *MyconfigUpdateUserSettingsCall) Do(opts ...googleapi.CallOption) (*Usersettings, error) {
8422	gensupport.SetOptions(c.urlParams_, opts...)
8423	res, err := c.doRequest("json")
8424	if res != nil && res.StatusCode == http.StatusNotModified {
8425		if res.Body != nil {
8426			res.Body.Close()
8427		}
8428		return nil, &googleapi.Error{
8429			Code:   res.StatusCode,
8430			Header: res.Header,
8431		}
8432	}
8433	if err != nil {
8434		return nil, err
8435	}
8436	defer googleapi.CloseBody(res)
8437	if err := googleapi.CheckResponse(res); err != nil {
8438		return nil, err
8439	}
8440	ret := &Usersettings{
8441		ServerResponse: googleapi.ServerResponse{
8442			Header:         res.Header,
8443			HTTPStatusCode: res.StatusCode,
8444		},
8445	}
8446	target := &ret
8447	if err := gensupport.DecodeResponse(target, res); err != nil {
8448		return nil, err
8449	}
8450	return ret, nil
8451	// {
8452	//   "description": "Sets the settings for the user. If a sub-object is specified, it will overwrite the existing sub-object stored in the server. Unspecified sub-objects will retain the existing value.",
8453	//   "httpMethod": "POST",
8454	//   "id": "books.myconfig.updateUserSettings",
8455	//   "path": "myconfig/updateUserSettings",
8456	//   "request": {
8457	//     "$ref": "Usersettings"
8458	//   },
8459	//   "response": {
8460	//     "$ref": "Usersettings"
8461	//   },
8462	//   "scopes": [
8463	//     "https://www.googleapis.com/auth/books"
8464	//   ]
8465	// }
8466
8467}
8468
8469// method id "books.mylibrary.annotations.delete":
8470
8471type MylibraryAnnotationsDeleteCall struct {
8472	s            *Service
8473	annotationId string
8474	urlParams_   gensupport.URLParams
8475	ctx_         context.Context
8476	header_      http.Header
8477}
8478
8479// Delete: Deletes an annotation.
8480func (r *MylibraryAnnotationsService) Delete(annotationId string) *MylibraryAnnotationsDeleteCall {
8481	c := &MylibraryAnnotationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8482	c.annotationId = annotationId
8483	return c
8484}
8485
8486// Source sets the optional parameter "source": String to identify the
8487// originator of this request.
8488func (c *MylibraryAnnotationsDeleteCall) Source(source string) *MylibraryAnnotationsDeleteCall {
8489	c.urlParams_.Set("source", source)
8490	return c
8491}
8492
8493// Fields allows partial responses to be retrieved. See
8494// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8495// for more information.
8496func (c *MylibraryAnnotationsDeleteCall) Fields(s ...googleapi.Field) *MylibraryAnnotationsDeleteCall {
8497	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8498	return c
8499}
8500
8501// Context sets the context to be used in this call's Do method. Any
8502// pending HTTP request will be aborted if the provided context is
8503// canceled.
8504func (c *MylibraryAnnotationsDeleteCall) Context(ctx context.Context) *MylibraryAnnotationsDeleteCall {
8505	c.ctx_ = ctx
8506	return c
8507}
8508
8509// Header returns an http.Header that can be modified by the caller to
8510// add HTTP headers to the request.
8511func (c *MylibraryAnnotationsDeleteCall) Header() http.Header {
8512	if c.header_ == nil {
8513		c.header_ = make(http.Header)
8514	}
8515	return c.header_
8516}
8517
8518func (c *MylibraryAnnotationsDeleteCall) doRequest(alt string) (*http.Response, error) {
8519	reqHeaders := make(http.Header)
8520	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
8521	for k, v := range c.header_ {
8522		reqHeaders[k] = v
8523	}
8524	reqHeaders.Set("User-Agent", c.s.userAgent())
8525	var body io.Reader = nil
8526	c.urlParams_.Set("alt", alt)
8527	c.urlParams_.Set("prettyPrint", "false")
8528	urls := googleapi.ResolveRelative(c.s.BasePath, "mylibrary/annotations/{annotationId}")
8529	urls += "?" + c.urlParams_.Encode()
8530	req, err := http.NewRequest("DELETE", urls, body)
8531	if err != nil {
8532		return nil, err
8533	}
8534	req.Header = reqHeaders
8535	googleapi.Expand(req.URL, map[string]string{
8536		"annotationId": c.annotationId,
8537	})
8538	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8539}
8540
8541// Do executes the "books.mylibrary.annotations.delete" call.
8542func (c *MylibraryAnnotationsDeleteCall) Do(opts ...googleapi.CallOption) error {
8543	gensupport.SetOptions(c.urlParams_, opts...)
8544	res, err := c.doRequest("json")
8545	if err != nil {
8546		return err
8547	}
8548	defer googleapi.CloseBody(res)
8549	if err := googleapi.CheckResponse(res); err != nil {
8550		return err
8551	}
8552	return nil
8553	// {
8554	//   "description": "Deletes an annotation.",
8555	//   "httpMethod": "DELETE",
8556	//   "id": "books.mylibrary.annotations.delete",
8557	//   "parameterOrder": [
8558	//     "annotationId"
8559	//   ],
8560	//   "parameters": {
8561	//     "annotationId": {
8562	//       "description": "The ID for the annotation to delete.",
8563	//       "location": "path",
8564	//       "required": true,
8565	//       "type": "string"
8566	//     },
8567	//     "source": {
8568	//       "description": "String to identify the originator of this request.",
8569	//       "location": "query",
8570	//       "type": "string"
8571	//     }
8572	//   },
8573	//   "path": "mylibrary/annotations/{annotationId}",
8574	//   "scopes": [
8575	//     "https://www.googleapis.com/auth/books"
8576	//   ]
8577	// }
8578
8579}
8580
8581// method id "books.mylibrary.annotations.insert":
8582
8583type MylibraryAnnotationsInsertCall struct {
8584	s          *Service
8585	annotation *Annotation
8586	urlParams_ gensupport.URLParams
8587	ctx_       context.Context
8588	header_    http.Header
8589}
8590
8591// Insert: Inserts a new annotation.
8592func (r *MylibraryAnnotationsService) Insert(annotation *Annotation) *MylibraryAnnotationsInsertCall {
8593	c := &MylibraryAnnotationsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8594	c.annotation = annotation
8595	return c
8596}
8597
8598// AnnotationId sets the optional parameter "annotationId": The ID for
8599// the annotation to insert.
8600func (c *MylibraryAnnotationsInsertCall) AnnotationId(annotationId string) *MylibraryAnnotationsInsertCall {
8601	c.urlParams_.Set("annotationId", annotationId)
8602	return c
8603}
8604
8605// Country sets the optional parameter "country": ISO-3166-1 code to
8606// override the IP-based location.
8607func (c *MylibraryAnnotationsInsertCall) Country(country string) *MylibraryAnnotationsInsertCall {
8608	c.urlParams_.Set("country", country)
8609	return c
8610}
8611
8612// ShowOnlySummaryInResponse sets the optional parameter
8613// "showOnlySummaryInResponse": Requests that only the summary of the
8614// specified layer be provided in the response.
8615func (c *MylibraryAnnotationsInsertCall) ShowOnlySummaryInResponse(showOnlySummaryInResponse bool) *MylibraryAnnotationsInsertCall {
8616	c.urlParams_.Set("showOnlySummaryInResponse", fmt.Sprint(showOnlySummaryInResponse))
8617	return c
8618}
8619
8620// Source sets the optional parameter "source": String to identify the
8621// originator of this request.
8622func (c *MylibraryAnnotationsInsertCall) Source(source string) *MylibraryAnnotationsInsertCall {
8623	c.urlParams_.Set("source", source)
8624	return c
8625}
8626
8627// Fields allows partial responses to be retrieved. See
8628// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8629// for more information.
8630func (c *MylibraryAnnotationsInsertCall) Fields(s ...googleapi.Field) *MylibraryAnnotationsInsertCall {
8631	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8632	return c
8633}
8634
8635// Context sets the context to be used in this call's Do method. Any
8636// pending HTTP request will be aborted if the provided context is
8637// canceled.
8638func (c *MylibraryAnnotationsInsertCall) Context(ctx context.Context) *MylibraryAnnotationsInsertCall {
8639	c.ctx_ = ctx
8640	return c
8641}
8642
8643// Header returns an http.Header that can be modified by the caller to
8644// add HTTP headers to the request.
8645func (c *MylibraryAnnotationsInsertCall) Header() http.Header {
8646	if c.header_ == nil {
8647		c.header_ = make(http.Header)
8648	}
8649	return c.header_
8650}
8651
8652func (c *MylibraryAnnotationsInsertCall) doRequest(alt string) (*http.Response, error) {
8653	reqHeaders := make(http.Header)
8654	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
8655	for k, v := range c.header_ {
8656		reqHeaders[k] = v
8657	}
8658	reqHeaders.Set("User-Agent", c.s.userAgent())
8659	var body io.Reader = nil
8660	body, err := googleapi.WithoutDataWrapper.JSONReader(c.annotation)
8661	if err != nil {
8662		return nil, err
8663	}
8664	reqHeaders.Set("Content-Type", "application/json")
8665	c.urlParams_.Set("alt", alt)
8666	c.urlParams_.Set("prettyPrint", "false")
8667	urls := googleapi.ResolveRelative(c.s.BasePath, "mylibrary/annotations")
8668	urls += "?" + c.urlParams_.Encode()
8669	req, err := http.NewRequest("POST", urls, body)
8670	if err != nil {
8671		return nil, err
8672	}
8673	req.Header = reqHeaders
8674	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8675}
8676
8677// Do executes the "books.mylibrary.annotations.insert" call.
8678// Exactly one of *Annotation or error will be non-nil. Any non-2xx
8679// status code is an error. Response headers are in either
8680// *Annotation.ServerResponse.Header or (if a response was returned at
8681// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
8682// to check whether the returned error was because
8683// http.StatusNotModified was returned.
8684func (c *MylibraryAnnotationsInsertCall) Do(opts ...googleapi.CallOption) (*Annotation, error) {
8685	gensupport.SetOptions(c.urlParams_, opts...)
8686	res, err := c.doRequest("json")
8687	if res != nil && res.StatusCode == http.StatusNotModified {
8688		if res.Body != nil {
8689			res.Body.Close()
8690		}
8691		return nil, &googleapi.Error{
8692			Code:   res.StatusCode,
8693			Header: res.Header,
8694		}
8695	}
8696	if err != nil {
8697		return nil, err
8698	}
8699	defer googleapi.CloseBody(res)
8700	if err := googleapi.CheckResponse(res); err != nil {
8701		return nil, err
8702	}
8703	ret := &Annotation{
8704		ServerResponse: googleapi.ServerResponse{
8705			Header:         res.Header,
8706			HTTPStatusCode: res.StatusCode,
8707		},
8708	}
8709	target := &ret
8710	if err := gensupport.DecodeResponse(target, res); err != nil {
8711		return nil, err
8712	}
8713	return ret, nil
8714	// {
8715	//   "description": "Inserts a new annotation.",
8716	//   "httpMethod": "POST",
8717	//   "id": "books.mylibrary.annotations.insert",
8718	//   "parameters": {
8719	//     "annotationId": {
8720	//       "description": "The ID for the annotation to insert.",
8721	//       "location": "query",
8722	//       "type": "string"
8723	//     },
8724	//     "country": {
8725	//       "description": "ISO-3166-1 code to override the IP-based location.",
8726	//       "location": "query",
8727	//       "type": "string"
8728	//     },
8729	//     "showOnlySummaryInResponse": {
8730	//       "description": "Requests that only the summary of the specified layer be provided in the response.",
8731	//       "location": "query",
8732	//       "type": "boolean"
8733	//     },
8734	//     "source": {
8735	//       "description": "String to identify the originator of this request.",
8736	//       "location": "query",
8737	//       "type": "string"
8738	//     }
8739	//   },
8740	//   "path": "mylibrary/annotations",
8741	//   "request": {
8742	//     "$ref": "Annotation"
8743	//   },
8744	//   "response": {
8745	//     "$ref": "Annotation"
8746	//   },
8747	//   "scopes": [
8748	//     "https://www.googleapis.com/auth/books"
8749	//   ]
8750	// }
8751
8752}
8753
8754// method id "books.mylibrary.annotations.list":
8755
8756type MylibraryAnnotationsListCall struct {
8757	s            *Service
8758	urlParams_   gensupport.URLParams
8759	ifNoneMatch_ string
8760	ctx_         context.Context
8761	header_      http.Header
8762}
8763
8764// List: Retrieves a list of annotations, possibly filtered.
8765func (r *MylibraryAnnotationsService) List() *MylibraryAnnotationsListCall {
8766	c := &MylibraryAnnotationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8767	return c
8768}
8769
8770// ContentVersion sets the optional parameter "contentVersion": The
8771// content version for the requested volume.
8772func (c *MylibraryAnnotationsListCall) ContentVersion(contentVersion string) *MylibraryAnnotationsListCall {
8773	c.urlParams_.Set("contentVersion", contentVersion)
8774	return c
8775}
8776
8777// LayerId sets the optional parameter "layerId": The layer ID to limit
8778// annotation by.
8779func (c *MylibraryAnnotationsListCall) LayerId(layerId string) *MylibraryAnnotationsListCall {
8780	c.urlParams_.Set("layerId", layerId)
8781	return c
8782}
8783
8784// LayerIds sets the optional parameter "layerIds": The layer ID(s) to
8785// limit annotation by.
8786func (c *MylibraryAnnotationsListCall) LayerIds(layerIds ...string) *MylibraryAnnotationsListCall {
8787	c.urlParams_.SetMulti("layerIds", append([]string{}, layerIds...))
8788	return c
8789}
8790
8791// MaxResults sets the optional parameter "maxResults": Maximum number
8792// of results to return
8793func (c *MylibraryAnnotationsListCall) MaxResults(maxResults int64) *MylibraryAnnotationsListCall {
8794	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
8795	return c
8796}
8797
8798// PageToken sets the optional parameter "pageToken": The value of the
8799// nextToken from the previous page.
8800func (c *MylibraryAnnotationsListCall) PageToken(pageToken string) *MylibraryAnnotationsListCall {
8801	c.urlParams_.Set("pageToken", pageToken)
8802	return c
8803}
8804
8805// ShowDeleted sets the optional parameter "showDeleted": Set to true to
8806// return deleted annotations. updatedMin must be in the request to use
8807// this. Defaults to false.
8808func (c *MylibraryAnnotationsListCall) ShowDeleted(showDeleted bool) *MylibraryAnnotationsListCall {
8809	c.urlParams_.Set("showDeleted", fmt.Sprint(showDeleted))
8810	return c
8811}
8812
8813// Source sets the optional parameter "source": String to identify the
8814// originator of this request.
8815func (c *MylibraryAnnotationsListCall) Source(source string) *MylibraryAnnotationsListCall {
8816	c.urlParams_.Set("source", source)
8817	return c
8818}
8819
8820// UpdatedMax sets the optional parameter "updatedMax": RFC 3339
8821// timestamp to restrict to items updated prior to this timestamp
8822// (exclusive).
8823func (c *MylibraryAnnotationsListCall) UpdatedMax(updatedMax string) *MylibraryAnnotationsListCall {
8824	c.urlParams_.Set("updatedMax", updatedMax)
8825	return c
8826}
8827
8828// UpdatedMin sets the optional parameter "updatedMin": RFC 3339
8829// timestamp to restrict to items updated since this timestamp
8830// (inclusive).
8831func (c *MylibraryAnnotationsListCall) UpdatedMin(updatedMin string) *MylibraryAnnotationsListCall {
8832	c.urlParams_.Set("updatedMin", updatedMin)
8833	return c
8834}
8835
8836// VolumeId sets the optional parameter "volumeId": The volume to
8837// restrict annotations to.
8838func (c *MylibraryAnnotationsListCall) VolumeId(volumeId string) *MylibraryAnnotationsListCall {
8839	c.urlParams_.Set("volumeId", volumeId)
8840	return c
8841}
8842
8843// Fields allows partial responses to be retrieved. See
8844// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8845// for more information.
8846func (c *MylibraryAnnotationsListCall) Fields(s ...googleapi.Field) *MylibraryAnnotationsListCall {
8847	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8848	return c
8849}
8850
8851// IfNoneMatch sets the optional parameter which makes the operation
8852// fail if the object's ETag matches the given value. This is useful for
8853// getting updates only after the object has changed since the last
8854// request. Use googleapi.IsNotModified to check whether the response
8855// error from Do is the result of In-None-Match.
8856func (c *MylibraryAnnotationsListCall) IfNoneMatch(entityTag string) *MylibraryAnnotationsListCall {
8857	c.ifNoneMatch_ = entityTag
8858	return c
8859}
8860
8861// Context sets the context to be used in this call's Do method. Any
8862// pending HTTP request will be aborted if the provided context is
8863// canceled.
8864func (c *MylibraryAnnotationsListCall) Context(ctx context.Context) *MylibraryAnnotationsListCall {
8865	c.ctx_ = ctx
8866	return c
8867}
8868
8869// Header returns an http.Header that can be modified by the caller to
8870// add HTTP headers to the request.
8871func (c *MylibraryAnnotationsListCall) Header() http.Header {
8872	if c.header_ == nil {
8873		c.header_ = make(http.Header)
8874	}
8875	return c.header_
8876}
8877
8878func (c *MylibraryAnnotationsListCall) doRequest(alt string) (*http.Response, error) {
8879	reqHeaders := make(http.Header)
8880	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
8881	for k, v := range c.header_ {
8882		reqHeaders[k] = v
8883	}
8884	reqHeaders.Set("User-Agent", c.s.userAgent())
8885	if c.ifNoneMatch_ != "" {
8886		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
8887	}
8888	var body io.Reader = nil
8889	c.urlParams_.Set("alt", alt)
8890	c.urlParams_.Set("prettyPrint", "false")
8891	urls := googleapi.ResolveRelative(c.s.BasePath, "mylibrary/annotations")
8892	urls += "?" + c.urlParams_.Encode()
8893	req, err := http.NewRequest("GET", urls, body)
8894	if err != nil {
8895		return nil, err
8896	}
8897	req.Header = reqHeaders
8898	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8899}
8900
8901// Do executes the "books.mylibrary.annotations.list" call.
8902// Exactly one of *Annotations or error will be non-nil. Any non-2xx
8903// status code is an error. Response headers are in either
8904// *Annotations.ServerResponse.Header or (if a response was returned at
8905// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
8906// to check whether the returned error was because
8907// http.StatusNotModified was returned.
8908func (c *MylibraryAnnotationsListCall) Do(opts ...googleapi.CallOption) (*Annotations, error) {
8909	gensupport.SetOptions(c.urlParams_, opts...)
8910	res, err := c.doRequest("json")
8911	if res != nil && res.StatusCode == http.StatusNotModified {
8912		if res.Body != nil {
8913			res.Body.Close()
8914		}
8915		return nil, &googleapi.Error{
8916			Code:   res.StatusCode,
8917			Header: res.Header,
8918		}
8919	}
8920	if err != nil {
8921		return nil, err
8922	}
8923	defer googleapi.CloseBody(res)
8924	if err := googleapi.CheckResponse(res); err != nil {
8925		return nil, err
8926	}
8927	ret := &Annotations{
8928		ServerResponse: googleapi.ServerResponse{
8929			Header:         res.Header,
8930			HTTPStatusCode: res.StatusCode,
8931		},
8932	}
8933	target := &ret
8934	if err := gensupport.DecodeResponse(target, res); err != nil {
8935		return nil, err
8936	}
8937	return ret, nil
8938	// {
8939	//   "description": "Retrieves a list of annotations, possibly filtered.",
8940	//   "httpMethod": "GET",
8941	//   "id": "books.mylibrary.annotations.list",
8942	//   "parameters": {
8943	//     "contentVersion": {
8944	//       "description": "The content version for the requested volume.",
8945	//       "location": "query",
8946	//       "type": "string"
8947	//     },
8948	//     "layerId": {
8949	//       "description": "The layer ID to limit annotation by.",
8950	//       "location": "query",
8951	//       "type": "string"
8952	//     },
8953	//     "layerIds": {
8954	//       "description": "The layer ID(s) to limit annotation by.",
8955	//       "location": "query",
8956	//       "repeated": true,
8957	//       "type": "string"
8958	//     },
8959	//     "maxResults": {
8960	//       "description": "Maximum number of results to return",
8961	//       "format": "uint32",
8962	//       "location": "query",
8963	//       "maximum": "40",
8964	//       "minimum": "0",
8965	//       "type": "integer"
8966	//     },
8967	//     "pageToken": {
8968	//       "description": "The value of the nextToken from the previous page.",
8969	//       "location": "query",
8970	//       "type": "string"
8971	//     },
8972	//     "showDeleted": {
8973	//       "description": "Set to true to return deleted annotations. updatedMin must be in the request to use this. Defaults to false.",
8974	//       "location": "query",
8975	//       "type": "boolean"
8976	//     },
8977	//     "source": {
8978	//       "description": "String to identify the originator of this request.",
8979	//       "location": "query",
8980	//       "type": "string"
8981	//     },
8982	//     "updatedMax": {
8983	//       "description": "RFC 3339 timestamp to restrict to items updated prior to this timestamp (exclusive).",
8984	//       "location": "query",
8985	//       "type": "string"
8986	//     },
8987	//     "updatedMin": {
8988	//       "description": "RFC 3339 timestamp to restrict to items updated since this timestamp (inclusive).",
8989	//       "location": "query",
8990	//       "type": "string"
8991	//     },
8992	//     "volumeId": {
8993	//       "description": "The volume to restrict annotations to.",
8994	//       "location": "query",
8995	//       "type": "string"
8996	//     }
8997	//   },
8998	//   "path": "mylibrary/annotations",
8999	//   "response": {
9000	//     "$ref": "Annotations"
9001	//   },
9002	//   "scopes": [
9003	//     "https://www.googleapis.com/auth/books"
9004	//   ]
9005	// }
9006
9007}
9008
9009// Pages invokes f for each page of results.
9010// A non-nil error returned from f will halt the iteration.
9011// The provided context supersedes any context provided to the Context method.
9012func (c *MylibraryAnnotationsListCall) Pages(ctx context.Context, f func(*Annotations) error) error {
9013	c.ctx_ = ctx
9014	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
9015	for {
9016		x, err := c.Do()
9017		if err != nil {
9018			return err
9019		}
9020		if err := f(x); err != nil {
9021			return err
9022		}
9023		if x.NextPageToken == "" {
9024			return nil
9025		}
9026		c.PageToken(x.NextPageToken)
9027	}
9028}
9029
9030// method id "books.mylibrary.annotations.summary":
9031
9032type MylibraryAnnotationsSummaryCall struct {
9033	s          *Service
9034	urlParams_ gensupport.URLParams
9035	ctx_       context.Context
9036	header_    http.Header
9037}
9038
9039// Summary: Gets the summary of specified layers.
9040func (r *MylibraryAnnotationsService) Summary(layerIds []string, volumeId string) *MylibraryAnnotationsSummaryCall {
9041	c := &MylibraryAnnotationsSummaryCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9042	c.urlParams_.SetMulti("layerIds", append([]string{}, layerIds...))
9043	c.urlParams_.Set("volumeId", volumeId)
9044	return c
9045}
9046
9047// Fields allows partial responses to be retrieved. See
9048// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9049// for more information.
9050func (c *MylibraryAnnotationsSummaryCall) Fields(s ...googleapi.Field) *MylibraryAnnotationsSummaryCall {
9051	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9052	return c
9053}
9054
9055// Context sets the context to be used in this call's Do method. Any
9056// pending HTTP request will be aborted if the provided context is
9057// canceled.
9058func (c *MylibraryAnnotationsSummaryCall) Context(ctx context.Context) *MylibraryAnnotationsSummaryCall {
9059	c.ctx_ = ctx
9060	return c
9061}
9062
9063// Header returns an http.Header that can be modified by the caller to
9064// add HTTP headers to the request.
9065func (c *MylibraryAnnotationsSummaryCall) Header() http.Header {
9066	if c.header_ == nil {
9067		c.header_ = make(http.Header)
9068	}
9069	return c.header_
9070}
9071
9072func (c *MylibraryAnnotationsSummaryCall) doRequest(alt string) (*http.Response, error) {
9073	reqHeaders := make(http.Header)
9074	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
9075	for k, v := range c.header_ {
9076		reqHeaders[k] = v
9077	}
9078	reqHeaders.Set("User-Agent", c.s.userAgent())
9079	var body io.Reader = nil
9080	c.urlParams_.Set("alt", alt)
9081	c.urlParams_.Set("prettyPrint", "false")
9082	urls := googleapi.ResolveRelative(c.s.BasePath, "mylibrary/annotations/summary")
9083	urls += "?" + c.urlParams_.Encode()
9084	req, err := http.NewRequest("POST", urls, body)
9085	if err != nil {
9086		return nil, err
9087	}
9088	req.Header = reqHeaders
9089	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9090}
9091
9092// Do executes the "books.mylibrary.annotations.summary" call.
9093// Exactly one of *AnnotationsSummary or error will be non-nil. Any
9094// non-2xx status code is an error. Response headers are in either
9095// *AnnotationsSummary.ServerResponse.Header or (if a response was
9096// returned at all) in error.(*googleapi.Error).Header. Use
9097// googleapi.IsNotModified to check whether the returned error was
9098// because http.StatusNotModified was returned.
9099func (c *MylibraryAnnotationsSummaryCall) Do(opts ...googleapi.CallOption) (*AnnotationsSummary, error) {
9100	gensupport.SetOptions(c.urlParams_, opts...)
9101	res, err := c.doRequest("json")
9102	if res != nil && res.StatusCode == http.StatusNotModified {
9103		if res.Body != nil {
9104			res.Body.Close()
9105		}
9106		return nil, &googleapi.Error{
9107			Code:   res.StatusCode,
9108			Header: res.Header,
9109		}
9110	}
9111	if err != nil {
9112		return nil, err
9113	}
9114	defer googleapi.CloseBody(res)
9115	if err := googleapi.CheckResponse(res); err != nil {
9116		return nil, err
9117	}
9118	ret := &AnnotationsSummary{
9119		ServerResponse: googleapi.ServerResponse{
9120			Header:         res.Header,
9121			HTTPStatusCode: res.StatusCode,
9122		},
9123	}
9124	target := &ret
9125	if err := gensupport.DecodeResponse(target, res); err != nil {
9126		return nil, err
9127	}
9128	return ret, nil
9129	// {
9130	//   "description": "Gets the summary of specified layers.",
9131	//   "httpMethod": "POST",
9132	//   "id": "books.mylibrary.annotations.summary",
9133	//   "parameterOrder": [
9134	//     "layerIds",
9135	//     "volumeId"
9136	//   ],
9137	//   "parameters": {
9138	//     "layerIds": {
9139	//       "description": "Array of layer IDs to get the summary for.",
9140	//       "location": "query",
9141	//       "repeated": true,
9142	//       "required": true,
9143	//       "type": "string"
9144	//     },
9145	//     "volumeId": {
9146	//       "description": "Volume id to get the summary for.",
9147	//       "location": "query",
9148	//       "required": true,
9149	//       "type": "string"
9150	//     }
9151	//   },
9152	//   "path": "mylibrary/annotations/summary",
9153	//   "response": {
9154	//     "$ref": "AnnotationsSummary"
9155	//   },
9156	//   "scopes": [
9157	//     "https://www.googleapis.com/auth/books"
9158	//   ]
9159	// }
9160
9161}
9162
9163// method id "books.mylibrary.annotations.update":
9164
9165type MylibraryAnnotationsUpdateCall struct {
9166	s            *Service
9167	annotationId string
9168	annotation   *Annotation
9169	urlParams_   gensupport.URLParams
9170	ctx_         context.Context
9171	header_      http.Header
9172}
9173
9174// Update: Updates an existing annotation.
9175func (r *MylibraryAnnotationsService) Update(annotationId string, annotation *Annotation) *MylibraryAnnotationsUpdateCall {
9176	c := &MylibraryAnnotationsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9177	c.annotationId = annotationId
9178	c.annotation = annotation
9179	return c
9180}
9181
9182// Source sets the optional parameter "source": String to identify the
9183// originator of this request.
9184func (c *MylibraryAnnotationsUpdateCall) Source(source string) *MylibraryAnnotationsUpdateCall {
9185	c.urlParams_.Set("source", source)
9186	return c
9187}
9188
9189// Fields allows partial responses to be retrieved. See
9190// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9191// for more information.
9192func (c *MylibraryAnnotationsUpdateCall) Fields(s ...googleapi.Field) *MylibraryAnnotationsUpdateCall {
9193	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9194	return c
9195}
9196
9197// Context sets the context to be used in this call's Do method. Any
9198// pending HTTP request will be aborted if the provided context is
9199// canceled.
9200func (c *MylibraryAnnotationsUpdateCall) Context(ctx context.Context) *MylibraryAnnotationsUpdateCall {
9201	c.ctx_ = ctx
9202	return c
9203}
9204
9205// Header returns an http.Header that can be modified by the caller to
9206// add HTTP headers to the request.
9207func (c *MylibraryAnnotationsUpdateCall) Header() http.Header {
9208	if c.header_ == nil {
9209		c.header_ = make(http.Header)
9210	}
9211	return c.header_
9212}
9213
9214func (c *MylibraryAnnotationsUpdateCall) doRequest(alt string) (*http.Response, error) {
9215	reqHeaders := make(http.Header)
9216	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
9217	for k, v := range c.header_ {
9218		reqHeaders[k] = v
9219	}
9220	reqHeaders.Set("User-Agent", c.s.userAgent())
9221	var body io.Reader = nil
9222	body, err := googleapi.WithoutDataWrapper.JSONReader(c.annotation)
9223	if err != nil {
9224		return nil, err
9225	}
9226	reqHeaders.Set("Content-Type", "application/json")
9227	c.urlParams_.Set("alt", alt)
9228	c.urlParams_.Set("prettyPrint", "false")
9229	urls := googleapi.ResolveRelative(c.s.BasePath, "mylibrary/annotations/{annotationId}")
9230	urls += "?" + c.urlParams_.Encode()
9231	req, err := http.NewRequest("PUT", urls, body)
9232	if err != nil {
9233		return nil, err
9234	}
9235	req.Header = reqHeaders
9236	googleapi.Expand(req.URL, map[string]string{
9237		"annotationId": c.annotationId,
9238	})
9239	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9240}
9241
9242// Do executes the "books.mylibrary.annotations.update" call.
9243// Exactly one of *Annotation or error will be non-nil. Any non-2xx
9244// status code is an error. Response headers are in either
9245// *Annotation.ServerResponse.Header or (if a response was returned at
9246// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
9247// to check whether the returned error was because
9248// http.StatusNotModified was returned.
9249func (c *MylibraryAnnotationsUpdateCall) Do(opts ...googleapi.CallOption) (*Annotation, error) {
9250	gensupport.SetOptions(c.urlParams_, opts...)
9251	res, err := c.doRequest("json")
9252	if res != nil && res.StatusCode == http.StatusNotModified {
9253		if res.Body != nil {
9254			res.Body.Close()
9255		}
9256		return nil, &googleapi.Error{
9257			Code:   res.StatusCode,
9258			Header: res.Header,
9259		}
9260	}
9261	if err != nil {
9262		return nil, err
9263	}
9264	defer googleapi.CloseBody(res)
9265	if err := googleapi.CheckResponse(res); err != nil {
9266		return nil, err
9267	}
9268	ret := &Annotation{
9269		ServerResponse: googleapi.ServerResponse{
9270			Header:         res.Header,
9271			HTTPStatusCode: res.StatusCode,
9272		},
9273	}
9274	target := &ret
9275	if err := gensupport.DecodeResponse(target, res); err != nil {
9276		return nil, err
9277	}
9278	return ret, nil
9279	// {
9280	//   "description": "Updates an existing annotation.",
9281	//   "httpMethod": "PUT",
9282	//   "id": "books.mylibrary.annotations.update",
9283	//   "parameterOrder": [
9284	//     "annotationId"
9285	//   ],
9286	//   "parameters": {
9287	//     "annotationId": {
9288	//       "description": "The ID for the annotation to update.",
9289	//       "location": "path",
9290	//       "required": true,
9291	//       "type": "string"
9292	//     },
9293	//     "source": {
9294	//       "description": "String to identify the originator of this request.",
9295	//       "location": "query",
9296	//       "type": "string"
9297	//     }
9298	//   },
9299	//   "path": "mylibrary/annotations/{annotationId}",
9300	//   "request": {
9301	//     "$ref": "Annotation"
9302	//   },
9303	//   "response": {
9304	//     "$ref": "Annotation"
9305	//   },
9306	//   "scopes": [
9307	//     "https://www.googleapis.com/auth/books"
9308	//   ]
9309	// }
9310
9311}
9312
9313// method id "books.mylibrary.bookshelves.addVolume":
9314
9315type MylibraryBookshelvesAddVolumeCall struct {
9316	s          *Service
9317	shelf      string
9318	urlParams_ gensupport.URLParams
9319	ctx_       context.Context
9320	header_    http.Header
9321}
9322
9323// AddVolume: Adds a volume to a bookshelf.
9324func (r *MylibraryBookshelvesService) AddVolume(shelf string, volumeId string) *MylibraryBookshelvesAddVolumeCall {
9325	c := &MylibraryBookshelvesAddVolumeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9326	c.shelf = shelf
9327	c.urlParams_.Set("volumeId", volumeId)
9328	return c
9329}
9330
9331// Reason sets the optional parameter "reason": The reason for which the
9332// book is added to the library.
9333//
9334// Possible values:
9335//   "IOS_PREX" - Volumes added from the PREX flow on iOS.
9336//   "IOS_SEARCH" - Volumes added from the Search flow on iOS.
9337//   "ONBOARDING" - Volumes added from the Onboarding flow.
9338func (c *MylibraryBookshelvesAddVolumeCall) Reason(reason string) *MylibraryBookshelvesAddVolumeCall {
9339	c.urlParams_.Set("reason", reason)
9340	return c
9341}
9342
9343// Source sets the optional parameter "source": String to identify the
9344// originator of this request.
9345func (c *MylibraryBookshelvesAddVolumeCall) Source(source string) *MylibraryBookshelvesAddVolumeCall {
9346	c.urlParams_.Set("source", source)
9347	return c
9348}
9349
9350// Fields allows partial responses to be retrieved. See
9351// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9352// for more information.
9353func (c *MylibraryBookshelvesAddVolumeCall) Fields(s ...googleapi.Field) *MylibraryBookshelvesAddVolumeCall {
9354	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9355	return c
9356}
9357
9358// Context sets the context to be used in this call's Do method. Any
9359// pending HTTP request will be aborted if the provided context is
9360// canceled.
9361func (c *MylibraryBookshelvesAddVolumeCall) Context(ctx context.Context) *MylibraryBookshelvesAddVolumeCall {
9362	c.ctx_ = ctx
9363	return c
9364}
9365
9366// Header returns an http.Header that can be modified by the caller to
9367// add HTTP headers to the request.
9368func (c *MylibraryBookshelvesAddVolumeCall) Header() http.Header {
9369	if c.header_ == nil {
9370		c.header_ = make(http.Header)
9371	}
9372	return c.header_
9373}
9374
9375func (c *MylibraryBookshelvesAddVolumeCall) doRequest(alt string) (*http.Response, error) {
9376	reqHeaders := make(http.Header)
9377	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
9378	for k, v := range c.header_ {
9379		reqHeaders[k] = v
9380	}
9381	reqHeaders.Set("User-Agent", c.s.userAgent())
9382	var body io.Reader = nil
9383	c.urlParams_.Set("alt", alt)
9384	c.urlParams_.Set("prettyPrint", "false")
9385	urls := googleapi.ResolveRelative(c.s.BasePath, "mylibrary/bookshelves/{shelf}/addVolume")
9386	urls += "?" + c.urlParams_.Encode()
9387	req, err := http.NewRequest("POST", urls, body)
9388	if err != nil {
9389		return nil, err
9390	}
9391	req.Header = reqHeaders
9392	googleapi.Expand(req.URL, map[string]string{
9393		"shelf": c.shelf,
9394	})
9395	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9396}
9397
9398// Do executes the "books.mylibrary.bookshelves.addVolume" call.
9399func (c *MylibraryBookshelvesAddVolumeCall) Do(opts ...googleapi.CallOption) error {
9400	gensupport.SetOptions(c.urlParams_, opts...)
9401	res, err := c.doRequest("json")
9402	if err != nil {
9403		return err
9404	}
9405	defer googleapi.CloseBody(res)
9406	if err := googleapi.CheckResponse(res); err != nil {
9407		return err
9408	}
9409	return nil
9410	// {
9411	//   "description": "Adds a volume to a bookshelf.",
9412	//   "httpMethod": "POST",
9413	//   "id": "books.mylibrary.bookshelves.addVolume",
9414	//   "parameterOrder": [
9415	//     "shelf",
9416	//     "volumeId"
9417	//   ],
9418	//   "parameters": {
9419	//     "reason": {
9420	//       "description": "The reason for which the book is added to the library.",
9421	//       "enum": [
9422	//         "IOS_PREX",
9423	//         "IOS_SEARCH",
9424	//         "ONBOARDING"
9425	//       ],
9426	//       "enumDescriptions": [
9427	//         "Volumes added from the PREX flow on iOS.",
9428	//         "Volumes added from the Search flow on iOS.",
9429	//         "Volumes added from the Onboarding flow."
9430	//       ],
9431	//       "location": "query",
9432	//       "type": "string"
9433	//     },
9434	//     "shelf": {
9435	//       "description": "ID of bookshelf to which to add a volume.",
9436	//       "location": "path",
9437	//       "required": true,
9438	//       "type": "string"
9439	//     },
9440	//     "source": {
9441	//       "description": "String to identify the originator of this request.",
9442	//       "location": "query",
9443	//       "type": "string"
9444	//     },
9445	//     "volumeId": {
9446	//       "description": "ID of volume to add.",
9447	//       "location": "query",
9448	//       "required": true,
9449	//       "type": "string"
9450	//     }
9451	//   },
9452	//   "path": "mylibrary/bookshelves/{shelf}/addVolume",
9453	//   "scopes": [
9454	//     "https://www.googleapis.com/auth/books"
9455	//   ]
9456	// }
9457
9458}
9459
9460// method id "books.mylibrary.bookshelves.clearVolumes":
9461
9462type MylibraryBookshelvesClearVolumesCall struct {
9463	s          *Service
9464	shelf      string
9465	urlParams_ gensupport.URLParams
9466	ctx_       context.Context
9467	header_    http.Header
9468}
9469
9470// ClearVolumes: Clears all volumes from a bookshelf.
9471func (r *MylibraryBookshelvesService) ClearVolumes(shelf string) *MylibraryBookshelvesClearVolumesCall {
9472	c := &MylibraryBookshelvesClearVolumesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9473	c.shelf = shelf
9474	return c
9475}
9476
9477// Source sets the optional parameter "source": String to identify the
9478// originator of this request.
9479func (c *MylibraryBookshelvesClearVolumesCall) Source(source string) *MylibraryBookshelvesClearVolumesCall {
9480	c.urlParams_.Set("source", source)
9481	return c
9482}
9483
9484// Fields allows partial responses to be retrieved. See
9485// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9486// for more information.
9487func (c *MylibraryBookshelvesClearVolumesCall) Fields(s ...googleapi.Field) *MylibraryBookshelvesClearVolumesCall {
9488	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9489	return c
9490}
9491
9492// Context sets the context to be used in this call's Do method. Any
9493// pending HTTP request will be aborted if the provided context is
9494// canceled.
9495func (c *MylibraryBookshelvesClearVolumesCall) Context(ctx context.Context) *MylibraryBookshelvesClearVolumesCall {
9496	c.ctx_ = ctx
9497	return c
9498}
9499
9500// Header returns an http.Header that can be modified by the caller to
9501// add HTTP headers to the request.
9502func (c *MylibraryBookshelvesClearVolumesCall) Header() http.Header {
9503	if c.header_ == nil {
9504		c.header_ = make(http.Header)
9505	}
9506	return c.header_
9507}
9508
9509func (c *MylibraryBookshelvesClearVolumesCall) doRequest(alt string) (*http.Response, error) {
9510	reqHeaders := make(http.Header)
9511	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
9512	for k, v := range c.header_ {
9513		reqHeaders[k] = v
9514	}
9515	reqHeaders.Set("User-Agent", c.s.userAgent())
9516	var body io.Reader = nil
9517	c.urlParams_.Set("alt", alt)
9518	c.urlParams_.Set("prettyPrint", "false")
9519	urls := googleapi.ResolveRelative(c.s.BasePath, "mylibrary/bookshelves/{shelf}/clearVolumes")
9520	urls += "?" + c.urlParams_.Encode()
9521	req, err := http.NewRequest("POST", urls, body)
9522	if err != nil {
9523		return nil, err
9524	}
9525	req.Header = reqHeaders
9526	googleapi.Expand(req.URL, map[string]string{
9527		"shelf": c.shelf,
9528	})
9529	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9530}
9531
9532// Do executes the "books.mylibrary.bookshelves.clearVolumes" call.
9533func (c *MylibraryBookshelvesClearVolumesCall) Do(opts ...googleapi.CallOption) error {
9534	gensupport.SetOptions(c.urlParams_, opts...)
9535	res, err := c.doRequest("json")
9536	if err != nil {
9537		return err
9538	}
9539	defer googleapi.CloseBody(res)
9540	if err := googleapi.CheckResponse(res); err != nil {
9541		return err
9542	}
9543	return nil
9544	// {
9545	//   "description": "Clears all volumes from a bookshelf.",
9546	//   "httpMethod": "POST",
9547	//   "id": "books.mylibrary.bookshelves.clearVolumes",
9548	//   "parameterOrder": [
9549	//     "shelf"
9550	//   ],
9551	//   "parameters": {
9552	//     "shelf": {
9553	//       "description": "ID of bookshelf from which to remove a volume.",
9554	//       "location": "path",
9555	//       "required": true,
9556	//       "type": "string"
9557	//     },
9558	//     "source": {
9559	//       "description": "String to identify the originator of this request.",
9560	//       "location": "query",
9561	//       "type": "string"
9562	//     }
9563	//   },
9564	//   "path": "mylibrary/bookshelves/{shelf}/clearVolumes",
9565	//   "scopes": [
9566	//     "https://www.googleapis.com/auth/books"
9567	//   ]
9568	// }
9569
9570}
9571
9572// method id "books.mylibrary.bookshelves.get":
9573
9574type MylibraryBookshelvesGetCall struct {
9575	s            *Service
9576	shelf        string
9577	urlParams_   gensupport.URLParams
9578	ifNoneMatch_ string
9579	ctx_         context.Context
9580	header_      http.Header
9581}
9582
9583// Get: Retrieves metadata for a specific bookshelf belonging to the
9584// authenticated user.
9585func (r *MylibraryBookshelvesService) Get(shelf string) *MylibraryBookshelvesGetCall {
9586	c := &MylibraryBookshelvesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9587	c.shelf = shelf
9588	return c
9589}
9590
9591// Source sets the optional parameter "source": String to identify the
9592// originator of this request.
9593func (c *MylibraryBookshelvesGetCall) Source(source string) *MylibraryBookshelvesGetCall {
9594	c.urlParams_.Set("source", source)
9595	return c
9596}
9597
9598// Fields allows partial responses to be retrieved. See
9599// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9600// for more information.
9601func (c *MylibraryBookshelvesGetCall) Fields(s ...googleapi.Field) *MylibraryBookshelvesGetCall {
9602	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9603	return c
9604}
9605
9606// IfNoneMatch sets the optional parameter which makes the operation
9607// fail if the object's ETag matches the given value. This is useful for
9608// getting updates only after the object has changed since the last
9609// request. Use googleapi.IsNotModified to check whether the response
9610// error from Do is the result of In-None-Match.
9611func (c *MylibraryBookshelvesGetCall) IfNoneMatch(entityTag string) *MylibraryBookshelvesGetCall {
9612	c.ifNoneMatch_ = entityTag
9613	return c
9614}
9615
9616// Context sets the context to be used in this call's Do method. Any
9617// pending HTTP request will be aborted if the provided context is
9618// canceled.
9619func (c *MylibraryBookshelvesGetCall) Context(ctx context.Context) *MylibraryBookshelvesGetCall {
9620	c.ctx_ = ctx
9621	return c
9622}
9623
9624// Header returns an http.Header that can be modified by the caller to
9625// add HTTP headers to the request.
9626func (c *MylibraryBookshelvesGetCall) Header() http.Header {
9627	if c.header_ == nil {
9628		c.header_ = make(http.Header)
9629	}
9630	return c.header_
9631}
9632
9633func (c *MylibraryBookshelvesGetCall) doRequest(alt string) (*http.Response, error) {
9634	reqHeaders := make(http.Header)
9635	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
9636	for k, v := range c.header_ {
9637		reqHeaders[k] = v
9638	}
9639	reqHeaders.Set("User-Agent", c.s.userAgent())
9640	if c.ifNoneMatch_ != "" {
9641		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
9642	}
9643	var body io.Reader = nil
9644	c.urlParams_.Set("alt", alt)
9645	c.urlParams_.Set("prettyPrint", "false")
9646	urls := googleapi.ResolveRelative(c.s.BasePath, "mylibrary/bookshelves/{shelf}")
9647	urls += "?" + c.urlParams_.Encode()
9648	req, err := http.NewRequest("GET", urls, body)
9649	if err != nil {
9650		return nil, err
9651	}
9652	req.Header = reqHeaders
9653	googleapi.Expand(req.URL, map[string]string{
9654		"shelf": c.shelf,
9655	})
9656	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9657}
9658
9659// Do executes the "books.mylibrary.bookshelves.get" call.
9660// Exactly one of *Bookshelf or error will be non-nil. Any non-2xx
9661// status code is an error. Response headers are in either
9662// *Bookshelf.ServerResponse.Header or (if a response was returned at
9663// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
9664// to check whether the returned error was because
9665// http.StatusNotModified was returned.
9666func (c *MylibraryBookshelvesGetCall) Do(opts ...googleapi.CallOption) (*Bookshelf, error) {
9667	gensupport.SetOptions(c.urlParams_, opts...)
9668	res, err := c.doRequest("json")
9669	if res != nil && res.StatusCode == http.StatusNotModified {
9670		if res.Body != nil {
9671			res.Body.Close()
9672		}
9673		return nil, &googleapi.Error{
9674			Code:   res.StatusCode,
9675			Header: res.Header,
9676		}
9677	}
9678	if err != nil {
9679		return nil, err
9680	}
9681	defer googleapi.CloseBody(res)
9682	if err := googleapi.CheckResponse(res); err != nil {
9683		return nil, err
9684	}
9685	ret := &Bookshelf{
9686		ServerResponse: googleapi.ServerResponse{
9687			Header:         res.Header,
9688			HTTPStatusCode: res.StatusCode,
9689		},
9690	}
9691	target := &ret
9692	if err := gensupport.DecodeResponse(target, res); err != nil {
9693		return nil, err
9694	}
9695	return ret, nil
9696	// {
9697	//   "description": "Retrieves metadata for a specific bookshelf belonging to the authenticated user.",
9698	//   "httpMethod": "GET",
9699	//   "id": "books.mylibrary.bookshelves.get",
9700	//   "parameterOrder": [
9701	//     "shelf"
9702	//   ],
9703	//   "parameters": {
9704	//     "shelf": {
9705	//       "description": "ID of bookshelf to retrieve.",
9706	//       "location": "path",
9707	//       "required": true,
9708	//       "type": "string"
9709	//     },
9710	//     "source": {
9711	//       "description": "String to identify the originator of this request.",
9712	//       "location": "query",
9713	//       "type": "string"
9714	//     }
9715	//   },
9716	//   "path": "mylibrary/bookshelves/{shelf}",
9717	//   "response": {
9718	//     "$ref": "Bookshelf"
9719	//   },
9720	//   "scopes": [
9721	//     "https://www.googleapis.com/auth/books"
9722	//   ]
9723	// }
9724
9725}
9726
9727// method id "books.mylibrary.bookshelves.list":
9728
9729type MylibraryBookshelvesListCall struct {
9730	s            *Service
9731	urlParams_   gensupport.URLParams
9732	ifNoneMatch_ string
9733	ctx_         context.Context
9734	header_      http.Header
9735}
9736
9737// List: Retrieves a list of bookshelves belonging to the authenticated
9738// user.
9739func (r *MylibraryBookshelvesService) List() *MylibraryBookshelvesListCall {
9740	c := &MylibraryBookshelvesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9741	return c
9742}
9743
9744// Source sets the optional parameter "source": String to identify the
9745// originator of this request.
9746func (c *MylibraryBookshelvesListCall) Source(source string) *MylibraryBookshelvesListCall {
9747	c.urlParams_.Set("source", source)
9748	return c
9749}
9750
9751// Fields allows partial responses to be retrieved. See
9752// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9753// for more information.
9754func (c *MylibraryBookshelvesListCall) Fields(s ...googleapi.Field) *MylibraryBookshelvesListCall {
9755	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9756	return c
9757}
9758
9759// IfNoneMatch sets the optional parameter which makes the operation
9760// fail if the object's ETag matches the given value. This is useful for
9761// getting updates only after the object has changed since the last
9762// request. Use googleapi.IsNotModified to check whether the response
9763// error from Do is the result of In-None-Match.
9764func (c *MylibraryBookshelvesListCall) IfNoneMatch(entityTag string) *MylibraryBookshelvesListCall {
9765	c.ifNoneMatch_ = entityTag
9766	return c
9767}
9768
9769// Context sets the context to be used in this call's Do method. Any
9770// pending HTTP request will be aborted if the provided context is
9771// canceled.
9772func (c *MylibraryBookshelvesListCall) Context(ctx context.Context) *MylibraryBookshelvesListCall {
9773	c.ctx_ = ctx
9774	return c
9775}
9776
9777// Header returns an http.Header that can be modified by the caller to
9778// add HTTP headers to the request.
9779func (c *MylibraryBookshelvesListCall) Header() http.Header {
9780	if c.header_ == nil {
9781		c.header_ = make(http.Header)
9782	}
9783	return c.header_
9784}
9785
9786func (c *MylibraryBookshelvesListCall) doRequest(alt string) (*http.Response, error) {
9787	reqHeaders := make(http.Header)
9788	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
9789	for k, v := range c.header_ {
9790		reqHeaders[k] = v
9791	}
9792	reqHeaders.Set("User-Agent", c.s.userAgent())
9793	if c.ifNoneMatch_ != "" {
9794		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
9795	}
9796	var body io.Reader = nil
9797	c.urlParams_.Set("alt", alt)
9798	c.urlParams_.Set("prettyPrint", "false")
9799	urls := googleapi.ResolveRelative(c.s.BasePath, "mylibrary/bookshelves")
9800	urls += "?" + c.urlParams_.Encode()
9801	req, err := http.NewRequest("GET", urls, body)
9802	if err != nil {
9803		return nil, err
9804	}
9805	req.Header = reqHeaders
9806	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9807}
9808
9809// Do executes the "books.mylibrary.bookshelves.list" call.
9810// Exactly one of *Bookshelves or error will be non-nil. Any non-2xx
9811// status code is an error. Response headers are in either
9812// *Bookshelves.ServerResponse.Header or (if a response was returned at
9813// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
9814// to check whether the returned error was because
9815// http.StatusNotModified was returned.
9816func (c *MylibraryBookshelvesListCall) Do(opts ...googleapi.CallOption) (*Bookshelves, error) {
9817	gensupport.SetOptions(c.urlParams_, opts...)
9818	res, err := c.doRequest("json")
9819	if res != nil && res.StatusCode == http.StatusNotModified {
9820		if res.Body != nil {
9821			res.Body.Close()
9822		}
9823		return nil, &googleapi.Error{
9824			Code:   res.StatusCode,
9825			Header: res.Header,
9826		}
9827	}
9828	if err != nil {
9829		return nil, err
9830	}
9831	defer googleapi.CloseBody(res)
9832	if err := googleapi.CheckResponse(res); err != nil {
9833		return nil, err
9834	}
9835	ret := &Bookshelves{
9836		ServerResponse: googleapi.ServerResponse{
9837			Header:         res.Header,
9838			HTTPStatusCode: res.StatusCode,
9839		},
9840	}
9841	target := &ret
9842	if err := gensupport.DecodeResponse(target, res); err != nil {
9843		return nil, err
9844	}
9845	return ret, nil
9846	// {
9847	//   "description": "Retrieves a list of bookshelves belonging to the authenticated user.",
9848	//   "httpMethod": "GET",
9849	//   "id": "books.mylibrary.bookshelves.list",
9850	//   "parameters": {
9851	//     "source": {
9852	//       "description": "String to identify the originator of this request.",
9853	//       "location": "query",
9854	//       "type": "string"
9855	//     }
9856	//   },
9857	//   "path": "mylibrary/bookshelves",
9858	//   "response": {
9859	//     "$ref": "Bookshelves"
9860	//   },
9861	//   "scopes": [
9862	//     "https://www.googleapis.com/auth/books"
9863	//   ]
9864	// }
9865
9866}
9867
9868// method id "books.mylibrary.bookshelves.moveVolume":
9869
9870type MylibraryBookshelvesMoveVolumeCall struct {
9871	s          *Service
9872	shelf      string
9873	urlParams_ gensupport.URLParams
9874	ctx_       context.Context
9875	header_    http.Header
9876}
9877
9878// MoveVolume: Moves a volume within a bookshelf.
9879func (r *MylibraryBookshelvesService) MoveVolume(shelf string, volumeId string, volumePosition int64) *MylibraryBookshelvesMoveVolumeCall {
9880	c := &MylibraryBookshelvesMoveVolumeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9881	c.shelf = shelf
9882	c.urlParams_.Set("volumeId", volumeId)
9883	c.urlParams_.Set("volumePosition", fmt.Sprint(volumePosition))
9884	return c
9885}
9886
9887// Source sets the optional parameter "source": String to identify the
9888// originator of this request.
9889func (c *MylibraryBookshelvesMoveVolumeCall) Source(source string) *MylibraryBookshelvesMoveVolumeCall {
9890	c.urlParams_.Set("source", source)
9891	return c
9892}
9893
9894// Fields allows partial responses to be retrieved. See
9895// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9896// for more information.
9897func (c *MylibraryBookshelvesMoveVolumeCall) Fields(s ...googleapi.Field) *MylibraryBookshelvesMoveVolumeCall {
9898	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9899	return c
9900}
9901
9902// Context sets the context to be used in this call's Do method. Any
9903// pending HTTP request will be aborted if the provided context is
9904// canceled.
9905func (c *MylibraryBookshelvesMoveVolumeCall) Context(ctx context.Context) *MylibraryBookshelvesMoveVolumeCall {
9906	c.ctx_ = ctx
9907	return c
9908}
9909
9910// Header returns an http.Header that can be modified by the caller to
9911// add HTTP headers to the request.
9912func (c *MylibraryBookshelvesMoveVolumeCall) Header() http.Header {
9913	if c.header_ == nil {
9914		c.header_ = make(http.Header)
9915	}
9916	return c.header_
9917}
9918
9919func (c *MylibraryBookshelvesMoveVolumeCall) doRequest(alt string) (*http.Response, error) {
9920	reqHeaders := make(http.Header)
9921	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
9922	for k, v := range c.header_ {
9923		reqHeaders[k] = v
9924	}
9925	reqHeaders.Set("User-Agent", c.s.userAgent())
9926	var body io.Reader = nil
9927	c.urlParams_.Set("alt", alt)
9928	c.urlParams_.Set("prettyPrint", "false")
9929	urls := googleapi.ResolveRelative(c.s.BasePath, "mylibrary/bookshelves/{shelf}/moveVolume")
9930	urls += "?" + c.urlParams_.Encode()
9931	req, err := http.NewRequest("POST", urls, body)
9932	if err != nil {
9933		return nil, err
9934	}
9935	req.Header = reqHeaders
9936	googleapi.Expand(req.URL, map[string]string{
9937		"shelf": c.shelf,
9938	})
9939	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9940}
9941
9942// Do executes the "books.mylibrary.bookshelves.moveVolume" call.
9943func (c *MylibraryBookshelvesMoveVolumeCall) Do(opts ...googleapi.CallOption) error {
9944	gensupport.SetOptions(c.urlParams_, opts...)
9945	res, err := c.doRequest("json")
9946	if err != nil {
9947		return err
9948	}
9949	defer googleapi.CloseBody(res)
9950	if err := googleapi.CheckResponse(res); err != nil {
9951		return err
9952	}
9953	return nil
9954	// {
9955	//   "description": "Moves a volume within a bookshelf.",
9956	//   "httpMethod": "POST",
9957	//   "id": "books.mylibrary.bookshelves.moveVolume",
9958	//   "parameterOrder": [
9959	//     "shelf",
9960	//     "volumeId",
9961	//     "volumePosition"
9962	//   ],
9963	//   "parameters": {
9964	//     "shelf": {
9965	//       "description": "ID of bookshelf with the volume.",
9966	//       "location": "path",
9967	//       "required": true,
9968	//       "type": "string"
9969	//     },
9970	//     "source": {
9971	//       "description": "String to identify the originator of this request.",
9972	//       "location": "query",
9973	//       "type": "string"
9974	//     },
9975	//     "volumeId": {
9976	//       "description": "ID of volume to move.",
9977	//       "location": "query",
9978	//       "required": true,
9979	//       "type": "string"
9980	//     },
9981	//     "volumePosition": {
9982	//       "description": "Position on shelf to move the item (0 puts the item before the current first item, 1 puts it between the first and the second and so on.)",
9983	//       "format": "int32",
9984	//       "location": "query",
9985	//       "required": true,
9986	//       "type": "integer"
9987	//     }
9988	//   },
9989	//   "path": "mylibrary/bookshelves/{shelf}/moveVolume",
9990	//   "scopes": [
9991	//     "https://www.googleapis.com/auth/books"
9992	//   ]
9993	// }
9994
9995}
9996
9997// method id "books.mylibrary.bookshelves.removeVolume":
9998
9999type MylibraryBookshelvesRemoveVolumeCall struct {
10000	s          *Service
10001	shelf      string
10002	urlParams_ gensupport.URLParams
10003	ctx_       context.Context
10004	header_    http.Header
10005}
10006
10007// RemoveVolume: Removes a volume from a bookshelf.
10008func (r *MylibraryBookshelvesService) RemoveVolume(shelf string, volumeId string) *MylibraryBookshelvesRemoveVolumeCall {
10009	c := &MylibraryBookshelvesRemoveVolumeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
10010	c.shelf = shelf
10011	c.urlParams_.Set("volumeId", volumeId)
10012	return c
10013}
10014
10015// Reason sets the optional parameter "reason": The reason for which the
10016// book is removed from the library.
10017//
10018// Possible values:
10019//   "ONBOARDING" - Samples removed from the Onboarding flow.
10020func (c *MylibraryBookshelvesRemoveVolumeCall) Reason(reason string) *MylibraryBookshelvesRemoveVolumeCall {
10021	c.urlParams_.Set("reason", reason)
10022	return c
10023}
10024
10025// Source sets the optional parameter "source": String to identify the
10026// originator of this request.
10027func (c *MylibraryBookshelvesRemoveVolumeCall) Source(source string) *MylibraryBookshelvesRemoveVolumeCall {
10028	c.urlParams_.Set("source", source)
10029	return c
10030}
10031
10032// Fields allows partial responses to be retrieved. See
10033// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
10034// for more information.
10035func (c *MylibraryBookshelvesRemoveVolumeCall) Fields(s ...googleapi.Field) *MylibraryBookshelvesRemoveVolumeCall {
10036	c.urlParams_.Set("fields", googleapi.CombineFields(s))
10037	return c
10038}
10039
10040// Context sets the context to be used in this call's Do method. Any
10041// pending HTTP request will be aborted if the provided context is
10042// canceled.
10043func (c *MylibraryBookshelvesRemoveVolumeCall) Context(ctx context.Context) *MylibraryBookshelvesRemoveVolumeCall {
10044	c.ctx_ = ctx
10045	return c
10046}
10047
10048// Header returns an http.Header that can be modified by the caller to
10049// add HTTP headers to the request.
10050func (c *MylibraryBookshelvesRemoveVolumeCall) Header() http.Header {
10051	if c.header_ == nil {
10052		c.header_ = make(http.Header)
10053	}
10054	return c.header_
10055}
10056
10057func (c *MylibraryBookshelvesRemoveVolumeCall) doRequest(alt string) (*http.Response, error) {
10058	reqHeaders := make(http.Header)
10059	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
10060	for k, v := range c.header_ {
10061		reqHeaders[k] = v
10062	}
10063	reqHeaders.Set("User-Agent", c.s.userAgent())
10064	var body io.Reader = nil
10065	c.urlParams_.Set("alt", alt)
10066	c.urlParams_.Set("prettyPrint", "false")
10067	urls := googleapi.ResolveRelative(c.s.BasePath, "mylibrary/bookshelves/{shelf}/removeVolume")
10068	urls += "?" + c.urlParams_.Encode()
10069	req, err := http.NewRequest("POST", urls, body)
10070	if err != nil {
10071		return nil, err
10072	}
10073	req.Header = reqHeaders
10074	googleapi.Expand(req.URL, map[string]string{
10075		"shelf": c.shelf,
10076	})
10077	return gensupport.SendRequest(c.ctx_, c.s.client, req)
10078}
10079
10080// Do executes the "books.mylibrary.bookshelves.removeVolume" call.
10081func (c *MylibraryBookshelvesRemoveVolumeCall) Do(opts ...googleapi.CallOption) error {
10082	gensupport.SetOptions(c.urlParams_, opts...)
10083	res, err := c.doRequest("json")
10084	if err != nil {
10085		return err
10086	}
10087	defer googleapi.CloseBody(res)
10088	if err := googleapi.CheckResponse(res); err != nil {
10089		return err
10090	}
10091	return nil
10092	// {
10093	//   "description": "Removes a volume from a bookshelf.",
10094	//   "httpMethod": "POST",
10095	//   "id": "books.mylibrary.bookshelves.removeVolume",
10096	//   "parameterOrder": [
10097	//     "shelf",
10098	//     "volumeId"
10099	//   ],
10100	//   "parameters": {
10101	//     "reason": {
10102	//       "description": "The reason for which the book is removed from the library.",
10103	//       "enum": [
10104	//         "ONBOARDING"
10105	//       ],
10106	//       "enumDescriptions": [
10107	//         "Samples removed from the Onboarding flow."
10108	//       ],
10109	//       "location": "query",
10110	//       "type": "string"
10111	//     },
10112	//     "shelf": {
10113	//       "description": "ID of bookshelf from which to remove a volume.",
10114	//       "location": "path",
10115	//       "required": true,
10116	//       "type": "string"
10117	//     },
10118	//     "source": {
10119	//       "description": "String to identify the originator of this request.",
10120	//       "location": "query",
10121	//       "type": "string"
10122	//     },
10123	//     "volumeId": {
10124	//       "description": "ID of volume to remove.",
10125	//       "location": "query",
10126	//       "required": true,
10127	//       "type": "string"
10128	//     }
10129	//   },
10130	//   "path": "mylibrary/bookshelves/{shelf}/removeVolume",
10131	//   "scopes": [
10132	//     "https://www.googleapis.com/auth/books"
10133	//   ]
10134	// }
10135
10136}
10137
10138// method id "books.mylibrary.bookshelves.volumes.list":
10139
10140type MylibraryBookshelvesVolumesListCall struct {
10141	s            *Service
10142	shelf        string
10143	urlParams_   gensupport.URLParams
10144	ifNoneMatch_ string
10145	ctx_         context.Context
10146	header_      http.Header
10147}
10148
10149// List: Gets volume information for volumes on a bookshelf.
10150func (r *MylibraryBookshelvesVolumesService) List(shelf string) *MylibraryBookshelvesVolumesListCall {
10151	c := &MylibraryBookshelvesVolumesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
10152	c.shelf = shelf
10153	return c
10154}
10155
10156// Country sets the optional parameter "country": ISO-3166-1 code to
10157// override the IP-based location.
10158func (c *MylibraryBookshelvesVolumesListCall) Country(country string) *MylibraryBookshelvesVolumesListCall {
10159	c.urlParams_.Set("country", country)
10160	return c
10161}
10162
10163// MaxResults sets the optional parameter "maxResults": Maximum number
10164// of results to return
10165func (c *MylibraryBookshelvesVolumesListCall) MaxResults(maxResults int64) *MylibraryBookshelvesVolumesListCall {
10166	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
10167	return c
10168}
10169
10170// Projection sets the optional parameter "projection": Restrict
10171// information returned to a set of selected fields.
10172//
10173// Possible values:
10174//   "full" - Includes all volume data.
10175//   "lite" - Includes a subset of fields in volumeInfo and accessInfo.
10176func (c *MylibraryBookshelvesVolumesListCall) Projection(projection string) *MylibraryBookshelvesVolumesListCall {
10177	c.urlParams_.Set("projection", projection)
10178	return c
10179}
10180
10181// Q sets the optional parameter "q": Full-text search query string in
10182// this bookshelf.
10183func (c *MylibraryBookshelvesVolumesListCall) Q(q string) *MylibraryBookshelvesVolumesListCall {
10184	c.urlParams_.Set("q", q)
10185	return c
10186}
10187
10188// ShowPreorders sets the optional parameter "showPreorders": Set to
10189// true to show pre-ordered books. Defaults to false.
10190func (c *MylibraryBookshelvesVolumesListCall) ShowPreorders(showPreorders bool) *MylibraryBookshelvesVolumesListCall {
10191	c.urlParams_.Set("showPreorders", fmt.Sprint(showPreorders))
10192	return c
10193}
10194
10195// Source sets the optional parameter "source": String to identify the
10196// originator of this request.
10197func (c *MylibraryBookshelvesVolumesListCall) Source(source string) *MylibraryBookshelvesVolumesListCall {
10198	c.urlParams_.Set("source", source)
10199	return c
10200}
10201
10202// StartIndex sets the optional parameter "startIndex": Index of the
10203// first element to return (starts at 0)
10204func (c *MylibraryBookshelvesVolumesListCall) StartIndex(startIndex int64) *MylibraryBookshelvesVolumesListCall {
10205	c.urlParams_.Set("startIndex", fmt.Sprint(startIndex))
10206	return c
10207}
10208
10209// Fields allows partial responses to be retrieved. See
10210// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
10211// for more information.
10212func (c *MylibraryBookshelvesVolumesListCall) Fields(s ...googleapi.Field) *MylibraryBookshelvesVolumesListCall {
10213	c.urlParams_.Set("fields", googleapi.CombineFields(s))
10214	return c
10215}
10216
10217// IfNoneMatch sets the optional parameter which makes the operation
10218// fail if the object's ETag matches the given value. This is useful for
10219// getting updates only after the object has changed since the last
10220// request. Use googleapi.IsNotModified to check whether the response
10221// error from Do is the result of In-None-Match.
10222func (c *MylibraryBookshelvesVolumesListCall) IfNoneMatch(entityTag string) *MylibraryBookshelvesVolumesListCall {
10223	c.ifNoneMatch_ = entityTag
10224	return c
10225}
10226
10227// Context sets the context to be used in this call's Do method. Any
10228// pending HTTP request will be aborted if the provided context is
10229// canceled.
10230func (c *MylibraryBookshelvesVolumesListCall) Context(ctx context.Context) *MylibraryBookshelvesVolumesListCall {
10231	c.ctx_ = ctx
10232	return c
10233}
10234
10235// Header returns an http.Header that can be modified by the caller to
10236// add HTTP headers to the request.
10237func (c *MylibraryBookshelvesVolumesListCall) Header() http.Header {
10238	if c.header_ == nil {
10239		c.header_ = make(http.Header)
10240	}
10241	return c.header_
10242}
10243
10244func (c *MylibraryBookshelvesVolumesListCall) doRequest(alt string) (*http.Response, error) {
10245	reqHeaders := make(http.Header)
10246	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
10247	for k, v := range c.header_ {
10248		reqHeaders[k] = v
10249	}
10250	reqHeaders.Set("User-Agent", c.s.userAgent())
10251	if c.ifNoneMatch_ != "" {
10252		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
10253	}
10254	var body io.Reader = nil
10255	c.urlParams_.Set("alt", alt)
10256	c.urlParams_.Set("prettyPrint", "false")
10257	urls := googleapi.ResolveRelative(c.s.BasePath, "mylibrary/bookshelves/{shelf}/volumes")
10258	urls += "?" + c.urlParams_.Encode()
10259	req, err := http.NewRequest("GET", urls, body)
10260	if err != nil {
10261		return nil, err
10262	}
10263	req.Header = reqHeaders
10264	googleapi.Expand(req.URL, map[string]string{
10265		"shelf": c.shelf,
10266	})
10267	return gensupport.SendRequest(c.ctx_, c.s.client, req)
10268}
10269
10270// Do executes the "books.mylibrary.bookshelves.volumes.list" call.
10271// Exactly one of *Volumes or error will be non-nil. Any non-2xx status
10272// code is an error. Response headers are in either
10273// *Volumes.ServerResponse.Header or (if a response was returned at all)
10274// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
10275// check whether the returned error was because http.StatusNotModified
10276// was returned.
10277func (c *MylibraryBookshelvesVolumesListCall) Do(opts ...googleapi.CallOption) (*Volumes, error) {
10278	gensupport.SetOptions(c.urlParams_, opts...)
10279	res, err := c.doRequest("json")
10280	if res != nil && res.StatusCode == http.StatusNotModified {
10281		if res.Body != nil {
10282			res.Body.Close()
10283		}
10284		return nil, &googleapi.Error{
10285			Code:   res.StatusCode,
10286			Header: res.Header,
10287		}
10288	}
10289	if err != nil {
10290		return nil, err
10291	}
10292	defer googleapi.CloseBody(res)
10293	if err := googleapi.CheckResponse(res); err != nil {
10294		return nil, err
10295	}
10296	ret := &Volumes{
10297		ServerResponse: googleapi.ServerResponse{
10298			Header:         res.Header,
10299			HTTPStatusCode: res.StatusCode,
10300		},
10301	}
10302	target := &ret
10303	if err := gensupport.DecodeResponse(target, res); err != nil {
10304		return nil, err
10305	}
10306	return ret, nil
10307	// {
10308	//   "description": "Gets volume information for volumes on a bookshelf.",
10309	//   "httpMethod": "GET",
10310	//   "id": "books.mylibrary.bookshelves.volumes.list",
10311	//   "parameterOrder": [
10312	//     "shelf"
10313	//   ],
10314	//   "parameters": {
10315	//     "country": {
10316	//       "description": "ISO-3166-1 code to override the IP-based location.",
10317	//       "location": "query",
10318	//       "type": "string"
10319	//     },
10320	//     "maxResults": {
10321	//       "description": "Maximum number of results to return",
10322	//       "format": "uint32",
10323	//       "location": "query",
10324	//       "minimum": "0",
10325	//       "type": "integer"
10326	//     },
10327	//     "projection": {
10328	//       "description": "Restrict information returned to a set of selected fields.",
10329	//       "enum": [
10330	//         "full",
10331	//         "lite"
10332	//       ],
10333	//       "enumDescriptions": [
10334	//         "Includes all volume data.",
10335	//         "Includes a subset of fields in volumeInfo and accessInfo."
10336	//       ],
10337	//       "location": "query",
10338	//       "type": "string"
10339	//     },
10340	//     "q": {
10341	//       "description": "Full-text search query string in this bookshelf.",
10342	//       "location": "query",
10343	//       "type": "string"
10344	//     },
10345	//     "shelf": {
10346	//       "description": "The bookshelf ID or name retrieve volumes for.",
10347	//       "location": "path",
10348	//       "required": true,
10349	//       "type": "string"
10350	//     },
10351	//     "showPreorders": {
10352	//       "description": "Set to true to show pre-ordered books. Defaults to false.",
10353	//       "location": "query",
10354	//       "type": "boolean"
10355	//     },
10356	//     "source": {
10357	//       "description": "String to identify the originator of this request.",
10358	//       "location": "query",
10359	//       "type": "string"
10360	//     },
10361	//     "startIndex": {
10362	//       "description": "Index of the first element to return (starts at 0)",
10363	//       "format": "uint32",
10364	//       "location": "query",
10365	//       "minimum": "0",
10366	//       "type": "integer"
10367	//     }
10368	//   },
10369	//   "path": "mylibrary/bookshelves/{shelf}/volumes",
10370	//   "response": {
10371	//     "$ref": "Volumes"
10372	//   },
10373	//   "scopes": [
10374	//     "https://www.googleapis.com/auth/books"
10375	//   ]
10376	// }
10377
10378}
10379
10380// method id "books.mylibrary.readingpositions.get":
10381
10382type MylibraryReadingpositionsGetCall struct {
10383	s            *Service
10384	volumeId     string
10385	urlParams_   gensupport.URLParams
10386	ifNoneMatch_ string
10387	ctx_         context.Context
10388	header_      http.Header
10389}
10390
10391// Get: Retrieves my reading position information for a volume.
10392func (r *MylibraryReadingpositionsService) Get(volumeId string) *MylibraryReadingpositionsGetCall {
10393	c := &MylibraryReadingpositionsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
10394	c.volumeId = volumeId
10395	return c
10396}
10397
10398// ContentVersion sets the optional parameter "contentVersion": Volume
10399// content version for which this reading position is requested.
10400func (c *MylibraryReadingpositionsGetCall) ContentVersion(contentVersion string) *MylibraryReadingpositionsGetCall {
10401	c.urlParams_.Set("contentVersion", contentVersion)
10402	return c
10403}
10404
10405// Source sets the optional parameter "source": String to identify the
10406// originator of this request.
10407func (c *MylibraryReadingpositionsGetCall) Source(source string) *MylibraryReadingpositionsGetCall {
10408	c.urlParams_.Set("source", source)
10409	return c
10410}
10411
10412// Fields allows partial responses to be retrieved. See
10413// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
10414// for more information.
10415func (c *MylibraryReadingpositionsGetCall) Fields(s ...googleapi.Field) *MylibraryReadingpositionsGetCall {
10416	c.urlParams_.Set("fields", googleapi.CombineFields(s))
10417	return c
10418}
10419
10420// IfNoneMatch sets the optional parameter which makes the operation
10421// fail if the object's ETag matches the given value. This is useful for
10422// getting updates only after the object has changed since the last
10423// request. Use googleapi.IsNotModified to check whether the response
10424// error from Do is the result of In-None-Match.
10425func (c *MylibraryReadingpositionsGetCall) IfNoneMatch(entityTag string) *MylibraryReadingpositionsGetCall {
10426	c.ifNoneMatch_ = entityTag
10427	return c
10428}
10429
10430// Context sets the context to be used in this call's Do method. Any
10431// pending HTTP request will be aborted if the provided context is
10432// canceled.
10433func (c *MylibraryReadingpositionsGetCall) Context(ctx context.Context) *MylibraryReadingpositionsGetCall {
10434	c.ctx_ = ctx
10435	return c
10436}
10437
10438// Header returns an http.Header that can be modified by the caller to
10439// add HTTP headers to the request.
10440func (c *MylibraryReadingpositionsGetCall) Header() http.Header {
10441	if c.header_ == nil {
10442		c.header_ = make(http.Header)
10443	}
10444	return c.header_
10445}
10446
10447func (c *MylibraryReadingpositionsGetCall) doRequest(alt string) (*http.Response, error) {
10448	reqHeaders := make(http.Header)
10449	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
10450	for k, v := range c.header_ {
10451		reqHeaders[k] = v
10452	}
10453	reqHeaders.Set("User-Agent", c.s.userAgent())
10454	if c.ifNoneMatch_ != "" {
10455		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
10456	}
10457	var body io.Reader = nil
10458	c.urlParams_.Set("alt", alt)
10459	c.urlParams_.Set("prettyPrint", "false")
10460	urls := googleapi.ResolveRelative(c.s.BasePath, "mylibrary/readingpositions/{volumeId}")
10461	urls += "?" + c.urlParams_.Encode()
10462	req, err := http.NewRequest("GET", urls, body)
10463	if err != nil {
10464		return nil, err
10465	}
10466	req.Header = reqHeaders
10467	googleapi.Expand(req.URL, map[string]string{
10468		"volumeId": c.volumeId,
10469	})
10470	return gensupport.SendRequest(c.ctx_, c.s.client, req)
10471}
10472
10473// Do executes the "books.mylibrary.readingpositions.get" call.
10474// Exactly one of *ReadingPosition or error will be non-nil. Any non-2xx
10475// status code is an error. Response headers are in either
10476// *ReadingPosition.ServerResponse.Header or (if a response was returned
10477// at all) in error.(*googleapi.Error).Header. Use
10478// googleapi.IsNotModified to check whether the returned error was
10479// because http.StatusNotModified was returned.
10480func (c *MylibraryReadingpositionsGetCall) Do(opts ...googleapi.CallOption) (*ReadingPosition, error) {
10481	gensupport.SetOptions(c.urlParams_, opts...)
10482	res, err := c.doRequest("json")
10483	if res != nil && res.StatusCode == http.StatusNotModified {
10484		if res.Body != nil {
10485			res.Body.Close()
10486		}
10487		return nil, &googleapi.Error{
10488			Code:   res.StatusCode,
10489			Header: res.Header,
10490		}
10491	}
10492	if err != nil {
10493		return nil, err
10494	}
10495	defer googleapi.CloseBody(res)
10496	if err := googleapi.CheckResponse(res); err != nil {
10497		return nil, err
10498	}
10499	ret := &ReadingPosition{
10500		ServerResponse: googleapi.ServerResponse{
10501			Header:         res.Header,
10502			HTTPStatusCode: res.StatusCode,
10503		},
10504	}
10505	target := &ret
10506	if err := gensupport.DecodeResponse(target, res); err != nil {
10507		return nil, err
10508	}
10509	return ret, nil
10510	// {
10511	//   "description": "Retrieves my reading position information for a volume.",
10512	//   "httpMethod": "GET",
10513	//   "id": "books.mylibrary.readingpositions.get",
10514	//   "parameterOrder": [
10515	//     "volumeId"
10516	//   ],
10517	//   "parameters": {
10518	//     "contentVersion": {
10519	//       "description": "Volume content version for which this reading position is requested.",
10520	//       "location": "query",
10521	//       "type": "string"
10522	//     },
10523	//     "source": {
10524	//       "description": "String to identify the originator of this request.",
10525	//       "location": "query",
10526	//       "type": "string"
10527	//     },
10528	//     "volumeId": {
10529	//       "description": "ID of volume for which to retrieve a reading position.",
10530	//       "location": "path",
10531	//       "required": true,
10532	//       "type": "string"
10533	//     }
10534	//   },
10535	//   "path": "mylibrary/readingpositions/{volumeId}",
10536	//   "response": {
10537	//     "$ref": "ReadingPosition"
10538	//   },
10539	//   "scopes": [
10540	//     "https://www.googleapis.com/auth/books"
10541	//   ]
10542	// }
10543
10544}
10545
10546// method id "books.mylibrary.readingpositions.setPosition":
10547
10548type MylibraryReadingpositionsSetPositionCall struct {
10549	s          *Service
10550	volumeId   string
10551	urlParams_ gensupport.URLParams
10552	ctx_       context.Context
10553	header_    http.Header
10554}
10555
10556// SetPosition: Sets my reading position information for a volume.
10557func (r *MylibraryReadingpositionsService) SetPosition(volumeId string, timestamp string, position string) *MylibraryReadingpositionsSetPositionCall {
10558	c := &MylibraryReadingpositionsSetPositionCall{s: r.s, urlParams_: make(gensupport.URLParams)}
10559	c.volumeId = volumeId
10560	c.urlParams_.Set("timestamp", timestamp)
10561	c.urlParams_.Set("position", position)
10562	return c
10563}
10564
10565// Action sets the optional parameter "action": Action that caused this
10566// reading position to be set.
10567//
10568// Possible values:
10569//   "bookmark" - User chose bookmark within volume.
10570//   "chapter" - User selected chapter from list.
10571//   "next-page" - Next page event.
10572//   "prev-page" - Previous page event.
10573//   "scroll" - User navigated to page.
10574//   "search" - User chose search results within volume.
10575func (c *MylibraryReadingpositionsSetPositionCall) Action(action string) *MylibraryReadingpositionsSetPositionCall {
10576	c.urlParams_.Set("action", action)
10577	return c
10578}
10579
10580// ContentVersion sets the optional parameter "contentVersion": Volume
10581// content version for which this reading position applies.
10582func (c *MylibraryReadingpositionsSetPositionCall) ContentVersion(contentVersion string) *MylibraryReadingpositionsSetPositionCall {
10583	c.urlParams_.Set("contentVersion", contentVersion)
10584	return c
10585}
10586
10587// DeviceCookie sets the optional parameter "deviceCookie": Random
10588// persistent device cookie optional on set position.
10589func (c *MylibraryReadingpositionsSetPositionCall) DeviceCookie(deviceCookie string) *MylibraryReadingpositionsSetPositionCall {
10590	c.urlParams_.Set("deviceCookie", deviceCookie)
10591	return c
10592}
10593
10594// Source sets the optional parameter "source": String to identify the
10595// originator of this request.
10596func (c *MylibraryReadingpositionsSetPositionCall) Source(source string) *MylibraryReadingpositionsSetPositionCall {
10597	c.urlParams_.Set("source", source)
10598	return c
10599}
10600
10601// Fields allows partial responses to be retrieved. See
10602// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
10603// for more information.
10604func (c *MylibraryReadingpositionsSetPositionCall) Fields(s ...googleapi.Field) *MylibraryReadingpositionsSetPositionCall {
10605	c.urlParams_.Set("fields", googleapi.CombineFields(s))
10606	return c
10607}
10608
10609// Context sets the context to be used in this call's Do method. Any
10610// pending HTTP request will be aborted if the provided context is
10611// canceled.
10612func (c *MylibraryReadingpositionsSetPositionCall) Context(ctx context.Context) *MylibraryReadingpositionsSetPositionCall {
10613	c.ctx_ = ctx
10614	return c
10615}
10616
10617// Header returns an http.Header that can be modified by the caller to
10618// add HTTP headers to the request.
10619func (c *MylibraryReadingpositionsSetPositionCall) Header() http.Header {
10620	if c.header_ == nil {
10621		c.header_ = make(http.Header)
10622	}
10623	return c.header_
10624}
10625
10626func (c *MylibraryReadingpositionsSetPositionCall) doRequest(alt string) (*http.Response, error) {
10627	reqHeaders := make(http.Header)
10628	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
10629	for k, v := range c.header_ {
10630		reqHeaders[k] = v
10631	}
10632	reqHeaders.Set("User-Agent", c.s.userAgent())
10633	var body io.Reader = nil
10634	c.urlParams_.Set("alt", alt)
10635	c.urlParams_.Set("prettyPrint", "false")
10636	urls := googleapi.ResolveRelative(c.s.BasePath, "mylibrary/readingpositions/{volumeId}/setPosition")
10637	urls += "?" + c.urlParams_.Encode()
10638	req, err := http.NewRequest("POST", urls, body)
10639	if err != nil {
10640		return nil, err
10641	}
10642	req.Header = reqHeaders
10643	googleapi.Expand(req.URL, map[string]string{
10644		"volumeId": c.volumeId,
10645	})
10646	return gensupport.SendRequest(c.ctx_, c.s.client, req)
10647}
10648
10649// Do executes the "books.mylibrary.readingpositions.setPosition" call.
10650func (c *MylibraryReadingpositionsSetPositionCall) Do(opts ...googleapi.CallOption) error {
10651	gensupport.SetOptions(c.urlParams_, opts...)
10652	res, err := c.doRequest("json")
10653	if err != nil {
10654		return err
10655	}
10656	defer googleapi.CloseBody(res)
10657	if err := googleapi.CheckResponse(res); err != nil {
10658		return err
10659	}
10660	return nil
10661	// {
10662	//   "description": "Sets my reading position information for a volume.",
10663	//   "httpMethod": "POST",
10664	//   "id": "books.mylibrary.readingpositions.setPosition",
10665	//   "parameterOrder": [
10666	//     "volumeId",
10667	//     "timestamp",
10668	//     "position"
10669	//   ],
10670	//   "parameters": {
10671	//     "action": {
10672	//       "description": "Action that caused this reading position to be set.",
10673	//       "enum": [
10674	//         "bookmark",
10675	//         "chapter",
10676	//         "next-page",
10677	//         "prev-page",
10678	//         "scroll",
10679	//         "search"
10680	//       ],
10681	//       "enumDescriptions": [
10682	//         "User chose bookmark within volume.",
10683	//         "User selected chapter from list.",
10684	//         "Next page event.",
10685	//         "Previous page event.",
10686	//         "User navigated to page.",
10687	//         "User chose search results within volume."
10688	//       ],
10689	//       "location": "query",
10690	//       "type": "string"
10691	//     },
10692	//     "contentVersion": {
10693	//       "description": "Volume content version for which this reading position applies.",
10694	//       "location": "query",
10695	//       "type": "string"
10696	//     },
10697	//     "deviceCookie": {
10698	//       "description": "Random persistent device cookie optional on set position.",
10699	//       "location": "query",
10700	//       "type": "string"
10701	//     },
10702	//     "position": {
10703	//       "description": "Position string for the new volume reading position.",
10704	//       "location": "query",
10705	//       "required": true,
10706	//       "type": "string"
10707	//     },
10708	//     "source": {
10709	//       "description": "String to identify the originator of this request.",
10710	//       "location": "query",
10711	//       "type": "string"
10712	//     },
10713	//     "timestamp": {
10714	//       "description": "RFC 3339 UTC format timestamp associated with this reading position.",
10715	//       "location": "query",
10716	//       "required": true,
10717	//       "type": "string"
10718	//     },
10719	//     "volumeId": {
10720	//       "description": "ID of volume for which to update the reading position.",
10721	//       "location": "path",
10722	//       "required": true,
10723	//       "type": "string"
10724	//     }
10725	//   },
10726	//   "path": "mylibrary/readingpositions/{volumeId}/setPosition",
10727	//   "scopes": [
10728	//     "https://www.googleapis.com/auth/books"
10729	//   ]
10730	// }
10731
10732}
10733
10734// method id "books.notification.get":
10735
10736type NotificationGetCall struct {
10737	s            *Service
10738	urlParams_   gensupport.URLParams
10739	ifNoneMatch_ string
10740	ctx_         context.Context
10741	header_      http.Header
10742}
10743
10744// Get: Returns notification details for a given notification id.
10745func (r *NotificationService) Get(notificationId string) *NotificationGetCall {
10746	c := &NotificationGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
10747	c.urlParams_.Set("notification_id", notificationId)
10748	return c
10749}
10750
10751// Locale sets the optional parameter "locale": ISO-639-1 language and
10752// ISO-3166-1 country code. Ex: 'en_US'. Used for generating
10753// notification title and body.
10754func (c *NotificationGetCall) Locale(locale string) *NotificationGetCall {
10755	c.urlParams_.Set("locale", locale)
10756	return c
10757}
10758
10759// Source sets the optional parameter "source": String to identify the
10760// originator of this request.
10761func (c *NotificationGetCall) Source(source string) *NotificationGetCall {
10762	c.urlParams_.Set("source", source)
10763	return c
10764}
10765
10766// Fields allows partial responses to be retrieved. See
10767// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
10768// for more information.
10769func (c *NotificationGetCall) Fields(s ...googleapi.Field) *NotificationGetCall {
10770	c.urlParams_.Set("fields", googleapi.CombineFields(s))
10771	return c
10772}
10773
10774// IfNoneMatch sets the optional parameter which makes the operation
10775// fail if the object's ETag matches the given value. This is useful for
10776// getting updates only after the object has changed since the last
10777// request. Use googleapi.IsNotModified to check whether the response
10778// error from Do is the result of In-None-Match.
10779func (c *NotificationGetCall) IfNoneMatch(entityTag string) *NotificationGetCall {
10780	c.ifNoneMatch_ = entityTag
10781	return c
10782}
10783
10784// Context sets the context to be used in this call's Do method. Any
10785// pending HTTP request will be aborted if the provided context is
10786// canceled.
10787func (c *NotificationGetCall) Context(ctx context.Context) *NotificationGetCall {
10788	c.ctx_ = ctx
10789	return c
10790}
10791
10792// Header returns an http.Header that can be modified by the caller to
10793// add HTTP headers to the request.
10794func (c *NotificationGetCall) Header() http.Header {
10795	if c.header_ == nil {
10796		c.header_ = make(http.Header)
10797	}
10798	return c.header_
10799}
10800
10801func (c *NotificationGetCall) doRequest(alt string) (*http.Response, error) {
10802	reqHeaders := make(http.Header)
10803	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
10804	for k, v := range c.header_ {
10805		reqHeaders[k] = v
10806	}
10807	reqHeaders.Set("User-Agent", c.s.userAgent())
10808	if c.ifNoneMatch_ != "" {
10809		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
10810	}
10811	var body io.Reader = nil
10812	c.urlParams_.Set("alt", alt)
10813	c.urlParams_.Set("prettyPrint", "false")
10814	urls := googleapi.ResolveRelative(c.s.BasePath, "notification/get")
10815	urls += "?" + c.urlParams_.Encode()
10816	req, err := http.NewRequest("GET", urls, body)
10817	if err != nil {
10818		return nil, err
10819	}
10820	req.Header = reqHeaders
10821	return gensupport.SendRequest(c.ctx_, c.s.client, req)
10822}
10823
10824// Do executes the "books.notification.get" call.
10825// Exactly one of *Notification or error will be non-nil. Any non-2xx
10826// status code is an error. Response headers are in either
10827// *Notification.ServerResponse.Header or (if a response was returned at
10828// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
10829// to check whether the returned error was because
10830// http.StatusNotModified was returned.
10831func (c *NotificationGetCall) Do(opts ...googleapi.CallOption) (*Notification, error) {
10832	gensupport.SetOptions(c.urlParams_, opts...)
10833	res, err := c.doRequest("json")
10834	if res != nil && res.StatusCode == http.StatusNotModified {
10835		if res.Body != nil {
10836			res.Body.Close()
10837		}
10838		return nil, &googleapi.Error{
10839			Code:   res.StatusCode,
10840			Header: res.Header,
10841		}
10842	}
10843	if err != nil {
10844		return nil, err
10845	}
10846	defer googleapi.CloseBody(res)
10847	if err := googleapi.CheckResponse(res); err != nil {
10848		return nil, err
10849	}
10850	ret := &Notification{
10851		ServerResponse: googleapi.ServerResponse{
10852			Header:         res.Header,
10853			HTTPStatusCode: res.StatusCode,
10854		},
10855	}
10856	target := &ret
10857	if err := gensupport.DecodeResponse(target, res); err != nil {
10858		return nil, err
10859	}
10860	return ret, nil
10861	// {
10862	//   "description": "Returns notification details for a given notification id.",
10863	//   "httpMethod": "GET",
10864	//   "id": "books.notification.get",
10865	//   "parameterOrder": [
10866	//     "notification_id"
10867	//   ],
10868	//   "parameters": {
10869	//     "locale": {
10870	//       "description": "ISO-639-1 language and ISO-3166-1 country code. Ex: 'en_US'. Used for generating notification title and body.",
10871	//       "location": "query",
10872	//       "type": "string"
10873	//     },
10874	//     "notification_id": {
10875	//       "description": "String to identify the notification.",
10876	//       "location": "query",
10877	//       "required": true,
10878	//       "type": "string"
10879	//     },
10880	//     "source": {
10881	//       "description": "String to identify the originator of this request.",
10882	//       "location": "query",
10883	//       "type": "string"
10884	//     }
10885	//   },
10886	//   "path": "notification/get",
10887	//   "response": {
10888	//     "$ref": "Notification"
10889	//   },
10890	//   "scopes": [
10891	//     "https://www.googleapis.com/auth/books"
10892	//   ]
10893	// }
10894
10895}
10896
10897// method id "books.onboarding.listCategories":
10898
10899type OnboardingListCategoriesCall struct {
10900	s            *Service
10901	urlParams_   gensupport.URLParams
10902	ifNoneMatch_ string
10903	ctx_         context.Context
10904	header_      http.Header
10905}
10906
10907// ListCategories: List categories for onboarding experience.
10908func (r *OnboardingService) ListCategories() *OnboardingListCategoriesCall {
10909	c := &OnboardingListCategoriesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
10910	return c
10911}
10912
10913// Locale sets the optional parameter "locale": ISO-639-1 language and
10914// ISO-3166-1 country code. Default is en-US if unset.
10915func (c *OnboardingListCategoriesCall) Locale(locale string) *OnboardingListCategoriesCall {
10916	c.urlParams_.Set("locale", locale)
10917	return c
10918}
10919
10920// Fields allows partial responses to be retrieved. See
10921// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
10922// for more information.
10923func (c *OnboardingListCategoriesCall) Fields(s ...googleapi.Field) *OnboardingListCategoriesCall {
10924	c.urlParams_.Set("fields", googleapi.CombineFields(s))
10925	return c
10926}
10927
10928// IfNoneMatch sets the optional parameter which makes the operation
10929// fail if the object's ETag matches the given value. This is useful for
10930// getting updates only after the object has changed since the last
10931// request. Use googleapi.IsNotModified to check whether the response
10932// error from Do is the result of In-None-Match.
10933func (c *OnboardingListCategoriesCall) IfNoneMatch(entityTag string) *OnboardingListCategoriesCall {
10934	c.ifNoneMatch_ = entityTag
10935	return c
10936}
10937
10938// Context sets the context to be used in this call's Do method. Any
10939// pending HTTP request will be aborted if the provided context is
10940// canceled.
10941func (c *OnboardingListCategoriesCall) Context(ctx context.Context) *OnboardingListCategoriesCall {
10942	c.ctx_ = ctx
10943	return c
10944}
10945
10946// Header returns an http.Header that can be modified by the caller to
10947// add HTTP headers to the request.
10948func (c *OnboardingListCategoriesCall) Header() http.Header {
10949	if c.header_ == nil {
10950		c.header_ = make(http.Header)
10951	}
10952	return c.header_
10953}
10954
10955func (c *OnboardingListCategoriesCall) doRequest(alt string) (*http.Response, error) {
10956	reqHeaders := make(http.Header)
10957	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
10958	for k, v := range c.header_ {
10959		reqHeaders[k] = v
10960	}
10961	reqHeaders.Set("User-Agent", c.s.userAgent())
10962	if c.ifNoneMatch_ != "" {
10963		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
10964	}
10965	var body io.Reader = nil
10966	c.urlParams_.Set("alt", alt)
10967	c.urlParams_.Set("prettyPrint", "false")
10968	urls := googleapi.ResolveRelative(c.s.BasePath, "onboarding/listCategories")
10969	urls += "?" + c.urlParams_.Encode()
10970	req, err := http.NewRequest("GET", urls, body)
10971	if err != nil {
10972		return nil, err
10973	}
10974	req.Header = reqHeaders
10975	return gensupport.SendRequest(c.ctx_, c.s.client, req)
10976}
10977
10978// Do executes the "books.onboarding.listCategories" call.
10979// Exactly one of *Category or error will be non-nil. Any non-2xx status
10980// code is an error. Response headers are in either
10981// *Category.ServerResponse.Header or (if a response was returned at
10982// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
10983// to check whether the returned error was because
10984// http.StatusNotModified was returned.
10985func (c *OnboardingListCategoriesCall) Do(opts ...googleapi.CallOption) (*Category, error) {
10986	gensupport.SetOptions(c.urlParams_, opts...)
10987	res, err := c.doRequest("json")
10988	if res != nil && res.StatusCode == http.StatusNotModified {
10989		if res.Body != nil {
10990			res.Body.Close()
10991		}
10992		return nil, &googleapi.Error{
10993			Code:   res.StatusCode,
10994			Header: res.Header,
10995		}
10996	}
10997	if err != nil {
10998		return nil, err
10999	}
11000	defer googleapi.CloseBody(res)
11001	if err := googleapi.CheckResponse(res); err != nil {
11002		return nil, err
11003	}
11004	ret := &Category{
11005		ServerResponse: googleapi.ServerResponse{
11006			Header:         res.Header,
11007			HTTPStatusCode: res.StatusCode,
11008		},
11009	}
11010	target := &ret
11011	if err := gensupport.DecodeResponse(target, res); err != nil {
11012		return nil, err
11013	}
11014	return ret, nil
11015	// {
11016	//   "description": "List categories for onboarding experience.",
11017	//   "httpMethod": "GET",
11018	//   "id": "books.onboarding.listCategories",
11019	//   "parameters": {
11020	//     "locale": {
11021	//       "description": "ISO-639-1 language and ISO-3166-1 country code. Default is en-US if unset.",
11022	//       "location": "query",
11023	//       "type": "string"
11024	//     }
11025	//   },
11026	//   "path": "onboarding/listCategories",
11027	//   "response": {
11028	//     "$ref": "Category"
11029	//   },
11030	//   "scopes": [
11031	//     "https://www.googleapis.com/auth/books"
11032	//   ]
11033	// }
11034
11035}
11036
11037// method id "books.onboarding.listCategoryVolumes":
11038
11039type OnboardingListCategoryVolumesCall struct {
11040	s            *Service
11041	urlParams_   gensupport.URLParams
11042	ifNoneMatch_ string
11043	ctx_         context.Context
11044	header_      http.Header
11045}
11046
11047// ListCategoryVolumes: List available volumes under categories for
11048// onboarding experience.
11049func (r *OnboardingService) ListCategoryVolumes() *OnboardingListCategoryVolumesCall {
11050	c := &OnboardingListCategoryVolumesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
11051	return c
11052}
11053
11054// CategoryId sets the optional parameter "categoryId": List of category
11055// ids requested.
11056func (c *OnboardingListCategoryVolumesCall) CategoryId(categoryId ...string) *OnboardingListCategoryVolumesCall {
11057	c.urlParams_.SetMulti("categoryId", append([]string{}, categoryId...))
11058	return c
11059}
11060
11061// Locale sets the optional parameter "locale": ISO-639-1 language and
11062// ISO-3166-1 country code. Default is en-US if unset.
11063func (c *OnboardingListCategoryVolumesCall) Locale(locale string) *OnboardingListCategoryVolumesCall {
11064	c.urlParams_.Set("locale", locale)
11065	return c
11066}
11067
11068// MaxAllowedMaturityRating sets the optional parameter
11069// "maxAllowedMaturityRating": The maximum allowed maturity rating of
11070// returned volumes. Books with a higher maturity rating are filtered
11071// out.
11072//
11073// Possible values:
11074//   "mature" - Show books which are rated mature or lower.
11075//   "not-mature" - Show books which are rated not mature.
11076func (c *OnboardingListCategoryVolumesCall) MaxAllowedMaturityRating(maxAllowedMaturityRating string) *OnboardingListCategoryVolumesCall {
11077	c.urlParams_.Set("maxAllowedMaturityRating", maxAllowedMaturityRating)
11078	return c
11079}
11080
11081// PageSize sets the optional parameter "pageSize": Number of maximum
11082// results per page to be included in the response.
11083func (c *OnboardingListCategoryVolumesCall) PageSize(pageSize int64) *OnboardingListCategoryVolumesCall {
11084	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
11085	return c
11086}
11087
11088// PageToken sets the optional parameter "pageToken": The value of the
11089// nextToken from the previous page.
11090func (c *OnboardingListCategoryVolumesCall) PageToken(pageToken string) *OnboardingListCategoryVolumesCall {
11091	c.urlParams_.Set("pageToken", pageToken)
11092	return c
11093}
11094
11095// Fields allows partial responses to be retrieved. See
11096// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
11097// for more information.
11098func (c *OnboardingListCategoryVolumesCall) Fields(s ...googleapi.Field) *OnboardingListCategoryVolumesCall {
11099	c.urlParams_.Set("fields", googleapi.CombineFields(s))
11100	return c
11101}
11102
11103// IfNoneMatch sets the optional parameter which makes the operation
11104// fail if the object's ETag matches the given value. This is useful for
11105// getting updates only after the object has changed since the last
11106// request. Use googleapi.IsNotModified to check whether the response
11107// error from Do is the result of In-None-Match.
11108func (c *OnboardingListCategoryVolumesCall) IfNoneMatch(entityTag string) *OnboardingListCategoryVolumesCall {
11109	c.ifNoneMatch_ = entityTag
11110	return c
11111}
11112
11113// Context sets the context to be used in this call's Do method. Any
11114// pending HTTP request will be aborted if the provided context is
11115// canceled.
11116func (c *OnboardingListCategoryVolumesCall) Context(ctx context.Context) *OnboardingListCategoryVolumesCall {
11117	c.ctx_ = ctx
11118	return c
11119}
11120
11121// Header returns an http.Header that can be modified by the caller to
11122// add HTTP headers to the request.
11123func (c *OnboardingListCategoryVolumesCall) Header() http.Header {
11124	if c.header_ == nil {
11125		c.header_ = make(http.Header)
11126	}
11127	return c.header_
11128}
11129
11130func (c *OnboardingListCategoryVolumesCall) doRequest(alt string) (*http.Response, error) {
11131	reqHeaders := make(http.Header)
11132	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
11133	for k, v := range c.header_ {
11134		reqHeaders[k] = v
11135	}
11136	reqHeaders.Set("User-Agent", c.s.userAgent())
11137	if c.ifNoneMatch_ != "" {
11138		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
11139	}
11140	var body io.Reader = nil
11141	c.urlParams_.Set("alt", alt)
11142	c.urlParams_.Set("prettyPrint", "false")
11143	urls := googleapi.ResolveRelative(c.s.BasePath, "onboarding/listCategoryVolumes")
11144	urls += "?" + c.urlParams_.Encode()
11145	req, err := http.NewRequest("GET", urls, body)
11146	if err != nil {
11147		return nil, err
11148	}
11149	req.Header = reqHeaders
11150	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11151}
11152
11153// Do executes the "books.onboarding.listCategoryVolumes" call.
11154// Exactly one of *Volume2 or error will be non-nil. Any non-2xx status
11155// code is an error. Response headers are in either
11156// *Volume2.ServerResponse.Header or (if a response was returned at all)
11157// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
11158// check whether the returned error was because http.StatusNotModified
11159// was returned.
11160func (c *OnboardingListCategoryVolumesCall) Do(opts ...googleapi.CallOption) (*Volume2, error) {
11161	gensupport.SetOptions(c.urlParams_, opts...)
11162	res, err := c.doRequest("json")
11163	if res != nil && res.StatusCode == http.StatusNotModified {
11164		if res.Body != nil {
11165			res.Body.Close()
11166		}
11167		return nil, &googleapi.Error{
11168			Code:   res.StatusCode,
11169			Header: res.Header,
11170		}
11171	}
11172	if err != nil {
11173		return nil, err
11174	}
11175	defer googleapi.CloseBody(res)
11176	if err := googleapi.CheckResponse(res); err != nil {
11177		return nil, err
11178	}
11179	ret := &Volume2{
11180		ServerResponse: googleapi.ServerResponse{
11181			Header:         res.Header,
11182			HTTPStatusCode: res.StatusCode,
11183		},
11184	}
11185	target := &ret
11186	if err := gensupport.DecodeResponse(target, res); err != nil {
11187		return nil, err
11188	}
11189	return ret, nil
11190	// {
11191	//   "description": "List available volumes under categories for onboarding experience.",
11192	//   "httpMethod": "GET",
11193	//   "id": "books.onboarding.listCategoryVolumes",
11194	//   "parameters": {
11195	//     "categoryId": {
11196	//       "description": "List of category ids requested.",
11197	//       "location": "query",
11198	//       "repeated": true,
11199	//       "type": "string"
11200	//     },
11201	//     "locale": {
11202	//       "description": "ISO-639-1 language and ISO-3166-1 country code. Default is en-US if unset.",
11203	//       "location": "query",
11204	//       "type": "string"
11205	//     },
11206	//     "maxAllowedMaturityRating": {
11207	//       "description": "The maximum allowed maturity rating of returned volumes. Books with a higher maturity rating are filtered out.",
11208	//       "enum": [
11209	//         "mature",
11210	//         "not-mature"
11211	//       ],
11212	//       "enumDescriptions": [
11213	//         "Show books which are rated mature or lower.",
11214	//         "Show books which are rated not mature."
11215	//       ],
11216	//       "location": "query",
11217	//       "type": "string"
11218	//     },
11219	//     "pageSize": {
11220	//       "description": "Number of maximum results per page to be included in the response.",
11221	//       "format": "uint32",
11222	//       "location": "query",
11223	//       "type": "integer"
11224	//     },
11225	//     "pageToken": {
11226	//       "description": "The value of the nextToken from the previous page.",
11227	//       "location": "query",
11228	//       "type": "string"
11229	//     }
11230	//   },
11231	//   "path": "onboarding/listCategoryVolumes",
11232	//   "response": {
11233	//     "$ref": "Volume2"
11234	//   },
11235	//   "scopes": [
11236	//     "https://www.googleapis.com/auth/books"
11237	//   ]
11238	// }
11239
11240}
11241
11242// Pages invokes f for each page of results.
11243// A non-nil error returned from f will halt the iteration.
11244// The provided context supersedes any context provided to the Context method.
11245func (c *OnboardingListCategoryVolumesCall) Pages(ctx context.Context, f func(*Volume2) error) error {
11246	c.ctx_ = ctx
11247	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
11248	for {
11249		x, err := c.Do()
11250		if err != nil {
11251			return err
11252		}
11253		if err := f(x); err != nil {
11254			return err
11255		}
11256		if x.NextPageToken == "" {
11257			return nil
11258		}
11259		c.PageToken(x.NextPageToken)
11260	}
11261}
11262
11263// method id "books.personalizedstream.get":
11264
11265type PersonalizedstreamGetCall struct {
11266	s            *Service
11267	urlParams_   gensupport.URLParams
11268	ifNoneMatch_ string
11269	ctx_         context.Context
11270	header_      http.Header
11271}
11272
11273// Get: Returns a stream of personalized book clusters
11274func (r *PersonalizedstreamService) Get() *PersonalizedstreamGetCall {
11275	c := &PersonalizedstreamGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
11276	return c
11277}
11278
11279// Locale sets the optional parameter "locale": ISO-639-1 language and
11280// ISO-3166-1 country code. Ex: 'en_US'. Used for generating
11281// recommendations.
11282func (c *PersonalizedstreamGetCall) Locale(locale string) *PersonalizedstreamGetCall {
11283	c.urlParams_.Set("locale", locale)
11284	return c
11285}
11286
11287// MaxAllowedMaturityRating sets the optional parameter
11288// "maxAllowedMaturityRating": The maximum allowed maturity rating of
11289// returned recommendations. Books with a higher maturity rating are
11290// filtered out.
11291//
11292// Possible values:
11293//   "mature" - Show books which are rated mature or lower.
11294//   "not-mature" - Show books which are rated not mature.
11295func (c *PersonalizedstreamGetCall) MaxAllowedMaturityRating(maxAllowedMaturityRating string) *PersonalizedstreamGetCall {
11296	c.urlParams_.Set("maxAllowedMaturityRating", maxAllowedMaturityRating)
11297	return c
11298}
11299
11300// Source sets the optional parameter "source": String to identify the
11301// originator of this request.
11302func (c *PersonalizedstreamGetCall) Source(source string) *PersonalizedstreamGetCall {
11303	c.urlParams_.Set("source", source)
11304	return c
11305}
11306
11307// Fields allows partial responses to be retrieved. See
11308// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
11309// for more information.
11310func (c *PersonalizedstreamGetCall) Fields(s ...googleapi.Field) *PersonalizedstreamGetCall {
11311	c.urlParams_.Set("fields", googleapi.CombineFields(s))
11312	return c
11313}
11314
11315// IfNoneMatch sets the optional parameter which makes the operation
11316// fail if the object's ETag matches the given value. This is useful for
11317// getting updates only after the object has changed since the last
11318// request. Use googleapi.IsNotModified to check whether the response
11319// error from Do is the result of In-None-Match.
11320func (c *PersonalizedstreamGetCall) IfNoneMatch(entityTag string) *PersonalizedstreamGetCall {
11321	c.ifNoneMatch_ = entityTag
11322	return c
11323}
11324
11325// Context sets the context to be used in this call's Do method. Any
11326// pending HTTP request will be aborted if the provided context is
11327// canceled.
11328func (c *PersonalizedstreamGetCall) Context(ctx context.Context) *PersonalizedstreamGetCall {
11329	c.ctx_ = ctx
11330	return c
11331}
11332
11333// Header returns an http.Header that can be modified by the caller to
11334// add HTTP headers to the request.
11335func (c *PersonalizedstreamGetCall) Header() http.Header {
11336	if c.header_ == nil {
11337		c.header_ = make(http.Header)
11338	}
11339	return c.header_
11340}
11341
11342func (c *PersonalizedstreamGetCall) doRequest(alt string) (*http.Response, error) {
11343	reqHeaders := make(http.Header)
11344	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
11345	for k, v := range c.header_ {
11346		reqHeaders[k] = v
11347	}
11348	reqHeaders.Set("User-Agent", c.s.userAgent())
11349	if c.ifNoneMatch_ != "" {
11350		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
11351	}
11352	var body io.Reader = nil
11353	c.urlParams_.Set("alt", alt)
11354	c.urlParams_.Set("prettyPrint", "false")
11355	urls := googleapi.ResolveRelative(c.s.BasePath, "personalizedstream/get")
11356	urls += "?" + c.urlParams_.Encode()
11357	req, err := http.NewRequest("GET", urls, body)
11358	if err != nil {
11359		return nil, err
11360	}
11361	req.Header = reqHeaders
11362	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11363}
11364
11365// Do executes the "books.personalizedstream.get" call.
11366// Exactly one of *Discoveryclusters or error will be non-nil. Any
11367// non-2xx status code is an error. Response headers are in either
11368// *Discoveryclusters.ServerResponse.Header or (if a response was
11369// returned at all) in error.(*googleapi.Error).Header. Use
11370// googleapi.IsNotModified to check whether the returned error was
11371// because http.StatusNotModified was returned.
11372func (c *PersonalizedstreamGetCall) Do(opts ...googleapi.CallOption) (*Discoveryclusters, error) {
11373	gensupport.SetOptions(c.urlParams_, opts...)
11374	res, err := c.doRequest("json")
11375	if res != nil && res.StatusCode == http.StatusNotModified {
11376		if res.Body != nil {
11377			res.Body.Close()
11378		}
11379		return nil, &googleapi.Error{
11380			Code:   res.StatusCode,
11381			Header: res.Header,
11382		}
11383	}
11384	if err != nil {
11385		return nil, err
11386	}
11387	defer googleapi.CloseBody(res)
11388	if err := googleapi.CheckResponse(res); err != nil {
11389		return nil, err
11390	}
11391	ret := &Discoveryclusters{
11392		ServerResponse: googleapi.ServerResponse{
11393			Header:         res.Header,
11394			HTTPStatusCode: res.StatusCode,
11395		},
11396	}
11397	target := &ret
11398	if err := gensupport.DecodeResponse(target, res); err != nil {
11399		return nil, err
11400	}
11401	return ret, nil
11402	// {
11403	//   "description": "Returns a stream of personalized book clusters",
11404	//   "httpMethod": "GET",
11405	//   "id": "books.personalizedstream.get",
11406	//   "parameters": {
11407	//     "locale": {
11408	//       "description": "ISO-639-1 language and ISO-3166-1 country code. Ex: 'en_US'. Used for generating recommendations.",
11409	//       "location": "query",
11410	//       "type": "string"
11411	//     },
11412	//     "maxAllowedMaturityRating": {
11413	//       "description": "The maximum allowed maturity rating of returned recommendations. Books with a higher maturity rating are filtered out.",
11414	//       "enum": [
11415	//         "mature",
11416	//         "not-mature"
11417	//       ],
11418	//       "enumDescriptions": [
11419	//         "Show books which are rated mature or lower.",
11420	//         "Show books which are rated not mature."
11421	//       ],
11422	//       "location": "query",
11423	//       "type": "string"
11424	//     },
11425	//     "source": {
11426	//       "description": "String to identify the originator of this request.",
11427	//       "location": "query",
11428	//       "type": "string"
11429	//     }
11430	//   },
11431	//   "path": "personalizedstream/get",
11432	//   "response": {
11433	//     "$ref": "Discoveryclusters"
11434	//   },
11435	//   "scopes": [
11436	//     "https://www.googleapis.com/auth/books"
11437	//   ]
11438	// }
11439
11440}
11441
11442// method id "books.promooffer.accept":
11443
11444type PromoofferAcceptCall struct {
11445	s          *Service
11446	urlParams_ gensupport.URLParams
11447	ctx_       context.Context
11448	header_    http.Header
11449}
11450
11451// Accept:
11452func (r *PromoofferService) Accept() *PromoofferAcceptCall {
11453	c := &PromoofferAcceptCall{s: r.s, urlParams_: make(gensupport.URLParams)}
11454	return c
11455}
11456
11457// AndroidId sets the optional parameter "androidId": device android_id
11458func (c *PromoofferAcceptCall) AndroidId(androidId string) *PromoofferAcceptCall {
11459	c.urlParams_.Set("androidId", androidId)
11460	return c
11461}
11462
11463// Device sets the optional parameter "device": device device
11464func (c *PromoofferAcceptCall) Device(device string) *PromoofferAcceptCall {
11465	c.urlParams_.Set("device", device)
11466	return c
11467}
11468
11469// Manufacturer sets the optional parameter "manufacturer": device
11470// manufacturer
11471func (c *PromoofferAcceptCall) Manufacturer(manufacturer string) *PromoofferAcceptCall {
11472	c.urlParams_.Set("manufacturer", manufacturer)
11473	return c
11474}
11475
11476// Model sets the optional parameter "model": device model
11477func (c *PromoofferAcceptCall) Model(model string) *PromoofferAcceptCall {
11478	c.urlParams_.Set("model", model)
11479	return c
11480}
11481
11482// OfferId sets the optional parameter "offerId":
11483func (c *PromoofferAcceptCall) OfferId(offerId string) *PromoofferAcceptCall {
11484	c.urlParams_.Set("offerId", offerId)
11485	return c
11486}
11487
11488// Product sets the optional parameter "product": device product
11489func (c *PromoofferAcceptCall) Product(product string) *PromoofferAcceptCall {
11490	c.urlParams_.Set("product", product)
11491	return c
11492}
11493
11494// Serial sets the optional parameter "serial": device serial
11495func (c *PromoofferAcceptCall) Serial(serial string) *PromoofferAcceptCall {
11496	c.urlParams_.Set("serial", serial)
11497	return c
11498}
11499
11500// VolumeId sets the optional parameter "volumeId": Volume id to
11501// exercise the offer
11502func (c *PromoofferAcceptCall) VolumeId(volumeId string) *PromoofferAcceptCall {
11503	c.urlParams_.Set("volumeId", volumeId)
11504	return c
11505}
11506
11507// Fields allows partial responses to be retrieved. See
11508// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
11509// for more information.
11510func (c *PromoofferAcceptCall) Fields(s ...googleapi.Field) *PromoofferAcceptCall {
11511	c.urlParams_.Set("fields", googleapi.CombineFields(s))
11512	return c
11513}
11514
11515// Context sets the context to be used in this call's Do method. Any
11516// pending HTTP request will be aborted if the provided context is
11517// canceled.
11518func (c *PromoofferAcceptCall) Context(ctx context.Context) *PromoofferAcceptCall {
11519	c.ctx_ = ctx
11520	return c
11521}
11522
11523// Header returns an http.Header that can be modified by the caller to
11524// add HTTP headers to the request.
11525func (c *PromoofferAcceptCall) Header() http.Header {
11526	if c.header_ == nil {
11527		c.header_ = make(http.Header)
11528	}
11529	return c.header_
11530}
11531
11532func (c *PromoofferAcceptCall) doRequest(alt string) (*http.Response, error) {
11533	reqHeaders := make(http.Header)
11534	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
11535	for k, v := range c.header_ {
11536		reqHeaders[k] = v
11537	}
11538	reqHeaders.Set("User-Agent", c.s.userAgent())
11539	var body io.Reader = nil
11540	c.urlParams_.Set("alt", alt)
11541	c.urlParams_.Set("prettyPrint", "false")
11542	urls := googleapi.ResolveRelative(c.s.BasePath, "promooffer/accept")
11543	urls += "?" + c.urlParams_.Encode()
11544	req, err := http.NewRequest("POST", urls, body)
11545	if err != nil {
11546		return nil, err
11547	}
11548	req.Header = reqHeaders
11549	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11550}
11551
11552// Do executes the "books.promooffer.accept" call.
11553func (c *PromoofferAcceptCall) Do(opts ...googleapi.CallOption) error {
11554	gensupport.SetOptions(c.urlParams_, opts...)
11555	res, err := c.doRequest("json")
11556	if err != nil {
11557		return err
11558	}
11559	defer googleapi.CloseBody(res)
11560	if err := googleapi.CheckResponse(res); err != nil {
11561		return err
11562	}
11563	return nil
11564	// {
11565	//   "description": "",
11566	//   "httpMethod": "POST",
11567	//   "id": "books.promooffer.accept",
11568	//   "parameters": {
11569	//     "androidId": {
11570	//       "description": "device android_id",
11571	//       "location": "query",
11572	//       "type": "string"
11573	//     },
11574	//     "device": {
11575	//       "description": "device device",
11576	//       "location": "query",
11577	//       "type": "string"
11578	//     },
11579	//     "manufacturer": {
11580	//       "description": "device manufacturer",
11581	//       "location": "query",
11582	//       "type": "string"
11583	//     },
11584	//     "model": {
11585	//       "description": "device model",
11586	//       "location": "query",
11587	//       "type": "string"
11588	//     },
11589	//     "offerId": {
11590	//       "location": "query",
11591	//       "type": "string"
11592	//     },
11593	//     "product": {
11594	//       "description": "device product",
11595	//       "location": "query",
11596	//       "type": "string"
11597	//     },
11598	//     "serial": {
11599	//       "description": "device serial",
11600	//       "location": "query",
11601	//       "type": "string"
11602	//     },
11603	//     "volumeId": {
11604	//       "description": "Volume id to exercise the offer",
11605	//       "location": "query",
11606	//       "type": "string"
11607	//     }
11608	//   },
11609	//   "path": "promooffer/accept",
11610	//   "scopes": [
11611	//     "https://www.googleapis.com/auth/books"
11612	//   ]
11613	// }
11614
11615}
11616
11617// method id "books.promooffer.dismiss":
11618
11619type PromoofferDismissCall struct {
11620	s          *Service
11621	urlParams_ gensupport.URLParams
11622	ctx_       context.Context
11623	header_    http.Header
11624}
11625
11626// Dismiss:
11627func (r *PromoofferService) Dismiss() *PromoofferDismissCall {
11628	c := &PromoofferDismissCall{s: r.s, urlParams_: make(gensupport.URLParams)}
11629	return c
11630}
11631
11632// AndroidId sets the optional parameter "androidId": device android_id
11633func (c *PromoofferDismissCall) AndroidId(androidId string) *PromoofferDismissCall {
11634	c.urlParams_.Set("androidId", androidId)
11635	return c
11636}
11637
11638// Device sets the optional parameter "device": device device
11639func (c *PromoofferDismissCall) Device(device string) *PromoofferDismissCall {
11640	c.urlParams_.Set("device", device)
11641	return c
11642}
11643
11644// Manufacturer sets the optional parameter "manufacturer": device
11645// manufacturer
11646func (c *PromoofferDismissCall) Manufacturer(manufacturer string) *PromoofferDismissCall {
11647	c.urlParams_.Set("manufacturer", manufacturer)
11648	return c
11649}
11650
11651// Model sets the optional parameter "model": device model
11652func (c *PromoofferDismissCall) Model(model string) *PromoofferDismissCall {
11653	c.urlParams_.Set("model", model)
11654	return c
11655}
11656
11657// OfferId sets the optional parameter "offerId": Offer to dimiss
11658func (c *PromoofferDismissCall) OfferId(offerId string) *PromoofferDismissCall {
11659	c.urlParams_.Set("offerId", offerId)
11660	return c
11661}
11662
11663// Product sets the optional parameter "product": device product
11664func (c *PromoofferDismissCall) Product(product string) *PromoofferDismissCall {
11665	c.urlParams_.Set("product", product)
11666	return c
11667}
11668
11669// Serial sets the optional parameter "serial": device serial
11670func (c *PromoofferDismissCall) Serial(serial string) *PromoofferDismissCall {
11671	c.urlParams_.Set("serial", serial)
11672	return c
11673}
11674
11675// Fields allows partial responses to be retrieved. See
11676// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
11677// for more information.
11678func (c *PromoofferDismissCall) Fields(s ...googleapi.Field) *PromoofferDismissCall {
11679	c.urlParams_.Set("fields", googleapi.CombineFields(s))
11680	return c
11681}
11682
11683// Context sets the context to be used in this call's Do method. Any
11684// pending HTTP request will be aborted if the provided context is
11685// canceled.
11686func (c *PromoofferDismissCall) Context(ctx context.Context) *PromoofferDismissCall {
11687	c.ctx_ = ctx
11688	return c
11689}
11690
11691// Header returns an http.Header that can be modified by the caller to
11692// add HTTP headers to the request.
11693func (c *PromoofferDismissCall) Header() http.Header {
11694	if c.header_ == nil {
11695		c.header_ = make(http.Header)
11696	}
11697	return c.header_
11698}
11699
11700func (c *PromoofferDismissCall) doRequest(alt string) (*http.Response, error) {
11701	reqHeaders := make(http.Header)
11702	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
11703	for k, v := range c.header_ {
11704		reqHeaders[k] = v
11705	}
11706	reqHeaders.Set("User-Agent", c.s.userAgent())
11707	var body io.Reader = nil
11708	c.urlParams_.Set("alt", alt)
11709	c.urlParams_.Set("prettyPrint", "false")
11710	urls := googleapi.ResolveRelative(c.s.BasePath, "promooffer/dismiss")
11711	urls += "?" + c.urlParams_.Encode()
11712	req, err := http.NewRequest("POST", urls, body)
11713	if err != nil {
11714		return nil, err
11715	}
11716	req.Header = reqHeaders
11717	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11718}
11719
11720// Do executes the "books.promooffer.dismiss" call.
11721func (c *PromoofferDismissCall) Do(opts ...googleapi.CallOption) error {
11722	gensupport.SetOptions(c.urlParams_, opts...)
11723	res, err := c.doRequest("json")
11724	if err != nil {
11725		return err
11726	}
11727	defer googleapi.CloseBody(res)
11728	if err := googleapi.CheckResponse(res); err != nil {
11729		return err
11730	}
11731	return nil
11732	// {
11733	//   "description": "",
11734	//   "httpMethod": "POST",
11735	//   "id": "books.promooffer.dismiss",
11736	//   "parameters": {
11737	//     "androidId": {
11738	//       "description": "device android_id",
11739	//       "location": "query",
11740	//       "type": "string"
11741	//     },
11742	//     "device": {
11743	//       "description": "device device",
11744	//       "location": "query",
11745	//       "type": "string"
11746	//     },
11747	//     "manufacturer": {
11748	//       "description": "device manufacturer",
11749	//       "location": "query",
11750	//       "type": "string"
11751	//     },
11752	//     "model": {
11753	//       "description": "device model",
11754	//       "location": "query",
11755	//       "type": "string"
11756	//     },
11757	//     "offerId": {
11758	//       "description": "Offer to dimiss",
11759	//       "location": "query",
11760	//       "type": "string"
11761	//     },
11762	//     "product": {
11763	//       "description": "device product",
11764	//       "location": "query",
11765	//       "type": "string"
11766	//     },
11767	//     "serial": {
11768	//       "description": "device serial",
11769	//       "location": "query",
11770	//       "type": "string"
11771	//     }
11772	//   },
11773	//   "path": "promooffer/dismiss",
11774	//   "scopes": [
11775	//     "https://www.googleapis.com/auth/books"
11776	//   ]
11777	// }
11778
11779}
11780
11781// method id "books.promooffer.get":
11782
11783type PromoofferGetCall struct {
11784	s            *Service
11785	urlParams_   gensupport.URLParams
11786	ifNoneMatch_ string
11787	ctx_         context.Context
11788	header_      http.Header
11789}
11790
11791// Get: Returns a list of promo offers available to the user
11792func (r *PromoofferService) Get() *PromoofferGetCall {
11793	c := &PromoofferGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
11794	return c
11795}
11796
11797// AndroidId sets the optional parameter "androidId": device android_id
11798func (c *PromoofferGetCall) AndroidId(androidId string) *PromoofferGetCall {
11799	c.urlParams_.Set("androidId", androidId)
11800	return c
11801}
11802
11803// Device sets the optional parameter "device": device device
11804func (c *PromoofferGetCall) Device(device string) *PromoofferGetCall {
11805	c.urlParams_.Set("device", device)
11806	return c
11807}
11808
11809// Manufacturer sets the optional parameter "manufacturer": device
11810// manufacturer
11811func (c *PromoofferGetCall) Manufacturer(manufacturer string) *PromoofferGetCall {
11812	c.urlParams_.Set("manufacturer", manufacturer)
11813	return c
11814}
11815
11816// Model sets the optional parameter "model": device model
11817func (c *PromoofferGetCall) Model(model string) *PromoofferGetCall {
11818	c.urlParams_.Set("model", model)
11819	return c
11820}
11821
11822// Product sets the optional parameter "product": device product
11823func (c *PromoofferGetCall) Product(product string) *PromoofferGetCall {
11824	c.urlParams_.Set("product", product)
11825	return c
11826}
11827
11828// Serial sets the optional parameter "serial": device serial
11829func (c *PromoofferGetCall) Serial(serial string) *PromoofferGetCall {
11830	c.urlParams_.Set("serial", serial)
11831	return c
11832}
11833
11834// Fields allows partial responses to be retrieved. See
11835// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
11836// for more information.
11837func (c *PromoofferGetCall) Fields(s ...googleapi.Field) *PromoofferGetCall {
11838	c.urlParams_.Set("fields", googleapi.CombineFields(s))
11839	return c
11840}
11841
11842// IfNoneMatch sets the optional parameter which makes the operation
11843// fail if the object's ETag matches the given value. This is useful for
11844// getting updates only after the object has changed since the last
11845// request. Use googleapi.IsNotModified to check whether the response
11846// error from Do is the result of In-None-Match.
11847func (c *PromoofferGetCall) IfNoneMatch(entityTag string) *PromoofferGetCall {
11848	c.ifNoneMatch_ = entityTag
11849	return c
11850}
11851
11852// Context sets the context to be used in this call's Do method. Any
11853// pending HTTP request will be aborted if the provided context is
11854// canceled.
11855func (c *PromoofferGetCall) Context(ctx context.Context) *PromoofferGetCall {
11856	c.ctx_ = ctx
11857	return c
11858}
11859
11860// Header returns an http.Header that can be modified by the caller to
11861// add HTTP headers to the request.
11862func (c *PromoofferGetCall) Header() http.Header {
11863	if c.header_ == nil {
11864		c.header_ = make(http.Header)
11865	}
11866	return c.header_
11867}
11868
11869func (c *PromoofferGetCall) doRequest(alt string) (*http.Response, error) {
11870	reqHeaders := make(http.Header)
11871	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
11872	for k, v := range c.header_ {
11873		reqHeaders[k] = v
11874	}
11875	reqHeaders.Set("User-Agent", c.s.userAgent())
11876	if c.ifNoneMatch_ != "" {
11877		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
11878	}
11879	var body io.Reader = nil
11880	c.urlParams_.Set("alt", alt)
11881	c.urlParams_.Set("prettyPrint", "false")
11882	urls := googleapi.ResolveRelative(c.s.BasePath, "promooffer/get")
11883	urls += "?" + c.urlParams_.Encode()
11884	req, err := http.NewRequest("GET", urls, body)
11885	if err != nil {
11886		return nil, err
11887	}
11888	req.Header = reqHeaders
11889	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11890}
11891
11892// Do executes the "books.promooffer.get" call.
11893// Exactly one of *Offers or error will be non-nil. Any non-2xx status
11894// code is an error. Response headers are in either
11895// *Offers.ServerResponse.Header or (if a response was returned at all)
11896// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
11897// check whether the returned error was because http.StatusNotModified
11898// was returned.
11899func (c *PromoofferGetCall) Do(opts ...googleapi.CallOption) (*Offers, error) {
11900	gensupport.SetOptions(c.urlParams_, opts...)
11901	res, err := c.doRequest("json")
11902	if res != nil && res.StatusCode == http.StatusNotModified {
11903		if res.Body != nil {
11904			res.Body.Close()
11905		}
11906		return nil, &googleapi.Error{
11907			Code:   res.StatusCode,
11908			Header: res.Header,
11909		}
11910	}
11911	if err != nil {
11912		return nil, err
11913	}
11914	defer googleapi.CloseBody(res)
11915	if err := googleapi.CheckResponse(res); err != nil {
11916		return nil, err
11917	}
11918	ret := &Offers{
11919		ServerResponse: googleapi.ServerResponse{
11920			Header:         res.Header,
11921			HTTPStatusCode: res.StatusCode,
11922		},
11923	}
11924	target := &ret
11925	if err := gensupport.DecodeResponse(target, res); err != nil {
11926		return nil, err
11927	}
11928	return ret, nil
11929	// {
11930	//   "description": "Returns a list of promo offers available to the user",
11931	//   "httpMethod": "GET",
11932	//   "id": "books.promooffer.get",
11933	//   "parameters": {
11934	//     "androidId": {
11935	//       "description": "device android_id",
11936	//       "location": "query",
11937	//       "type": "string"
11938	//     },
11939	//     "device": {
11940	//       "description": "device device",
11941	//       "location": "query",
11942	//       "type": "string"
11943	//     },
11944	//     "manufacturer": {
11945	//       "description": "device manufacturer",
11946	//       "location": "query",
11947	//       "type": "string"
11948	//     },
11949	//     "model": {
11950	//       "description": "device model",
11951	//       "location": "query",
11952	//       "type": "string"
11953	//     },
11954	//     "product": {
11955	//       "description": "device product",
11956	//       "location": "query",
11957	//       "type": "string"
11958	//     },
11959	//     "serial": {
11960	//       "description": "device serial",
11961	//       "location": "query",
11962	//       "type": "string"
11963	//     }
11964	//   },
11965	//   "path": "promooffer/get",
11966	//   "response": {
11967	//     "$ref": "Offers"
11968	//   },
11969	//   "scopes": [
11970	//     "https://www.googleapis.com/auth/books"
11971	//   ]
11972	// }
11973
11974}
11975
11976// method id "books.series.get":
11977
11978type SeriesGetCall struct {
11979	s            *Service
11980	urlParams_   gensupport.URLParams
11981	ifNoneMatch_ string
11982	ctx_         context.Context
11983	header_      http.Header
11984}
11985
11986// Get: Returns Series metadata for the given series ids.
11987func (r *SeriesService) Get(seriesId []string) *SeriesGetCall {
11988	c := &SeriesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
11989	c.urlParams_.SetMulti("series_id", append([]string{}, seriesId...))
11990	return c
11991}
11992
11993// Fields allows partial responses to be retrieved. See
11994// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
11995// for more information.
11996func (c *SeriesGetCall) Fields(s ...googleapi.Field) *SeriesGetCall {
11997	c.urlParams_.Set("fields", googleapi.CombineFields(s))
11998	return c
11999}
12000
12001// IfNoneMatch sets the optional parameter which makes the operation
12002// fail if the object's ETag matches the given value. This is useful for
12003// getting updates only after the object has changed since the last
12004// request. Use googleapi.IsNotModified to check whether the response
12005// error from Do is the result of In-None-Match.
12006func (c *SeriesGetCall) IfNoneMatch(entityTag string) *SeriesGetCall {
12007	c.ifNoneMatch_ = entityTag
12008	return c
12009}
12010
12011// Context sets the context to be used in this call's Do method. Any
12012// pending HTTP request will be aborted if the provided context is
12013// canceled.
12014func (c *SeriesGetCall) Context(ctx context.Context) *SeriesGetCall {
12015	c.ctx_ = ctx
12016	return c
12017}
12018
12019// Header returns an http.Header that can be modified by the caller to
12020// add HTTP headers to the request.
12021func (c *SeriesGetCall) Header() http.Header {
12022	if c.header_ == nil {
12023		c.header_ = make(http.Header)
12024	}
12025	return c.header_
12026}
12027
12028func (c *SeriesGetCall) doRequest(alt string) (*http.Response, error) {
12029	reqHeaders := make(http.Header)
12030	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
12031	for k, v := range c.header_ {
12032		reqHeaders[k] = v
12033	}
12034	reqHeaders.Set("User-Agent", c.s.userAgent())
12035	if c.ifNoneMatch_ != "" {
12036		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
12037	}
12038	var body io.Reader = nil
12039	c.urlParams_.Set("alt", alt)
12040	c.urlParams_.Set("prettyPrint", "false")
12041	urls := googleapi.ResolveRelative(c.s.BasePath, "series/get")
12042	urls += "?" + c.urlParams_.Encode()
12043	req, err := http.NewRequest("GET", urls, body)
12044	if err != nil {
12045		return nil, err
12046	}
12047	req.Header = reqHeaders
12048	return gensupport.SendRequest(c.ctx_, c.s.client, req)
12049}
12050
12051// Do executes the "books.series.get" call.
12052// Exactly one of *Series or error will be non-nil. Any non-2xx status
12053// code is an error. Response headers are in either
12054// *Series.ServerResponse.Header or (if a response was returned at all)
12055// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
12056// check whether the returned error was because http.StatusNotModified
12057// was returned.
12058func (c *SeriesGetCall) Do(opts ...googleapi.CallOption) (*Series, error) {
12059	gensupport.SetOptions(c.urlParams_, opts...)
12060	res, err := c.doRequest("json")
12061	if res != nil && res.StatusCode == http.StatusNotModified {
12062		if res.Body != nil {
12063			res.Body.Close()
12064		}
12065		return nil, &googleapi.Error{
12066			Code:   res.StatusCode,
12067			Header: res.Header,
12068		}
12069	}
12070	if err != nil {
12071		return nil, err
12072	}
12073	defer googleapi.CloseBody(res)
12074	if err := googleapi.CheckResponse(res); err != nil {
12075		return nil, err
12076	}
12077	ret := &Series{
12078		ServerResponse: googleapi.ServerResponse{
12079			Header:         res.Header,
12080			HTTPStatusCode: res.StatusCode,
12081		},
12082	}
12083	target := &ret
12084	if err := gensupport.DecodeResponse(target, res); err != nil {
12085		return nil, err
12086	}
12087	return ret, nil
12088	// {
12089	//   "description": "Returns Series metadata for the given series ids.",
12090	//   "httpMethod": "GET",
12091	//   "id": "books.series.get",
12092	//   "parameterOrder": [
12093	//     "series_id"
12094	//   ],
12095	//   "parameters": {
12096	//     "series_id": {
12097	//       "description": "String that identifies the series",
12098	//       "location": "query",
12099	//       "repeated": true,
12100	//       "required": true,
12101	//       "type": "string"
12102	//     }
12103	//   },
12104	//   "path": "series/get",
12105	//   "response": {
12106	//     "$ref": "Series"
12107	//   },
12108	//   "scopes": [
12109	//     "https://www.googleapis.com/auth/books"
12110	//   ]
12111	// }
12112
12113}
12114
12115// method id "books.series.membership.get":
12116
12117type SeriesMembershipGetCall struct {
12118	s            *Service
12119	urlParams_   gensupport.URLParams
12120	ifNoneMatch_ string
12121	ctx_         context.Context
12122	header_      http.Header
12123}
12124
12125// Get: Returns Series membership data given the series id.
12126func (r *SeriesMembershipService) Get(seriesId string) *SeriesMembershipGetCall {
12127	c := &SeriesMembershipGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
12128	c.urlParams_.Set("series_id", seriesId)
12129	return c
12130}
12131
12132// PageSize sets the optional parameter "page_size": Number of maximum
12133// results per page to be included in the response.
12134func (c *SeriesMembershipGetCall) PageSize(pageSize int64) *SeriesMembershipGetCall {
12135	c.urlParams_.Set("page_size", fmt.Sprint(pageSize))
12136	return c
12137}
12138
12139// PageToken sets the optional parameter "page_token": The value of the
12140// nextToken from the previous page.
12141func (c *SeriesMembershipGetCall) PageToken(pageToken string) *SeriesMembershipGetCall {
12142	c.urlParams_.Set("page_token", pageToken)
12143	return c
12144}
12145
12146// Fields allows partial responses to be retrieved. See
12147// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
12148// for more information.
12149func (c *SeriesMembershipGetCall) Fields(s ...googleapi.Field) *SeriesMembershipGetCall {
12150	c.urlParams_.Set("fields", googleapi.CombineFields(s))
12151	return c
12152}
12153
12154// IfNoneMatch sets the optional parameter which makes the operation
12155// fail if the object's ETag matches the given value. This is useful for
12156// getting updates only after the object has changed since the last
12157// request. Use googleapi.IsNotModified to check whether the response
12158// error from Do is the result of In-None-Match.
12159func (c *SeriesMembershipGetCall) IfNoneMatch(entityTag string) *SeriesMembershipGetCall {
12160	c.ifNoneMatch_ = entityTag
12161	return c
12162}
12163
12164// Context sets the context to be used in this call's Do method. Any
12165// pending HTTP request will be aborted if the provided context is
12166// canceled.
12167func (c *SeriesMembershipGetCall) Context(ctx context.Context) *SeriesMembershipGetCall {
12168	c.ctx_ = ctx
12169	return c
12170}
12171
12172// Header returns an http.Header that can be modified by the caller to
12173// add HTTP headers to the request.
12174func (c *SeriesMembershipGetCall) Header() http.Header {
12175	if c.header_ == nil {
12176		c.header_ = make(http.Header)
12177	}
12178	return c.header_
12179}
12180
12181func (c *SeriesMembershipGetCall) doRequest(alt string) (*http.Response, error) {
12182	reqHeaders := make(http.Header)
12183	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
12184	for k, v := range c.header_ {
12185		reqHeaders[k] = v
12186	}
12187	reqHeaders.Set("User-Agent", c.s.userAgent())
12188	if c.ifNoneMatch_ != "" {
12189		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
12190	}
12191	var body io.Reader = nil
12192	c.urlParams_.Set("alt", alt)
12193	c.urlParams_.Set("prettyPrint", "false")
12194	urls := googleapi.ResolveRelative(c.s.BasePath, "series/membership/get")
12195	urls += "?" + c.urlParams_.Encode()
12196	req, err := http.NewRequest("GET", urls, body)
12197	if err != nil {
12198		return nil, err
12199	}
12200	req.Header = reqHeaders
12201	return gensupport.SendRequest(c.ctx_, c.s.client, req)
12202}
12203
12204// Do executes the "books.series.membership.get" call.
12205// Exactly one of *Seriesmembership or error will be non-nil. Any
12206// non-2xx status code is an error. Response headers are in either
12207// *Seriesmembership.ServerResponse.Header or (if a response was
12208// returned at all) in error.(*googleapi.Error).Header. Use
12209// googleapi.IsNotModified to check whether the returned error was
12210// because http.StatusNotModified was returned.
12211func (c *SeriesMembershipGetCall) Do(opts ...googleapi.CallOption) (*Seriesmembership, error) {
12212	gensupport.SetOptions(c.urlParams_, opts...)
12213	res, err := c.doRequest("json")
12214	if res != nil && res.StatusCode == http.StatusNotModified {
12215		if res.Body != nil {
12216			res.Body.Close()
12217		}
12218		return nil, &googleapi.Error{
12219			Code:   res.StatusCode,
12220			Header: res.Header,
12221		}
12222	}
12223	if err != nil {
12224		return nil, err
12225	}
12226	defer googleapi.CloseBody(res)
12227	if err := googleapi.CheckResponse(res); err != nil {
12228		return nil, err
12229	}
12230	ret := &Seriesmembership{
12231		ServerResponse: googleapi.ServerResponse{
12232			Header:         res.Header,
12233			HTTPStatusCode: res.StatusCode,
12234		},
12235	}
12236	target := &ret
12237	if err := gensupport.DecodeResponse(target, res); err != nil {
12238		return nil, err
12239	}
12240	return ret, nil
12241	// {
12242	//   "description": "Returns Series membership data given the series id.",
12243	//   "httpMethod": "GET",
12244	//   "id": "books.series.membership.get",
12245	//   "parameterOrder": [
12246	//     "series_id"
12247	//   ],
12248	//   "parameters": {
12249	//     "page_size": {
12250	//       "description": "Number of maximum results per page to be included in the response.",
12251	//       "format": "uint32",
12252	//       "location": "query",
12253	//       "type": "integer"
12254	//     },
12255	//     "page_token": {
12256	//       "description": "The value of the nextToken from the previous page.",
12257	//       "location": "query",
12258	//       "type": "string"
12259	//     },
12260	//     "series_id": {
12261	//       "description": "String that identifies the series",
12262	//       "location": "query",
12263	//       "required": true,
12264	//       "type": "string"
12265	//     }
12266	//   },
12267	//   "path": "series/membership/get",
12268	//   "response": {
12269	//     "$ref": "Seriesmembership"
12270	//   },
12271	//   "scopes": [
12272	//     "https://www.googleapis.com/auth/books"
12273	//   ]
12274	// }
12275
12276}
12277
12278// method id "books.volumes.get":
12279
12280type VolumesGetCall struct {
12281	s            *Service
12282	volumeId     string
12283	urlParams_   gensupport.URLParams
12284	ifNoneMatch_ string
12285	ctx_         context.Context
12286	header_      http.Header
12287}
12288
12289// Get: Gets volume information for a single volume.
12290func (r *VolumesService) Get(volumeId string) *VolumesGetCall {
12291	c := &VolumesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
12292	c.volumeId = volumeId
12293	return c
12294}
12295
12296// Country sets the optional parameter "country": ISO-3166-1 code to
12297// override the IP-based location.
12298func (c *VolumesGetCall) Country(country string) *VolumesGetCall {
12299	c.urlParams_.Set("country", country)
12300	return c
12301}
12302
12303// IncludeNonComicsSeries sets the optional parameter
12304// "includeNonComicsSeries": Set to true to include non-comics series.
12305// Defaults to false.
12306func (c *VolumesGetCall) IncludeNonComicsSeries(includeNonComicsSeries bool) *VolumesGetCall {
12307	c.urlParams_.Set("includeNonComicsSeries", fmt.Sprint(includeNonComicsSeries))
12308	return c
12309}
12310
12311// Partner sets the optional parameter "partner": Brand results for
12312// partner ID.
12313func (c *VolumesGetCall) Partner(partner string) *VolumesGetCall {
12314	c.urlParams_.Set("partner", partner)
12315	return c
12316}
12317
12318// Projection sets the optional parameter "projection": Restrict
12319// information returned to a set of selected fields.
12320//
12321// Possible values:
12322//   "full" - Includes all volume data.
12323//   "lite" - Includes a subset of fields in volumeInfo and accessInfo.
12324func (c *VolumesGetCall) Projection(projection string) *VolumesGetCall {
12325	c.urlParams_.Set("projection", projection)
12326	return c
12327}
12328
12329// Source sets the optional parameter "source": String to identify the
12330// originator of this request.
12331func (c *VolumesGetCall) Source(source string) *VolumesGetCall {
12332	c.urlParams_.Set("source", source)
12333	return c
12334}
12335
12336// UserLibraryConsistentRead sets the optional parameter
12337// "user_library_consistent_read":
12338func (c *VolumesGetCall) UserLibraryConsistentRead(userLibraryConsistentRead bool) *VolumesGetCall {
12339	c.urlParams_.Set("user_library_consistent_read", fmt.Sprint(userLibraryConsistentRead))
12340	return c
12341}
12342
12343// Fields allows partial responses to be retrieved. See
12344// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
12345// for more information.
12346func (c *VolumesGetCall) Fields(s ...googleapi.Field) *VolumesGetCall {
12347	c.urlParams_.Set("fields", googleapi.CombineFields(s))
12348	return c
12349}
12350
12351// IfNoneMatch sets the optional parameter which makes the operation
12352// fail if the object's ETag matches the given value. This is useful for
12353// getting updates only after the object has changed since the last
12354// request. Use googleapi.IsNotModified to check whether the response
12355// error from Do is the result of In-None-Match.
12356func (c *VolumesGetCall) IfNoneMatch(entityTag string) *VolumesGetCall {
12357	c.ifNoneMatch_ = entityTag
12358	return c
12359}
12360
12361// Context sets the context to be used in this call's Do method. Any
12362// pending HTTP request will be aborted if the provided context is
12363// canceled.
12364func (c *VolumesGetCall) Context(ctx context.Context) *VolumesGetCall {
12365	c.ctx_ = ctx
12366	return c
12367}
12368
12369// Header returns an http.Header that can be modified by the caller to
12370// add HTTP headers to the request.
12371func (c *VolumesGetCall) Header() http.Header {
12372	if c.header_ == nil {
12373		c.header_ = make(http.Header)
12374	}
12375	return c.header_
12376}
12377
12378func (c *VolumesGetCall) doRequest(alt string) (*http.Response, error) {
12379	reqHeaders := make(http.Header)
12380	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
12381	for k, v := range c.header_ {
12382		reqHeaders[k] = v
12383	}
12384	reqHeaders.Set("User-Agent", c.s.userAgent())
12385	if c.ifNoneMatch_ != "" {
12386		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
12387	}
12388	var body io.Reader = nil
12389	c.urlParams_.Set("alt", alt)
12390	c.urlParams_.Set("prettyPrint", "false")
12391	urls := googleapi.ResolveRelative(c.s.BasePath, "volumes/{volumeId}")
12392	urls += "?" + c.urlParams_.Encode()
12393	req, err := http.NewRequest("GET", urls, body)
12394	if err != nil {
12395		return nil, err
12396	}
12397	req.Header = reqHeaders
12398	googleapi.Expand(req.URL, map[string]string{
12399		"volumeId": c.volumeId,
12400	})
12401	return gensupport.SendRequest(c.ctx_, c.s.client, req)
12402}
12403
12404// Do executes the "books.volumes.get" call.
12405// Exactly one of *Volume or error will be non-nil. Any non-2xx status
12406// code is an error. Response headers are in either
12407// *Volume.ServerResponse.Header or (if a response was returned at all)
12408// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
12409// check whether the returned error was because http.StatusNotModified
12410// was returned.
12411func (c *VolumesGetCall) Do(opts ...googleapi.CallOption) (*Volume, error) {
12412	gensupport.SetOptions(c.urlParams_, opts...)
12413	res, err := c.doRequest("json")
12414	if res != nil && res.StatusCode == http.StatusNotModified {
12415		if res.Body != nil {
12416			res.Body.Close()
12417		}
12418		return nil, &googleapi.Error{
12419			Code:   res.StatusCode,
12420			Header: res.Header,
12421		}
12422	}
12423	if err != nil {
12424		return nil, err
12425	}
12426	defer googleapi.CloseBody(res)
12427	if err := googleapi.CheckResponse(res); err != nil {
12428		return nil, err
12429	}
12430	ret := &Volume{
12431		ServerResponse: googleapi.ServerResponse{
12432			Header:         res.Header,
12433			HTTPStatusCode: res.StatusCode,
12434		},
12435	}
12436	target := &ret
12437	if err := gensupport.DecodeResponse(target, res); err != nil {
12438		return nil, err
12439	}
12440	return ret, nil
12441	// {
12442	//   "description": "Gets volume information for a single volume.",
12443	//   "httpMethod": "GET",
12444	//   "id": "books.volumes.get",
12445	//   "parameterOrder": [
12446	//     "volumeId"
12447	//   ],
12448	//   "parameters": {
12449	//     "country": {
12450	//       "description": "ISO-3166-1 code to override the IP-based location.",
12451	//       "location": "query",
12452	//       "type": "string"
12453	//     },
12454	//     "includeNonComicsSeries": {
12455	//       "description": "Set to true to include non-comics series. Defaults to false.",
12456	//       "location": "query",
12457	//       "type": "boolean"
12458	//     },
12459	//     "partner": {
12460	//       "description": "Brand results for partner ID.",
12461	//       "location": "query",
12462	//       "type": "string"
12463	//     },
12464	//     "projection": {
12465	//       "description": "Restrict information returned to a set of selected fields.",
12466	//       "enum": [
12467	//         "full",
12468	//         "lite"
12469	//       ],
12470	//       "enumDescriptions": [
12471	//         "Includes all volume data.",
12472	//         "Includes a subset of fields in volumeInfo and accessInfo."
12473	//       ],
12474	//       "location": "query",
12475	//       "type": "string"
12476	//     },
12477	//     "source": {
12478	//       "description": "String to identify the originator of this request.",
12479	//       "location": "query",
12480	//       "type": "string"
12481	//     },
12482	//     "user_library_consistent_read": {
12483	//       "location": "query",
12484	//       "type": "boolean"
12485	//     },
12486	//     "volumeId": {
12487	//       "description": "ID of volume to retrieve.",
12488	//       "location": "path",
12489	//       "required": true,
12490	//       "type": "string"
12491	//     }
12492	//   },
12493	//   "path": "volumes/{volumeId}",
12494	//   "response": {
12495	//     "$ref": "Volume"
12496	//   },
12497	//   "scopes": [
12498	//     "https://www.googleapis.com/auth/books"
12499	//   ]
12500	// }
12501
12502}
12503
12504// method id "books.volumes.list":
12505
12506type VolumesListCall struct {
12507	s            *Service
12508	urlParams_   gensupport.URLParams
12509	ifNoneMatch_ string
12510	ctx_         context.Context
12511	header_      http.Header
12512}
12513
12514// List: Performs a book search.
12515func (r *VolumesService) List(q string) *VolumesListCall {
12516	c := &VolumesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
12517	c.urlParams_.Set("q", q)
12518	return c
12519}
12520
12521// Download sets the optional parameter "download": Restrict to volumes
12522// by download availability.
12523//
12524// Possible values:
12525//   "epub" - All volumes with epub.
12526func (c *VolumesListCall) Download(download string) *VolumesListCall {
12527	c.urlParams_.Set("download", download)
12528	return c
12529}
12530
12531// Filter sets the optional parameter "filter": Filter search results.
12532//
12533// Possible values:
12534//   "ebooks" - All Google eBooks.
12535//   "free-ebooks" - Google eBook with full volume text viewability.
12536//   "full" - Public can view entire volume text.
12537//   "paid-ebooks" - Google eBook with a price.
12538//   "partial" - Public able to see parts of text.
12539func (c *VolumesListCall) Filter(filter string) *VolumesListCall {
12540	c.urlParams_.Set("filter", filter)
12541	return c
12542}
12543
12544// LangRestrict sets the optional parameter "langRestrict": Restrict
12545// results to books with this language code.
12546func (c *VolumesListCall) LangRestrict(langRestrict string) *VolumesListCall {
12547	c.urlParams_.Set("langRestrict", langRestrict)
12548	return c
12549}
12550
12551// LibraryRestrict sets the optional parameter "libraryRestrict":
12552// Restrict search to this user's library.
12553//
12554// Possible values:
12555//   "my-library" - Restrict to the user's library, any shelf.
12556//   "no-restrict" - Do not restrict based on user's library.
12557func (c *VolumesListCall) LibraryRestrict(libraryRestrict string) *VolumesListCall {
12558	c.urlParams_.Set("libraryRestrict", libraryRestrict)
12559	return c
12560}
12561
12562// MaxAllowedMaturityRating sets the optional parameter
12563// "maxAllowedMaturityRating": The maximum allowed maturity rating of
12564// returned recommendations. Books with a higher maturity rating are
12565// filtered out.
12566//
12567// Possible values:
12568//   "mature" - Show books which are rated mature or lower.
12569//   "not-mature" - Show books which are rated not mature.
12570func (c *VolumesListCall) MaxAllowedMaturityRating(maxAllowedMaturityRating string) *VolumesListCall {
12571	c.urlParams_.Set("maxAllowedMaturityRating", maxAllowedMaturityRating)
12572	return c
12573}
12574
12575// MaxResults sets the optional parameter "maxResults": Maximum number
12576// of results to return.
12577func (c *VolumesListCall) MaxResults(maxResults int64) *VolumesListCall {
12578	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
12579	return c
12580}
12581
12582// OrderBy sets the optional parameter "orderBy": Sort search results.
12583//
12584// Possible values:
12585//   "newest" - Most recently published.
12586//   "relevance" - Relevance to search terms.
12587func (c *VolumesListCall) OrderBy(orderBy string) *VolumesListCall {
12588	c.urlParams_.Set("orderBy", orderBy)
12589	return c
12590}
12591
12592// Partner sets the optional parameter "partner": Restrict and brand
12593// results for partner ID.
12594func (c *VolumesListCall) Partner(partner string) *VolumesListCall {
12595	c.urlParams_.Set("partner", partner)
12596	return c
12597}
12598
12599// PrintType sets the optional parameter "printType": Restrict to books
12600// or magazines.
12601//
12602// Possible values:
12603//   "all" - All volume content types.
12604//   "books" - Just books.
12605//   "magazines" - Just magazines.
12606func (c *VolumesListCall) PrintType(printType string) *VolumesListCall {
12607	c.urlParams_.Set("printType", printType)
12608	return c
12609}
12610
12611// Projection sets the optional parameter "projection": Restrict
12612// information returned to a set of selected fields.
12613//
12614// Possible values:
12615//   "full" - Includes all volume data.
12616//   "lite" - Includes a subset of fields in volumeInfo and accessInfo.
12617func (c *VolumesListCall) Projection(projection string) *VolumesListCall {
12618	c.urlParams_.Set("projection", projection)
12619	return c
12620}
12621
12622// ShowPreorders sets the optional parameter "showPreorders": Set to
12623// true to show books available for preorder. Defaults to false.
12624func (c *VolumesListCall) ShowPreorders(showPreorders bool) *VolumesListCall {
12625	c.urlParams_.Set("showPreorders", fmt.Sprint(showPreorders))
12626	return c
12627}
12628
12629// Source sets the optional parameter "source": String to identify the
12630// originator of this request.
12631func (c *VolumesListCall) Source(source string) *VolumesListCall {
12632	c.urlParams_.Set("source", source)
12633	return c
12634}
12635
12636// StartIndex sets the optional parameter "startIndex": Index of the
12637// first result to return (starts at 0)
12638func (c *VolumesListCall) StartIndex(startIndex int64) *VolumesListCall {
12639	c.urlParams_.Set("startIndex", fmt.Sprint(startIndex))
12640	return c
12641}
12642
12643// Fields allows partial responses to be retrieved. See
12644// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
12645// for more information.
12646func (c *VolumesListCall) Fields(s ...googleapi.Field) *VolumesListCall {
12647	c.urlParams_.Set("fields", googleapi.CombineFields(s))
12648	return c
12649}
12650
12651// IfNoneMatch sets the optional parameter which makes the operation
12652// fail if the object's ETag matches the given value. This is useful for
12653// getting updates only after the object has changed since the last
12654// request. Use googleapi.IsNotModified to check whether the response
12655// error from Do is the result of In-None-Match.
12656func (c *VolumesListCall) IfNoneMatch(entityTag string) *VolumesListCall {
12657	c.ifNoneMatch_ = entityTag
12658	return c
12659}
12660
12661// Context sets the context to be used in this call's Do method. Any
12662// pending HTTP request will be aborted if the provided context is
12663// canceled.
12664func (c *VolumesListCall) Context(ctx context.Context) *VolumesListCall {
12665	c.ctx_ = ctx
12666	return c
12667}
12668
12669// Header returns an http.Header that can be modified by the caller to
12670// add HTTP headers to the request.
12671func (c *VolumesListCall) Header() http.Header {
12672	if c.header_ == nil {
12673		c.header_ = make(http.Header)
12674	}
12675	return c.header_
12676}
12677
12678func (c *VolumesListCall) doRequest(alt string) (*http.Response, error) {
12679	reqHeaders := make(http.Header)
12680	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
12681	for k, v := range c.header_ {
12682		reqHeaders[k] = v
12683	}
12684	reqHeaders.Set("User-Agent", c.s.userAgent())
12685	if c.ifNoneMatch_ != "" {
12686		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
12687	}
12688	var body io.Reader = nil
12689	c.urlParams_.Set("alt", alt)
12690	c.urlParams_.Set("prettyPrint", "false")
12691	urls := googleapi.ResolveRelative(c.s.BasePath, "volumes")
12692	urls += "?" + c.urlParams_.Encode()
12693	req, err := http.NewRequest("GET", urls, body)
12694	if err != nil {
12695		return nil, err
12696	}
12697	req.Header = reqHeaders
12698	return gensupport.SendRequest(c.ctx_, c.s.client, req)
12699}
12700
12701// Do executes the "books.volumes.list" call.
12702// Exactly one of *Volumes or error will be non-nil. Any non-2xx status
12703// code is an error. Response headers are in either
12704// *Volumes.ServerResponse.Header or (if a response was returned at all)
12705// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
12706// check whether the returned error was because http.StatusNotModified
12707// was returned.
12708func (c *VolumesListCall) Do(opts ...googleapi.CallOption) (*Volumes, error) {
12709	gensupport.SetOptions(c.urlParams_, opts...)
12710	res, err := c.doRequest("json")
12711	if res != nil && res.StatusCode == http.StatusNotModified {
12712		if res.Body != nil {
12713			res.Body.Close()
12714		}
12715		return nil, &googleapi.Error{
12716			Code:   res.StatusCode,
12717			Header: res.Header,
12718		}
12719	}
12720	if err != nil {
12721		return nil, err
12722	}
12723	defer googleapi.CloseBody(res)
12724	if err := googleapi.CheckResponse(res); err != nil {
12725		return nil, err
12726	}
12727	ret := &Volumes{
12728		ServerResponse: googleapi.ServerResponse{
12729			Header:         res.Header,
12730			HTTPStatusCode: res.StatusCode,
12731		},
12732	}
12733	target := &ret
12734	if err := gensupport.DecodeResponse(target, res); err != nil {
12735		return nil, err
12736	}
12737	return ret, nil
12738	// {
12739	//   "description": "Performs a book search.",
12740	//   "httpMethod": "GET",
12741	//   "id": "books.volumes.list",
12742	//   "parameterOrder": [
12743	//     "q"
12744	//   ],
12745	//   "parameters": {
12746	//     "download": {
12747	//       "description": "Restrict to volumes by download availability.",
12748	//       "enum": [
12749	//         "epub"
12750	//       ],
12751	//       "enumDescriptions": [
12752	//         "All volumes with epub."
12753	//       ],
12754	//       "location": "query",
12755	//       "type": "string"
12756	//     },
12757	//     "filter": {
12758	//       "description": "Filter search results.",
12759	//       "enum": [
12760	//         "ebooks",
12761	//         "free-ebooks",
12762	//         "full",
12763	//         "paid-ebooks",
12764	//         "partial"
12765	//       ],
12766	//       "enumDescriptions": [
12767	//         "All Google eBooks.",
12768	//         "Google eBook with full volume text viewability.",
12769	//         "Public can view entire volume text.",
12770	//         "Google eBook with a price.",
12771	//         "Public able to see parts of text."
12772	//       ],
12773	//       "location": "query",
12774	//       "type": "string"
12775	//     },
12776	//     "langRestrict": {
12777	//       "description": "Restrict results to books with this language code.",
12778	//       "location": "query",
12779	//       "type": "string"
12780	//     },
12781	//     "libraryRestrict": {
12782	//       "description": "Restrict search to this user's library.",
12783	//       "enum": [
12784	//         "my-library",
12785	//         "no-restrict"
12786	//       ],
12787	//       "enumDescriptions": [
12788	//         "Restrict to the user's library, any shelf.",
12789	//         "Do not restrict based on user's library."
12790	//       ],
12791	//       "location": "query",
12792	//       "type": "string"
12793	//     },
12794	//     "maxAllowedMaturityRating": {
12795	//       "description": "The maximum allowed maturity rating of returned recommendations. Books with a higher maturity rating are filtered out.",
12796	//       "enum": [
12797	//         "mature",
12798	//         "not-mature"
12799	//       ],
12800	//       "enumDescriptions": [
12801	//         "Show books which are rated mature or lower.",
12802	//         "Show books which are rated not mature."
12803	//       ],
12804	//       "location": "query",
12805	//       "type": "string"
12806	//     },
12807	//     "maxResults": {
12808	//       "description": "Maximum number of results to return.",
12809	//       "format": "uint32",
12810	//       "location": "query",
12811	//       "maximum": "40",
12812	//       "minimum": "0",
12813	//       "type": "integer"
12814	//     },
12815	//     "orderBy": {
12816	//       "description": "Sort search results.",
12817	//       "enum": [
12818	//         "newest",
12819	//         "relevance"
12820	//       ],
12821	//       "enumDescriptions": [
12822	//         "Most recently published.",
12823	//         "Relevance to search terms."
12824	//       ],
12825	//       "location": "query",
12826	//       "type": "string"
12827	//     },
12828	//     "partner": {
12829	//       "description": "Restrict and brand results for partner ID.",
12830	//       "location": "query",
12831	//       "type": "string"
12832	//     },
12833	//     "printType": {
12834	//       "description": "Restrict to books or magazines.",
12835	//       "enum": [
12836	//         "all",
12837	//         "books",
12838	//         "magazines"
12839	//       ],
12840	//       "enumDescriptions": [
12841	//         "All volume content types.",
12842	//         "Just books.",
12843	//         "Just magazines."
12844	//       ],
12845	//       "location": "query",
12846	//       "type": "string"
12847	//     },
12848	//     "projection": {
12849	//       "description": "Restrict information returned to a set of selected fields.",
12850	//       "enum": [
12851	//         "full",
12852	//         "lite"
12853	//       ],
12854	//       "enumDescriptions": [
12855	//         "Includes all volume data.",
12856	//         "Includes a subset of fields in volumeInfo and accessInfo."
12857	//       ],
12858	//       "location": "query",
12859	//       "type": "string"
12860	//     },
12861	//     "q": {
12862	//       "description": "Full-text search query string.",
12863	//       "location": "query",
12864	//       "required": true,
12865	//       "type": "string"
12866	//     },
12867	//     "showPreorders": {
12868	//       "description": "Set to true to show books available for preorder. Defaults to false.",
12869	//       "location": "query",
12870	//       "type": "boolean"
12871	//     },
12872	//     "source": {
12873	//       "description": "String to identify the originator of this request.",
12874	//       "location": "query",
12875	//       "type": "string"
12876	//     },
12877	//     "startIndex": {
12878	//       "description": "Index of the first result to return (starts at 0)",
12879	//       "format": "uint32",
12880	//       "location": "query",
12881	//       "minimum": "0",
12882	//       "type": "integer"
12883	//     }
12884	//   },
12885	//   "path": "volumes",
12886	//   "response": {
12887	//     "$ref": "Volumes"
12888	//   },
12889	//   "scopes": [
12890	//     "https://www.googleapis.com/auth/books"
12891	//   ]
12892	// }
12893
12894}
12895
12896// method id "books.volumes.associated.list":
12897
12898type VolumesAssociatedListCall struct {
12899	s            *Service
12900	volumeId     string
12901	urlParams_   gensupport.URLParams
12902	ifNoneMatch_ string
12903	ctx_         context.Context
12904	header_      http.Header
12905}
12906
12907// List: Return a list of associated books.
12908func (r *VolumesAssociatedService) List(volumeId string) *VolumesAssociatedListCall {
12909	c := &VolumesAssociatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
12910	c.volumeId = volumeId
12911	return c
12912}
12913
12914// Association sets the optional parameter "association": Association
12915// type.
12916//
12917// Possible values:
12918//   "end-of-sample" - Recommendations for display end-of-sample.
12919//   "end-of-volume" - Recommendations for display end-of-volume.
12920//   "related-for-play" - Related volumes for Play Store.
12921func (c *VolumesAssociatedListCall) Association(association string) *VolumesAssociatedListCall {
12922	c.urlParams_.Set("association", association)
12923	return c
12924}
12925
12926// Locale sets the optional parameter "locale": ISO-639-1 language and
12927// ISO-3166-1 country code. Ex: 'en_US'. Used for generating
12928// recommendations.
12929func (c *VolumesAssociatedListCall) Locale(locale string) *VolumesAssociatedListCall {
12930	c.urlParams_.Set("locale", locale)
12931	return c
12932}
12933
12934// MaxAllowedMaturityRating sets the optional parameter
12935// "maxAllowedMaturityRating": The maximum allowed maturity rating of
12936// returned recommendations. Books with a higher maturity rating are
12937// filtered out.
12938//
12939// Possible values:
12940//   "mature" - Show books which are rated mature or lower.
12941//   "not-mature" - Show books which are rated not mature.
12942func (c *VolumesAssociatedListCall) MaxAllowedMaturityRating(maxAllowedMaturityRating string) *VolumesAssociatedListCall {
12943	c.urlParams_.Set("maxAllowedMaturityRating", maxAllowedMaturityRating)
12944	return c
12945}
12946
12947// Source sets the optional parameter "source": String to identify the
12948// originator of this request.
12949func (c *VolumesAssociatedListCall) Source(source string) *VolumesAssociatedListCall {
12950	c.urlParams_.Set("source", source)
12951	return c
12952}
12953
12954// Fields allows partial responses to be retrieved. See
12955// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
12956// for more information.
12957func (c *VolumesAssociatedListCall) Fields(s ...googleapi.Field) *VolumesAssociatedListCall {
12958	c.urlParams_.Set("fields", googleapi.CombineFields(s))
12959	return c
12960}
12961
12962// IfNoneMatch sets the optional parameter which makes the operation
12963// fail if the object's ETag matches the given value. This is useful for
12964// getting updates only after the object has changed since the last
12965// request. Use googleapi.IsNotModified to check whether the response
12966// error from Do is the result of In-None-Match.
12967func (c *VolumesAssociatedListCall) IfNoneMatch(entityTag string) *VolumesAssociatedListCall {
12968	c.ifNoneMatch_ = entityTag
12969	return c
12970}
12971
12972// Context sets the context to be used in this call's Do method. Any
12973// pending HTTP request will be aborted if the provided context is
12974// canceled.
12975func (c *VolumesAssociatedListCall) Context(ctx context.Context) *VolumesAssociatedListCall {
12976	c.ctx_ = ctx
12977	return c
12978}
12979
12980// Header returns an http.Header that can be modified by the caller to
12981// add HTTP headers to the request.
12982func (c *VolumesAssociatedListCall) Header() http.Header {
12983	if c.header_ == nil {
12984		c.header_ = make(http.Header)
12985	}
12986	return c.header_
12987}
12988
12989func (c *VolumesAssociatedListCall) doRequest(alt string) (*http.Response, error) {
12990	reqHeaders := make(http.Header)
12991	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
12992	for k, v := range c.header_ {
12993		reqHeaders[k] = v
12994	}
12995	reqHeaders.Set("User-Agent", c.s.userAgent())
12996	if c.ifNoneMatch_ != "" {
12997		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
12998	}
12999	var body io.Reader = nil
13000	c.urlParams_.Set("alt", alt)
13001	c.urlParams_.Set("prettyPrint", "false")
13002	urls := googleapi.ResolveRelative(c.s.BasePath, "volumes/{volumeId}/associated")
13003	urls += "?" + c.urlParams_.Encode()
13004	req, err := http.NewRequest("GET", urls, body)
13005	if err != nil {
13006		return nil, err
13007	}
13008	req.Header = reqHeaders
13009	googleapi.Expand(req.URL, map[string]string{
13010		"volumeId": c.volumeId,
13011	})
13012	return gensupport.SendRequest(c.ctx_, c.s.client, req)
13013}
13014
13015// Do executes the "books.volumes.associated.list" call.
13016// Exactly one of *Volumes or error will be non-nil. Any non-2xx status
13017// code is an error. Response headers are in either
13018// *Volumes.ServerResponse.Header or (if a response was returned at all)
13019// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
13020// check whether the returned error was because http.StatusNotModified
13021// was returned.
13022func (c *VolumesAssociatedListCall) Do(opts ...googleapi.CallOption) (*Volumes, error) {
13023	gensupport.SetOptions(c.urlParams_, opts...)
13024	res, err := c.doRequest("json")
13025	if res != nil && res.StatusCode == http.StatusNotModified {
13026		if res.Body != nil {
13027			res.Body.Close()
13028		}
13029		return nil, &googleapi.Error{
13030			Code:   res.StatusCode,
13031			Header: res.Header,
13032		}
13033	}
13034	if err != nil {
13035		return nil, err
13036	}
13037	defer googleapi.CloseBody(res)
13038	if err := googleapi.CheckResponse(res); err != nil {
13039		return nil, err
13040	}
13041	ret := &Volumes{
13042		ServerResponse: googleapi.ServerResponse{
13043			Header:         res.Header,
13044			HTTPStatusCode: res.StatusCode,
13045		},
13046	}
13047	target := &ret
13048	if err := gensupport.DecodeResponse(target, res); err != nil {
13049		return nil, err
13050	}
13051	return ret, nil
13052	// {
13053	//   "description": "Return a list of associated books.",
13054	//   "httpMethod": "GET",
13055	//   "id": "books.volumes.associated.list",
13056	//   "parameterOrder": [
13057	//     "volumeId"
13058	//   ],
13059	//   "parameters": {
13060	//     "association": {
13061	//       "description": "Association type.",
13062	//       "enum": [
13063	//         "end-of-sample",
13064	//         "end-of-volume",
13065	//         "related-for-play"
13066	//       ],
13067	//       "enumDescriptions": [
13068	//         "Recommendations for display end-of-sample.",
13069	//         "Recommendations for display end-of-volume.",
13070	//         "Related volumes for Play Store."
13071	//       ],
13072	//       "location": "query",
13073	//       "type": "string"
13074	//     },
13075	//     "locale": {
13076	//       "description": "ISO-639-1 language and ISO-3166-1 country code. Ex: 'en_US'. Used for generating recommendations.",
13077	//       "location": "query",
13078	//       "type": "string"
13079	//     },
13080	//     "maxAllowedMaturityRating": {
13081	//       "description": "The maximum allowed maturity rating of returned recommendations. Books with a higher maturity rating are filtered out.",
13082	//       "enum": [
13083	//         "mature",
13084	//         "not-mature"
13085	//       ],
13086	//       "enumDescriptions": [
13087	//         "Show books which are rated mature or lower.",
13088	//         "Show books which are rated not mature."
13089	//       ],
13090	//       "location": "query",
13091	//       "type": "string"
13092	//     },
13093	//     "source": {
13094	//       "description": "String to identify the originator of this request.",
13095	//       "location": "query",
13096	//       "type": "string"
13097	//     },
13098	//     "volumeId": {
13099	//       "description": "ID of the source volume.",
13100	//       "location": "path",
13101	//       "required": true,
13102	//       "type": "string"
13103	//     }
13104	//   },
13105	//   "path": "volumes/{volumeId}/associated",
13106	//   "response": {
13107	//     "$ref": "Volumes"
13108	//   },
13109	//   "scopes": [
13110	//     "https://www.googleapis.com/auth/books"
13111	//   ]
13112	// }
13113
13114}
13115
13116// method id "books.volumes.mybooks.list":
13117
13118type VolumesMybooksListCall struct {
13119	s            *Service
13120	urlParams_   gensupport.URLParams
13121	ifNoneMatch_ string
13122	ctx_         context.Context
13123	header_      http.Header
13124}
13125
13126// List: Return a list of books in My Library.
13127func (r *VolumesMybooksService) List() *VolumesMybooksListCall {
13128	c := &VolumesMybooksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
13129	return c
13130}
13131
13132// AcquireMethod sets the optional parameter "acquireMethod": How the
13133// book was acquired
13134//
13135// Possible values:
13136//   "FAMILY_SHARED" - Books acquired via Family Sharing
13137//   "PREORDERED" - Preordered books (not yet available)
13138//   "PREVIOUSLY_RENTED" - User-rented books past their expiration time
13139//   "PUBLIC_DOMAIN" - Public domain books
13140//   "PURCHASED" - Purchased books
13141//   "RENTED" - User-rented books
13142//   "SAMPLE" - Sample books
13143//   "UPLOADED" - User uploaded books
13144func (c *VolumesMybooksListCall) AcquireMethod(acquireMethod ...string) *VolumesMybooksListCall {
13145	c.urlParams_.SetMulti("acquireMethod", append([]string{}, acquireMethod...))
13146	return c
13147}
13148
13149// Country sets the optional parameter "country": ISO-3166-1 code to
13150// override the IP-based location.
13151func (c *VolumesMybooksListCall) Country(country string) *VolumesMybooksListCall {
13152	c.urlParams_.Set("country", country)
13153	return c
13154}
13155
13156// Locale sets the optional parameter "locale": ISO-639-1 language and
13157// ISO-3166-1 country code. Ex:'en_US'. Used for generating
13158// recommendations.
13159func (c *VolumesMybooksListCall) Locale(locale string) *VolumesMybooksListCall {
13160	c.urlParams_.Set("locale", locale)
13161	return c
13162}
13163
13164// MaxResults sets the optional parameter "maxResults": Maximum number
13165// of results to return.
13166func (c *VolumesMybooksListCall) MaxResults(maxResults int64) *VolumesMybooksListCall {
13167	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
13168	return c
13169}
13170
13171// ProcessingState sets the optional parameter "processingState": The
13172// processing state of the user uploaded volumes to be returned.
13173// Applicable only if the UPLOADED is specified in the acquireMethod.
13174//
13175// Possible values:
13176//   "COMPLETED_FAILED" - The volume processing hase failed.
13177//   "COMPLETED_SUCCESS" - The volume processing was completed.
13178//   "RUNNING" - The volume processing is not completed.
13179func (c *VolumesMybooksListCall) ProcessingState(processingState ...string) *VolumesMybooksListCall {
13180	c.urlParams_.SetMulti("processingState", append([]string{}, processingState...))
13181	return c
13182}
13183
13184// Source sets the optional parameter "source": String to identify the
13185// originator of this request.
13186func (c *VolumesMybooksListCall) Source(source string) *VolumesMybooksListCall {
13187	c.urlParams_.Set("source", source)
13188	return c
13189}
13190
13191// StartIndex sets the optional parameter "startIndex": Index of the
13192// first result to return (starts at 0)
13193func (c *VolumesMybooksListCall) StartIndex(startIndex int64) *VolumesMybooksListCall {
13194	c.urlParams_.Set("startIndex", fmt.Sprint(startIndex))
13195	return c
13196}
13197
13198// Fields allows partial responses to be retrieved. See
13199// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
13200// for more information.
13201func (c *VolumesMybooksListCall) Fields(s ...googleapi.Field) *VolumesMybooksListCall {
13202	c.urlParams_.Set("fields", googleapi.CombineFields(s))
13203	return c
13204}
13205
13206// IfNoneMatch sets the optional parameter which makes the operation
13207// fail if the object's ETag matches the given value. This is useful for
13208// getting updates only after the object has changed since the last
13209// request. Use googleapi.IsNotModified to check whether the response
13210// error from Do is the result of In-None-Match.
13211func (c *VolumesMybooksListCall) IfNoneMatch(entityTag string) *VolumesMybooksListCall {
13212	c.ifNoneMatch_ = entityTag
13213	return c
13214}
13215
13216// Context sets the context to be used in this call's Do method. Any
13217// pending HTTP request will be aborted if the provided context is
13218// canceled.
13219func (c *VolumesMybooksListCall) Context(ctx context.Context) *VolumesMybooksListCall {
13220	c.ctx_ = ctx
13221	return c
13222}
13223
13224// Header returns an http.Header that can be modified by the caller to
13225// add HTTP headers to the request.
13226func (c *VolumesMybooksListCall) Header() http.Header {
13227	if c.header_ == nil {
13228		c.header_ = make(http.Header)
13229	}
13230	return c.header_
13231}
13232
13233func (c *VolumesMybooksListCall) doRequest(alt string) (*http.Response, error) {
13234	reqHeaders := make(http.Header)
13235	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
13236	for k, v := range c.header_ {
13237		reqHeaders[k] = v
13238	}
13239	reqHeaders.Set("User-Agent", c.s.userAgent())
13240	if c.ifNoneMatch_ != "" {
13241		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
13242	}
13243	var body io.Reader = nil
13244	c.urlParams_.Set("alt", alt)
13245	c.urlParams_.Set("prettyPrint", "false")
13246	urls := googleapi.ResolveRelative(c.s.BasePath, "volumes/mybooks")
13247	urls += "?" + c.urlParams_.Encode()
13248	req, err := http.NewRequest("GET", urls, body)
13249	if err != nil {
13250		return nil, err
13251	}
13252	req.Header = reqHeaders
13253	return gensupport.SendRequest(c.ctx_, c.s.client, req)
13254}
13255
13256// Do executes the "books.volumes.mybooks.list" call.
13257// Exactly one of *Volumes or error will be non-nil. Any non-2xx status
13258// code is an error. Response headers are in either
13259// *Volumes.ServerResponse.Header or (if a response was returned at all)
13260// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
13261// check whether the returned error was because http.StatusNotModified
13262// was returned.
13263func (c *VolumesMybooksListCall) Do(opts ...googleapi.CallOption) (*Volumes, error) {
13264	gensupport.SetOptions(c.urlParams_, opts...)
13265	res, err := c.doRequest("json")
13266	if res != nil && res.StatusCode == http.StatusNotModified {
13267		if res.Body != nil {
13268			res.Body.Close()
13269		}
13270		return nil, &googleapi.Error{
13271			Code:   res.StatusCode,
13272			Header: res.Header,
13273		}
13274	}
13275	if err != nil {
13276		return nil, err
13277	}
13278	defer googleapi.CloseBody(res)
13279	if err := googleapi.CheckResponse(res); err != nil {
13280		return nil, err
13281	}
13282	ret := &Volumes{
13283		ServerResponse: googleapi.ServerResponse{
13284			Header:         res.Header,
13285			HTTPStatusCode: res.StatusCode,
13286		},
13287	}
13288	target := &ret
13289	if err := gensupport.DecodeResponse(target, res); err != nil {
13290		return nil, err
13291	}
13292	return ret, nil
13293	// {
13294	//   "description": "Return a list of books in My Library.",
13295	//   "httpMethod": "GET",
13296	//   "id": "books.volumes.mybooks.list",
13297	//   "parameters": {
13298	//     "acquireMethod": {
13299	//       "description": "How the book was acquired",
13300	//       "enum": [
13301	//         "FAMILY_SHARED",
13302	//         "PREORDERED",
13303	//         "PREVIOUSLY_RENTED",
13304	//         "PUBLIC_DOMAIN",
13305	//         "PURCHASED",
13306	//         "RENTED",
13307	//         "SAMPLE",
13308	//         "UPLOADED"
13309	//       ],
13310	//       "enumDescriptions": [
13311	//         "Books acquired via Family Sharing",
13312	//         "Preordered books (not yet available)",
13313	//         "User-rented books past their expiration time",
13314	//         "Public domain books",
13315	//         "Purchased books",
13316	//         "User-rented books",
13317	//         "Sample books",
13318	//         "User uploaded books"
13319	//       ],
13320	//       "location": "query",
13321	//       "repeated": true,
13322	//       "type": "string"
13323	//     },
13324	//     "country": {
13325	//       "description": "ISO-3166-1 code to override the IP-based location.",
13326	//       "location": "query",
13327	//       "type": "string"
13328	//     },
13329	//     "locale": {
13330	//       "description": "ISO-639-1 language and ISO-3166-1 country code. Ex:'en_US'. Used for generating recommendations.",
13331	//       "location": "query",
13332	//       "type": "string"
13333	//     },
13334	//     "maxResults": {
13335	//       "description": "Maximum number of results to return.",
13336	//       "format": "uint32",
13337	//       "location": "query",
13338	//       "maximum": "100",
13339	//       "minimum": "0",
13340	//       "type": "integer"
13341	//     },
13342	//     "processingState": {
13343	//       "description": "The processing state of the user uploaded volumes to be returned. Applicable only if the UPLOADED is specified in the acquireMethod.",
13344	//       "enum": [
13345	//         "COMPLETED_FAILED",
13346	//         "COMPLETED_SUCCESS",
13347	//         "RUNNING"
13348	//       ],
13349	//       "enumDescriptions": [
13350	//         "The volume processing hase failed.",
13351	//         "The volume processing was completed.",
13352	//         "The volume processing is not completed."
13353	//       ],
13354	//       "location": "query",
13355	//       "repeated": true,
13356	//       "type": "string"
13357	//     },
13358	//     "source": {
13359	//       "description": "String to identify the originator of this request.",
13360	//       "location": "query",
13361	//       "type": "string"
13362	//     },
13363	//     "startIndex": {
13364	//       "description": "Index of the first result to return (starts at 0)",
13365	//       "format": "uint32",
13366	//       "location": "query",
13367	//       "minimum": "0",
13368	//       "type": "integer"
13369	//     }
13370	//   },
13371	//   "path": "volumes/mybooks",
13372	//   "response": {
13373	//     "$ref": "Volumes"
13374	//   },
13375	//   "scopes": [
13376	//     "https://www.googleapis.com/auth/books"
13377	//   ]
13378	// }
13379
13380}
13381
13382// method id "books.volumes.recommended.list":
13383
13384type VolumesRecommendedListCall struct {
13385	s            *Service
13386	urlParams_   gensupport.URLParams
13387	ifNoneMatch_ string
13388	ctx_         context.Context
13389	header_      http.Header
13390}
13391
13392// List: Return a list of recommended books for the current user.
13393func (r *VolumesRecommendedService) List() *VolumesRecommendedListCall {
13394	c := &VolumesRecommendedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
13395	return c
13396}
13397
13398// Locale sets the optional parameter "locale": ISO-639-1 language and
13399// ISO-3166-1 country code. Ex: 'en_US'. Used for generating
13400// recommendations.
13401func (c *VolumesRecommendedListCall) Locale(locale string) *VolumesRecommendedListCall {
13402	c.urlParams_.Set("locale", locale)
13403	return c
13404}
13405
13406// MaxAllowedMaturityRating sets the optional parameter
13407// "maxAllowedMaturityRating": The maximum allowed maturity rating of
13408// returned recommendations. Books with a higher maturity rating are
13409// filtered out.
13410//
13411// Possible values:
13412//   "mature" - Show books which are rated mature or lower.
13413//   "not-mature" - Show books which are rated not mature.
13414func (c *VolumesRecommendedListCall) MaxAllowedMaturityRating(maxAllowedMaturityRating string) *VolumesRecommendedListCall {
13415	c.urlParams_.Set("maxAllowedMaturityRating", maxAllowedMaturityRating)
13416	return c
13417}
13418
13419// Source sets the optional parameter "source": String to identify the
13420// originator of this request.
13421func (c *VolumesRecommendedListCall) Source(source string) *VolumesRecommendedListCall {
13422	c.urlParams_.Set("source", source)
13423	return c
13424}
13425
13426// Fields allows partial responses to be retrieved. See
13427// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
13428// for more information.
13429func (c *VolumesRecommendedListCall) Fields(s ...googleapi.Field) *VolumesRecommendedListCall {
13430	c.urlParams_.Set("fields", googleapi.CombineFields(s))
13431	return c
13432}
13433
13434// IfNoneMatch sets the optional parameter which makes the operation
13435// fail if the object's ETag matches the given value. This is useful for
13436// getting updates only after the object has changed since the last
13437// request. Use googleapi.IsNotModified to check whether the response
13438// error from Do is the result of In-None-Match.
13439func (c *VolumesRecommendedListCall) IfNoneMatch(entityTag string) *VolumesRecommendedListCall {
13440	c.ifNoneMatch_ = entityTag
13441	return c
13442}
13443
13444// Context sets the context to be used in this call's Do method. Any
13445// pending HTTP request will be aborted if the provided context is
13446// canceled.
13447func (c *VolumesRecommendedListCall) Context(ctx context.Context) *VolumesRecommendedListCall {
13448	c.ctx_ = ctx
13449	return c
13450}
13451
13452// Header returns an http.Header that can be modified by the caller to
13453// add HTTP headers to the request.
13454func (c *VolumesRecommendedListCall) Header() http.Header {
13455	if c.header_ == nil {
13456		c.header_ = make(http.Header)
13457	}
13458	return c.header_
13459}
13460
13461func (c *VolumesRecommendedListCall) doRequest(alt string) (*http.Response, error) {
13462	reqHeaders := make(http.Header)
13463	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
13464	for k, v := range c.header_ {
13465		reqHeaders[k] = v
13466	}
13467	reqHeaders.Set("User-Agent", c.s.userAgent())
13468	if c.ifNoneMatch_ != "" {
13469		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
13470	}
13471	var body io.Reader = nil
13472	c.urlParams_.Set("alt", alt)
13473	c.urlParams_.Set("prettyPrint", "false")
13474	urls := googleapi.ResolveRelative(c.s.BasePath, "volumes/recommended")
13475	urls += "?" + c.urlParams_.Encode()
13476	req, err := http.NewRequest("GET", urls, body)
13477	if err != nil {
13478		return nil, err
13479	}
13480	req.Header = reqHeaders
13481	return gensupport.SendRequest(c.ctx_, c.s.client, req)
13482}
13483
13484// Do executes the "books.volumes.recommended.list" call.
13485// Exactly one of *Volumes or error will be non-nil. Any non-2xx status
13486// code is an error. Response headers are in either
13487// *Volumes.ServerResponse.Header or (if a response was returned at all)
13488// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
13489// check whether the returned error was because http.StatusNotModified
13490// was returned.
13491func (c *VolumesRecommendedListCall) Do(opts ...googleapi.CallOption) (*Volumes, error) {
13492	gensupport.SetOptions(c.urlParams_, opts...)
13493	res, err := c.doRequest("json")
13494	if res != nil && res.StatusCode == http.StatusNotModified {
13495		if res.Body != nil {
13496			res.Body.Close()
13497		}
13498		return nil, &googleapi.Error{
13499			Code:   res.StatusCode,
13500			Header: res.Header,
13501		}
13502	}
13503	if err != nil {
13504		return nil, err
13505	}
13506	defer googleapi.CloseBody(res)
13507	if err := googleapi.CheckResponse(res); err != nil {
13508		return nil, err
13509	}
13510	ret := &Volumes{
13511		ServerResponse: googleapi.ServerResponse{
13512			Header:         res.Header,
13513			HTTPStatusCode: res.StatusCode,
13514		},
13515	}
13516	target := &ret
13517	if err := gensupport.DecodeResponse(target, res); err != nil {
13518		return nil, err
13519	}
13520	return ret, nil
13521	// {
13522	//   "description": "Return a list of recommended books for the current user.",
13523	//   "httpMethod": "GET",
13524	//   "id": "books.volumes.recommended.list",
13525	//   "parameters": {
13526	//     "locale": {
13527	//       "description": "ISO-639-1 language and ISO-3166-1 country code. Ex: 'en_US'. Used for generating recommendations.",
13528	//       "location": "query",
13529	//       "type": "string"
13530	//     },
13531	//     "maxAllowedMaturityRating": {
13532	//       "description": "The maximum allowed maturity rating of returned recommendations. Books with a higher maturity rating are filtered out.",
13533	//       "enum": [
13534	//         "mature",
13535	//         "not-mature"
13536	//       ],
13537	//       "enumDescriptions": [
13538	//         "Show books which are rated mature or lower.",
13539	//         "Show books which are rated not mature."
13540	//       ],
13541	//       "location": "query",
13542	//       "type": "string"
13543	//     },
13544	//     "source": {
13545	//       "description": "String to identify the originator of this request.",
13546	//       "location": "query",
13547	//       "type": "string"
13548	//     }
13549	//   },
13550	//   "path": "volumes/recommended",
13551	//   "response": {
13552	//     "$ref": "Volumes"
13553	//   },
13554	//   "scopes": [
13555	//     "https://www.googleapis.com/auth/books"
13556	//   ]
13557	// }
13558
13559}
13560
13561// method id "books.volumes.recommended.rate":
13562
13563type VolumesRecommendedRateCall struct {
13564	s          *Service
13565	urlParams_ gensupport.URLParams
13566	ctx_       context.Context
13567	header_    http.Header
13568}
13569
13570// Rate: Rate a recommended book for the current user.
13571func (r *VolumesRecommendedService) Rate(rating string, volumeId string) *VolumesRecommendedRateCall {
13572	c := &VolumesRecommendedRateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
13573	c.urlParams_.Set("rating", rating)
13574	c.urlParams_.Set("volumeId", volumeId)
13575	return c
13576}
13577
13578// Locale sets the optional parameter "locale": ISO-639-1 language and
13579// ISO-3166-1 country code. Ex: 'en_US'. Used for generating
13580// recommendations.
13581func (c *VolumesRecommendedRateCall) Locale(locale string) *VolumesRecommendedRateCall {
13582	c.urlParams_.Set("locale", locale)
13583	return c
13584}
13585
13586// Source sets the optional parameter "source": String to identify the
13587// originator of this request.
13588func (c *VolumesRecommendedRateCall) Source(source string) *VolumesRecommendedRateCall {
13589	c.urlParams_.Set("source", source)
13590	return c
13591}
13592
13593// Fields allows partial responses to be retrieved. See
13594// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
13595// for more information.
13596func (c *VolumesRecommendedRateCall) Fields(s ...googleapi.Field) *VolumesRecommendedRateCall {
13597	c.urlParams_.Set("fields", googleapi.CombineFields(s))
13598	return c
13599}
13600
13601// Context sets the context to be used in this call's Do method. Any
13602// pending HTTP request will be aborted if the provided context is
13603// canceled.
13604func (c *VolumesRecommendedRateCall) Context(ctx context.Context) *VolumesRecommendedRateCall {
13605	c.ctx_ = ctx
13606	return c
13607}
13608
13609// Header returns an http.Header that can be modified by the caller to
13610// add HTTP headers to the request.
13611func (c *VolumesRecommendedRateCall) Header() http.Header {
13612	if c.header_ == nil {
13613		c.header_ = make(http.Header)
13614	}
13615	return c.header_
13616}
13617
13618func (c *VolumesRecommendedRateCall) doRequest(alt string) (*http.Response, error) {
13619	reqHeaders := make(http.Header)
13620	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
13621	for k, v := range c.header_ {
13622		reqHeaders[k] = v
13623	}
13624	reqHeaders.Set("User-Agent", c.s.userAgent())
13625	var body io.Reader = nil
13626	c.urlParams_.Set("alt", alt)
13627	c.urlParams_.Set("prettyPrint", "false")
13628	urls := googleapi.ResolveRelative(c.s.BasePath, "volumes/recommended/rate")
13629	urls += "?" + c.urlParams_.Encode()
13630	req, err := http.NewRequest("POST", urls, body)
13631	if err != nil {
13632		return nil, err
13633	}
13634	req.Header = reqHeaders
13635	return gensupport.SendRequest(c.ctx_, c.s.client, req)
13636}
13637
13638// Do executes the "books.volumes.recommended.rate" call.
13639// Exactly one of *BooksVolumesRecommendedRateResponse or error will be
13640// non-nil. Any non-2xx status code is an error. Response headers are in
13641// either *BooksVolumesRecommendedRateResponse.ServerResponse.Header or
13642// (if a response was returned at all) in
13643// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
13644// whether the returned error was because http.StatusNotModified was
13645// returned.
13646func (c *VolumesRecommendedRateCall) Do(opts ...googleapi.CallOption) (*BooksVolumesRecommendedRateResponse, error) {
13647	gensupport.SetOptions(c.urlParams_, opts...)
13648	res, err := c.doRequest("json")
13649	if res != nil && res.StatusCode == http.StatusNotModified {
13650		if res.Body != nil {
13651			res.Body.Close()
13652		}
13653		return nil, &googleapi.Error{
13654			Code:   res.StatusCode,
13655			Header: res.Header,
13656		}
13657	}
13658	if err != nil {
13659		return nil, err
13660	}
13661	defer googleapi.CloseBody(res)
13662	if err := googleapi.CheckResponse(res); err != nil {
13663		return nil, err
13664	}
13665	ret := &BooksVolumesRecommendedRateResponse{
13666		ServerResponse: googleapi.ServerResponse{
13667			Header:         res.Header,
13668			HTTPStatusCode: res.StatusCode,
13669		},
13670	}
13671	target := &ret
13672	if err := gensupport.DecodeResponse(target, res); err != nil {
13673		return nil, err
13674	}
13675	return ret, nil
13676	// {
13677	//   "description": "Rate a recommended book for the current user.",
13678	//   "httpMethod": "POST",
13679	//   "id": "books.volumes.recommended.rate",
13680	//   "parameterOrder": [
13681	//     "rating",
13682	//     "volumeId"
13683	//   ],
13684	//   "parameters": {
13685	//     "locale": {
13686	//       "description": "ISO-639-1 language and ISO-3166-1 country code. Ex: 'en_US'. Used for generating recommendations.",
13687	//       "location": "query",
13688	//       "type": "string"
13689	//     },
13690	//     "rating": {
13691	//       "description": "Rating to be given to the volume.",
13692	//       "enum": [
13693	//         "HAVE_IT",
13694	//         "NOT_INTERESTED"
13695	//       ],
13696	//       "enumDescriptions": [
13697	//         "Rating indicating a dismissal due to ownership.",
13698	//         "Rating indicating a negative dismissal of a volume."
13699	//       ],
13700	//       "location": "query",
13701	//       "required": true,
13702	//       "type": "string"
13703	//     },
13704	//     "source": {
13705	//       "description": "String to identify the originator of this request.",
13706	//       "location": "query",
13707	//       "type": "string"
13708	//     },
13709	//     "volumeId": {
13710	//       "description": "ID of the source volume.",
13711	//       "location": "query",
13712	//       "required": true,
13713	//       "type": "string"
13714	//     }
13715	//   },
13716	//   "path": "volumes/recommended/rate",
13717	//   "response": {
13718	//     "$ref": "BooksVolumesRecommendedRateResponse"
13719	//   },
13720	//   "scopes": [
13721	//     "https://www.googleapis.com/auth/books"
13722	//   ]
13723	// }
13724
13725}
13726
13727// method id "books.volumes.useruploaded.list":
13728
13729type VolumesUseruploadedListCall struct {
13730	s            *Service
13731	urlParams_   gensupport.URLParams
13732	ifNoneMatch_ string
13733	ctx_         context.Context
13734	header_      http.Header
13735}
13736
13737// List: Return a list of books uploaded by the current user.
13738func (r *VolumesUseruploadedService) List() *VolumesUseruploadedListCall {
13739	c := &VolumesUseruploadedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
13740	return c
13741}
13742
13743// Locale sets the optional parameter "locale": ISO-639-1 language and
13744// ISO-3166-1 country code. Ex: 'en_US'. Used for generating
13745// recommendations.
13746func (c *VolumesUseruploadedListCall) Locale(locale string) *VolumesUseruploadedListCall {
13747	c.urlParams_.Set("locale", locale)
13748	return c
13749}
13750
13751// MaxResults sets the optional parameter "maxResults": Maximum number
13752// of results to return.
13753func (c *VolumesUseruploadedListCall) MaxResults(maxResults int64) *VolumesUseruploadedListCall {
13754	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
13755	return c
13756}
13757
13758// ProcessingState sets the optional parameter "processingState": The
13759// processing state of the user uploaded volumes to be returned.
13760//
13761// Possible values:
13762//   "COMPLETED_FAILED" - The volume processing hase failed.
13763//   "COMPLETED_SUCCESS" - The volume processing was completed.
13764//   "RUNNING" - The volume processing is not completed.
13765func (c *VolumesUseruploadedListCall) ProcessingState(processingState ...string) *VolumesUseruploadedListCall {
13766	c.urlParams_.SetMulti("processingState", append([]string{}, processingState...))
13767	return c
13768}
13769
13770// Source sets the optional parameter "source": String to identify the
13771// originator of this request.
13772func (c *VolumesUseruploadedListCall) Source(source string) *VolumesUseruploadedListCall {
13773	c.urlParams_.Set("source", source)
13774	return c
13775}
13776
13777// StartIndex sets the optional parameter "startIndex": Index of the
13778// first result to return (starts at 0)
13779func (c *VolumesUseruploadedListCall) StartIndex(startIndex int64) *VolumesUseruploadedListCall {
13780	c.urlParams_.Set("startIndex", fmt.Sprint(startIndex))
13781	return c
13782}
13783
13784// VolumeId sets the optional parameter "volumeId": The ids of the
13785// volumes to be returned. If not specified all that match the
13786// processingState are returned.
13787func (c *VolumesUseruploadedListCall) VolumeId(volumeId ...string) *VolumesUseruploadedListCall {
13788	c.urlParams_.SetMulti("volumeId", append([]string{}, volumeId...))
13789	return c
13790}
13791
13792// Fields allows partial responses to be retrieved. See
13793// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
13794// for more information.
13795func (c *VolumesUseruploadedListCall) Fields(s ...googleapi.Field) *VolumesUseruploadedListCall {
13796	c.urlParams_.Set("fields", googleapi.CombineFields(s))
13797	return c
13798}
13799
13800// IfNoneMatch sets the optional parameter which makes the operation
13801// fail if the object's ETag matches the given value. This is useful for
13802// getting updates only after the object has changed since the last
13803// request. Use googleapi.IsNotModified to check whether the response
13804// error from Do is the result of In-None-Match.
13805func (c *VolumesUseruploadedListCall) IfNoneMatch(entityTag string) *VolumesUseruploadedListCall {
13806	c.ifNoneMatch_ = entityTag
13807	return c
13808}
13809
13810// Context sets the context to be used in this call's Do method. Any
13811// pending HTTP request will be aborted if the provided context is
13812// canceled.
13813func (c *VolumesUseruploadedListCall) Context(ctx context.Context) *VolumesUseruploadedListCall {
13814	c.ctx_ = ctx
13815	return c
13816}
13817
13818// Header returns an http.Header that can be modified by the caller to
13819// add HTTP headers to the request.
13820func (c *VolumesUseruploadedListCall) Header() http.Header {
13821	if c.header_ == nil {
13822		c.header_ = make(http.Header)
13823	}
13824	return c.header_
13825}
13826
13827func (c *VolumesUseruploadedListCall) doRequest(alt string) (*http.Response, error) {
13828	reqHeaders := make(http.Header)
13829	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200503")
13830	for k, v := range c.header_ {
13831		reqHeaders[k] = v
13832	}
13833	reqHeaders.Set("User-Agent", c.s.userAgent())
13834	if c.ifNoneMatch_ != "" {
13835		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
13836	}
13837	var body io.Reader = nil
13838	c.urlParams_.Set("alt", alt)
13839	c.urlParams_.Set("prettyPrint", "false")
13840	urls := googleapi.ResolveRelative(c.s.BasePath, "volumes/useruploaded")
13841	urls += "?" + c.urlParams_.Encode()
13842	req, err := http.NewRequest("GET", urls, body)
13843	if err != nil {
13844		return nil, err
13845	}
13846	req.Header = reqHeaders
13847	return gensupport.SendRequest(c.ctx_, c.s.client, req)
13848}
13849
13850// Do executes the "books.volumes.useruploaded.list" call.
13851// Exactly one of *Volumes or error will be non-nil. Any non-2xx status
13852// code is an error. Response headers are in either
13853// *Volumes.ServerResponse.Header or (if a response was returned at all)
13854// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
13855// check whether the returned error was because http.StatusNotModified
13856// was returned.
13857func (c *VolumesUseruploadedListCall) Do(opts ...googleapi.CallOption) (*Volumes, error) {
13858	gensupport.SetOptions(c.urlParams_, opts...)
13859	res, err := c.doRequest("json")
13860	if res != nil && res.StatusCode == http.StatusNotModified {
13861		if res.Body != nil {
13862			res.Body.Close()
13863		}
13864		return nil, &googleapi.Error{
13865			Code:   res.StatusCode,
13866			Header: res.Header,
13867		}
13868	}
13869	if err != nil {
13870		return nil, err
13871	}
13872	defer googleapi.CloseBody(res)
13873	if err := googleapi.CheckResponse(res); err != nil {
13874		return nil, err
13875	}
13876	ret := &Volumes{
13877		ServerResponse: googleapi.ServerResponse{
13878			Header:         res.Header,
13879			HTTPStatusCode: res.StatusCode,
13880		},
13881	}
13882	target := &ret
13883	if err := gensupport.DecodeResponse(target, res); err != nil {
13884		return nil, err
13885	}
13886	return ret, nil
13887	// {
13888	//   "description": "Return a list of books uploaded by the current user.",
13889	//   "httpMethod": "GET",
13890	//   "id": "books.volumes.useruploaded.list",
13891	//   "parameters": {
13892	//     "locale": {
13893	//       "description": "ISO-639-1 language and ISO-3166-1 country code. Ex: 'en_US'. Used for generating recommendations.",
13894	//       "location": "query",
13895	//       "type": "string"
13896	//     },
13897	//     "maxResults": {
13898	//       "description": "Maximum number of results to return.",
13899	//       "format": "uint32",
13900	//       "location": "query",
13901	//       "maximum": "40",
13902	//       "minimum": "0",
13903	//       "type": "integer"
13904	//     },
13905	//     "processingState": {
13906	//       "description": "The processing state of the user uploaded volumes to be returned.",
13907	//       "enum": [
13908	//         "COMPLETED_FAILED",
13909	//         "COMPLETED_SUCCESS",
13910	//         "RUNNING"
13911	//       ],
13912	//       "enumDescriptions": [
13913	//         "The volume processing hase failed.",
13914	//         "The volume processing was completed.",
13915	//         "The volume processing is not completed."
13916	//       ],
13917	//       "location": "query",
13918	//       "repeated": true,
13919	//       "type": "string"
13920	//     },
13921	//     "source": {
13922	//       "description": "String to identify the originator of this request.",
13923	//       "location": "query",
13924	//       "type": "string"
13925	//     },
13926	//     "startIndex": {
13927	//       "description": "Index of the first result to return (starts at 0)",
13928	//       "format": "uint32",
13929	//       "location": "query",
13930	//       "minimum": "0",
13931	//       "type": "integer"
13932	//     },
13933	//     "volumeId": {
13934	//       "description": "The ids of the volumes to be returned. If not specified all that match the processingState are returned.",
13935	//       "location": "query",
13936	//       "repeated": true,
13937	//       "type": "string"
13938	//     }
13939	//   },
13940	//   "path": "volumes/useruploaded",
13941	//   "response": {
13942	//     "$ref": "Volumes"
13943	//   },
13944	//   "scopes": [
13945	//     "https://www.googleapis.com/auth/books"
13946	//   ]
13947	// }
13948
13949}
13950