1// Copyright 2021 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 androidpublisher provides access to the Google Play Android Developer API.
8//
9// For product documentation, see: https://developers.google.com/android-publisher
10//
11// Creating a client
12//
13// Usage example:
14//
15//   import "google.golang.org/api/androidpublisher/v3"
16//   ...
17//   ctx := context.Background()
18//   androidpublisherService, err := androidpublisher.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//   androidpublisherService, err := androidpublisher.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//   androidpublisherService, err := androidpublisher.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
36//
37// See https://godoc.org/google.golang.org/api/option/ for details on options.
38package androidpublisher // import "google.golang.org/api/androidpublisher/v3"
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 = "androidpublisher:v3"
75const apiName = "androidpublisher"
76const apiVersion = "v3"
77const basePath = "https://androidpublisher.googleapis.com/"
78const mtlsBasePath = "https://androidpublisher.mtls.googleapis.com/"
79
80// OAuth2 scopes used by this API.
81const (
82	// View and manage your Google Play Developer account
83	AndroidpublisherScope = "https://www.googleapis.com/auth/androidpublisher"
84)
85
86// NewService creates a new Service.
87func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
88	scopesOption := option.WithScopes(
89		"https://www.googleapis.com/auth/androidpublisher",
90	)
91	// NOTE: prepend, so we don't override user-specified scopes.
92	opts = append([]option.ClientOption{scopesOption}, opts...)
93	opts = append(opts, internaloption.WithDefaultEndpoint(basePath))
94	opts = append(opts, internaloption.WithDefaultMTLSEndpoint(mtlsBasePath))
95	client, endpoint, err := htransport.NewClient(ctx, opts...)
96	if err != nil {
97		return nil, err
98	}
99	s, err := New(client)
100	if err != nil {
101		return nil, err
102	}
103	if endpoint != "" {
104		s.BasePath = endpoint
105	}
106	return s, nil
107}
108
109// New creates a new Service. It uses the provided http.Client for requests.
110//
111// Deprecated: please use NewService instead.
112// To provide a custom HTTP client, use option.WithHTTPClient.
113// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
114func New(client *http.Client) (*Service, error) {
115	if client == nil {
116		return nil, errors.New("client is nil")
117	}
118	s := &Service{client: client, BasePath: basePath}
119	s.Edits = NewEditsService(s)
120	s.Inappproducts = NewInappproductsService(s)
121	s.Internalappsharingartifacts = NewInternalappsharingartifactsService(s)
122	s.Orders = NewOrdersService(s)
123	s.Purchases = NewPurchasesService(s)
124	s.Reviews = NewReviewsService(s)
125	s.Systemapks = NewSystemapksService(s)
126	return s, nil
127}
128
129type Service struct {
130	client    *http.Client
131	BasePath  string // API endpoint base URL
132	UserAgent string // optional additional User-Agent fragment
133
134	Edits *EditsService
135
136	Inappproducts *InappproductsService
137
138	Internalappsharingartifacts *InternalappsharingartifactsService
139
140	Orders *OrdersService
141
142	Purchases *PurchasesService
143
144	Reviews *ReviewsService
145
146	Systemapks *SystemapksService
147}
148
149func (s *Service) userAgent() string {
150	if s.UserAgent == "" {
151		return googleapi.UserAgent
152	}
153	return googleapi.UserAgent + " " + s.UserAgent
154}
155
156func NewEditsService(s *Service) *EditsService {
157	rs := &EditsService{s: s}
158	rs.Apks = NewEditsApksService(s)
159	rs.Bundles = NewEditsBundlesService(s)
160	rs.Deobfuscationfiles = NewEditsDeobfuscationfilesService(s)
161	rs.Details = NewEditsDetailsService(s)
162	rs.Expansionfiles = NewEditsExpansionfilesService(s)
163	rs.Images = NewEditsImagesService(s)
164	rs.Listings = NewEditsListingsService(s)
165	rs.Testers = NewEditsTestersService(s)
166	rs.Tracks = NewEditsTracksService(s)
167	return rs
168}
169
170type EditsService struct {
171	s *Service
172
173	Apks *EditsApksService
174
175	Bundles *EditsBundlesService
176
177	Deobfuscationfiles *EditsDeobfuscationfilesService
178
179	Details *EditsDetailsService
180
181	Expansionfiles *EditsExpansionfilesService
182
183	Images *EditsImagesService
184
185	Listings *EditsListingsService
186
187	Testers *EditsTestersService
188
189	Tracks *EditsTracksService
190}
191
192func NewEditsApksService(s *Service) *EditsApksService {
193	rs := &EditsApksService{s: s}
194	return rs
195}
196
197type EditsApksService struct {
198	s *Service
199}
200
201func NewEditsBundlesService(s *Service) *EditsBundlesService {
202	rs := &EditsBundlesService{s: s}
203	return rs
204}
205
206type EditsBundlesService struct {
207	s *Service
208}
209
210func NewEditsDeobfuscationfilesService(s *Service) *EditsDeobfuscationfilesService {
211	rs := &EditsDeobfuscationfilesService{s: s}
212	return rs
213}
214
215type EditsDeobfuscationfilesService struct {
216	s *Service
217}
218
219func NewEditsDetailsService(s *Service) *EditsDetailsService {
220	rs := &EditsDetailsService{s: s}
221	return rs
222}
223
224type EditsDetailsService struct {
225	s *Service
226}
227
228func NewEditsExpansionfilesService(s *Service) *EditsExpansionfilesService {
229	rs := &EditsExpansionfilesService{s: s}
230	return rs
231}
232
233type EditsExpansionfilesService struct {
234	s *Service
235}
236
237func NewEditsImagesService(s *Service) *EditsImagesService {
238	rs := &EditsImagesService{s: s}
239	return rs
240}
241
242type EditsImagesService struct {
243	s *Service
244}
245
246func NewEditsListingsService(s *Service) *EditsListingsService {
247	rs := &EditsListingsService{s: s}
248	return rs
249}
250
251type EditsListingsService struct {
252	s *Service
253}
254
255func NewEditsTestersService(s *Service) *EditsTestersService {
256	rs := &EditsTestersService{s: s}
257	return rs
258}
259
260type EditsTestersService struct {
261	s *Service
262}
263
264func NewEditsTracksService(s *Service) *EditsTracksService {
265	rs := &EditsTracksService{s: s}
266	return rs
267}
268
269type EditsTracksService struct {
270	s *Service
271}
272
273func NewInappproductsService(s *Service) *InappproductsService {
274	rs := &InappproductsService{s: s}
275	return rs
276}
277
278type InappproductsService struct {
279	s *Service
280}
281
282func NewInternalappsharingartifactsService(s *Service) *InternalappsharingartifactsService {
283	rs := &InternalappsharingartifactsService{s: s}
284	return rs
285}
286
287type InternalappsharingartifactsService struct {
288	s *Service
289}
290
291func NewOrdersService(s *Service) *OrdersService {
292	rs := &OrdersService{s: s}
293	return rs
294}
295
296type OrdersService struct {
297	s *Service
298}
299
300func NewPurchasesService(s *Service) *PurchasesService {
301	rs := &PurchasesService{s: s}
302	rs.Products = NewPurchasesProductsService(s)
303	rs.Subscriptions = NewPurchasesSubscriptionsService(s)
304	rs.Voidedpurchases = NewPurchasesVoidedpurchasesService(s)
305	return rs
306}
307
308type PurchasesService struct {
309	s *Service
310
311	Products *PurchasesProductsService
312
313	Subscriptions *PurchasesSubscriptionsService
314
315	Voidedpurchases *PurchasesVoidedpurchasesService
316}
317
318func NewPurchasesProductsService(s *Service) *PurchasesProductsService {
319	rs := &PurchasesProductsService{s: s}
320	return rs
321}
322
323type PurchasesProductsService struct {
324	s *Service
325}
326
327func NewPurchasesSubscriptionsService(s *Service) *PurchasesSubscriptionsService {
328	rs := &PurchasesSubscriptionsService{s: s}
329	return rs
330}
331
332type PurchasesSubscriptionsService struct {
333	s *Service
334}
335
336func NewPurchasesVoidedpurchasesService(s *Service) *PurchasesVoidedpurchasesService {
337	rs := &PurchasesVoidedpurchasesService{s: s}
338	return rs
339}
340
341type PurchasesVoidedpurchasesService struct {
342	s *Service
343}
344
345func NewReviewsService(s *Service) *ReviewsService {
346	rs := &ReviewsService{s: s}
347	return rs
348}
349
350type ReviewsService struct {
351	s *Service
352}
353
354func NewSystemapksService(s *Service) *SystemapksService {
355	rs := &SystemapksService{s: s}
356	rs.Variants = NewSystemapksVariantsService(s)
357	return rs
358}
359
360type SystemapksService struct {
361	s *Service
362
363	Variants *SystemapksVariantsService
364}
365
366func NewSystemapksVariantsService(s *Service) *SystemapksVariantsService {
367	rs := &SystemapksVariantsService{s: s}
368	return rs
369}
370
371type SystemapksVariantsService struct {
372	s *Service
373}
374
375// Apk: Information about an APK. The resource for ApksService.
376type Apk struct {
377	// Binary: Information about the binary payload of this APK.
378	Binary *ApkBinary `json:"binary,omitempty"`
379
380	// VersionCode: The version code of the APK, as specified in the
381	// manifest file.
382	VersionCode int64 `json:"versionCode,omitempty"`
383
384	// ServerResponse contains the HTTP response code and headers from the
385	// server.
386	googleapi.ServerResponse `json:"-"`
387
388	// ForceSendFields is a list of field names (e.g. "Binary") to
389	// unconditionally include in API requests. By default, fields with
390	// empty values are omitted from API requests. However, any non-pointer,
391	// non-interface field appearing in ForceSendFields will be sent to the
392	// server regardless of whether the field is empty or not. This may be
393	// used to include empty fields in Patch requests.
394	ForceSendFields []string `json:"-"`
395
396	// NullFields is a list of field names (e.g. "Binary") to include in API
397	// requests with the JSON null value. By default, fields with empty
398	// values are omitted from API requests. However, any field with an
399	// empty value appearing in NullFields will be sent to the server as
400	// null. It is an error if a field in this list has a non-empty value.
401	// This may be used to include null fields in Patch requests.
402	NullFields []string `json:"-"`
403}
404
405func (s *Apk) MarshalJSON() ([]byte, error) {
406	type NoMethod Apk
407	raw := NoMethod(*s)
408	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
409}
410
411// ApkBinary: Represents the binary payload of an APK.
412type ApkBinary struct {
413	// Sha1: A sha1 hash of the APK payload, encoded as a hex string and
414	// matching the output of the sha1sum command.
415	Sha1 string `json:"sha1,omitempty"`
416
417	// Sha256: A sha256 hash of the APK payload, encoded as a hex string and
418	// matching the output of the sha256sum command.
419	Sha256 string `json:"sha256,omitempty"`
420
421	// ForceSendFields is a list of field names (e.g. "Sha1") to
422	// unconditionally include in API requests. By default, fields with
423	// empty values are omitted from API requests. However, any non-pointer,
424	// non-interface field appearing in ForceSendFields will be sent to the
425	// server regardless of whether the field is empty or not. This may be
426	// used to include empty fields in Patch requests.
427	ForceSendFields []string `json:"-"`
428
429	// NullFields is a list of field names (e.g. "Sha1") to include in API
430	// requests with the JSON null value. By default, fields with empty
431	// values are omitted from API requests. However, any field with an
432	// empty value appearing in NullFields will be sent to the server as
433	// null. It is an error if a field in this list has a non-empty value.
434	// This may be used to include null fields in Patch requests.
435	NullFields []string `json:"-"`
436}
437
438func (s *ApkBinary) MarshalJSON() ([]byte, error) {
439	type NoMethod ApkBinary
440	raw := NoMethod(*s)
441	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
442}
443
444// ApksAddExternallyHostedRequest: Request to create a new externally
445// hosted APK.
446type ApksAddExternallyHostedRequest struct {
447	// ExternallyHostedApk: The definition of the externally-hosted APK and
448	// where it is located.
449	ExternallyHostedApk *ExternallyHostedApk `json:"externallyHostedApk,omitempty"`
450
451	// ForceSendFields is a list of field names (e.g. "ExternallyHostedApk")
452	// to unconditionally include in API requests. By default, fields with
453	// empty values are omitted from API requests. However, any non-pointer,
454	// non-interface field appearing in ForceSendFields will be sent to the
455	// server regardless of whether the field is empty or not. This may be
456	// used to include empty fields in Patch requests.
457	ForceSendFields []string `json:"-"`
458
459	// NullFields is a list of field names (e.g. "ExternallyHostedApk") to
460	// include in API requests with the JSON null value. By default, fields
461	// with empty values are omitted from API requests. However, any field
462	// with an empty value appearing in NullFields will be sent to the
463	// server as null. It is an error if a field in this list has a
464	// non-empty value. This may be used to include null fields in Patch
465	// requests.
466	NullFields []string `json:"-"`
467}
468
469func (s *ApksAddExternallyHostedRequest) MarshalJSON() ([]byte, error) {
470	type NoMethod ApksAddExternallyHostedRequest
471	raw := NoMethod(*s)
472	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
473}
474
475// ApksAddExternallyHostedResponse: Response for creating a new
476// externally hosted APK.
477type ApksAddExternallyHostedResponse struct {
478	// ExternallyHostedApk: The definition of the externally-hosted APK and
479	// where it is located.
480	ExternallyHostedApk *ExternallyHostedApk `json:"externallyHostedApk,omitempty"`
481
482	// ServerResponse contains the HTTP response code and headers from the
483	// server.
484	googleapi.ServerResponse `json:"-"`
485
486	// ForceSendFields is a list of field names (e.g. "ExternallyHostedApk")
487	// to unconditionally include in API requests. By default, fields with
488	// empty values are omitted from API requests. However, any non-pointer,
489	// non-interface field appearing in ForceSendFields will be sent to the
490	// server regardless of whether the field is empty or not. This may be
491	// used to include empty fields in Patch requests.
492	ForceSendFields []string `json:"-"`
493
494	// NullFields is a list of field names (e.g. "ExternallyHostedApk") to
495	// include in API requests with the JSON null value. By default, fields
496	// with empty values are omitted from API requests. However, any field
497	// with an empty value appearing in NullFields will be sent to the
498	// server as null. It is an error if a field in this list has a
499	// non-empty value. This may be used to include null fields in Patch
500	// requests.
501	NullFields []string `json:"-"`
502}
503
504func (s *ApksAddExternallyHostedResponse) MarshalJSON() ([]byte, error) {
505	type NoMethod ApksAddExternallyHostedResponse
506	raw := NoMethod(*s)
507	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
508}
509
510// ApksListResponse: Response listing all APKs.
511type ApksListResponse struct {
512	// Apks: All APKs.
513	Apks []*Apk `json:"apks,omitempty"`
514
515	// Kind: The kind of this response
516	// ("androidpublisher#apksListResponse").
517	Kind string `json:"kind,omitempty"`
518
519	// ServerResponse contains the HTTP response code and headers from the
520	// server.
521	googleapi.ServerResponse `json:"-"`
522
523	// ForceSendFields is a list of field names (e.g. "Apks") to
524	// unconditionally include in API requests. By default, fields with
525	// empty values are omitted from API requests. However, any non-pointer,
526	// non-interface field appearing in ForceSendFields will be sent to the
527	// server regardless of whether the field is empty or not. This may be
528	// used to include empty fields in Patch requests.
529	ForceSendFields []string `json:"-"`
530
531	// NullFields is a list of field names (e.g. "Apks") to include in API
532	// requests with the JSON null value. By default, fields with empty
533	// values are omitted from API requests. However, any field with an
534	// empty value appearing in NullFields will be sent to the server as
535	// null. It is an error if a field in this list has a non-empty value.
536	// This may be used to include null fields in Patch requests.
537	NullFields []string `json:"-"`
538}
539
540func (s *ApksListResponse) MarshalJSON() ([]byte, error) {
541	type NoMethod ApksListResponse
542	raw := NoMethod(*s)
543	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
544}
545
546// AppDetails: The app details. The resource for DetailsService.
547type AppDetails struct {
548	// ContactEmail: The user-visible support email for this app.
549	ContactEmail string `json:"contactEmail,omitempty"`
550
551	// ContactPhone: The user-visible support telephone number for this app.
552	ContactPhone string `json:"contactPhone,omitempty"`
553
554	// ContactWebsite: The user-visible website for this app.
555	ContactWebsite string `json:"contactWebsite,omitempty"`
556
557	// DefaultLanguage: Default language code, in BCP 47 format (eg
558	// "en-US").
559	DefaultLanguage string `json:"defaultLanguage,omitempty"`
560
561	// ServerResponse contains the HTTP response code and headers from the
562	// server.
563	googleapi.ServerResponse `json:"-"`
564
565	// ForceSendFields is a list of field names (e.g. "ContactEmail") to
566	// unconditionally include in API requests. By default, fields with
567	// empty values are omitted from API requests. However, any non-pointer,
568	// non-interface field appearing in ForceSendFields will be sent to the
569	// server regardless of whether the field is empty or not. This may be
570	// used to include empty fields in Patch requests.
571	ForceSendFields []string `json:"-"`
572
573	// NullFields is a list of field names (e.g. "ContactEmail") to include
574	// in API requests with the JSON null value. By default, fields with
575	// empty values are omitted from API requests. However, any field with
576	// an empty value appearing in NullFields will be sent to the server as
577	// null. It is an error if a field in this list has a non-empty value.
578	// This may be used to include null fields in Patch requests.
579	NullFields []string `json:"-"`
580}
581
582func (s *AppDetails) MarshalJSON() ([]byte, error) {
583	type NoMethod AppDetails
584	raw := NoMethod(*s)
585	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
586}
587
588// AppEdit: An app edit. The resource for EditsService.
589type AppEdit struct {
590	// ExpiryTimeSeconds: Output only. The time (as seconds since Epoch) at
591	// which the edit will expire and will be no longer valid for use.
592	ExpiryTimeSeconds string `json:"expiryTimeSeconds,omitempty"`
593
594	// Id: Output only. Identifier of the edit. Can be used in subsequent
595	// API calls.
596	Id string `json:"id,omitempty"`
597
598	// ServerResponse contains the HTTP response code and headers from the
599	// server.
600	googleapi.ServerResponse `json:"-"`
601
602	// ForceSendFields is a list of field names (e.g. "ExpiryTimeSeconds")
603	// to unconditionally include in API requests. By default, fields with
604	// empty values are omitted from API requests. However, any non-pointer,
605	// non-interface field appearing in ForceSendFields will be sent to the
606	// server regardless of whether the field is empty or not. This may be
607	// used to include empty fields in Patch requests.
608	ForceSendFields []string `json:"-"`
609
610	// NullFields is a list of field names (e.g. "ExpiryTimeSeconds") to
611	// include in API requests with the JSON null value. By default, fields
612	// with empty values are omitted from API requests. However, any field
613	// with an empty value appearing in NullFields will be sent to the
614	// server as null. It is an error if a field in this list has a
615	// non-empty value. This may be used to include null fields in Patch
616	// requests.
617	NullFields []string `json:"-"`
618}
619
620func (s *AppEdit) MarshalJSON() ([]byte, error) {
621	type NoMethod AppEdit
622	raw := NoMethod(*s)
623	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
624}
625
626// Bundle: Information about a bundle. The resource for BundlesService.
627type Bundle struct {
628	// Sha1: A sha1 hash of the upload payload, encoded as a hex string and
629	// matching the output of the sha1sum command.
630	Sha1 string `json:"sha1,omitempty"`
631
632	// Sha256: A sha256 hash of the upload payload, encoded as a hex string
633	// and matching the output of the sha256sum command.
634	Sha256 string `json:"sha256,omitempty"`
635
636	// VersionCode: The version code of the Android App Bundle, as specified
637	// in the Android App Bundle's base module APK manifest file.
638	VersionCode int64 `json:"versionCode,omitempty"`
639
640	// ServerResponse contains the HTTP response code and headers from the
641	// server.
642	googleapi.ServerResponse `json:"-"`
643
644	// ForceSendFields is a list of field names (e.g. "Sha1") to
645	// unconditionally include in API requests. By default, fields with
646	// empty values are omitted from API requests. However, any non-pointer,
647	// non-interface field appearing in ForceSendFields will be sent to the
648	// server regardless of whether the field is empty or not. This may be
649	// used to include empty fields in Patch requests.
650	ForceSendFields []string `json:"-"`
651
652	// NullFields is a list of field names (e.g. "Sha1") to include in API
653	// requests with the JSON null value. By default, fields with empty
654	// values are omitted from API requests. However, any field with an
655	// empty value appearing in NullFields will be sent to the server as
656	// null. It is an error if a field in this list has a non-empty value.
657	// This may be used to include null fields in Patch requests.
658	NullFields []string `json:"-"`
659}
660
661func (s *Bundle) MarshalJSON() ([]byte, error) {
662	type NoMethod Bundle
663	raw := NoMethod(*s)
664	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
665}
666
667// BundlesListResponse: Response listing all bundles.
668type BundlesListResponse struct {
669	// Bundles: All bundles.
670	Bundles []*Bundle `json:"bundles,omitempty"`
671
672	// Kind: The kind of this response
673	// ("androidpublisher#bundlesListResponse").
674	Kind string `json:"kind,omitempty"`
675
676	// ServerResponse contains the HTTP response code and headers from the
677	// server.
678	googleapi.ServerResponse `json:"-"`
679
680	// ForceSendFields is a list of field names (e.g. "Bundles") to
681	// unconditionally include in API requests. By default, fields with
682	// empty values are omitted from API requests. However, any non-pointer,
683	// non-interface field appearing in ForceSendFields will be sent to the
684	// server regardless of whether the field is empty or not. This may be
685	// used to include empty fields in Patch requests.
686	ForceSendFields []string `json:"-"`
687
688	// NullFields is a list of field names (e.g. "Bundles") to include in
689	// API requests with the JSON null value. By default, fields with empty
690	// values are omitted from API requests. However, any field with an
691	// empty value appearing in NullFields will be sent to the server as
692	// null. It is an error if a field in this list has a non-empty value.
693	// This may be used to include null fields in Patch requests.
694	NullFields []string `json:"-"`
695}
696
697func (s *BundlesListResponse) MarshalJSON() ([]byte, error) {
698	type NoMethod BundlesListResponse
699	raw := NoMethod(*s)
700	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
701}
702
703// Comment: An entry of conversation between user and developer.
704type Comment struct {
705	// DeveloperComment: A comment from a developer.
706	DeveloperComment *DeveloperComment `json:"developerComment,omitempty"`
707
708	// UserComment: A comment from a user.
709	UserComment *UserComment `json:"userComment,omitempty"`
710
711	// ForceSendFields is a list of field names (e.g. "DeveloperComment") to
712	// unconditionally include in API requests. By default, fields with
713	// empty values are omitted from API requests. However, any non-pointer,
714	// non-interface field appearing in ForceSendFields will be sent to the
715	// server regardless of whether the field is empty or not. This may be
716	// used to include empty fields in Patch requests.
717	ForceSendFields []string `json:"-"`
718
719	// NullFields is a list of field names (e.g. "DeveloperComment") to
720	// include in API requests with the JSON null value. By default, fields
721	// with empty values are omitted from API requests. However, any field
722	// with an empty value appearing in NullFields will be sent to the
723	// server as null. It is an error if a field in this list has a
724	// non-empty value. This may be used to include null fields in Patch
725	// requests.
726	NullFields []string `json:"-"`
727}
728
729func (s *Comment) MarshalJSON() ([]byte, error) {
730	type NoMethod Comment
731	raw := NoMethod(*s)
732	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
733}
734
735// CountryTargeting: Country targeting specification.
736type CountryTargeting struct {
737	// Countries: Countries to target, specified as two letter CLDR codes
738	// (https://unicode.org/cldr/charts/latest/supplemental/territory_containment_un_m_49.html).
739	Countries []string `json:"countries,omitempty"`
740
741	// IncludeRestOfWorld: Include "rest of world" as well as explicitly
742	// targeted countries.
743	IncludeRestOfWorld bool `json:"includeRestOfWorld,omitempty"`
744
745	// ForceSendFields is a list of field names (e.g. "Countries") to
746	// unconditionally include in API requests. By default, fields with
747	// empty values are omitted from API requests. However, any non-pointer,
748	// non-interface field appearing in ForceSendFields will be sent to the
749	// server regardless of whether the field is empty or not. This may be
750	// used to include empty fields in Patch requests.
751	ForceSendFields []string `json:"-"`
752
753	// NullFields is a list of field names (e.g. "Countries") to include in
754	// API requests with the JSON null value. By default, fields with empty
755	// values are omitted from API requests. However, any field with an
756	// empty value appearing in NullFields will be sent to the server as
757	// null. It is an error if a field in this list has a non-empty value.
758	// This may be used to include null fields in Patch requests.
759	NullFields []string `json:"-"`
760}
761
762func (s *CountryTargeting) MarshalJSON() ([]byte, error) {
763	type NoMethod CountryTargeting
764	raw := NoMethod(*s)
765	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
766}
767
768// DeobfuscationFile: Represents a deobfuscation file.
769type DeobfuscationFile struct {
770	// SymbolType: The type of the deobfuscation file.
771	//
772	// Possible values:
773	//   "deobfuscationFileTypeUnspecified" - Unspecified deobfuscation file
774	// type.
775	//   "proguard" - Proguard deobfuscation file type.
776	//   "nativeCode" - Native debugging symbols file type.
777	SymbolType string `json:"symbolType,omitempty"`
778
779	// ForceSendFields is a list of field names (e.g. "SymbolType") to
780	// unconditionally include in API requests. By default, fields with
781	// empty values are omitted from API requests. However, any non-pointer,
782	// non-interface field appearing in ForceSendFields will be sent to the
783	// server regardless of whether the field is empty or not. This may be
784	// used to include empty fields in Patch requests.
785	ForceSendFields []string `json:"-"`
786
787	// NullFields is a list of field names (e.g. "SymbolType") to include in
788	// API requests with the JSON null value. By default, fields with empty
789	// values are omitted from API requests. However, any field with an
790	// empty value appearing in NullFields will be sent to the server as
791	// null. It is an error if a field in this list has a non-empty value.
792	// This may be used to include null fields in Patch requests.
793	NullFields []string `json:"-"`
794}
795
796func (s *DeobfuscationFile) MarshalJSON() ([]byte, error) {
797	type NoMethod DeobfuscationFile
798	raw := NoMethod(*s)
799	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
800}
801
802// DeobfuscationFilesUploadResponse: Responses for the upload.
803type DeobfuscationFilesUploadResponse struct {
804	// DeobfuscationFile: The uploaded Deobfuscation File configuration.
805	DeobfuscationFile *DeobfuscationFile `json:"deobfuscationFile,omitempty"`
806
807	// ServerResponse contains the HTTP response code and headers from the
808	// server.
809	googleapi.ServerResponse `json:"-"`
810
811	// ForceSendFields is a list of field names (e.g. "DeobfuscationFile")
812	// to unconditionally include in API requests. By default, fields with
813	// empty values are omitted from API requests. However, any non-pointer,
814	// non-interface field appearing in ForceSendFields will be sent to the
815	// server regardless of whether the field is empty or not. This may be
816	// used to include empty fields in Patch requests.
817	ForceSendFields []string `json:"-"`
818
819	// NullFields is a list of field names (e.g. "DeobfuscationFile") to
820	// include in API requests with the JSON null value. By default, fields
821	// with empty values are omitted from API requests. However, any field
822	// with an empty value appearing in NullFields will be sent to the
823	// server as null. It is an error if a field in this list has a
824	// non-empty value. This may be used to include null fields in Patch
825	// requests.
826	NullFields []string `json:"-"`
827}
828
829func (s *DeobfuscationFilesUploadResponse) MarshalJSON() ([]byte, error) {
830	type NoMethod DeobfuscationFilesUploadResponse
831	raw := NoMethod(*s)
832	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
833}
834
835// DeveloperComment: Developer entry from conversation between user and
836// developer.
837type DeveloperComment struct {
838	// LastModified: The last time at which this comment was updated.
839	LastModified *Timestamp `json:"lastModified,omitempty"`
840
841	// Text: The content of the comment, i.e. reply body.
842	Text string `json:"text,omitempty"`
843
844	// ForceSendFields is a list of field names (e.g. "LastModified") to
845	// unconditionally include in API requests. By default, fields with
846	// empty values are omitted from API requests. However, any non-pointer,
847	// non-interface field appearing in ForceSendFields will be sent to the
848	// server regardless of whether the field is empty or not. This may be
849	// used to include empty fields in Patch requests.
850	ForceSendFields []string `json:"-"`
851
852	// NullFields is a list of field names (e.g. "LastModified") to include
853	// in API requests with the JSON null value. By default, fields with
854	// empty values are omitted from API requests. However, any field with
855	// an empty value appearing in NullFields will be sent to the server as
856	// null. It is an error if a field in this list has a non-empty value.
857	// This may be used to include null fields in Patch requests.
858	NullFields []string `json:"-"`
859}
860
861func (s *DeveloperComment) MarshalJSON() ([]byte, error) {
862	type NoMethod DeveloperComment
863	raw := NoMethod(*s)
864	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
865}
866
867// DeviceMetadata: Characteristics of the user's device.
868type DeviceMetadata struct {
869	// CpuMake: Device CPU make, e.g. "Qualcomm"
870	CpuMake string `json:"cpuMake,omitempty"`
871
872	// CpuModel: Device CPU model, e.g. "MSM8974"
873	CpuModel string `json:"cpuModel,omitempty"`
874
875	// DeviceClass: Device class (e.g. tablet)
876	DeviceClass string `json:"deviceClass,omitempty"`
877
878	// GlEsVersion: OpenGL version
879	GlEsVersion int64 `json:"glEsVersion,omitempty"`
880
881	// Manufacturer: Device manufacturer (e.g. Motorola)
882	Manufacturer string `json:"manufacturer,omitempty"`
883
884	// NativePlatform: Comma separated list of native platforms (e.g. "arm",
885	// "arm7")
886	NativePlatform string `json:"nativePlatform,omitempty"`
887
888	// ProductName: Device model name (e.g. Droid)
889	ProductName string `json:"productName,omitempty"`
890
891	// RamMb: Device RAM in Megabytes, e.g. "2048"
892	RamMb int64 `json:"ramMb,omitempty"`
893
894	// ScreenDensityDpi: Screen density in DPI
895	ScreenDensityDpi int64 `json:"screenDensityDpi,omitempty"`
896
897	// ScreenHeightPx: Screen height in pixels
898	ScreenHeightPx int64 `json:"screenHeightPx,omitempty"`
899
900	// ScreenWidthPx: Screen width in pixels
901	ScreenWidthPx int64 `json:"screenWidthPx,omitempty"`
902
903	// ForceSendFields is a list of field names (e.g. "CpuMake") to
904	// unconditionally include in API requests. By default, fields with
905	// empty values are omitted from API requests. However, any non-pointer,
906	// non-interface field appearing in ForceSendFields will be sent to the
907	// server regardless of whether the field is empty or not. This may be
908	// used to include empty fields in Patch requests.
909	ForceSendFields []string `json:"-"`
910
911	// NullFields is a list of field names (e.g. "CpuMake") to include in
912	// API requests with the JSON null value. By default, fields with empty
913	// values are omitted from API requests. However, any field with an
914	// empty value appearing in NullFields will be sent to the server as
915	// null. It is an error if a field in this list has a non-empty value.
916	// This may be used to include null fields in Patch requests.
917	NullFields []string `json:"-"`
918}
919
920func (s *DeviceMetadata) MarshalJSON() ([]byte, error) {
921	type NoMethod DeviceMetadata
922	raw := NoMethod(*s)
923	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
924}
925
926// DeviceSpec: The device spec used to generate a system APK.
927type DeviceSpec struct {
928	// ScreenDensity: Screen dpi.
929	ScreenDensity int64 `json:"screenDensity,omitempty"`
930
931	// SupportedAbis: Supported ABI architectures in the order of
932	// preference. The values should be the string as reported by the
933	// platform, e.g. "armeabi-v7a", "x86_64".
934	SupportedAbis []string `json:"supportedAbis,omitempty"`
935
936	// SupportedLocales: All installed locales represented as BCP-47
937	// strings, e.g. "en-US".
938	SupportedLocales []string `json:"supportedLocales,omitempty"`
939
940	// ForceSendFields is a list of field names (e.g. "ScreenDensity") to
941	// unconditionally include in API requests. By default, fields with
942	// empty values are omitted from API requests. However, any non-pointer,
943	// non-interface field appearing in ForceSendFields will be sent to the
944	// server regardless of whether the field is empty or not. This may be
945	// used to include empty fields in Patch requests.
946	ForceSendFields []string `json:"-"`
947
948	// NullFields is a list of field names (e.g. "ScreenDensity") to include
949	// in API requests with the JSON null value. By default, fields with
950	// empty values are omitted from API requests. However, any field with
951	// an empty value appearing in NullFields will be sent to the server as
952	// null. It is an error if a field in this list has a non-empty value.
953	// This may be used to include null fields in Patch requests.
954	NullFields []string `json:"-"`
955}
956
957func (s *DeviceSpec) MarshalJSON() ([]byte, error) {
958	type NoMethod DeviceSpec
959	raw := NoMethod(*s)
960	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
961}
962
963// ExpansionFile: An expansion file. The resource for
964// ExpansionFilesService.
965type ExpansionFile struct {
966	// FileSize: If set, this field indicates that this APK has an expansion
967	// file uploaded to it: this APK does not reference another APK's
968	// expansion file. The field's value is the size of the uploaded
969	// expansion file in bytes.
970	FileSize int64 `json:"fileSize,omitempty,string"`
971
972	// ReferencesVersion: If set, this APK's expansion file references
973	// another APK's expansion file. The file_size field will not be set.
974	ReferencesVersion int64 `json:"referencesVersion,omitempty"`
975
976	// ServerResponse contains the HTTP response code and headers from the
977	// server.
978	googleapi.ServerResponse `json:"-"`
979
980	// ForceSendFields is a list of field names (e.g. "FileSize") to
981	// unconditionally include in API requests. By default, fields with
982	// empty values are omitted from API requests. However, any non-pointer,
983	// non-interface field appearing in ForceSendFields will be sent to the
984	// server regardless of whether the field is empty or not. This may be
985	// used to include empty fields in Patch requests.
986	ForceSendFields []string `json:"-"`
987
988	// NullFields is a list of field names (e.g. "FileSize") to include in
989	// API requests with the JSON null value. By default, fields with empty
990	// values are omitted from API requests. However, any field with an
991	// empty value appearing in NullFields will be sent to the server as
992	// null. It is an error if a field in this list has a non-empty value.
993	// This may be used to include null fields in Patch requests.
994	NullFields []string `json:"-"`
995}
996
997func (s *ExpansionFile) MarshalJSON() ([]byte, error) {
998	type NoMethod ExpansionFile
999	raw := NoMethod(*s)
1000	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1001}
1002
1003// ExpansionFilesUploadResponse: Response for uploading an expansion
1004// file.
1005type ExpansionFilesUploadResponse struct {
1006	// ExpansionFile: The uploaded expansion file configuration.
1007	ExpansionFile *ExpansionFile `json:"expansionFile,omitempty"`
1008
1009	// ServerResponse contains the HTTP response code and headers from the
1010	// server.
1011	googleapi.ServerResponse `json:"-"`
1012
1013	// ForceSendFields is a list of field names (e.g. "ExpansionFile") to
1014	// unconditionally include in API requests. By default, fields with
1015	// empty values are omitted from API requests. However, any non-pointer,
1016	// non-interface field appearing in ForceSendFields will be sent to the
1017	// server regardless of whether the field is empty or not. This may be
1018	// used to include empty fields in Patch requests.
1019	ForceSendFields []string `json:"-"`
1020
1021	// NullFields is a list of field names (e.g. "ExpansionFile") to include
1022	// in API requests with the JSON null value. By default, fields with
1023	// empty values are omitted from API requests. However, any field with
1024	// an empty value appearing in NullFields will be sent to the server as
1025	// null. It is an error if a field in this list has a non-empty value.
1026	// This may be used to include null fields in Patch requests.
1027	NullFields []string `json:"-"`
1028}
1029
1030func (s *ExpansionFilesUploadResponse) MarshalJSON() ([]byte, error) {
1031	type NoMethod ExpansionFilesUploadResponse
1032	raw := NoMethod(*s)
1033	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1034}
1035
1036// ExternallyHostedApk: Defines an APK available for this application
1037// that is hosted externally and not uploaded to Google Play. This
1038// function is only available to organizations using Managed Play whose
1039// application is configured to restrict distribution to the
1040// organizations.
1041type ExternallyHostedApk struct {
1042	// ApplicationLabel: The application label.
1043	ApplicationLabel string `json:"applicationLabel,omitempty"`
1044
1045	// CertificateBase64s: A certificate (or array of certificates if a
1046	// certificate-chain is used) used to sign this APK, represented as a
1047	// base64 encoded byte array.
1048	CertificateBase64s []string `json:"certificateBase64s,omitempty"`
1049
1050	// ExternallyHostedUrl: The URL at which the APK is hosted. This must be
1051	// an https URL.
1052	ExternallyHostedUrl string `json:"externallyHostedUrl,omitempty"`
1053
1054	// FileSha1Base64: The sha1 checksum of this APK, represented as a
1055	// base64 encoded byte array.
1056	FileSha1Base64 string `json:"fileSha1Base64,omitempty"`
1057
1058	// FileSha256Base64: The sha256 checksum of this APK, represented as a
1059	// base64 encoded byte array.
1060	FileSha256Base64 string `json:"fileSha256Base64,omitempty"`
1061
1062	// FileSize: The file size in bytes of this APK.
1063	FileSize int64 `json:"fileSize,omitempty,string"`
1064
1065	// IconBase64: The icon image from the APK, as a base64 encoded byte
1066	// array.
1067	IconBase64 string `json:"iconBase64,omitempty"`
1068
1069	// MaximumSdk: The maximum SDK supported by this APK (optional).
1070	MaximumSdk int64 `json:"maximumSdk,omitempty"`
1071
1072	// MinimumSdk: The minimum SDK targeted by this APK.
1073	MinimumSdk int64 `json:"minimumSdk,omitempty"`
1074
1075	// NativeCodes: The native code environments supported by this APK
1076	// (optional).
1077	NativeCodes []string `json:"nativeCodes,omitempty"`
1078
1079	// PackageName: The package name.
1080	PackageName string `json:"packageName,omitempty"`
1081
1082	// UsesFeatures: The features required by this APK (optional).
1083	UsesFeatures []string `json:"usesFeatures,omitempty"`
1084
1085	// UsesPermissions: The permissions requested by this APK.
1086	UsesPermissions []*UsesPermission `json:"usesPermissions,omitempty"`
1087
1088	// VersionCode: The version code of this APK.
1089	VersionCode int64 `json:"versionCode,omitempty"`
1090
1091	// VersionName: The version name of this APK.
1092	VersionName string `json:"versionName,omitempty"`
1093
1094	// ForceSendFields is a list of field names (e.g. "ApplicationLabel") to
1095	// unconditionally include in API requests. By default, fields with
1096	// empty values are omitted from API requests. However, any non-pointer,
1097	// non-interface field appearing in ForceSendFields will be sent to the
1098	// server regardless of whether the field is empty or not. This may be
1099	// used to include empty fields in Patch requests.
1100	ForceSendFields []string `json:"-"`
1101
1102	// NullFields is a list of field names (e.g. "ApplicationLabel") to
1103	// include in API requests with the JSON null value. By default, fields
1104	// with empty values are omitted from API requests. However, any field
1105	// with an empty value appearing in NullFields will be sent to the
1106	// server as null. It is an error if a field in this list has a
1107	// non-empty value. This may be used to include null fields in Patch
1108	// requests.
1109	NullFields []string `json:"-"`
1110}
1111
1112func (s *ExternallyHostedApk) MarshalJSON() ([]byte, error) {
1113	type NoMethod ExternallyHostedApk
1114	raw := NoMethod(*s)
1115	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1116}
1117
1118// Image: An uploaded image. The resource for ImagesService.
1119type Image struct {
1120	// Id: A unique id representing this image.
1121	Id string `json:"id,omitempty"`
1122
1123	// Sha1: A sha1 hash of the image.
1124	Sha1 string `json:"sha1,omitempty"`
1125
1126	// Sha256: A sha256 hash of the image.
1127	Sha256 string `json:"sha256,omitempty"`
1128
1129	// Url: A URL that will serve a preview of the image.
1130	Url string `json:"url,omitempty"`
1131
1132	// ForceSendFields is a list of field names (e.g. "Id") to
1133	// unconditionally include in API requests. By default, fields with
1134	// empty values are omitted from API requests. However, any non-pointer,
1135	// non-interface field appearing in ForceSendFields will be sent to the
1136	// server regardless of whether the field is empty or not. This may be
1137	// used to include empty fields in Patch requests.
1138	ForceSendFields []string `json:"-"`
1139
1140	// NullFields is a list of field names (e.g. "Id") to include in API
1141	// requests with the JSON null value. By default, fields with empty
1142	// values are omitted from API requests. However, any field with an
1143	// empty value appearing in NullFields will be sent to the server as
1144	// null. It is an error if a field in this list has a non-empty value.
1145	// This may be used to include null fields in Patch requests.
1146	NullFields []string `json:"-"`
1147}
1148
1149func (s *Image) MarshalJSON() ([]byte, error) {
1150	type NoMethod Image
1151	raw := NoMethod(*s)
1152	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1153}
1154
1155// ImagesDeleteAllResponse: Response for deleting all images.
1156type ImagesDeleteAllResponse struct {
1157	// Deleted: The deleted images.
1158	Deleted []*Image `json:"deleted,omitempty"`
1159
1160	// ServerResponse contains the HTTP response code and headers from the
1161	// server.
1162	googleapi.ServerResponse `json:"-"`
1163
1164	// ForceSendFields is a list of field names (e.g. "Deleted") to
1165	// unconditionally include in API requests. By default, fields with
1166	// empty values are omitted from API requests. However, any non-pointer,
1167	// non-interface field appearing in ForceSendFields will be sent to the
1168	// server regardless of whether the field is empty or not. This may be
1169	// used to include empty fields in Patch requests.
1170	ForceSendFields []string `json:"-"`
1171
1172	// NullFields is a list of field names (e.g. "Deleted") to include in
1173	// API requests with the JSON null value. By default, fields with empty
1174	// values are omitted from API requests. However, any field with an
1175	// empty value appearing in NullFields will be sent to the server as
1176	// null. It is an error if a field in this list has a non-empty value.
1177	// This may be used to include null fields in Patch requests.
1178	NullFields []string `json:"-"`
1179}
1180
1181func (s *ImagesDeleteAllResponse) MarshalJSON() ([]byte, error) {
1182	type NoMethod ImagesDeleteAllResponse
1183	raw := NoMethod(*s)
1184	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1185}
1186
1187// ImagesListResponse: Response listing all images.
1188type ImagesListResponse struct {
1189	// Images: All listed Images.
1190	Images []*Image `json:"images,omitempty"`
1191
1192	// ServerResponse contains the HTTP response code and headers from the
1193	// server.
1194	googleapi.ServerResponse `json:"-"`
1195
1196	// ForceSendFields is a list of field names (e.g. "Images") to
1197	// unconditionally include in API requests. By default, fields with
1198	// empty values are omitted from API requests. However, any non-pointer,
1199	// non-interface field appearing in ForceSendFields will be sent to the
1200	// server regardless of whether the field is empty or not. This may be
1201	// used to include empty fields in Patch requests.
1202	ForceSendFields []string `json:"-"`
1203
1204	// NullFields is a list of field names (e.g. "Images") to include in API
1205	// requests with the JSON null value. By default, fields with empty
1206	// values are omitted from API requests. However, any field with an
1207	// empty value appearing in NullFields will be sent to the server as
1208	// null. It is an error if a field in this list has a non-empty value.
1209	// This may be used to include null fields in Patch requests.
1210	NullFields []string `json:"-"`
1211}
1212
1213func (s *ImagesListResponse) MarshalJSON() ([]byte, error) {
1214	type NoMethod ImagesListResponse
1215	raw := NoMethod(*s)
1216	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1217}
1218
1219// ImagesUploadResponse: Response for uploading an image.
1220type ImagesUploadResponse struct {
1221	// Image: The uploaded image.
1222	Image *Image `json:"image,omitempty"`
1223
1224	// ServerResponse contains the HTTP response code and headers from the
1225	// server.
1226	googleapi.ServerResponse `json:"-"`
1227
1228	// ForceSendFields is a list of field names (e.g. "Image") to
1229	// unconditionally include in API requests. By default, fields with
1230	// empty values are omitted from API requests. However, any non-pointer,
1231	// non-interface field appearing in ForceSendFields will be sent to the
1232	// server regardless of whether the field is empty or not. This may be
1233	// used to include empty fields in Patch requests.
1234	ForceSendFields []string `json:"-"`
1235
1236	// NullFields is a list of field names (e.g. "Image") to include in API
1237	// requests with the JSON null value. By default, fields with empty
1238	// values are omitted from API requests. However, any field with an
1239	// empty value appearing in NullFields will be sent to the server as
1240	// null. It is an error if a field in this list has a non-empty value.
1241	// This may be used to include null fields in Patch requests.
1242	NullFields []string `json:"-"`
1243}
1244
1245func (s *ImagesUploadResponse) MarshalJSON() ([]byte, error) {
1246	type NoMethod ImagesUploadResponse
1247	raw := NoMethod(*s)
1248	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1249}
1250
1251// InAppProduct: An in-app product. The resource for
1252// InappproductsService.
1253type InAppProduct struct {
1254	// DefaultLanguage: Default language of the localized data, as defined
1255	// by BCP-47. e.g. "en-US".
1256	DefaultLanguage string `json:"defaultLanguage,omitempty"`
1257
1258	// DefaultPrice: Default price. Cannot be zero, as in-app products are
1259	// never free. Always in the developer's Checkout merchant currency.
1260	DefaultPrice *Price `json:"defaultPrice,omitempty"`
1261
1262	// GracePeriod: Grace period of the subscription, specified in ISO 8601
1263	// format. Allows developers to give their subscribers a grace period
1264	// when the payment for the new recurrence period is declined.
1265	// Acceptable values are P0D (zero days), P3D (three days), P7D (seven
1266	// days), P14D (14 days), and P30D (30 days).
1267	GracePeriod string `json:"gracePeriod,omitempty"`
1268
1269	// Listings: List of localized title and description data. Map key is
1270	// the language of the localized data, as defined by BCP-47, e.g.
1271	// "en-US".
1272	Listings map[string]InAppProductListing `json:"listings,omitempty"`
1273
1274	// PackageName: Package name of the parent app.
1275	PackageName string `json:"packageName,omitempty"`
1276
1277	// Prices: Prices per buyer region. None of these can be zero, as in-app
1278	// products are never free. Map key is region code, as defined by ISO
1279	// 3166-2.
1280	Prices map[string]Price `json:"prices,omitempty"`
1281
1282	// PurchaseType: The type of the product, e.g. a recurring subscription.
1283	//
1284	// Possible values:
1285	//   "purchaseTypeUnspecified" - Unspecified purchase type.
1286	//   "managedUser" - The default product type - one time purchase.
1287	//   "subscription" - In-app product with a recurring period.
1288	PurchaseType string `json:"purchaseType,omitempty"`
1289
1290	// Sku: Stock-keeping-unit (SKU) of the product, unique within an app.
1291	Sku string `json:"sku,omitempty"`
1292
1293	// Status: The status of the product, e.g. whether it's active.
1294	//
1295	// Possible values:
1296	//   "statusUnspecified" - Unspecified status.
1297	//   "active" - The product is published and active in the store.
1298	//   "inactive" - The product is not published and therefore inactive in
1299	// the store.
1300	Status string `json:"status,omitempty"`
1301
1302	// SubscriptionPeriod: Subscription period, specified in ISO 8601
1303	// format. Acceptable values are P1W (one week), P1M (one month), P3M
1304	// (three months), P6M (six months), and P1Y (one year).
1305	SubscriptionPeriod string `json:"subscriptionPeriod,omitempty"`
1306
1307	// TrialPeriod: Trial period, specified in ISO 8601 format. Acceptable
1308	// values are anything between P7D (seven days) and P999D (999 days).
1309	TrialPeriod string `json:"trialPeriod,omitempty"`
1310
1311	// ServerResponse contains the HTTP response code and headers from the
1312	// server.
1313	googleapi.ServerResponse `json:"-"`
1314
1315	// ForceSendFields is a list of field names (e.g. "DefaultLanguage") to
1316	// unconditionally include in API requests. By default, fields with
1317	// empty values are omitted from API requests. However, any non-pointer,
1318	// non-interface field appearing in ForceSendFields will be sent to the
1319	// server regardless of whether the field is empty or not. This may be
1320	// used to include empty fields in Patch requests.
1321	ForceSendFields []string `json:"-"`
1322
1323	// NullFields is a list of field names (e.g. "DefaultLanguage") to
1324	// include in API requests with the JSON null value. By default, fields
1325	// with empty values are omitted from API requests. However, any field
1326	// with an empty value appearing in NullFields will be sent to the
1327	// server as null. It is an error if a field in this list has a
1328	// non-empty value. This may be used to include null fields in Patch
1329	// requests.
1330	NullFields []string `json:"-"`
1331}
1332
1333func (s *InAppProduct) MarshalJSON() ([]byte, error) {
1334	type NoMethod InAppProduct
1335	raw := NoMethod(*s)
1336	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1337}
1338
1339// InAppProductListing: Store listing of a single in-app product.
1340type InAppProductListing struct {
1341	// Benefits: Localized entitlement benefits for a subscription.
1342	Benefits []string `json:"benefits,omitempty"`
1343
1344	// Description: Description for the store listing.
1345	Description string `json:"description,omitempty"`
1346
1347	// Title: Title for the store listing.
1348	Title string `json:"title,omitempty"`
1349
1350	// ForceSendFields is a list of field names (e.g. "Benefits") to
1351	// unconditionally include in API requests. By default, fields with
1352	// empty values are omitted from API requests. However, any non-pointer,
1353	// non-interface field appearing in ForceSendFields will be sent to the
1354	// server regardless of whether the field is empty or not. This may be
1355	// used to include empty fields in Patch requests.
1356	ForceSendFields []string `json:"-"`
1357
1358	// NullFields is a list of field names (e.g. "Benefits") to include in
1359	// API requests with the JSON null value. By default, fields with empty
1360	// values are omitted from API requests. However, any field with an
1361	// empty value appearing in NullFields will be sent to the server as
1362	// null. It is an error if a field in this list has a non-empty value.
1363	// This may be used to include null fields in Patch requests.
1364	NullFields []string `json:"-"`
1365}
1366
1367func (s *InAppProductListing) MarshalJSON() ([]byte, error) {
1368	type NoMethod InAppProductListing
1369	raw := NoMethod(*s)
1370	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1371}
1372
1373// InappproductsListResponse: Response listing all in-app products.
1374type InappproductsListResponse struct {
1375	// Inappproduct: All in-app products.
1376	Inappproduct []*InAppProduct `json:"inappproduct,omitempty"`
1377
1378	// Kind: The kind of this response
1379	// ("androidpublisher#inappproductsListResponse").
1380	Kind string `json:"kind,omitempty"`
1381
1382	// PageInfo: Information about the current page.
1383	PageInfo *PageInfo `json:"pageInfo,omitempty"`
1384
1385	// TokenPagination: Pagination token, to handle a number of products
1386	// that is over one page.
1387	TokenPagination *TokenPagination `json:"tokenPagination,omitempty"`
1388
1389	// ServerResponse contains the HTTP response code and headers from the
1390	// server.
1391	googleapi.ServerResponse `json:"-"`
1392
1393	// ForceSendFields is a list of field names (e.g. "Inappproduct") to
1394	// unconditionally include in API requests. By default, fields with
1395	// empty values are omitted from API requests. However, any non-pointer,
1396	// non-interface field appearing in ForceSendFields will be sent to the
1397	// server regardless of whether the field is empty or not. This may be
1398	// used to include empty fields in Patch requests.
1399	ForceSendFields []string `json:"-"`
1400
1401	// NullFields is a list of field names (e.g. "Inappproduct") to include
1402	// in API requests with the JSON null value. By default, fields with
1403	// empty values are omitted from API requests. However, any field with
1404	// an empty value appearing in NullFields will be sent to the server as
1405	// null. It is an error if a field in this list has a non-empty value.
1406	// This may be used to include null fields in Patch requests.
1407	NullFields []string `json:"-"`
1408}
1409
1410func (s *InappproductsListResponse) MarshalJSON() ([]byte, error) {
1411	type NoMethod InappproductsListResponse
1412	raw := NoMethod(*s)
1413	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1414}
1415
1416// InternalAppSharingArtifact: An artifact resource which gets created
1417// when uploading an APK or Android App Bundle through internal app
1418// sharing.
1419type InternalAppSharingArtifact struct {
1420	// CertificateFingerprint: The sha256 fingerprint of the certificate
1421	// used to sign the generated artifact.
1422	CertificateFingerprint string `json:"certificateFingerprint,omitempty"`
1423
1424	// DownloadUrl: The download URL generated for the uploaded artifact.
1425	// Users that are authorized to download can follow the link to the Play
1426	// Store app to install it.
1427	DownloadUrl string `json:"downloadUrl,omitempty"`
1428
1429	// Sha256: The sha256 hash of the artifact represented as a lowercase
1430	// hexadecimal number, matching the output of the sha256sum command.
1431	Sha256 string `json:"sha256,omitempty"`
1432
1433	// ServerResponse contains the HTTP response code and headers from the
1434	// server.
1435	googleapi.ServerResponse `json:"-"`
1436
1437	// ForceSendFields is a list of field names (e.g.
1438	// "CertificateFingerprint") to unconditionally include in API requests.
1439	// By default, fields with empty values are omitted from API requests.
1440	// However, any non-pointer, non-interface field appearing in
1441	// ForceSendFields will be sent to the server regardless of whether the
1442	// field is empty or not. This may be used to include empty fields in
1443	// Patch requests.
1444	ForceSendFields []string `json:"-"`
1445
1446	// NullFields is a list of field names (e.g. "CertificateFingerprint")
1447	// to include in API requests with the JSON null value. By default,
1448	// fields with empty values are omitted from API requests. However, any
1449	// field with an empty value appearing in NullFields will be sent to the
1450	// server as null. It is an error if a field in this list has a
1451	// non-empty value. This may be used to include null fields in Patch
1452	// requests.
1453	NullFields []string `json:"-"`
1454}
1455
1456func (s *InternalAppSharingArtifact) MarshalJSON() ([]byte, error) {
1457	type NoMethod InternalAppSharingArtifact
1458	raw := NoMethod(*s)
1459	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1460}
1461
1462// IntroductoryPriceInfo: Contains the introductory price information
1463// for a subscription.
1464type IntroductoryPriceInfo struct {
1465	// IntroductoryPriceAmountMicros: Introductory price of the
1466	// subscription, not including tax. The currency is the same as
1467	// price_currency_code. Price is expressed in micro-units, where
1468	// 1,000,000 micro-units represents one unit of the currency. For
1469	// example, if the subscription price is €1.99, price_amount_micros is
1470	// 1990000.
1471	IntroductoryPriceAmountMicros int64 `json:"introductoryPriceAmountMicros,omitempty,string"`
1472
1473	// IntroductoryPriceCurrencyCode: ISO 4217 currency code for the
1474	// introductory subscription price. For example, if the price is
1475	// specified in British pounds sterling, price_currency_code is "GBP".
1476	IntroductoryPriceCurrencyCode string `json:"introductoryPriceCurrencyCode,omitempty"`
1477
1478	// IntroductoryPriceCycles: The number of billing period to offer
1479	// introductory pricing.
1480	IntroductoryPriceCycles int64 `json:"introductoryPriceCycles,omitempty"`
1481
1482	// IntroductoryPricePeriod: Introductory price period, specified in ISO
1483	// 8601 format. Common values are (but not limited to) "P1W" (one week),
1484	// "P1M" (one month), "P3M" (three months), "P6M" (six months), and
1485	// "P1Y" (one year).
1486	IntroductoryPricePeriod string `json:"introductoryPricePeriod,omitempty"`
1487
1488	// ForceSendFields is a list of field names (e.g.
1489	// "IntroductoryPriceAmountMicros") to unconditionally include in API
1490	// requests. By default, fields with empty values are omitted from API
1491	// requests. However, any non-pointer, non-interface field appearing in
1492	// ForceSendFields will be sent to the server regardless of whether the
1493	// field is empty or not. This may be used to include empty fields in
1494	// Patch requests.
1495	ForceSendFields []string `json:"-"`
1496
1497	// NullFields is a list of field names (e.g.
1498	// "IntroductoryPriceAmountMicros") to include in API requests with the
1499	// JSON null value. By default, fields with empty values are omitted
1500	// from API requests. However, any field with an empty value appearing
1501	// in NullFields will be sent to the server as null. It is an error if a
1502	// field in this list has a non-empty value. This may be used to include
1503	// null fields in Patch requests.
1504	NullFields []string `json:"-"`
1505}
1506
1507func (s *IntroductoryPriceInfo) MarshalJSON() ([]byte, error) {
1508	type NoMethod IntroductoryPriceInfo
1509	raw := NoMethod(*s)
1510	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1511}
1512
1513// Listing: A localized store listing. The resource for ListingsService.
1514type Listing struct {
1515	// FullDescription: Full description of the app.
1516	FullDescription string `json:"fullDescription,omitempty"`
1517
1518	// Language: Language localization code (a BCP-47 language tag; for
1519	// example, "de-AT" for Austrian German).
1520	Language string `json:"language,omitempty"`
1521
1522	// ShortDescription: Short description of the app.
1523	ShortDescription string `json:"shortDescription,omitempty"`
1524
1525	// Title: Localized title of the app.
1526	Title string `json:"title,omitempty"`
1527
1528	// Video: URL of a promotional YouTube video for the app.
1529	Video string `json:"video,omitempty"`
1530
1531	// ServerResponse contains the HTTP response code and headers from the
1532	// server.
1533	googleapi.ServerResponse `json:"-"`
1534
1535	// ForceSendFields is a list of field names (e.g. "FullDescription") to
1536	// unconditionally include in API requests. By default, fields with
1537	// empty values are omitted from API requests. However, any non-pointer,
1538	// non-interface field appearing in ForceSendFields will be sent to the
1539	// server regardless of whether the field is empty or not. This may be
1540	// used to include empty fields in Patch requests.
1541	ForceSendFields []string `json:"-"`
1542
1543	// NullFields is a list of field names (e.g. "FullDescription") to
1544	// include in API requests with the JSON null value. By default, fields
1545	// with empty values are omitted from API requests. However, any field
1546	// with an empty value appearing in NullFields will be sent to the
1547	// server as null. It is an error if a field in this list has a
1548	// non-empty value. This may be used to include null fields in Patch
1549	// requests.
1550	NullFields []string `json:"-"`
1551}
1552
1553func (s *Listing) MarshalJSON() ([]byte, error) {
1554	type NoMethod Listing
1555	raw := NoMethod(*s)
1556	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1557}
1558
1559// ListingsListResponse: Response listing all localized listings.
1560type ListingsListResponse struct {
1561	// Kind: The kind of this response
1562	// ("androidpublisher#listingsListResponse").
1563	Kind string `json:"kind,omitempty"`
1564
1565	// Listings: All localized listings.
1566	Listings []*Listing `json:"listings,omitempty"`
1567
1568	// ServerResponse contains the HTTP response code and headers from the
1569	// server.
1570	googleapi.ServerResponse `json:"-"`
1571
1572	// ForceSendFields is a list of field names (e.g. "Kind") to
1573	// unconditionally include in API requests. By default, fields with
1574	// empty values are omitted from API requests. However, any non-pointer,
1575	// non-interface field appearing in ForceSendFields will be sent to the
1576	// server regardless of whether the field is empty or not. This may be
1577	// used to include empty fields in Patch requests.
1578	ForceSendFields []string `json:"-"`
1579
1580	// NullFields is a list of field names (e.g. "Kind") to include in API
1581	// requests with the JSON null value. By default, fields with empty
1582	// values are omitted from API requests. However, any field with an
1583	// empty value appearing in NullFields will be sent to the server as
1584	// null. It is an error if a field in this list has a non-empty value.
1585	// This may be used to include null fields in Patch requests.
1586	NullFields []string `json:"-"`
1587}
1588
1589func (s *ListingsListResponse) MarshalJSON() ([]byte, error) {
1590	type NoMethod ListingsListResponse
1591	raw := NoMethod(*s)
1592	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1593}
1594
1595// LocalizedText: Release notes specification, i.e. language and text.
1596type LocalizedText struct {
1597	// Language: Language localization code (a BCP-47 language tag; for
1598	// example, "de-AT" for Austrian German).
1599	Language string `json:"language,omitempty"`
1600
1601	// Text: The text in the given language.
1602	Text string `json:"text,omitempty"`
1603
1604	// ForceSendFields is a list of field names (e.g. "Language") to
1605	// unconditionally include in API requests. By default, fields with
1606	// empty values are omitted from API requests. However, any non-pointer,
1607	// non-interface field appearing in ForceSendFields will be sent to the
1608	// server regardless of whether the field is empty or not. This may be
1609	// used to include empty fields in Patch requests.
1610	ForceSendFields []string `json:"-"`
1611
1612	// NullFields is a list of field names (e.g. "Language") to include in
1613	// API requests with the JSON null value. By default, fields with empty
1614	// values are omitted from API requests. However, any field with an
1615	// empty value appearing in NullFields will be sent to the server as
1616	// null. It is an error if a field in this list has a non-empty value.
1617	// This may be used to include null fields in Patch requests.
1618	NullFields []string `json:"-"`
1619}
1620
1621func (s *LocalizedText) MarshalJSON() ([]byte, error) {
1622	type NoMethod LocalizedText
1623	raw := NoMethod(*s)
1624	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1625}
1626
1627// PageInfo: Information about the current page. List operations that
1628// supports paging return only one "page" of results. This protocol
1629// buffer message describes the page that has been returned.
1630type PageInfo struct {
1631	// ResultPerPage: Maximum number of results returned in one page. ! The
1632	// number of results included in the API response.
1633	ResultPerPage int64 `json:"resultPerPage,omitempty"`
1634
1635	// StartIndex: Index of the first result returned in the current page.
1636	StartIndex int64 `json:"startIndex,omitempty"`
1637
1638	// TotalResults: Total number of results available on the backend ! The
1639	// total number of results in the result set.
1640	TotalResults int64 `json:"totalResults,omitempty"`
1641
1642	// ForceSendFields is a list of field names (e.g. "ResultPerPage") to
1643	// unconditionally include in API requests. By default, fields with
1644	// empty values are omitted from API requests. However, any non-pointer,
1645	// non-interface field appearing in ForceSendFields will be sent to the
1646	// server regardless of whether the field is empty or not. This may be
1647	// used to include empty fields in Patch requests.
1648	ForceSendFields []string `json:"-"`
1649
1650	// NullFields is a list of field names (e.g. "ResultPerPage") to include
1651	// in API requests with the JSON null value. By default, fields with
1652	// empty values are omitted from API requests. However, any field with
1653	// an empty value appearing in NullFields will be sent to the server as
1654	// null. It is an error if a field in this list has a non-empty value.
1655	// This may be used to include null fields in Patch requests.
1656	NullFields []string `json:"-"`
1657}
1658
1659func (s *PageInfo) MarshalJSON() ([]byte, error) {
1660	type NoMethod PageInfo
1661	raw := NoMethod(*s)
1662	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1663}
1664
1665// Price: Definition of a price, i.e. currency and units.
1666type Price struct {
1667	// Currency: 3 letter Currency code, as defined by ISO 4217. See
1668	// java/com/google/common/money/CurrencyCode.java
1669	Currency string `json:"currency,omitempty"`
1670
1671	// PriceMicros: Price in 1/million of the currency base unit,
1672	// represented as a string.
1673	PriceMicros string `json:"priceMicros,omitempty"`
1674
1675	// ForceSendFields is a list of field names (e.g. "Currency") to
1676	// unconditionally include in API requests. By default, fields with
1677	// empty values are omitted from API requests. However, any non-pointer,
1678	// non-interface field appearing in ForceSendFields will be sent to the
1679	// server regardless of whether the field is empty or not. This may be
1680	// used to include empty fields in Patch requests.
1681	ForceSendFields []string `json:"-"`
1682
1683	// NullFields is a list of field names (e.g. "Currency") to include in
1684	// API requests with the JSON null value. By default, fields with empty
1685	// values are omitted from API requests. However, any field with an
1686	// empty value appearing in NullFields will be sent to the server as
1687	// null. It is an error if a field in this list has a non-empty value.
1688	// This may be used to include null fields in Patch requests.
1689	NullFields []string `json:"-"`
1690}
1691
1692func (s *Price) MarshalJSON() ([]byte, error) {
1693	type NoMethod Price
1694	raw := NoMethod(*s)
1695	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1696}
1697
1698// ProductPurchase: A ProductPurchase resource indicates the status of a
1699// user's inapp product purchase.
1700type ProductPurchase struct {
1701	// AcknowledgementState: The acknowledgement state of the inapp product.
1702	// Possible values are: 0. Yet to be acknowledged 1. Acknowledged
1703	AcknowledgementState int64 `json:"acknowledgementState,omitempty"`
1704
1705	// ConsumptionState: The consumption state of the inapp product.
1706	// Possible values are: 0. Yet to be consumed 1. Consumed
1707	ConsumptionState int64 `json:"consumptionState,omitempty"`
1708
1709	// DeveloperPayload: A developer-specified string that contains
1710	// supplemental information about an order.
1711	DeveloperPayload string `json:"developerPayload,omitempty"`
1712
1713	// Kind: This kind represents an inappPurchase object in the
1714	// androidpublisher service.
1715	Kind string `json:"kind,omitempty"`
1716
1717	// ObfuscatedExternalAccountId: An obfuscated version of the id that is
1718	// uniquely associated with the user's account in your app. Only present
1719	// if specified using
1720	// https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedaccountid
1721	// when the purchase was made.
1722	ObfuscatedExternalAccountId string `json:"obfuscatedExternalAccountId,omitempty"`
1723
1724	// ObfuscatedExternalProfileId: An obfuscated version of the id that is
1725	// uniquely associated with the user's profile in your app. Only present
1726	// if specified using
1727	// https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedprofileid
1728	// when the purchase was made.
1729	ObfuscatedExternalProfileId string `json:"obfuscatedExternalProfileId,omitempty"`
1730
1731	// OrderId: The order id associated with the purchase of the inapp
1732	// product.
1733	OrderId string `json:"orderId,omitempty"`
1734
1735	// ProductId: The inapp product SKU.
1736	ProductId string `json:"productId,omitempty"`
1737
1738	// PurchaseState: The purchase state of the order. Possible values are:
1739	// 0. Purchased 1. Canceled 2. Pending
1740	PurchaseState int64 `json:"purchaseState,omitempty"`
1741
1742	// PurchaseTimeMillis: The time the product was purchased, in
1743	// milliseconds since the epoch (Jan 1, 1970).
1744	PurchaseTimeMillis int64 `json:"purchaseTimeMillis,omitempty,string"`
1745
1746	// PurchaseToken: The purchase token generated to identify this
1747	// purchase.
1748	PurchaseToken string `json:"purchaseToken,omitempty"`
1749
1750	// PurchaseType: The type of purchase of the inapp product. This field
1751	// is only set if this purchase was not made using the standard in-app
1752	// billing flow. Possible values are: 0. Test (i.e. purchased from a
1753	// license testing account) 1. Promo (i.e. purchased using a promo code)
1754	// 2. Rewarded (i.e. from watching a video ad instead of paying)
1755	PurchaseType *int64 `json:"purchaseType,omitempty"`
1756
1757	// Quantity: The quantity associated with the purchase of the inapp
1758	// product.
1759	Quantity int64 `json:"quantity,omitempty"`
1760
1761	// RegionCode: ISO 3166-1 alpha-2 billing region code of the user at the
1762	// time the product was granted.
1763	RegionCode string `json:"regionCode,omitempty"`
1764
1765	// ServerResponse contains the HTTP response code and headers from the
1766	// server.
1767	googleapi.ServerResponse `json:"-"`
1768
1769	// ForceSendFields is a list of field names (e.g.
1770	// "AcknowledgementState") to unconditionally include in API requests.
1771	// By default, fields with empty values are omitted from API requests.
1772	// However, any non-pointer, non-interface field appearing in
1773	// ForceSendFields will be sent to the server regardless of whether the
1774	// field is empty or not. This may be used to include empty fields in
1775	// Patch requests.
1776	ForceSendFields []string `json:"-"`
1777
1778	// NullFields is a list of field names (e.g. "AcknowledgementState") to
1779	// include in API requests with the JSON null value. By default, fields
1780	// with empty values are omitted from API requests. However, any field
1781	// with an empty value appearing in NullFields will be sent to the
1782	// server as null. It is an error if a field in this list has a
1783	// non-empty value. This may be used to include null fields in Patch
1784	// requests.
1785	NullFields []string `json:"-"`
1786}
1787
1788func (s *ProductPurchase) MarshalJSON() ([]byte, error) {
1789	type NoMethod ProductPurchase
1790	raw := NoMethod(*s)
1791	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1792}
1793
1794// ProductPurchasesAcknowledgeRequest: Request for the
1795// product.purchases.acknowledge API.
1796type ProductPurchasesAcknowledgeRequest struct {
1797	// DeveloperPayload: Payload to attach to the purchase.
1798	DeveloperPayload string `json:"developerPayload,omitempty"`
1799
1800	// ForceSendFields is a list of field names (e.g. "DeveloperPayload") to
1801	// unconditionally include in API requests. By default, fields with
1802	// empty values are omitted from API requests. However, any non-pointer,
1803	// non-interface field appearing in ForceSendFields will be sent to the
1804	// server regardless of whether the field is empty or not. This may be
1805	// used to include empty fields in Patch requests.
1806	ForceSendFields []string `json:"-"`
1807
1808	// NullFields is a list of field names (e.g. "DeveloperPayload") to
1809	// include in API requests with the JSON null value. By default, fields
1810	// with empty values are omitted from API requests. However, any field
1811	// with an empty value appearing in NullFields will be sent to the
1812	// server as null. It is an error if a field in this list has a
1813	// non-empty value. This may be used to include null fields in Patch
1814	// requests.
1815	NullFields []string `json:"-"`
1816}
1817
1818func (s *ProductPurchasesAcknowledgeRequest) MarshalJSON() ([]byte, error) {
1819	type NoMethod ProductPurchasesAcknowledgeRequest
1820	raw := NoMethod(*s)
1821	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1822}
1823
1824// Review: An Android app review.
1825type Review struct {
1826	// AuthorName: The name of the user who wrote the review.
1827	AuthorName string `json:"authorName,omitempty"`
1828
1829	// Comments: A repeated field containing comments for the review.
1830	Comments []*Comment `json:"comments,omitempty"`
1831
1832	// ReviewId: Unique identifier for this review.
1833	ReviewId string `json:"reviewId,omitempty"`
1834
1835	// ServerResponse contains the HTTP response code and headers from the
1836	// server.
1837	googleapi.ServerResponse `json:"-"`
1838
1839	// ForceSendFields is a list of field names (e.g. "AuthorName") to
1840	// unconditionally include in API requests. By default, fields with
1841	// empty values are omitted from API requests. However, any non-pointer,
1842	// non-interface field appearing in ForceSendFields will be sent to the
1843	// server regardless of whether the field is empty or not. This may be
1844	// used to include empty fields in Patch requests.
1845	ForceSendFields []string `json:"-"`
1846
1847	// NullFields is a list of field names (e.g. "AuthorName") to include in
1848	// API requests with the JSON null value. By default, fields with empty
1849	// values are omitted from API requests. However, any field with an
1850	// empty value appearing in NullFields will be sent to the server as
1851	// null. It is an error if a field in this list has a non-empty value.
1852	// This may be used to include null fields in Patch requests.
1853	NullFields []string `json:"-"`
1854}
1855
1856func (s *Review) MarshalJSON() ([]byte, error) {
1857	type NoMethod Review
1858	raw := NoMethod(*s)
1859	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1860}
1861
1862// ReviewReplyResult: The result of replying/updating a reply to review.
1863type ReviewReplyResult struct {
1864	// LastEdited: The time at which the reply took effect.
1865	LastEdited *Timestamp `json:"lastEdited,omitempty"`
1866
1867	// ReplyText: The reply text that was applied.
1868	ReplyText string `json:"replyText,omitempty"`
1869
1870	// ForceSendFields is a list of field names (e.g. "LastEdited") to
1871	// unconditionally include in API requests. By default, fields with
1872	// empty values are omitted from API requests. However, any non-pointer,
1873	// non-interface field appearing in ForceSendFields will be sent to the
1874	// server regardless of whether the field is empty or not. This may be
1875	// used to include empty fields in Patch requests.
1876	ForceSendFields []string `json:"-"`
1877
1878	// NullFields is a list of field names (e.g. "LastEdited") to include in
1879	// API requests with the JSON null value. By default, fields with empty
1880	// values are omitted from API requests. However, any field with an
1881	// empty value appearing in NullFields will be sent to the server as
1882	// null. It is an error if a field in this list has a non-empty value.
1883	// This may be used to include null fields in Patch requests.
1884	NullFields []string `json:"-"`
1885}
1886
1887func (s *ReviewReplyResult) MarshalJSON() ([]byte, error) {
1888	type NoMethod ReviewReplyResult
1889	raw := NoMethod(*s)
1890	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1891}
1892
1893// ReviewsListResponse: Response listing reviews.
1894type ReviewsListResponse struct {
1895	// PageInfo: Information about the current page.
1896	PageInfo *PageInfo `json:"pageInfo,omitempty"`
1897
1898	// Reviews: List of reviews.
1899	Reviews []*Review `json:"reviews,omitempty"`
1900
1901	// TokenPagination: Pagination token, to handle a number of products
1902	// that is over one page.
1903	TokenPagination *TokenPagination `json:"tokenPagination,omitempty"`
1904
1905	// ServerResponse contains the HTTP response code and headers from the
1906	// server.
1907	googleapi.ServerResponse `json:"-"`
1908
1909	// ForceSendFields is a list of field names (e.g. "PageInfo") to
1910	// unconditionally include in API requests. By default, fields with
1911	// empty values are omitted from API requests. However, any non-pointer,
1912	// non-interface field appearing in ForceSendFields will be sent to the
1913	// server regardless of whether the field is empty or not. This may be
1914	// used to include empty fields in Patch requests.
1915	ForceSendFields []string `json:"-"`
1916
1917	// NullFields is a list of field names (e.g. "PageInfo") to include in
1918	// API requests with the JSON null value. By default, fields with empty
1919	// values are omitted from API requests. However, any field with an
1920	// empty value appearing in NullFields will be sent to the server as
1921	// null. It is an error if a field in this list has a non-empty value.
1922	// This may be used to include null fields in Patch requests.
1923	NullFields []string `json:"-"`
1924}
1925
1926func (s *ReviewsListResponse) MarshalJSON() ([]byte, error) {
1927	type NoMethod ReviewsListResponse
1928	raw := NoMethod(*s)
1929	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1930}
1931
1932// ReviewsReplyRequest: Request to reply to review or update existing
1933// reply.
1934type ReviewsReplyRequest struct {
1935	// ReplyText: The text to set as the reply. Replies of more than
1936	// approximately 350 characters will be rejected. HTML tags will be
1937	// stripped.
1938	ReplyText string `json:"replyText,omitempty"`
1939
1940	// ForceSendFields is a list of field names (e.g. "ReplyText") to
1941	// unconditionally include in API requests. By default, fields with
1942	// empty values are omitted from API requests. However, any non-pointer,
1943	// non-interface field appearing in ForceSendFields will be sent to the
1944	// server regardless of whether the field is empty or not. This may be
1945	// used to include empty fields in Patch requests.
1946	ForceSendFields []string `json:"-"`
1947
1948	// NullFields is a list of field names (e.g. "ReplyText") to include in
1949	// API requests with the JSON null value. By default, fields with empty
1950	// values are omitted from API requests. However, any field with an
1951	// empty value appearing in NullFields will be sent to the server as
1952	// null. It is an error if a field in this list has a non-empty value.
1953	// This may be used to include null fields in Patch requests.
1954	NullFields []string `json:"-"`
1955}
1956
1957func (s *ReviewsReplyRequest) MarshalJSON() ([]byte, error) {
1958	type NoMethod ReviewsReplyRequest
1959	raw := NoMethod(*s)
1960	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1961}
1962
1963// ReviewsReplyResponse: Response on status of replying to a review.
1964type ReviewsReplyResponse struct {
1965	// Result: The result of replying/updating a reply to review.
1966	Result *ReviewReplyResult `json:"result,omitempty"`
1967
1968	// ServerResponse contains the HTTP response code and headers from the
1969	// server.
1970	googleapi.ServerResponse `json:"-"`
1971
1972	// ForceSendFields is a list of field names (e.g. "Result") to
1973	// unconditionally include in API requests. By default, fields with
1974	// empty values are omitted from API requests. However, any non-pointer,
1975	// non-interface field appearing in ForceSendFields will be sent to the
1976	// server regardless of whether the field is empty or not. This may be
1977	// used to include empty fields in Patch requests.
1978	ForceSendFields []string `json:"-"`
1979
1980	// NullFields is a list of field names (e.g. "Result") to include in API
1981	// requests with the JSON null value. By default, fields with empty
1982	// values are omitted from API requests. However, any field with an
1983	// empty value appearing in NullFields will be sent to the server as
1984	// null. It is an error if a field in this list has a non-empty value.
1985	// This may be used to include null fields in Patch requests.
1986	NullFields []string `json:"-"`
1987}
1988
1989func (s *ReviewsReplyResponse) MarshalJSON() ([]byte, error) {
1990	type NoMethod ReviewsReplyResponse
1991	raw := NoMethod(*s)
1992	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1993}
1994
1995// SubscriptionCancelSurveyResult: Information provided by the user when
1996// they complete the subscription cancellation flow (cancellation reason
1997// survey).
1998type SubscriptionCancelSurveyResult struct {
1999	// CancelSurveyReason: The cancellation reason the user chose in the
2000	// survey. Possible values are: 0. Other 1. I don't use this service
2001	// enough 2. Technical issues 3. Cost-related reasons 4. I found a
2002	// better app
2003	CancelSurveyReason int64 `json:"cancelSurveyReason,omitempty"`
2004
2005	// UserInputCancelReason: The customized input cancel reason from the
2006	// user. Only present when cancelReason is 0.
2007	UserInputCancelReason string `json:"userInputCancelReason,omitempty"`
2008
2009	// ForceSendFields is a list of field names (e.g. "CancelSurveyReason")
2010	// to unconditionally include in API requests. By default, fields with
2011	// empty values are omitted from API requests. However, any non-pointer,
2012	// non-interface field appearing in ForceSendFields will be sent to the
2013	// server regardless of whether the field is empty or not. This may be
2014	// used to include empty fields in Patch requests.
2015	ForceSendFields []string `json:"-"`
2016
2017	// NullFields is a list of field names (e.g. "CancelSurveyReason") to
2018	// include in API requests with the JSON null value. By default, fields
2019	// with empty values are omitted from API requests. However, any field
2020	// with an empty value appearing in NullFields will be sent to the
2021	// server as null. It is an error if a field in this list has a
2022	// non-empty value. This may be used to include null fields in Patch
2023	// requests.
2024	NullFields []string `json:"-"`
2025}
2026
2027func (s *SubscriptionCancelSurveyResult) MarshalJSON() ([]byte, error) {
2028	type NoMethod SubscriptionCancelSurveyResult
2029	raw := NoMethod(*s)
2030	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2031}
2032
2033// SubscriptionDeferralInfo: A SubscriptionDeferralInfo contains the
2034// data needed to defer a subscription purchase to a future expiry time.
2035type SubscriptionDeferralInfo struct {
2036	// DesiredExpiryTimeMillis: The desired next expiry time to assign to
2037	// the subscription, in milliseconds since the Epoch. The given time
2038	// must be later/greater than the current expiry time for the
2039	// subscription.
2040	DesiredExpiryTimeMillis int64 `json:"desiredExpiryTimeMillis,omitempty,string"`
2041
2042	// ExpectedExpiryTimeMillis: The expected expiry time for the
2043	// subscription. If the current expiry time for the subscription is not
2044	// the value specified here, the deferral will not occur.
2045	ExpectedExpiryTimeMillis int64 `json:"expectedExpiryTimeMillis,omitempty,string"`
2046
2047	// ForceSendFields is a list of field names (e.g.
2048	// "DesiredExpiryTimeMillis") to unconditionally include in API
2049	// requests. By default, fields with empty values are omitted from API
2050	// requests. However, any non-pointer, non-interface field appearing in
2051	// ForceSendFields will be sent to the server regardless of whether the
2052	// field is empty or not. This may be used to include empty fields in
2053	// Patch requests.
2054	ForceSendFields []string `json:"-"`
2055
2056	// NullFields is a list of field names (e.g. "DesiredExpiryTimeMillis")
2057	// to include in API requests with the JSON null value. By default,
2058	// fields with empty values are omitted from API requests. However, any
2059	// field with an empty value appearing in NullFields will be sent to the
2060	// server as null. It is an error if a field in this list has a
2061	// non-empty value. This may be used to include null fields in Patch
2062	// requests.
2063	NullFields []string `json:"-"`
2064}
2065
2066func (s *SubscriptionDeferralInfo) MarshalJSON() ([]byte, error) {
2067	type NoMethod SubscriptionDeferralInfo
2068	raw := NoMethod(*s)
2069	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2070}
2071
2072// SubscriptionPriceChange: Contains the price change information for a
2073// subscription that can be used to control the user journey for the
2074// price change in the app. This can be in the form of seeking
2075// confirmation from the user or tailoring the experience for a
2076// successful conversion.
2077type SubscriptionPriceChange struct {
2078	// NewPrice: The new price the subscription will renew with if the price
2079	// change is accepted by the user.
2080	NewPrice *Price `json:"newPrice,omitempty"`
2081
2082	// State: The current state of the price change. Possible values are: 0.
2083	// Outstanding: State for a pending price change waiting for the user to
2084	// agree. In this state, you can optionally seek confirmation from the
2085	// user using the In-App API. 1. Accepted: State for an accepted price
2086	// change that the subscription will renew with unless it's canceled.
2087	// The price change takes effect on a future date when the subscription
2088	// renews. Note that the change might not occur when the subscription is
2089	// renewed next.
2090	State int64 `json:"state,omitempty"`
2091
2092	// ForceSendFields is a list of field names (e.g. "NewPrice") to
2093	// unconditionally include in API requests. By default, fields with
2094	// empty values are omitted from API requests. However, any non-pointer,
2095	// non-interface field appearing in ForceSendFields will be sent to the
2096	// server regardless of whether the field is empty or not. This may be
2097	// used to include empty fields in Patch requests.
2098	ForceSendFields []string `json:"-"`
2099
2100	// NullFields is a list of field names (e.g. "NewPrice") to include in
2101	// API requests with the JSON null value. By default, fields with empty
2102	// values are omitted from API requests. However, any field with an
2103	// empty value appearing in NullFields will be sent to the server as
2104	// null. It is an error if a field in this list has a non-empty value.
2105	// This may be used to include null fields in Patch requests.
2106	NullFields []string `json:"-"`
2107}
2108
2109func (s *SubscriptionPriceChange) MarshalJSON() ([]byte, error) {
2110	type NoMethod SubscriptionPriceChange
2111	raw := NoMethod(*s)
2112	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2113}
2114
2115// SubscriptionPurchase: A SubscriptionPurchase resource indicates the
2116// status of a user's subscription purchase.
2117type SubscriptionPurchase struct {
2118	// AcknowledgementState: The acknowledgement state of the subscription
2119	// product. Possible values are: 0. Yet to be acknowledged 1.
2120	// Acknowledged
2121	AcknowledgementState int64 `json:"acknowledgementState,omitempty"`
2122
2123	// AutoRenewing: Whether the subscription will automatically be renewed
2124	// when it reaches its current expiry time.
2125	AutoRenewing bool `json:"autoRenewing,omitempty"`
2126
2127	// AutoResumeTimeMillis: Time at which the subscription will be
2128	// automatically resumed, in milliseconds since the Epoch. Only present
2129	// if the user has requested to pause the subscription.
2130	AutoResumeTimeMillis int64 `json:"autoResumeTimeMillis,omitempty,string"`
2131
2132	// CancelReason: The reason why a subscription was canceled or is not
2133	// auto-renewing. Possible values are: 0. User canceled the subscription
2134	// 1. Subscription was canceled by the system, for example because of a
2135	// billing problem 2. Subscription was replaced with a new subscription
2136	// 3. Subscription was canceled by the developer
2137	CancelReason int64 `json:"cancelReason,omitempty"`
2138
2139	// CancelSurveyResult: Information provided by the user when they
2140	// complete the subscription cancellation flow (cancellation reason
2141	// survey).
2142	CancelSurveyResult *SubscriptionCancelSurveyResult `json:"cancelSurveyResult,omitempty"`
2143
2144	// CountryCode: ISO 3166-1 alpha-2 billing country/region code of the
2145	// user at the time the subscription was granted.
2146	CountryCode string `json:"countryCode,omitempty"`
2147
2148	// DeveloperPayload: A developer-specified string that contains
2149	// supplemental information about an order.
2150	DeveloperPayload string `json:"developerPayload,omitempty"`
2151
2152	// EmailAddress: The email address of the user when the subscription was
2153	// purchased. Only present for purchases made with 'Subscribe with
2154	// Google'.
2155	EmailAddress string `json:"emailAddress,omitempty"`
2156
2157	// ExpiryTimeMillis: Time at which the subscription will expire, in
2158	// milliseconds since the Epoch.
2159	ExpiryTimeMillis int64 `json:"expiryTimeMillis,omitempty,string"`
2160
2161	// ExternalAccountId: User account identifier in the third-party
2162	// service. Only present if account linking happened as part of the
2163	// subscription purchase flow.
2164	ExternalAccountId string `json:"externalAccountId,omitempty"`
2165
2166	// FamilyName: The family name of the user when the subscription was
2167	// purchased. Only present for purchases made with 'Subscribe with
2168	// Google'.
2169	FamilyName string `json:"familyName,omitempty"`
2170
2171	// GivenName: The given name of the user when the subscription was
2172	// purchased. Only present for purchases made with 'Subscribe with
2173	// Google'.
2174	GivenName string `json:"givenName,omitempty"`
2175
2176	// IntroductoryPriceInfo: Introductory price information of the
2177	// subscription. This is only present when the subscription was
2178	// purchased with an introductory price. This field does not indicate
2179	// the subscription is currently in introductory price period.
2180	IntroductoryPriceInfo *IntroductoryPriceInfo `json:"introductoryPriceInfo,omitempty"`
2181
2182	// Kind: This kind represents a subscriptionPurchase object in the
2183	// androidpublisher service.
2184	Kind string `json:"kind,omitempty"`
2185
2186	// LinkedPurchaseToken: The purchase token of the originating purchase
2187	// if this subscription is one of the following: 0. Re-signup of a
2188	// canceled but non-lapsed subscription 1. Upgrade/downgrade from a
2189	// previous subscription For example, suppose a user originally signs up
2190	// and you receive purchase token X, then the user cancels and goes
2191	// through the resignup flow (before their subscription lapses) and you
2192	// receive purchase token Y, and finally the user upgrades their
2193	// subscription and you receive purchase token Z. If you call this API
2194	// with purchase token Z, this field will be set to Y. If you call this
2195	// API with purchase token Y, this field will be set to X. If you call
2196	// this API with purchase token X, this field will not be set.
2197	LinkedPurchaseToken string `json:"linkedPurchaseToken,omitempty"`
2198
2199	// ObfuscatedExternalAccountId: An obfuscated version of the id that is
2200	// uniquely associated with the user's account in your app. Present for
2201	// the following purchases: * If account linking happened as part of the
2202	// subscription purchase flow. * It was specified using
2203	// https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedaccountid
2204	// when the purchase was made.
2205	ObfuscatedExternalAccountId string `json:"obfuscatedExternalAccountId,omitempty"`
2206
2207	// ObfuscatedExternalProfileId: An obfuscated version of the id that is
2208	// uniquely associated with the user's profile in your app. Only present
2209	// if specified using
2210	// https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedprofileid
2211	// when the purchase was made.
2212	ObfuscatedExternalProfileId string `json:"obfuscatedExternalProfileId,omitempty"`
2213
2214	// OrderId: The order id of the latest recurring order associated with
2215	// the purchase of the subscription.
2216	OrderId string `json:"orderId,omitempty"`
2217
2218	// PaymentState: The payment state of the subscription. Possible values
2219	// are: 0. Payment pending 1. Payment received 2. Free trial 3. Pending
2220	// deferred upgrade/downgrade Not present for canceled, expired
2221	// subscriptions.
2222	PaymentState int64 `json:"paymentState,omitempty"`
2223
2224	// PriceAmountMicros: Price of the subscription, not including tax.
2225	// Price is expressed in micro-units, where 1,000,000 micro-units
2226	// represents one unit of the currency. For example, if the subscription
2227	// price is €1.99, price_amount_micros is 1990000.
2228	PriceAmountMicros int64 `json:"priceAmountMicros,omitempty,string"`
2229
2230	// PriceChange: The latest price change information available. This is
2231	// present only when there is an upcoming price change for the
2232	// subscription yet to be applied. Once the subscription renews with the
2233	// new price or the subscription is canceled, no price change
2234	// information will be returned.
2235	PriceChange *SubscriptionPriceChange `json:"priceChange,omitempty"`
2236
2237	// PriceCurrencyCode: ISO 4217 currency code for the subscription price.
2238	// For example, if the price is specified in British pounds sterling,
2239	// price_currency_code is "GBP".
2240	PriceCurrencyCode string `json:"priceCurrencyCode,omitempty"`
2241
2242	// ProfileId: The Google profile id of the user when the subscription
2243	// was purchased. Only present for purchases made with 'Subscribe with
2244	// Google'.
2245	ProfileId string `json:"profileId,omitempty"`
2246
2247	// ProfileName: The profile name of the user when the subscription was
2248	// purchased. Only present for purchases made with 'Subscribe with
2249	// Google'.
2250	ProfileName string `json:"profileName,omitempty"`
2251
2252	// PromotionCode: The promotion code applied on this purchase. This
2253	// field is only set if a vanity code promotion is applied when the
2254	// subscription was purchased.
2255	PromotionCode string `json:"promotionCode,omitempty"`
2256
2257	// PromotionType: The type of promotion applied on this purchase. This
2258	// field is only set if a promotion is applied when the subscription was
2259	// purchased. Possible values are: 0. One time code 1. Vanity code
2260	PromotionType int64 `json:"promotionType,omitempty"`
2261
2262	// PurchaseType: The type of purchase of the subscription. This field is
2263	// only set if this purchase was not made using the standard in-app
2264	// billing flow. Possible values are: 0. Test (i.e. purchased from a
2265	// license testing account) 1. Promo (i.e. purchased using a promo code)
2266	PurchaseType *int64 `json:"purchaseType,omitempty"`
2267
2268	// StartTimeMillis: Time at which the subscription was granted, in
2269	// milliseconds since the Epoch.
2270	StartTimeMillis int64 `json:"startTimeMillis,omitempty,string"`
2271
2272	// UserCancellationTimeMillis: The time at which the subscription was
2273	// canceled by the user, in milliseconds since the epoch. Only present
2274	// if cancelReason is 0.
2275	UserCancellationTimeMillis int64 `json:"userCancellationTimeMillis,omitempty,string"`
2276
2277	// ServerResponse contains the HTTP response code and headers from the
2278	// server.
2279	googleapi.ServerResponse `json:"-"`
2280
2281	// ForceSendFields is a list of field names (e.g.
2282	// "AcknowledgementState") to unconditionally include in API requests.
2283	// By default, fields with empty values are omitted from API requests.
2284	// However, any non-pointer, non-interface field appearing in
2285	// ForceSendFields will be sent to the server regardless of whether the
2286	// field is empty or not. This may be used to include empty fields in
2287	// Patch requests.
2288	ForceSendFields []string `json:"-"`
2289
2290	// NullFields is a list of field names (e.g. "AcknowledgementState") to
2291	// include in API requests with the JSON null value. By default, fields
2292	// with empty values are omitted from API requests. However, any field
2293	// with an empty value appearing in NullFields will be sent to the
2294	// server as null. It is an error if a field in this list has a
2295	// non-empty value. This may be used to include null fields in Patch
2296	// requests.
2297	NullFields []string `json:"-"`
2298}
2299
2300func (s *SubscriptionPurchase) MarshalJSON() ([]byte, error) {
2301	type NoMethod SubscriptionPurchase
2302	raw := NoMethod(*s)
2303	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2304}
2305
2306// SubscriptionPurchasesAcknowledgeRequest: Request for the
2307// purchases.subscriptions.acknowledge API.
2308type SubscriptionPurchasesAcknowledgeRequest struct {
2309	// DeveloperPayload: Payload to attach to the purchase.
2310	DeveloperPayload string `json:"developerPayload,omitempty"`
2311
2312	// ForceSendFields is a list of field names (e.g. "DeveloperPayload") to
2313	// unconditionally include in API requests. By default, fields with
2314	// empty values are omitted from API requests. However, any non-pointer,
2315	// non-interface field appearing in ForceSendFields will be sent to the
2316	// server regardless of whether the field is empty or not. This may be
2317	// used to include empty fields in Patch requests.
2318	ForceSendFields []string `json:"-"`
2319
2320	// NullFields is a list of field names (e.g. "DeveloperPayload") to
2321	// include in API requests with the JSON null value. By default, fields
2322	// with empty values are omitted from API requests. However, any field
2323	// with an empty value appearing in NullFields will be sent to the
2324	// server as null. It is an error if a field in this list has a
2325	// non-empty value. This may be used to include null fields in Patch
2326	// requests.
2327	NullFields []string `json:"-"`
2328}
2329
2330func (s *SubscriptionPurchasesAcknowledgeRequest) MarshalJSON() ([]byte, error) {
2331	type NoMethod SubscriptionPurchasesAcknowledgeRequest
2332	raw := NoMethod(*s)
2333	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2334}
2335
2336// SubscriptionPurchasesDeferRequest: Request for the
2337// purchases.subscriptions.defer API.
2338type SubscriptionPurchasesDeferRequest struct {
2339	// DeferralInfo: The information about the new desired expiry time for
2340	// the subscription.
2341	DeferralInfo *SubscriptionDeferralInfo `json:"deferralInfo,omitempty"`
2342
2343	// ForceSendFields is a list of field names (e.g. "DeferralInfo") to
2344	// unconditionally include in API requests. By default, fields with
2345	// empty values are omitted from API requests. However, any non-pointer,
2346	// non-interface field appearing in ForceSendFields will be sent to the
2347	// server regardless of whether the field is empty or not. This may be
2348	// used to include empty fields in Patch requests.
2349	ForceSendFields []string `json:"-"`
2350
2351	// NullFields is a list of field names (e.g. "DeferralInfo") to include
2352	// in API requests with the JSON null value. By default, fields with
2353	// empty values are omitted from API requests. However, any field with
2354	// an empty value appearing in NullFields will be sent to the server as
2355	// null. It is an error if a field in this list has a non-empty value.
2356	// This may be used to include null fields in Patch requests.
2357	NullFields []string `json:"-"`
2358}
2359
2360func (s *SubscriptionPurchasesDeferRequest) MarshalJSON() ([]byte, error) {
2361	type NoMethod SubscriptionPurchasesDeferRequest
2362	raw := NoMethod(*s)
2363	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2364}
2365
2366// SubscriptionPurchasesDeferResponse: Response for the
2367// purchases.subscriptions.defer API.
2368type SubscriptionPurchasesDeferResponse struct {
2369	// NewExpiryTimeMillis: The new expiry time for the subscription in
2370	// milliseconds since the Epoch.
2371	NewExpiryTimeMillis int64 `json:"newExpiryTimeMillis,omitempty,string"`
2372
2373	// ServerResponse contains the HTTP response code and headers from the
2374	// server.
2375	googleapi.ServerResponse `json:"-"`
2376
2377	// ForceSendFields is a list of field names (e.g. "NewExpiryTimeMillis")
2378	// to unconditionally include in API requests. By default, fields with
2379	// empty values are omitted from API requests. However, any non-pointer,
2380	// non-interface field appearing in ForceSendFields will be sent to the
2381	// server regardless of whether the field is empty or not. This may be
2382	// used to include empty fields in Patch requests.
2383	ForceSendFields []string `json:"-"`
2384
2385	// NullFields is a list of field names (e.g. "NewExpiryTimeMillis") to
2386	// include in API requests with the JSON null value. By default, fields
2387	// with empty values are omitted from API requests. However, any field
2388	// with an empty value appearing in NullFields will be sent to the
2389	// server as null. It is an error if a field in this list has a
2390	// non-empty value. This may be used to include null fields in Patch
2391	// requests.
2392	NullFields []string `json:"-"`
2393}
2394
2395func (s *SubscriptionPurchasesDeferResponse) MarshalJSON() ([]byte, error) {
2396	type NoMethod SubscriptionPurchasesDeferResponse
2397	raw := NoMethod(*s)
2398	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2399}
2400
2401// SystemApksListResponse: Response to list previously created system
2402// APK variants.
2403type SystemApksListResponse struct {
2404	// Variants: All system APK variants created.
2405	Variants []*Variant `json:"variants,omitempty"`
2406
2407	// ServerResponse contains the HTTP response code and headers from the
2408	// server.
2409	googleapi.ServerResponse `json:"-"`
2410
2411	// ForceSendFields is a list of field names (e.g. "Variants") to
2412	// unconditionally include in API requests. By default, fields with
2413	// empty values are omitted from API requests. However, any non-pointer,
2414	// non-interface field appearing in ForceSendFields will be sent to the
2415	// server regardless of whether the field is empty or not. This may be
2416	// used to include empty fields in Patch requests.
2417	ForceSendFields []string `json:"-"`
2418
2419	// NullFields is a list of field names (e.g. "Variants") to include in
2420	// API requests with the JSON null value. By default, fields with empty
2421	// values are omitted from API requests. However, any field with an
2422	// empty value appearing in NullFields will be sent to the server as
2423	// null. It is an error if a field in this list has a non-empty value.
2424	// This may be used to include null fields in Patch requests.
2425	NullFields []string `json:"-"`
2426}
2427
2428func (s *SystemApksListResponse) MarshalJSON() ([]byte, error) {
2429	type NoMethod SystemApksListResponse
2430	raw := NoMethod(*s)
2431	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2432}
2433
2434// Testers: The testers of an app. The resource for TestersService.
2435type Testers struct {
2436	// GoogleGroups: All testing Google Groups, as email addresses.
2437	GoogleGroups []string `json:"googleGroups,omitempty"`
2438
2439	// ServerResponse contains the HTTP response code and headers from the
2440	// server.
2441	googleapi.ServerResponse `json:"-"`
2442
2443	// ForceSendFields is a list of field names (e.g. "GoogleGroups") to
2444	// unconditionally include in API requests. By default, fields with
2445	// empty values are omitted from API requests. However, any non-pointer,
2446	// non-interface field appearing in ForceSendFields will be sent to the
2447	// server regardless of whether the field is empty or not. This may be
2448	// used to include empty fields in Patch requests.
2449	ForceSendFields []string `json:"-"`
2450
2451	// NullFields is a list of field names (e.g. "GoogleGroups") to include
2452	// in API requests with the JSON null value. By default, fields with
2453	// empty values are omitted from API requests. However, any field with
2454	// an empty value appearing in NullFields will be sent to the server as
2455	// null. It is an error if a field in this list has a non-empty value.
2456	// This may be used to include null fields in Patch requests.
2457	NullFields []string `json:"-"`
2458}
2459
2460func (s *Testers) MarshalJSON() ([]byte, error) {
2461	type NoMethod Testers
2462	raw := NoMethod(*s)
2463	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2464}
2465
2466// Timestamp: A Timestamp represents a point in time independent of any
2467// time zone or local calendar, encoded as a count of seconds and
2468// fractions of seconds at nanosecond resolution. The count is relative
2469// to an epoch at UTC midnight on January 1, 1970.
2470type Timestamp struct {
2471	// Nanos: Non-negative fractions of a second at nanosecond resolution.
2472	// Must be from 0 to 999,999,999 inclusive.
2473	Nanos int64 `json:"nanos,omitempty"`
2474
2475	// Seconds: Represents seconds of UTC time since Unix epoch.
2476	Seconds int64 `json:"seconds,omitempty,string"`
2477
2478	// ForceSendFields is a list of field names (e.g. "Nanos") to
2479	// unconditionally include in API requests. By default, fields with
2480	// empty values are omitted from API requests. However, any non-pointer,
2481	// non-interface field appearing in ForceSendFields will be sent to the
2482	// server regardless of whether the field is empty or not. This may be
2483	// used to include empty fields in Patch requests.
2484	ForceSendFields []string `json:"-"`
2485
2486	// NullFields is a list of field names (e.g. "Nanos") to include in API
2487	// requests with the JSON null value. By default, fields with empty
2488	// values are omitted from API requests. However, any field with an
2489	// empty value appearing in NullFields will be sent to the server as
2490	// null. It is an error if a field in this list has a non-empty value.
2491	// This may be used to include null fields in Patch requests.
2492	NullFields []string `json:"-"`
2493}
2494
2495func (s *Timestamp) MarshalJSON() ([]byte, error) {
2496	type NoMethod Timestamp
2497	raw := NoMethod(*s)
2498	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2499}
2500
2501// TokenPagination: Pagination information returned by a List operation
2502// when token pagination is enabled. List operations that supports
2503// paging return only one "page" of results. This protocol buffer
2504// message describes the page that has been returned. When using token
2505// pagination, clients should use the next/previous token to get another
2506// page of the result. The presence or absence of next/previous token
2507// indicates whether a next/previous page is available and provides a
2508// mean of accessing this page. ListRequest.page_token should be set to
2509// either next_page_token or previous_page_token to access another page.
2510type TokenPagination struct {
2511	// NextPageToken: Tokens to pass to the standard list field
2512	// 'page_token'. Whenever available, tokens are preferred over
2513	// manipulating start_index.
2514	NextPageToken string `json:"nextPageToken,omitempty"`
2515
2516	PreviousPageToken string `json:"previousPageToken,omitempty"`
2517
2518	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
2519	// unconditionally include in API requests. By default, fields with
2520	// empty values are omitted from API requests. However, any non-pointer,
2521	// non-interface field appearing in ForceSendFields will be sent to the
2522	// server regardless of whether the field is empty or not. This may be
2523	// used to include empty fields in Patch requests.
2524	ForceSendFields []string `json:"-"`
2525
2526	// NullFields is a list of field names (e.g. "NextPageToken") to include
2527	// in API requests with the JSON null value. By default, fields with
2528	// empty values are omitted from API requests. However, any field with
2529	// an empty value appearing in NullFields will be sent to the server as
2530	// null. It is an error if a field in this list has a non-empty value.
2531	// This may be used to include null fields in Patch requests.
2532	NullFields []string `json:"-"`
2533}
2534
2535func (s *TokenPagination) MarshalJSON() ([]byte, error) {
2536	type NoMethod TokenPagination
2537	raw := NoMethod(*s)
2538	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2539}
2540
2541// Track: A track configuration. The resource for TracksService.
2542type Track struct {
2543	// Releases: In a read request, represents all active releases in the
2544	// track. In an update request, represents desired changes.
2545	Releases []*TrackRelease `json:"releases,omitempty"`
2546
2547	// Track: Identifier of the track.
2548	Track string `json:"track,omitempty"`
2549
2550	// ServerResponse contains the HTTP response code and headers from the
2551	// server.
2552	googleapi.ServerResponse `json:"-"`
2553
2554	// ForceSendFields is a list of field names (e.g. "Releases") to
2555	// unconditionally include in API requests. By default, fields with
2556	// empty values are omitted from API requests. However, any non-pointer,
2557	// non-interface field appearing in ForceSendFields will be sent to the
2558	// server regardless of whether the field is empty or not. This may be
2559	// used to include empty fields in Patch requests.
2560	ForceSendFields []string `json:"-"`
2561
2562	// NullFields is a list of field names (e.g. "Releases") to include in
2563	// API requests with the JSON null value. By default, fields with empty
2564	// values are omitted from API requests. However, any field with an
2565	// empty value appearing in NullFields will be sent to the server as
2566	// null. It is an error if a field in this list has a non-empty value.
2567	// This may be used to include null fields in Patch requests.
2568	NullFields []string `json:"-"`
2569}
2570
2571func (s *Track) MarshalJSON() ([]byte, error) {
2572	type NoMethod Track
2573	raw := NoMethod(*s)
2574	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2575}
2576
2577// TrackRelease: A release within a track.
2578type TrackRelease struct {
2579	// CountryTargeting: Restricts a release to a specific set of countries.
2580	CountryTargeting *CountryTargeting `json:"countryTargeting,omitempty"`
2581
2582	// InAppUpdatePriority: In-app update priority of the release. All newly
2583	// added APKs in the release will be considered at this priority. Can
2584	// take values in the range [0, 5], with 5 the highest priority.
2585	// Defaults to 0. in_app_update_priority can not be updated once the
2586	// release is rolled out. See
2587	// https://developer.android.com/guide/playcore/in-app-updates.
2588	InAppUpdatePriority int64 `json:"inAppUpdatePriority,omitempty"`
2589
2590	// Name: The release name. Not required to be unique. If not set, the
2591	// name is generated from the APK's version_name. If the release
2592	// contains multiple APKs, the name is generated from the date.
2593	Name string `json:"name,omitempty"`
2594
2595	// ReleaseNotes: A description of what is new in this release.
2596	ReleaseNotes []*LocalizedText `json:"releaseNotes,omitempty"`
2597
2598	// Status: The status of the release.
2599	//
2600	// Possible values:
2601	//   "statusUnspecified" - Unspecified status.
2602	//   "draft" - The release's APKs are not being served to users.
2603	//   "inProgress" - The release's APKs are being served to a fraction of
2604	// users, determined by 'user_fraction'.
2605	//   "halted" - The release's APKs will no longer be served to users.
2606	// Users who already have these APKs are unaffected.
2607	//   "completed" - The release will have no further changes. Its APKs
2608	// are being served to all users, unless they are eligible to APKs of a
2609	// more recent release.
2610	Status string `json:"status,omitempty"`
2611
2612	// UserFraction: Fraction of users who are eligible for a staged
2613	// release. 0 < fraction < 1. Can only be set when status is
2614	// "inProgress" or "halted".
2615	UserFraction float64 `json:"userFraction,omitempty"`
2616
2617	// VersionCodes: Version codes of all APKs in the release. Must include
2618	// version codes to retain from previous releases.
2619	VersionCodes googleapi.Int64s `json:"versionCodes,omitempty"`
2620
2621	// ForceSendFields is a list of field names (e.g. "CountryTargeting") to
2622	// unconditionally include in API requests. By default, fields with
2623	// empty values are omitted from API requests. However, any non-pointer,
2624	// non-interface field appearing in ForceSendFields will be sent to the
2625	// server regardless of whether the field is empty or not. This may be
2626	// used to include empty fields in Patch requests.
2627	ForceSendFields []string `json:"-"`
2628
2629	// NullFields is a list of field names (e.g. "CountryTargeting") to
2630	// include in API requests with the JSON null value. By default, fields
2631	// with empty values are omitted from API requests. However, any field
2632	// with an empty value appearing in NullFields will be sent to the
2633	// server as null. It is an error if a field in this list has a
2634	// non-empty value. This may be used to include null fields in Patch
2635	// requests.
2636	NullFields []string `json:"-"`
2637}
2638
2639func (s *TrackRelease) MarshalJSON() ([]byte, error) {
2640	type NoMethod TrackRelease
2641	raw := NoMethod(*s)
2642	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2643}
2644
2645func (s *TrackRelease) UnmarshalJSON(data []byte) error {
2646	type NoMethod TrackRelease
2647	var s1 struct {
2648		UserFraction gensupport.JSONFloat64 `json:"userFraction"`
2649		*NoMethod
2650	}
2651	s1.NoMethod = (*NoMethod)(s)
2652	if err := json.Unmarshal(data, &s1); err != nil {
2653		return err
2654	}
2655	s.UserFraction = float64(s1.UserFraction)
2656	return nil
2657}
2658
2659// TracksListResponse: Response listing all tracks.
2660type TracksListResponse struct {
2661	// Kind: The kind of this response
2662	// ("androidpublisher#tracksListResponse").
2663	Kind string `json:"kind,omitempty"`
2664
2665	// Tracks: All tracks.
2666	Tracks []*Track `json:"tracks,omitempty"`
2667
2668	// ServerResponse contains the HTTP response code and headers from the
2669	// server.
2670	googleapi.ServerResponse `json:"-"`
2671
2672	// ForceSendFields is a list of field names (e.g. "Kind") to
2673	// unconditionally include in API requests. By default, fields with
2674	// empty values are omitted from API requests. However, any non-pointer,
2675	// non-interface field appearing in ForceSendFields will be sent to the
2676	// server regardless of whether the field is empty or not. This may be
2677	// used to include empty fields in Patch requests.
2678	ForceSendFields []string `json:"-"`
2679
2680	// NullFields is a list of field names (e.g. "Kind") to include in API
2681	// requests with the JSON null value. By default, fields with empty
2682	// values are omitted from API requests. However, any field with an
2683	// empty value appearing in NullFields will be sent to the server as
2684	// null. It is an error if a field in this list has a non-empty value.
2685	// This may be used to include null fields in Patch requests.
2686	NullFields []string `json:"-"`
2687}
2688
2689func (s *TracksListResponse) MarshalJSON() ([]byte, error) {
2690	type NoMethod TracksListResponse
2691	raw := NoMethod(*s)
2692	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2693}
2694
2695// UserComment: User entry from conversation between user and developer.
2696type UserComment struct {
2697	// AndroidOsVersion: Integer Android SDK version of the user's device at
2698	// the time the review was written, e.g. 23 is Marshmallow. May be
2699	// absent.
2700	AndroidOsVersion int64 `json:"androidOsVersion,omitempty"`
2701
2702	// AppVersionCode: Integer version code of the app as installed at the
2703	// time the review was written. May be absent.
2704	AppVersionCode int64 `json:"appVersionCode,omitempty"`
2705
2706	// AppVersionName: String version name of the app as installed at the
2707	// time the review was written. May be absent.
2708	AppVersionName string `json:"appVersionName,omitempty"`
2709
2710	// Device: Codename for the reviewer's device, e.g. klte, flounder. May
2711	// be absent.
2712	Device string `json:"device,omitempty"`
2713
2714	// DeviceMetadata: Information about the characteristics of the user's
2715	// device.
2716	DeviceMetadata *DeviceMetadata `json:"deviceMetadata,omitempty"`
2717
2718	// LastModified: The last time at which this comment was updated.
2719	LastModified *Timestamp `json:"lastModified,omitempty"`
2720
2721	// OriginalText: Untranslated text of the review, where the review was
2722	// translated. If the review was not translated this is left blank.
2723	OriginalText string `json:"originalText,omitempty"`
2724
2725	// ReviewerLanguage: Language code for the reviewer. This is taken from
2726	// the device settings so is not guaranteed to match the language the
2727	// review is written in. May be absent.
2728	ReviewerLanguage string `json:"reviewerLanguage,omitempty"`
2729
2730	// StarRating: The star rating associated with the review, from 1 to 5.
2731	StarRating int64 `json:"starRating,omitempty"`
2732
2733	// Text: The content of the comment, i.e. review body. In some cases
2734	// users have been able to write a review with separate title and body;
2735	// in those cases the title and body are concatenated and separated by a
2736	// tab character.
2737	Text string `json:"text,omitempty"`
2738
2739	// ThumbsDownCount: Number of users who have given this review a thumbs
2740	// down.
2741	ThumbsDownCount int64 `json:"thumbsDownCount,omitempty"`
2742
2743	// ThumbsUpCount: Number of users who have given this review a thumbs
2744	// up.
2745	ThumbsUpCount int64 `json:"thumbsUpCount,omitempty"`
2746
2747	// ForceSendFields is a list of field names (e.g. "AndroidOsVersion") to
2748	// unconditionally include in API requests. By default, fields with
2749	// empty values are omitted from API requests. However, any non-pointer,
2750	// non-interface field appearing in ForceSendFields will be sent to the
2751	// server regardless of whether the field is empty or not. This may be
2752	// used to include empty fields in Patch requests.
2753	ForceSendFields []string `json:"-"`
2754
2755	// NullFields is a list of field names (e.g. "AndroidOsVersion") to
2756	// include in API requests with the JSON null value. By default, fields
2757	// with empty values are omitted from API requests. However, any field
2758	// with an empty value appearing in NullFields will be sent to the
2759	// server as null. It is an error if a field in this list has a
2760	// non-empty value. This may be used to include null fields in Patch
2761	// requests.
2762	NullFields []string `json:"-"`
2763}
2764
2765func (s *UserComment) MarshalJSON() ([]byte, error) {
2766	type NoMethod UserComment
2767	raw := NoMethod(*s)
2768	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2769}
2770
2771// UsesPermission: A permission used by this APK.
2772type UsesPermission struct {
2773	// MaxSdkVersion: Optionally, the maximum SDK version for which the
2774	// permission is required.
2775	MaxSdkVersion int64 `json:"maxSdkVersion,omitempty"`
2776
2777	// Name: The name of the permission requested.
2778	Name string `json:"name,omitempty"`
2779
2780	// ForceSendFields is a list of field names (e.g. "MaxSdkVersion") to
2781	// unconditionally include in API requests. By default, fields with
2782	// empty values are omitted from API requests. However, any non-pointer,
2783	// non-interface field appearing in ForceSendFields will be sent to the
2784	// server regardless of whether the field is empty or not. This may be
2785	// used to include empty fields in Patch requests.
2786	ForceSendFields []string `json:"-"`
2787
2788	// NullFields is a list of field names (e.g. "MaxSdkVersion") to include
2789	// in API requests with the JSON null value. By default, fields with
2790	// empty values are omitted from API requests. However, any field with
2791	// an empty value appearing in NullFields will be sent to the server as
2792	// null. It is an error if a field in this list has a non-empty value.
2793	// This may be used to include null fields in Patch requests.
2794	NullFields []string `json:"-"`
2795}
2796
2797func (s *UsesPermission) MarshalJSON() ([]byte, error) {
2798	type NoMethod UsesPermission
2799	raw := NoMethod(*s)
2800	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2801}
2802
2803// Variant: APK that is suitable for inclusion in a system image. The
2804// resource of SystemApksService.
2805type Variant struct {
2806	// DeviceSpec: The device spec used to generate the APK.
2807	DeviceSpec *DeviceSpec `json:"deviceSpec,omitempty"`
2808
2809	// VariantId: Output only. The ID of a previously created system APK
2810	// variant.
2811	VariantId int64 `json:"variantId,omitempty"`
2812
2813	// ServerResponse contains the HTTP response code and headers from the
2814	// server.
2815	googleapi.ServerResponse `json:"-"`
2816
2817	// ForceSendFields is a list of field names (e.g. "DeviceSpec") to
2818	// unconditionally include in API requests. By default, fields with
2819	// empty values are omitted from API requests. However, any non-pointer,
2820	// non-interface field appearing in ForceSendFields will be sent to the
2821	// server regardless of whether the field is empty or not. This may be
2822	// used to include empty fields in Patch requests.
2823	ForceSendFields []string `json:"-"`
2824
2825	// NullFields is a list of field names (e.g. "DeviceSpec") to include in
2826	// API requests with the JSON null value. By default, fields with empty
2827	// values are omitted from API requests. However, any field with an
2828	// empty value appearing in NullFields will be sent to the server as
2829	// null. It is an error if a field in this list has a non-empty value.
2830	// This may be used to include null fields in Patch requests.
2831	NullFields []string `json:"-"`
2832}
2833
2834func (s *Variant) MarshalJSON() ([]byte, error) {
2835	type NoMethod Variant
2836	raw := NoMethod(*s)
2837	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2838}
2839
2840// VoidedPurchase: A VoidedPurchase resource indicates a purchase that
2841// was either canceled/refunded/charged-back.
2842type VoidedPurchase struct {
2843	// Kind: This kind represents a voided purchase object in the
2844	// androidpublisher service.
2845	Kind string `json:"kind,omitempty"`
2846
2847	// OrderId: The order id which uniquely identifies a one-time purchase,
2848	// subscription purchase, or subscription renewal.
2849	OrderId string `json:"orderId,omitempty"`
2850
2851	// PurchaseTimeMillis: The time at which the purchase was made, in
2852	// milliseconds since the epoch (Jan 1, 1970).
2853	PurchaseTimeMillis int64 `json:"purchaseTimeMillis,omitempty,string"`
2854
2855	// PurchaseToken: The token which uniquely identifies a one-time
2856	// purchase or subscription. To uniquely identify subscription renewals
2857	// use order_id (available starting from version 3 of the API).
2858	PurchaseToken string `json:"purchaseToken,omitempty"`
2859
2860	// VoidedReason: The reason why the purchase was voided, possible values
2861	// are: 0. Other 1. Remorse 2. Not_received 3. Defective 4.
2862	// Accidental_purchase 5. Fraud 6. Friendly_fraud 7. Chargeback
2863	VoidedReason int64 `json:"voidedReason,omitempty"`
2864
2865	// VoidedSource: The initiator of voided purchase, possible values are:
2866	// 0. User 1. Developer 2. Google
2867	VoidedSource int64 `json:"voidedSource,omitempty"`
2868
2869	// VoidedTimeMillis: The time at which the purchase was
2870	// canceled/refunded/charged-back, in milliseconds since the epoch (Jan
2871	// 1, 1970).
2872	VoidedTimeMillis int64 `json:"voidedTimeMillis,omitempty,string"`
2873
2874	// ForceSendFields is a list of field names (e.g. "Kind") to
2875	// unconditionally include in API requests. By default, fields with
2876	// empty values are omitted from API requests. However, any non-pointer,
2877	// non-interface field appearing in ForceSendFields will be sent to the
2878	// server regardless of whether the field is empty or not. This may be
2879	// used to include empty fields in Patch requests.
2880	ForceSendFields []string `json:"-"`
2881
2882	// NullFields is a list of field names (e.g. "Kind") to include in API
2883	// requests with the JSON null value. By default, fields with empty
2884	// values are omitted from API requests. However, any field with an
2885	// empty value appearing in NullFields will be sent to the server as
2886	// null. It is an error if a field in this list has a non-empty value.
2887	// This may be used to include null fields in Patch requests.
2888	NullFields []string `json:"-"`
2889}
2890
2891func (s *VoidedPurchase) MarshalJSON() ([]byte, error) {
2892	type NoMethod VoidedPurchase
2893	raw := NoMethod(*s)
2894	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2895}
2896
2897// VoidedPurchasesListResponse: Response for the voidedpurchases.list
2898// API.
2899type VoidedPurchasesListResponse struct {
2900	// PageInfo: General pagination information.
2901	PageInfo *PageInfo `json:"pageInfo,omitempty"`
2902
2903	// TokenPagination: Pagination information for token pagination.
2904	TokenPagination *TokenPagination `json:"tokenPagination,omitempty"`
2905
2906	VoidedPurchases []*VoidedPurchase `json:"voidedPurchases,omitempty"`
2907
2908	// ServerResponse contains the HTTP response code and headers from the
2909	// server.
2910	googleapi.ServerResponse `json:"-"`
2911
2912	// ForceSendFields is a list of field names (e.g. "PageInfo") to
2913	// unconditionally include in API requests. By default, fields with
2914	// empty values are omitted from API requests. However, any non-pointer,
2915	// non-interface field appearing in ForceSendFields will be sent to the
2916	// server regardless of whether the field is empty or not. This may be
2917	// used to include empty fields in Patch requests.
2918	ForceSendFields []string `json:"-"`
2919
2920	// NullFields is a list of field names (e.g. "PageInfo") to include in
2921	// API requests with the JSON null value. By default, fields with empty
2922	// values are omitted from API requests. However, any field with an
2923	// empty value appearing in NullFields will be sent to the server as
2924	// null. It is an error if a field in this list has a non-empty value.
2925	// This may be used to include null fields in Patch requests.
2926	NullFields []string `json:"-"`
2927}
2928
2929func (s *VoidedPurchasesListResponse) MarshalJSON() ([]byte, error) {
2930	type NoMethod VoidedPurchasesListResponse
2931	raw := NoMethod(*s)
2932	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2933}
2934
2935// method id "androidpublisher.edits.commit":
2936
2937type EditsCommitCall struct {
2938	s           *Service
2939	packageName string
2940	editId      string
2941	urlParams_  gensupport.URLParams
2942	ctx_        context.Context
2943	header_     http.Header
2944}
2945
2946// Commit: Commits an app edit.
2947//
2948// - editId: Identifier of the edit.
2949// - packageName: Package name of the app.
2950func (r *EditsService) Commit(packageName string, editId string) *EditsCommitCall {
2951	c := &EditsCommitCall{s: r.s, urlParams_: make(gensupport.URLParams)}
2952	c.packageName = packageName
2953	c.editId = editId
2954	return c
2955}
2956
2957// Fields allows partial responses to be retrieved. See
2958// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
2959// for more information.
2960func (c *EditsCommitCall) Fields(s ...googleapi.Field) *EditsCommitCall {
2961	c.urlParams_.Set("fields", googleapi.CombineFields(s))
2962	return c
2963}
2964
2965// Context sets the context to be used in this call's Do method. Any
2966// pending HTTP request will be aborted if the provided context is
2967// canceled.
2968func (c *EditsCommitCall) Context(ctx context.Context) *EditsCommitCall {
2969	c.ctx_ = ctx
2970	return c
2971}
2972
2973// Header returns an http.Header that can be modified by the caller to
2974// add HTTP headers to the request.
2975func (c *EditsCommitCall) Header() http.Header {
2976	if c.header_ == nil {
2977		c.header_ = make(http.Header)
2978	}
2979	return c.header_
2980}
2981
2982func (c *EditsCommitCall) doRequest(alt string) (*http.Response, error) {
2983	reqHeaders := make(http.Header)
2984	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
2985	for k, v := range c.header_ {
2986		reqHeaders[k] = v
2987	}
2988	reqHeaders.Set("User-Agent", c.s.userAgent())
2989	var body io.Reader = nil
2990	c.urlParams_.Set("alt", alt)
2991	c.urlParams_.Set("prettyPrint", "false")
2992	urls := googleapi.ResolveRelative(c.s.BasePath, "androidpublisher/v3/applications/{packageName}/edits/{editId}:commit")
2993	urls += "?" + c.urlParams_.Encode()
2994	req, err := http.NewRequest("POST", urls, body)
2995	if err != nil {
2996		return nil, err
2997	}
2998	req.Header = reqHeaders
2999	googleapi.Expand(req.URL, map[string]string{
3000		"packageName": c.packageName,
3001		"editId":      c.editId,
3002	})
3003	return gensupport.SendRequest(c.ctx_, c.s.client, req)
3004}
3005
3006// Do executes the "androidpublisher.edits.commit" call.
3007// Exactly one of *AppEdit or error will be non-nil. Any non-2xx status
3008// code is an error. Response headers are in either
3009// *AppEdit.ServerResponse.Header or (if a response was returned at all)
3010// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
3011// check whether the returned error was because http.StatusNotModified
3012// was returned.
3013func (c *EditsCommitCall) Do(opts ...googleapi.CallOption) (*AppEdit, error) {
3014	gensupport.SetOptions(c.urlParams_, opts...)
3015	res, err := c.doRequest("json")
3016	if res != nil && res.StatusCode == http.StatusNotModified {
3017		if res.Body != nil {
3018			res.Body.Close()
3019		}
3020		return nil, &googleapi.Error{
3021			Code:   res.StatusCode,
3022			Header: res.Header,
3023		}
3024	}
3025	if err != nil {
3026		return nil, err
3027	}
3028	defer googleapi.CloseBody(res)
3029	if err := googleapi.CheckResponse(res); err != nil {
3030		return nil, err
3031	}
3032	ret := &AppEdit{
3033		ServerResponse: googleapi.ServerResponse{
3034			Header:         res.Header,
3035			HTTPStatusCode: res.StatusCode,
3036		},
3037	}
3038	target := &ret
3039	if err := gensupport.DecodeResponse(target, res); err != nil {
3040		return nil, err
3041	}
3042	return ret, nil
3043	// {
3044	//   "description": "Commits an app edit.",
3045	//   "flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}:commit",
3046	//   "httpMethod": "POST",
3047	//   "id": "androidpublisher.edits.commit",
3048	//   "parameterOrder": [
3049	//     "packageName",
3050	//     "editId"
3051	//   ],
3052	//   "parameters": {
3053	//     "editId": {
3054	//       "description": "Identifier of the edit.",
3055	//       "location": "path",
3056	//       "required": true,
3057	//       "type": "string"
3058	//     },
3059	//     "packageName": {
3060	//       "description": "Package name of the app.",
3061	//       "location": "path",
3062	//       "required": true,
3063	//       "type": "string"
3064	//     }
3065	//   },
3066	//   "path": "androidpublisher/v3/applications/{packageName}/edits/{editId}:commit",
3067	//   "response": {
3068	//     "$ref": "AppEdit"
3069	//   },
3070	//   "scopes": [
3071	//     "https://www.googleapis.com/auth/androidpublisher"
3072	//   ]
3073	// }
3074
3075}
3076
3077// method id "androidpublisher.edits.delete":
3078
3079type EditsDeleteCall struct {
3080	s           *Service
3081	packageName string
3082	editId      string
3083	urlParams_  gensupport.URLParams
3084	ctx_        context.Context
3085	header_     http.Header
3086}
3087
3088// Delete: Deletes an app edit.
3089//
3090// - editId: Identifier of the edit.
3091// - packageName: Package name of the app.
3092func (r *EditsService) Delete(packageName string, editId string) *EditsDeleteCall {
3093	c := &EditsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
3094	c.packageName = packageName
3095	c.editId = editId
3096	return c
3097}
3098
3099// Fields allows partial responses to be retrieved. See
3100// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
3101// for more information.
3102func (c *EditsDeleteCall) Fields(s ...googleapi.Field) *EditsDeleteCall {
3103	c.urlParams_.Set("fields", googleapi.CombineFields(s))
3104	return c
3105}
3106
3107// Context sets the context to be used in this call's Do method. Any
3108// pending HTTP request will be aborted if the provided context is
3109// canceled.
3110func (c *EditsDeleteCall) Context(ctx context.Context) *EditsDeleteCall {
3111	c.ctx_ = ctx
3112	return c
3113}
3114
3115// Header returns an http.Header that can be modified by the caller to
3116// add HTTP headers to the request.
3117func (c *EditsDeleteCall) Header() http.Header {
3118	if c.header_ == nil {
3119		c.header_ = make(http.Header)
3120	}
3121	return c.header_
3122}
3123
3124func (c *EditsDeleteCall) doRequest(alt string) (*http.Response, error) {
3125	reqHeaders := make(http.Header)
3126	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
3127	for k, v := range c.header_ {
3128		reqHeaders[k] = v
3129	}
3130	reqHeaders.Set("User-Agent", c.s.userAgent())
3131	var body io.Reader = nil
3132	c.urlParams_.Set("alt", alt)
3133	c.urlParams_.Set("prettyPrint", "false")
3134	urls := googleapi.ResolveRelative(c.s.BasePath, "androidpublisher/v3/applications/{packageName}/edits/{editId}")
3135	urls += "?" + c.urlParams_.Encode()
3136	req, err := http.NewRequest("DELETE", urls, body)
3137	if err != nil {
3138		return nil, err
3139	}
3140	req.Header = reqHeaders
3141	googleapi.Expand(req.URL, map[string]string{
3142		"packageName": c.packageName,
3143		"editId":      c.editId,
3144	})
3145	return gensupport.SendRequest(c.ctx_, c.s.client, req)
3146}
3147
3148// Do executes the "androidpublisher.edits.delete" call.
3149func (c *EditsDeleteCall) Do(opts ...googleapi.CallOption) error {
3150	gensupport.SetOptions(c.urlParams_, opts...)
3151	res, err := c.doRequest("json")
3152	if err != nil {
3153		return err
3154	}
3155	defer googleapi.CloseBody(res)
3156	if err := googleapi.CheckResponse(res); err != nil {
3157		return err
3158	}
3159	return nil
3160	// {
3161	//   "description": "Deletes an app edit.",
3162	//   "flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}",
3163	//   "httpMethod": "DELETE",
3164	//   "id": "androidpublisher.edits.delete",
3165	//   "parameterOrder": [
3166	//     "packageName",
3167	//     "editId"
3168	//   ],
3169	//   "parameters": {
3170	//     "editId": {
3171	//       "description": "Identifier of the edit.",
3172	//       "location": "path",
3173	//       "required": true,
3174	//       "type": "string"
3175	//     },
3176	//     "packageName": {
3177	//       "description": "Package name of the app.",
3178	//       "location": "path",
3179	//       "required": true,
3180	//       "type": "string"
3181	//     }
3182	//   },
3183	//   "path": "androidpublisher/v3/applications/{packageName}/edits/{editId}",
3184	//   "scopes": [
3185	//     "https://www.googleapis.com/auth/androidpublisher"
3186	//   ]
3187	// }
3188
3189}
3190
3191// method id "androidpublisher.edits.get":
3192
3193type EditsGetCall struct {
3194	s            *Service
3195	packageName  string
3196	editId       string
3197	urlParams_   gensupport.URLParams
3198	ifNoneMatch_ string
3199	ctx_         context.Context
3200	header_      http.Header
3201}
3202
3203// Get: Gets an app edit.
3204//
3205// - editId: Identifier of the edit.
3206// - packageName: Package name of the app.
3207func (r *EditsService) Get(packageName string, editId string) *EditsGetCall {
3208	c := &EditsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
3209	c.packageName = packageName
3210	c.editId = editId
3211	return c
3212}
3213
3214// Fields allows partial responses to be retrieved. See
3215// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
3216// for more information.
3217func (c *EditsGetCall) Fields(s ...googleapi.Field) *EditsGetCall {
3218	c.urlParams_.Set("fields", googleapi.CombineFields(s))
3219	return c
3220}
3221
3222// IfNoneMatch sets the optional parameter which makes the operation
3223// fail if the object's ETag matches the given value. This is useful for
3224// getting updates only after the object has changed since the last
3225// request. Use googleapi.IsNotModified to check whether the response
3226// error from Do is the result of In-None-Match.
3227func (c *EditsGetCall) IfNoneMatch(entityTag string) *EditsGetCall {
3228	c.ifNoneMatch_ = entityTag
3229	return c
3230}
3231
3232// Context sets the context to be used in this call's Do method. Any
3233// pending HTTP request will be aborted if the provided context is
3234// canceled.
3235func (c *EditsGetCall) Context(ctx context.Context) *EditsGetCall {
3236	c.ctx_ = ctx
3237	return c
3238}
3239
3240// Header returns an http.Header that can be modified by the caller to
3241// add HTTP headers to the request.
3242func (c *EditsGetCall) Header() http.Header {
3243	if c.header_ == nil {
3244		c.header_ = make(http.Header)
3245	}
3246	return c.header_
3247}
3248
3249func (c *EditsGetCall) doRequest(alt string) (*http.Response, error) {
3250	reqHeaders := make(http.Header)
3251	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
3252	for k, v := range c.header_ {
3253		reqHeaders[k] = v
3254	}
3255	reqHeaders.Set("User-Agent", c.s.userAgent())
3256	if c.ifNoneMatch_ != "" {
3257		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
3258	}
3259	var body io.Reader = nil
3260	c.urlParams_.Set("alt", alt)
3261	c.urlParams_.Set("prettyPrint", "false")
3262	urls := googleapi.ResolveRelative(c.s.BasePath, "androidpublisher/v3/applications/{packageName}/edits/{editId}")
3263	urls += "?" + c.urlParams_.Encode()
3264	req, err := http.NewRequest("GET", urls, body)
3265	if err != nil {
3266		return nil, err
3267	}
3268	req.Header = reqHeaders
3269	googleapi.Expand(req.URL, map[string]string{
3270		"packageName": c.packageName,
3271		"editId":      c.editId,
3272	})
3273	return gensupport.SendRequest(c.ctx_, c.s.client, req)
3274}
3275
3276// Do executes the "androidpublisher.edits.get" call.
3277// Exactly one of *AppEdit or error will be non-nil. Any non-2xx status
3278// code is an error. Response headers are in either
3279// *AppEdit.ServerResponse.Header or (if a response was returned at all)
3280// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
3281// check whether the returned error was because http.StatusNotModified
3282// was returned.
3283func (c *EditsGetCall) Do(opts ...googleapi.CallOption) (*AppEdit, error) {
3284	gensupport.SetOptions(c.urlParams_, opts...)
3285	res, err := c.doRequest("json")
3286	if res != nil && res.StatusCode == http.StatusNotModified {
3287		if res.Body != nil {
3288			res.Body.Close()
3289		}
3290		return nil, &googleapi.Error{
3291			Code:   res.StatusCode,
3292			Header: res.Header,
3293		}
3294	}
3295	if err != nil {
3296		return nil, err
3297	}
3298	defer googleapi.CloseBody(res)
3299	if err := googleapi.CheckResponse(res); err != nil {
3300		return nil, err
3301	}
3302	ret := &AppEdit{
3303		ServerResponse: googleapi.ServerResponse{
3304			Header:         res.Header,
3305			HTTPStatusCode: res.StatusCode,
3306		},
3307	}
3308	target := &ret
3309	if err := gensupport.DecodeResponse(target, res); err != nil {
3310		return nil, err
3311	}
3312	return ret, nil
3313	// {
3314	//   "description": "Gets an app edit.",
3315	//   "flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}",
3316	//   "httpMethod": "GET",
3317	//   "id": "androidpublisher.edits.get",
3318	//   "parameterOrder": [
3319	//     "packageName",
3320	//     "editId"
3321	//   ],
3322	//   "parameters": {
3323	//     "editId": {
3324	//       "description": "Identifier of the edit.",
3325	//       "location": "path",
3326	//       "required": true,
3327	//       "type": "string"
3328	//     },
3329	//     "packageName": {
3330	//       "description": "Package name of the app.",
3331	//       "location": "path",
3332	//       "required": true,
3333	//       "type": "string"
3334	//     }
3335	//   },
3336	//   "path": "androidpublisher/v3/applications/{packageName}/edits/{editId}",
3337	//   "response": {
3338	//     "$ref": "AppEdit"
3339	//   },
3340	//   "scopes": [
3341	//     "https://www.googleapis.com/auth/androidpublisher"
3342	//   ]
3343	// }
3344
3345}
3346
3347// method id "androidpublisher.edits.insert":
3348
3349type EditsInsertCall struct {
3350	s           *Service
3351	packageName string
3352	appedit     *AppEdit
3353	urlParams_  gensupport.URLParams
3354	ctx_        context.Context
3355	header_     http.Header
3356}
3357
3358// Insert: Creates a new edit for an app.
3359//
3360// - packageName: Package name of the app.
3361func (r *EditsService) Insert(packageName string, appedit *AppEdit) *EditsInsertCall {
3362	c := &EditsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
3363	c.packageName = packageName
3364	c.appedit = appedit
3365	return c
3366}
3367
3368// Fields allows partial responses to be retrieved. See
3369// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
3370// for more information.
3371func (c *EditsInsertCall) Fields(s ...googleapi.Field) *EditsInsertCall {
3372	c.urlParams_.Set("fields", googleapi.CombineFields(s))
3373	return c
3374}
3375
3376// Context sets the context to be used in this call's Do method. Any
3377// pending HTTP request will be aborted if the provided context is
3378// canceled.
3379func (c *EditsInsertCall) Context(ctx context.Context) *EditsInsertCall {
3380	c.ctx_ = ctx
3381	return c
3382}
3383
3384// Header returns an http.Header that can be modified by the caller to
3385// add HTTP headers to the request.
3386func (c *EditsInsertCall) Header() http.Header {
3387	if c.header_ == nil {
3388		c.header_ = make(http.Header)
3389	}
3390	return c.header_
3391}
3392
3393func (c *EditsInsertCall) doRequest(alt string) (*http.Response, error) {
3394	reqHeaders := make(http.Header)
3395	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
3396	for k, v := range c.header_ {
3397		reqHeaders[k] = v
3398	}
3399	reqHeaders.Set("User-Agent", c.s.userAgent())
3400	var body io.Reader = nil
3401	body, err := googleapi.WithoutDataWrapper.JSONReader(c.appedit)
3402	if err != nil {
3403		return nil, err
3404	}
3405	reqHeaders.Set("Content-Type", "application/json")
3406	c.urlParams_.Set("alt", alt)
3407	c.urlParams_.Set("prettyPrint", "false")
3408	urls := googleapi.ResolveRelative(c.s.BasePath, "androidpublisher/v3/applications/{packageName}/edits")
3409	urls += "?" + c.urlParams_.Encode()
3410	req, err := http.NewRequest("POST", urls, body)
3411	if err != nil {
3412		return nil, err
3413	}
3414	req.Header = reqHeaders
3415	googleapi.Expand(req.URL, map[string]string{
3416		"packageName": c.packageName,
3417	})
3418	return gensupport.SendRequest(c.ctx_, c.s.client, req)
3419}
3420
3421// Do executes the "androidpublisher.edits.insert" call.
3422// Exactly one of *AppEdit or error will be non-nil. Any non-2xx status
3423// code is an error. Response headers are in either
3424// *AppEdit.ServerResponse.Header or (if a response was returned at all)
3425// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
3426// check whether the returned error was because http.StatusNotModified
3427// was returned.
3428func (c *EditsInsertCall) Do(opts ...googleapi.CallOption) (*AppEdit, error) {
3429	gensupport.SetOptions(c.urlParams_, opts...)
3430	res, err := c.doRequest("json")
3431	if res != nil && res.StatusCode == http.StatusNotModified {
3432		if res.Body != nil {
3433			res.Body.Close()
3434		}
3435		return nil, &googleapi.Error{
3436			Code:   res.StatusCode,
3437			Header: res.Header,
3438		}
3439	}
3440	if err != nil {
3441		return nil, err
3442	}
3443	defer googleapi.CloseBody(res)
3444	if err := googleapi.CheckResponse(res); err != nil {
3445		return nil, err
3446	}
3447	ret := &AppEdit{
3448		ServerResponse: googleapi.ServerResponse{
3449			Header:         res.Header,
3450			HTTPStatusCode: res.StatusCode,
3451		},
3452	}
3453	target := &ret
3454	if err := gensupport.DecodeResponse(target, res); err != nil {
3455		return nil, err
3456	}
3457	return ret, nil
3458	// {
3459	//   "description": "Creates a new edit for an app.",
3460	//   "flatPath": "androidpublisher/v3/applications/{packageName}/edits",
3461	//   "httpMethod": "POST",
3462	//   "id": "androidpublisher.edits.insert",
3463	//   "parameterOrder": [
3464	//     "packageName"
3465	//   ],
3466	//   "parameters": {
3467	//     "packageName": {
3468	//       "description": "Package name of the app.",
3469	//       "location": "path",
3470	//       "required": true,
3471	//       "type": "string"
3472	//     }
3473	//   },
3474	//   "path": "androidpublisher/v3/applications/{packageName}/edits",
3475	//   "request": {
3476	//     "$ref": "AppEdit"
3477	//   },
3478	//   "response": {
3479	//     "$ref": "AppEdit"
3480	//   },
3481	//   "scopes": [
3482	//     "https://www.googleapis.com/auth/androidpublisher"
3483	//   ]
3484	// }
3485
3486}
3487
3488// method id "androidpublisher.edits.validate":
3489
3490type EditsValidateCall struct {
3491	s           *Service
3492	packageName string
3493	editId      string
3494	urlParams_  gensupport.URLParams
3495	ctx_        context.Context
3496	header_     http.Header
3497}
3498
3499// Validate: Validates an app edit.
3500//
3501// - editId: Identifier of the edit.
3502// - packageName: Package name of the app.
3503func (r *EditsService) Validate(packageName string, editId string) *EditsValidateCall {
3504	c := &EditsValidateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
3505	c.packageName = packageName
3506	c.editId = editId
3507	return c
3508}
3509
3510// Fields allows partial responses to be retrieved. See
3511// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
3512// for more information.
3513func (c *EditsValidateCall) Fields(s ...googleapi.Field) *EditsValidateCall {
3514	c.urlParams_.Set("fields", googleapi.CombineFields(s))
3515	return c
3516}
3517
3518// Context sets the context to be used in this call's Do method. Any
3519// pending HTTP request will be aborted if the provided context is
3520// canceled.
3521func (c *EditsValidateCall) Context(ctx context.Context) *EditsValidateCall {
3522	c.ctx_ = ctx
3523	return c
3524}
3525
3526// Header returns an http.Header that can be modified by the caller to
3527// add HTTP headers to the request.
3528func (c *EditsValidateCall) Header() http.Header {
3529	if c.header_ == nil {
3530		c.header_ = make(http.Header)
3531	}
3532	return c.header_
3533}
3534
3535func (c *EditsValidateCall) doRequest(alt string) (*http.Response, error) {
3536	reqHeaders := make(http.Header)
3537	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
3538	for k, v := range c.header_ {
3539		reqHeaders[k] = v
3540	}
3541	reqHeaders.Set("User-Agent", c.s.userAgent())
3542	var body io.Reader = nil
3543	c.urlParams_.Set("alt", alt)
3544	c.urlParams_.Set("prettyPrint", "false")
3545	urls := googleapi.ResolveRelative(c.s.BasePath, "androidpublisher/v3/applications/{packageName}/edits/{editId}:validate")
3546	urls += "?" + c.urlParams_.Encode()
3547	req, err := http.NewRequest("POST", urls, body)
3548	if err != nil {
3549		return nil, err
3550	}
3551	req.Header = reqHeaders
3552	googleapi.Expand(req.URL, map[string]string{
3553		"packageName": c.packageName,
3554		"editId":      c.editId,
3555	})
3556	return gensupport.SendRequest(c.ctx_, c.s.client, req)
3557}
3558
3559// Do executes the "androidpublisher.edits.validate" call.
3560// Exactly one of *AppEdit or error will be non-nil. Any non-2xx status
3561// code is an error. Response headers are in either
3562// *AppEdit.ServerResponse.Header or (if a response was returned at all)
3563// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
3564// check whether the returned error was because http.StatusNotModified
3565// was returned.
3566func (c *EditsValidateCall) Do(opts ...googleapi.CallOption) (*AppEdit, error) {
3567	gensupport.SetOptions(c.urlParams_, opts...)
3568	res, err := c.doRequest("json")
3569	if res != nil && res.StatusCode == http.StatusNotModified {
3570		if res.Body != nil {
3571			res.Body.Close()
3572		}
3573		return nil, &googleapi.Error{
3574			Code:   res.StatusCode,
3575			Header: res.Header,
3576		}
3577	}
3578	if err != nil {
3579		return nil, err
3580	}
3581	defer googleapi.CloseBody(res)
3582	if err := googleapi.CheckResponse(res); err != nil {
3583		return nil, err
3584	}
3585	ret := &AppEdit{
3586		ServerResponse: googleapi.ServerResponse{
3587			Header:         res.Header,
3588			HTTPStatusCode: res.StatusCode,
3589		},
3590	}
3591	target := &ret
3592	if err := gensupport.DecodeResponse(target, res); err != nil {
3593		return nil, err
3594	}
3595	return ret, nil
3596	// {
3597	//   "description": "Validates an app edit.",
3598	//   "flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}:validate",
3599	//   "httpMethod": "POST",
3600	//   "id": "androidpublisher.edits.validate",
3601	//   "parameterOrder": [
3602	//     "packageName",
3603	//     "editId"
3604	//   ],
3605	//   "parameters": {
3606	//     "editId": {
3607	//       "description": "Identifier of the edit.",
3608	//       "location": "path",
3609	//       "required": true,
3610	//       "type": "string"
3611	//     },
3612	//     "packageName": {
3613	//       "description": "Package name of the app.",
3614	//       "location": "path",
3615	//       "required": true,
3616	//       "type": "string"
3617	//     }
3618	//   },
3619	//   "path": "androidpublisher/v3/applications/{packageName}/edits/{editId}:validate",
3620	//   "response": {
3621	//     "$ref": "AppEdit"
3622	//   },
3623	//   "scopes": [
3624	//     "https://www.googleapis.com/auth/androidpublisher"
3625	//   ]
3626	// }
3627
3628}
3629
3630// method id "androidpublisher.edits.apks.addexternallyhosted":
3631
3632type EditsApksAddexternallyhostedCall struct {
3633	s                              *Service
3634	packageName                    string
3635	editId                         string
3636	apksaddexternallyhostedrequest *ApksAddExternallyHostedRequest
3637	urlParams_                     gensupport.URLParams
3638	ctx_                           context.Context
3639	header_                        http.Header
3640}
3641
3642// Addexternallyhosted: Creates a new APK without uploading the APK
3643// itself to Google Play, instead hosting the APK at a specified URL.
3644// This function is only available to organizations using Managed Play
3645// whose application is configured to restrict distribution to the
3646// organizations.
3647//
3648// - editId: Identifier of the edit.
3649// - packageName: Package name of the app.
3650func (r *EditsApksService) Addexternallyhosted(packageName string, editId string, apksaddexternallyhostedrequest *ApksAddExternallyHostedRequest) *EditsApksAddexternallyhostedCall {
3651	c := &EditsApksAddexternallyhostedCall{s: r.s, urlParams_: make(gensupport.URLParams)}
3652	c.packageName = packageName
3653	c.editId = editId
3654	c.apksaddexternallyhostedrequest = apksaddexternallyhostedrequest
3655	return c
3656}
3657
3658// Fields allows partial responses to be retrieved. See
3659// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
3660// for more information.
3661func (c *EditsApksAddexternallyhostedCall) Fields(s ...googleapi.Field) *EditsApksAddexternallyhostedCall {
3662	c.urlParams_.Set("fields", googleapi.CombineFields(s))
3663	return c
3664}
3665
3666// Context sets the context to be used in this call's Do method. Any
3667// pending HTTP request will be aborted if the provided context is
3668// canceled.
3669func (c *EditsApksAddexternallyhostedCall) Context(ctx context.Context) *EditsApksAddexternallyhostedCall {
3670	c.ctx_ = ctx
3671	return c
3672}
3673
3674// Header returns an http.Header that can be modified by the caller to
3675// add HTTP headers to the request.
3676func (c *EditsApksAddexternallyhostedCall) Header() http.Header {
3677	if c.header_ == nil {
3678		c.header_ = make(http.Header)
3679	}
3680	return c.header_
3681}
3682
3683func (c *EditsApksAddexternallyhostedCall) doRequest(alt string) (*http.Response, error) {
3684	reqHeaders := make(http.Header)
3685	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
3686	for k, v := range c.header_ {
3687		reqHeaders[k] = v
3688	}
3689	reqHeaders.Set("User-Agent", c.s.userAgent())
3690	var body io.Reader = nil
3691	body, err := googleapi.WithoutDataWrapper.JSONReader(c.apksaddexternallyhostedrequest)
3692	if err != nil {
3693		return nil, err
3694	}
3695	reqHeaders.Set("Content-Type", "application/json")
3696	c.urlParams_.Set("alt", alt)
3697	c.urlParams_.Set("prettyPrint", "false")
3698	urls := googleapi.ResolveRelative(c.s.BasePath, "androidpublisher/v3/applications/{packageName}/edits/{editId}/apks/externallyHosted")
3699	urls += "?" + c.urlParams_.Encode()
3700	req, err := http.NewRequest("POST", urls, body)
3701	if err != nil {
3702		return nil, err
3703	}
3704	req.Header = reqHeaders
3705	googleapi.Expand(req.URL, map[string]string{
3706		"packageName": c.packageName,
3707		"editId":      c.editId,
3708	})
3709	return gensupport.SendRequest(c.ctx_, c.s.client, req)
3710}
3711
3712// Do executes the "androidpublisher.edits.apks.addexternallyhosted" call.
3713// Exactly one of *ApksAddExternallyHostedResponse or error will be
3714// non-nil. Any non-2xx status code is an error. Response headers are in
3715// either *ApksAddExternallyHostedResponse.ServerResponse.Header or (if
3716// a response was returned at all) in error.(*googleapi.Error).Header.
3717// Use googleapi.IsNotModified to check whether the returned error was
3718// because http.StatusNotModified was returned.
3719func (c *EditsApksAddexternallyhostedCall) Do(opts ...googleapi.CallOption) (*ApksAddExternallyHostedResponse, error) {
3720	gensupport.SetOptions(c.urlParams_, opts...)
3721	res, err := c.doRequest("json")
3722	if res != nil && res.StatusCode == http.StatusNotModified {
3723		if res.Body != nil {
3724			res.Body.Close()
3725		}
3726		return nil, &googleapi.Error{
3727			Code:   res.StatusCode,
3728			Header: res.Header,
3729		}
3730	}
3731	if err != nil {
3732		return nil, err
3733	}
3734	defer googleapi.CloseBody(res)
3735	if err := googleapi.CheckResponse(res); err != nil {
3736		return nil, err
3737	}
3738	ret := &ApksAddExternallyHostedResponse{
3739		ServerResponse: googleapi.ServerResponse{
3740			Header:         res.Header,
3741			HTTPStatusCode: res.StatusCode,
3742		},
3743	}
3744	target := &ret
3745	if err := gensupport.DecodeResponse(target, res); err != nil {
3746		return nil, err
3747	}
3748	return ret, nil
3749	// {
3750	//   "description": "Creates a new APK without uploading the APK itself to Google Play, instead hosting the APK at a specified URL. This function is only available to organizations using Managed Play whose application is configured to restrict distribution to the organizations.",
3751	//   "flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/apks/externallyHosted",
3752	//   "httpMethod": "POST",
3753	//   "id": "androidpublisher.edits.apks.addexternallyhosted",
3754	//   "parameterOrder": [
3755	//     "packageName",
3756	//     "editId"
3757	//   ],
3758	//   "parameters": {
3759	//     "editId": {
3760	//       "description": "Identifier of the edit.",
3761	//       "location": "path",
3762	//       "required": true,
3763	//       "type": "string"
3764	//     },
3765	//     "packageName": {
3766	//       "description": "Package name of the app.",
3767	//       "location": "path",
3768	//       "required": true,
3769	//       "type": "string"
3770	//     }
3771	//   },
3772	//   "path": "androidpublisher/v3/applications/{packageName}/edits/{editId}/apks/externallyHosted",
3773	//   "request": {
3774	//     "$ref": "ApksAddExternallyHostedRequest"
3775	//   },
3776	//   "response": {
3777	//     "$ref": "ApksAddExternallyHostedResponse"
3778	//   },
3779	//   "scopes": [
3780	//     "https://www.googleapis.com/auth/androidpublisher"
3781	//   ]
3782	// }
3783
3784}
3785
3786// method id "androidpublisher.edits.apks.list":
3787
3788type EditsApksListCall struct {
3789	s            *Service
3790	packageName  string
3791	editId       string
3792	urlParams_   gensupport.URLParams
3793	ifNoneMatch_ string
3794	ctx_         context.Context
3795	header_      http.Header
3796}
3797
3798// List: Lists all current APKs of the app and edit.
3799//
3800// - editId: Identifier of the edit.
3801// - packageName: Package name of the app.
3802func (r *EditsApksService) List(packageName string, editId string) *EditsApksListCall {
3803	c := &EditsApksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
3804	c.packageName = packageName
3805	c.editId = editId
3806	return c
3807}
3808
3809// Fields allows partial responses to be retrieved. See
3810// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
3811// for more information.
3812func (c *EditsApksListCall) Fields(s ...googleapi.Field) *EditsApksListCall {
3813	c.urlParams_.Set("fields", googleapi.CombineFields(s))
3814	return c
3815}
3816
3817// IfNoneMatch sets the optional parameter which makes the operation
3818// fail if the object's ETag matches the given value. This is useful for
3819// getting updates only after the object has changed since the last
3820// request. Use googleapi.IsNotModified to check whether the response
3821// error from Do is the result of In-None-Match.
3822func (c *EditsApksListCall) IfNoneMatch(entityTag string) *EditsApksListCall {
3823	c.ifNoneMatch_ = entityTag
3824	return c
3825}
3826
3827// Context sets the context to be used in this call's Do method. Any
3828// pending HTTP request will be aborted if the provided context is
3829// canceled.
3830func (c *EditsApksListCall) Context(ctx context.Context) *EditsApksListCall {
3831	c.ctx_ = ctx
3832	return c
3833}
3834
3835// Header returns an http.Header that can be modified by the caller to
3836// add HTTP headers to the request.
3837func (c *EditsApksListCall) Header() http.Header {
3838	if c.header_ == nil {
3839		c.header_ = make(http.Header)
3840	}
3841	return c.header_
3842}
3843
3844func (c *EditsApksListCall) doRequest(alt string) (*http.Response, error) {
3845	reqHeaders := make(http.Header)
3846	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
3847	for k, v := range c.header_ {
3848		reqHeaders[k] = v
3849	}
3850	reqHeaders.Set("User-Agent", c.s.userAgent())
3851	if c.ifNoneMatch_ != "" {
3852		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
3853	}
3854	var body io.Reader = nil
3855	c.urlParams_.Set("alt", alt)
3856	c.urlParams_.Set("prettyPrint", "false")
3857	urls := googleapi.ResolveRelative(c.s.BasePath, "androidpublisher/v3/applications/{packageName}/edits/{editId}/apks")
3858	urls += "?" + c.urlParams_.Encode()
3859	req, err := http.NewRequest("GET", urls, body)
3860	if err != nil {
3861		return nil, err
3862	}
3863	req.Header = reqHeaders
3864	googleapi.Expand(req.URL, map[string]string{
3865		"packageName": c.packageName,
3866		"editId":      c.editId,
3867	})
3868	return gensupport.SendRequest(c.ctx_, c.s.client, req)
3869}
3870
3871// Do executes the "androidpublisher.edits.apks.list" call.
3872// Exactly one of *ApksListResponse or error will be non-nil. Any
3873// non-2xx status code is an error. Response headers are in either
3874// *ApksListResponse.ServerResponse.Header or (if a response was
3875// returned at all) in error.(*googleapi.Error).Header. Use
3876// googleapi.IsNotModified to check whether the returned error was
3877// because http.StatusNotModified was returned.
3878func (c *EditsApksListCall) Do(opts ...googleapi.CallOption) (*ApksListResponse, error) {
3879	gensupport.SetOptions(c.urlParams_, opts...)
3880	res, err := c.doRequest("json")
3881	if res != nil && res.StatusCode == http.StatusNotModified {
3882		if res.Body != nil {
3883			res.Body.Close()
3884		}
3885		return nil, &googleapi.Error{
3886			Code:   res.StatusCode,
3887			Header: res.Header,
3888		}
3889	}
3890	if err != nil {
3891		return nil, err
3892	}
3893	defer googleapi.CloseBody(res)
3894	if err := googleapi.CheckResponse(res); err != nil {
3895		return nil, err
3896	}
3897	ret := &ApksListResponse{
3898		ServerResponse: googleapi.ServerResponse{
3899			Header:         res.Header,
3900			HTTPStatusCode: res.StatusCode,
3901		},
3902	}
3903	target := &ret
3904	if err := gensupport.DecodeResponse(target, res); err != nil {
3905		return nil, err
3906	}
3907	return ret, nil
3908	// {
3909	//   "description": "Lists all current APKs of the app and edit.",
3910	//   "flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/apks",
3911	//   "httpMethod": "GET",
3912	//   "id": "androidpublisher.edits.apks.list",
3913	//   "parameterOrder": [
3914	//     "packageName",
3915	//     "editId"
3916	//   ],
3917	//   "parameters": {
3918	//     "editId": {
3919	//       "description": "Identifier of the edit.",
3920	//       "location": "path",
3921	//       "required": true,
3922	//       "type": "string"
3923	//     },
3924	//     "packageName": {
3925	//       "description": "Package name of the app.",
3926	//       "location": "path",
3927	//       "required": true,
3928	//       "type": "string"
3929	//     }
3930	//   },
3931	//   "path": "androidpublisher/v3/applications/{packageName}/edits/{editId}/apks",
3932	//   "response": {
3933	//     "$ref": "ApksListResponse"
3934	//   },
3935	//   "scopes": [
3936	//     "https://www.googleapis.com/auth/androidpublisher"
3937	//   ]
3938	// }
3939
3940}
3941
3942// method id "androidpublisher.edits.apks.upload":
3943
3944type EditsApksUploadCall struct {
3945	s           *Service
3946	packageName string
3947	editId      string
3948	urlParams_  gensupport.URLParams
3949	mediaInfo_  *gensupport.MediaInfo
3950	ctx_        context.Context
3951	header_     http.Header
3952}
3953
3954// Upload: Uploads an APK and adds to the current edit.
3955//
3956// - editId: Identifier of the edit.
3957// - packageName: Package name of the app.
3958func (r *EditsApksService) Upload(packageName string, editId string) *EditsApksUploadCall {
3959	c := &EditsApksUploadCall{s: r.s, urlParams_: make(gensupport.URLParams)}
3960	c.packageName = packageName
3961	c.editId = editId
3962	return c
3963}
3964
3965// Media specifies the media to upload in one or more chunks. The chunk
3966// size may be controlled by supplying a MediaOption generated by
3967// googleapi.ChunkSize. The chunk size defaults to
3968// googleapi.DefaultUploadChunkSize.The Content-Type header used in the
3969// upload request will be determined by sniffing the contents of r,
3970// unless a MediaOption generated by googleapi.ContentType is
3971// supplied.
3972// At most one of Media and ResumableMedia may be set.
3973func (c *EditsApksUploadCall) Media(r io.Reader, options ...googleapi.MediaOption) *EditsApksUploadCall {
3974	c.mediaInfo_ = gensupport.NewInfoFromMedia(r, options)
3975	return c
3976}
3977
3978// ResumableMedia specifies the media to upload in chunks and can be
3979// canceled with ctx.
3980//
3981// Deprecated: use Media instead.
3982//
3983// At most one of Media and ResumableMedia may be set. mediaType
3984// identifies the MIME media type of the upload, such as "image/png". If
3985// mediaType is "", it will be auto-detected. The provided ctx will
3986// supersede any context previously provided to the Context method.
3987func (c *EditsApksUploadCall) ResumableMedia(ctx context.Context, r io.ReaderAt, size int64, mediaType string) *EditsApksUploadCall {
3988	c.ctx_ = ctx
3989	c.mediaInfo_ = gensupport.NewInfoFromResumableMedia(r, size, mediaType)
3990	return c
3991}
3992
3993// ProgressUpdater provides a callback function that will be called
3994// after every chunk. It should be a low-latency function in order to
3995// not slow down the upload operation. This should only be called when
3996// using ResumableMedia (as opposed to Media).
3997func (c *EditsApksUploadCall) ProgressUpdater(pu googleapi.ProgressUpdater) *EditsApksUploadCall {
3998	c.mediaInfo_.SetProgressUpdater(pu)
3999	return c
4000}
4001
4002// Fields allows partial responses to be retrieved. See
4003// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4004// for more information.
4005func (c *EditsApksUploadCall) Fields(s ...googleapi.Field) *EditsApksUploadCall {
4006	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4007	return c
4008}
4009
4010// Context sets the context to be used in this call's Do method. Any
4011// pending HTTP request will be aborted if the provided context is
4012// canceled.
4013// This context will supersede any context previously provided to the
4014// ResumableMedia method.
4015func (c *EditsApksUploadCall) Context(ctx context.Context) *EditsApksUploadCall {
4016	c.ctx_ = ctx
4017	return c
4018}
4019
4020// Header returns an http.Header that can be modified by the caller to
4021// add HTTP headers to the request.
4022func (c *EditsApksUploadCall) Header() http.Header {
4023	if c.header_ == nil {
4024		c.header_ = make(http.Header)
4025	}
4026	return c.header_
4027}
4028
4029func (c *EditsApksUploadCall) doRequest(alt string) (*http.Response, error) {
4030	reqHeaders := make(http.Header)
4031	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
4032	for k, v := range c.header_ {
4033		reqHeaders[k] = v
4034	}
4035	reqHeaders.Set("User-Agent", c.s.userAgent())
4036	var body io.Reader = nil
4037	c.urlParams_.Set("alt", alt)
4038	c.urlParams_.Set("prettyPrint", "false")
4039	urls := googleapi.ResolveRelative(c.s.BasePath, "androidpublisher/v3/applications/{packageName}/edits/{editId}/apks")
4040	if c.mediaInfo_ != nil {
4041		urls = googleapi.ResolveRelative(c.s.BasePath, "/upload/androidpublisher/v3/applications/{packageName}/edits/{editId}/apks")
4042		c.urlParams_.Set("uploadType", c.mediaInfo_.UploadType())
4043	}
4044	if body == nil {
4045		body = new(bytes.Buffer)
4046		reqHeaders.Set("Content-Type", "application/json")
4047	}
4048	body, getBody, cleanup := c.mediaInfo_.UploadRequest(reqHeaders, body)
4049	defer cleanup()
4050	urls += "?" + c.urlParams_.Encode()
4051	req, err := http.NewRequest("POST", urls, body)
4052	if err != nil {
4053		return nil, err
4054	}
4055	req.Header = reqHeaders
4056	req.GetBody = getBody
4057	googleapi.Expand(req.URL, map[string]string{
4058		"packageName": c.packageName,
4059		"editId":      c.editId,
4060	})
4061	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4062}
4063
4064// Do executes the "androidpublisher.edits.apks.upload" call.
4065// Exactly one of *Apk or error will be non-nil. Any non-2xx status code
4066// is an error. Response headers are in either
4067// *Apk.ServerResponse.Header or (if a response was returned at all) in
4068// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
4069// whether the returned error was because http.StatusNotModified was
4070// returned.
4071func (c *EditsApksUploadCall) Do(opts ...googleapi.CallOption) (*Apk, error) {
4072	gensupport.SetOptions(c.urlParams_, opts...)
4073	res, err := c.doRequest("json")
4074	if res != nil && res.StatusCode == http.StatusNotModified {
4075		if res.Body != nil {
4076			res.Body.Close()
4077		}
4078		return nil, &googleapi.Error{
4079			Code:   res.StatusCode,
4080			Header: res.Header,
4081		}
4082	}
4083	if err != nil {
4084		return nil, err
4085	}
4086	defer googleapi.CloseBody(res)
4087	if err := googleapi.CheckResponse(res); err != nil {
4088		return nil, err
4089	}
4090	rx := c.mediaInfo_.ResumableUpload(res.Header.Get("Location"))
4091	if rx != nil {
4092		rx.Client = c.s.client
4093		rx.UserAgent = c.s.userAgent()
4094		ctx := c.ctx_
4095		if ctx == nil {
4096			ctx = context.TODO()
4097		}
4098		res, err = rx.Upload(ctx)
4099		if err != nil {
4100			return nil, err
4101		}
4102		defer res.Body.Close()
4103		if err := googleapi.CheckResponse(res); err != nil {
4104			return nil, err
4105		}
4106	}
4107	ret := &Apk{
4108		ServerResponse: googleapi.ServerResponse{
4109			Header:         res.Header,
4110			HTTPStatusCode: res.StatusCode,
4111		},
4112	}
4113	target := &ret
4114	if err := gensupport.DecodeResponse(target, res); err != nil {
4115		return nil, err
4116	}
4117	return ret, nil
4118	// {
4119	//   "description": "Uploads an APK and adds to the current edit.",
4120	//   "flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/apks",
4121	//   "httpMethod": "POST",
4122	//   "id": "androidpublisher.edits.apks.upload",
4123	//   "mediaUpload": {
4124	//     "accept": [
4125	//       "application/octet-stream",
4126	//       "application/vnd.android.package-archive"
4127	//     ],
4128	//     "maxSize": "10737418240",
4129	//     "protocols": {
4130	//       "resumable": {
4131	//         "multipart": true,
4132	//         "path": "/resumable/upload/androidpublisher/v3/applications/{packageName}/edits/{editId}/apks"
4133	//       },
4134	//       "simple": {
4135	//         "multipart": true,
4136	//         "path": "/upload/androidpublisher/v3/applications/{packageName}/edits/{editId}/apks"
4137	//       }
4138	//     }
4139	//   },
4140	//   "parameterOrder": [
4141	//     "packageName",
4142	//     "editId"
4143	//   ],
4144	//   "parameters": {
4145	//     "editId": {
4146	//       "description": "Identifier of the edit.",
4147	//       "location": "path",
4148	//       "required": true,
4149	//       "type": "string"
4150	//     },
4151	//     "packageName": {
4152	//       "description": "Package name of the app.",
4153	//       "location": "path",
4154	//       "required": true,
4155	//       "type": "string"
4156	//     }
4157	//   },
4158	//   "path": "androidpublisher/v3/applications/{packageName}/edits/{editId}/apks",
4159	//   "response": {
4160	//     "$ref": "Apk"
4161	//   },
4162	//   "scopes": [
4163	//     "https://www.googleapis.com/auth/androidpublisher"
4164	//   ],
4165	//   "supportsMediaUpload": true
4166	// }
4167
4168}
4169
4170// method id "androidpublisher.edits.bundles.list":
4171
4172type EditsBundlesListCall struct {
4173	s            *Service
4174	packageName  string
4175	editId       string
4176	urlParams_   gensupport.URLParams
4177	ifNoneMatch_ string
4178	ctx_         context.Context
4179	header_      http.Header
4180}
4181
4182// List: Lists all current Android App Bundles of the app and edit.
4183//
4184// - editId: Identifier of the edit.
4185// - packageName: Package name of the app.
4186func (r *EditsBundlesService) List(packageName string, editId string) *EditsBundlesListCall {
4187	c := &EditsBundlesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4188	c.packageName = packageName
4189	c.editId = editId
4190	return c
4191}
4192
4193// Fields allows partial responses to be retrieved. See
4194// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4195// for more information.
4196func (c *EditsBundlesListCall) Fields(s ...googleapi.Field) *EditsBundlesListCall {
4197	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4198	return c
4199}
4200
4201// IfNoneMatch sets the optional parameter which makes the operation
4202// fail if the object's ETag matches the given value. This is useful for
4203// getting updates only after the object has changed since the last
4204// request. Use googleapi.IsNotModified to check whether the response
4205// error from Do is the result of In-None-Match.
4206func (c *EditsBundlesListCall) IfNoneMatch(entityTag string) *EditsBundlesListCall {
4207	c.ifNoneMatch_ = entityTag
4208	return c
4209}
4210
4211// Context sets the context to be used in this call's Do method. Any
4212// pending HTTP request will be aborted if the provided context is
4213// canceled.
4214func (c *EditsBundlesListCall) Context(ctx context.Context) *EditsBundlesListCall {
4215	c.ctx_ = ctx
4216	return c
4217}
4218
4219// Header returns an http.Header that can be modified by the caller to
4220// add HTTP headers to the request.
4221func (c *EditsBundlesListCall) Header() http.Header {
4222	if c.header_ == nil {
4223		c.header_ = make(http.Header)
4224	}
4225	return c.header_
4226}
4227
4228func (c *EditsBundlesListCall) doRequest(alt string) (*http.Response, error) {
4229	reqHeaders := make(http.Header)
4230	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
4231	for k, v := range c.header_ {
4232		reqHeaders[k] = v
4233	}
4234	reqHeaders.Set("User-Agent", c.s.userAgent())
4235	if c.ifNoneMatch_ != "" {
4236		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
4237	}
4238	var body io.Reader = nil
4239	c.urlParams_.Set("alt", alt)
4240	c.urlParams_.Set("prettyPrint", "false")
4241	urls := googleapi.ResolveRelative(c.s.BasePath, "androidpublisher/v3/applications/{packageName}/edits/{editId}/bundles")
4242	urls += "?" + c.urlParams_.Encode()
4243	req, err := http.NewRequest("GET", urls, body)
4244	if err != nil {
4245		return nil, err
4246	}
4247	req.Header = reqHeaders
4248	googleapi.Expand(req.URL, map[string]string{
4249		"packageName": c.packageName,
4250		"editId":      c.editId,
4251	})
4252	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4253}
4254
4255// Do executes the "androidpublisher.edits.bundles.list" call.
4256// Exactly one of *BundlesListResponse or error will be non-nil. Any
4257// non-2xx status code is an error. Response headers are in either
4258// *BundlesListResponse.ServerResponse.Header or (if a response was
4259// returned at all) in error.(*googleapi.Error).Header. Use
4260// googleapi.IsNotModified to check whether the returned error was
4261// because http.StatusNotModified was returned.
4262func (c *EditsBundlesListCall) Do(opts ...googleapi.CallOption) (*BundlesListResponse, error) {
4263	gensupport.SetOptions(c.urlParams_, opts...)
4264	res, err := c.doRequest("json")
4265	if res != nil && res.StatusCode == http.StatusNotModified {
4266		if res.Body != nil {
4267			res.Body.Close()
4268		}
4269		return nil, &googleapi.Error{
4270			Code:   res.StatusCode,
4271			Header: res.Header,
4272		}
4273	}
4274	if err != nil {
4275		return nil, err
4276	}
4277	defer googleapi.CloseBody(res)
4278	if err := googleapi.CheckResponse(res); err != nil {
4279		return nil, err
4280	}
4281	ret := &BundlesListResponse{
4282		ServerResponse: googleapi.ServerResponse{
4283			Header:         res.Header,
4284			HTTPStatusCode: res.StatusCode,
4285		},
4286	}
4287	target := &ret
4288	if err := gensupport.DecodeResponse(target, res); err != nil {
4289		return nil, err
4290	}
4291	return ret, nil
4292	// {
4293	//   "description": "Lists all current Android App Bundles of the app and edit.",
4294	//   "flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/bundles",
4295	//   "httpMethod": "GET",
4296	//   "id": "androidpublisher.edits.bundles.list",
4297	//   "parameterOrder": [
4298	//     "packageName",
4299	//     "editId"
4300	//   ],
4301	//   "parameters": {
4302	//     "editId": {
4303	//       "description": "Identifier of the edit.",
4304	//       "location": "path",
4305	//       "required": true,
4306	//       "type": "string"
4307	//     },
4308	//     "packageName": {
4309	//       "description": "Package name of the app.",
4310	//       "location": "path",
4311	//       "required": true,
4312	//       "type": "string"
4313	//     }
4314	//   },
4315	//   "path": "androidpublisher/v3/applications/{packageName}/edits/{editId}/bundles",
4316	//   "response": {
4317	//     "$ref": "BundlesListResponse"
4318	//   },
4319	//   "scopes": [
4320	//     "https://www.googleapis.com/auth/androidpublisher"
4321	//   ]
4322	// }
4323
4324}
4325
4326// method id "androidpublisher.edits.bundles.upload":
4327
4328type EditsBundlesUploadCall struct {
4329	s           *Service
4330	packageName string
4331	editId      string
4332	urlParams_  gensupport.URLParams
4333	mediaInfo_  *gensupport.MediaInfo
4334	ctx_        context.Context
4335	header_     http.Header
4336}
4337
4338// Upload: Uploads a new Android App Bundle to this edit. If you are
4339// using the Google API client libraries, please increase the timeout of
4340// the http request before calling this endpoint (a timeout of 2 minutes
4341// is recommended). See Timeouts and Errors
4342// (https://developers.google.com/api-client-library/java/google-api-java-client/errors)
4343// for an example in java.
4344//
4345// - editId: Identifier of the edit.
4346// - packageName: Package name of the app.
4347func (r *EditsBundlesService) Upload(packageName string, editId string) *EditsBundlesUploadCall {
4348	c := &EditsBundlesUploadCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4349	c.packageName = packageName
4350	c.editId = editId
4351	return c
4352}
4353
4354// AckBundleInstallationWarning sets the optional parameter
4355// "ackBundleInstallationWarning": Must be set to true if the bundle
4356// installation may trigger a warning on user devices (for example, if
4357// installation size may be over a threshold, typically 100 MB).
4358func (c *EditsBundlesUploadCall) AckBundleInstallationWarning(ackBundleInstallationWarning bool) *EditsBundlesUploadCall {
4359	c.urlParams_.Set("ackBundleInstallationWarning", fmt.Sprint(ackBundleInstallationWarning))
4360	return c
4361}
4362
4363// Media specifies the media to upload in one or more chunks. The chunk
4364// size may be controlled by supplying a MediaOption generated by
4365// googleapi.ChunkSize. The chunk size defaults to
4366// googleapi.DefaultUploadChunkSize.The Content-Type header used in the
4367// upload request will be determined by sniffing the contents of r,
4368// unless a MediaOption generated by googleapi.ContentType is
4369// supplied.
4370// At most one of Media and ResumableMedia may be set.
4371func (c *EditsBundlesUploadCall) Media(r io.Reader, options ...googleapi.MediaOption) *EditsBundlesUploadCall {
4372	c.mediaInfo_ = gensupport.NewInfoFromMedia(r, options)
4373	return c
4374}
4375
4376// ResumableMedia specifies the media to upload in chunks and can be
4377// canceled with ctx.
4378//
4379// Deprecated: use Media instead.
4380//
4381// At most one of Media and ResumableMedia may be set. mediaType
4382// identifies the MIME media type of the upload, such as "image/png". If
4383// mediaType is "", it will be auto-detected. The provided ctx will
4384// supersede any context previously provided to the Context method.
4385func (c *EditsBundlesUploadCall) ResumableMedia(ctx context.Context, r io.ReaderAt, size int64, mediaType string) *EditsBundlesUploadCall {
4386	c.ctx_ = ctx
4387	c.mediaInfo_ = gensupport.NewInfoFromResumableMedia(r, size, mediaType)
4388	return c
4389}
4390
4391// ProgressUpdater provides a callback function that will be called
4392// after every chunk. It should be a low-latency function in order to
4393// not slow down the upload operation. This should only be called when
4394// using ResumableMedia (as opposed to Media).
4395func (c *EditsBundlesUploadCall) ProgressUpdater(pu googleapi.ProgressUpdater) *EditsBundlesUploadCall {
4396	c.mediaInfo_.SetProgressUpdater(pu)
4397	return c
4398}
4399
4400// Fields allows partial responses to be retrieved. See
4401// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4402// for more information.
4403func (c *EditsBundlesUploadCall) Fields(s ...googleapi.Field) *EditsBundlesUploadCall {
4404	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4405	return c
4406}
4407
4408// Context sets the context to be used in this call's Do method. Any
4409// pending HTTP request will be aborted if the provided context is
4410// canceled.
4411// This context will supersede any context previously provided to the
4412// ResumableMedia method.
4413func (c *EditsBundlesUploadCall) Context(ctx context.Context) *EditsBundlesUploadCall {
4414	c.ctx_ = ctx
4415	return c
4416}
4417
4418// Header returns an http.Header that can be modified by the caller to
4419// add HTTP headers to the request.
4420func (c *EditsBundlesUploadCall) Header() http.Header {
4421	if c.header_ == nil {
4422		c.header_ = make(http.Header)
4423	}
4424	return c.header_
4425}
4426
4427func (c *EditsBundlesUploadCall) doRequest(alt string) (*http.Response, error) {
4428	reqHeaders := make(http.Header)
4429	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
4430	for k, v := range c.header_ {
4431		reqHeaders[k] = v
4432	}
4433	reqHeaders.Set("User-Agent", c.s.userAgent())
4434	var body io.Reader = nil
4435	c.urlParams_.Set("alt", alt)
4436	c.urlParams_.Set("prettyPrint", "false")
4437	urls := googleapi.ResolveRelative(c.s.BasePath, "androidpublisher/v3/applications/{packageName}/edits/{editId}/bundles")
4438	if c.mediaInfo_ != nil {
4439		urls = googleapi.ResolveRelative(c.s.BasePath, "/upload/androidpublisher/v3/applications/{packageName}/edits/{editId}/bundles")
4440		c.urlParams_.Set("uploadType", c.mediaInfo_.UploadType())
4441	}
4442	if body == nil {
4443		body = new(bytes.Buffer)
4444		reqHeaders.Set("Content-Type", "application/json")
4445	}
4446	body, getBody, cleanup := c.mediaInfo_.UploadRequest(reqHeaders, body)
4447	defer cleanup()
4448	urls += "?" + c.urlParams_.Encode()
4449	req, err := http.NewRequest("POST", urls, body)
4450	if err != nil {
4451		return nil, err
4452	}
4453	req.Header = reqHeaders
4454	req.GetBody = getBody
4455	googleapi.Expand(req.URL, map[string]string{
4456		"packageName": c.packageName,
4457		"editId":      c.editId,
4458	})
4459	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4460}
4461
4462// Do executes the "androidpublisher.edits.bundles.upload" call.
4463// Exactly one of *Bundle or error will be non-nil. Any non-2xx status
4464// code is an error. Response headers are in either
4465// *Bundle.ServerResponse.Header or (if a response was returned at all)
4466// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
4467// check whether the returned error was because http.StatusNotModified
4468// was returned.
4469func (c *EditsBundlesUploadCall) Do(opts ...googleapi.CallOption) (*Bundle, error) {
4470	gensupport.SetOptions(c.urlParams_, opts...)
4471	res, err := c.doRequest("json")
4472	if res != nil && res.StatusCode == http.StatusNotModified {
4473		if res.Body != nil {
4474			res.Body.Close()
4475		}
4476		return nil, &googleapi.Error{
4477			Code:   res.StatusCode,
4478			Header: res.Header,
4479		}
4480	}
4481	if err != nil {
4482		return nil, err
4483	}
4484	defer googleapi.CloseBody(res)
4485	if err := googleapi.CheckResponse(res); err != nil {
4486		return nil, err
4487	}
4488	rx := c.mediaInfo_.ResumableUpload(res.Header.Get("Location"))
4489	if rx != nil {
4490		rx.Client = c.s.client
4491		rx.UserAgent = c.s.userAgent()
4492		ctx := c.ctx_
4493		if ctx == nil {
4494			ctx = context.TODO()
4495		}
4496		res, err = rx.Upload(ctx)
4497		if err != nil {
4498			return nil, err
4499		}
4500		defer res.Body.Close()
4501		if err := googleapi.CheckResponse(res); err != nil {
4502			return nil, err
4503		}
4504	}
4505	ret := &Bundle{
4506		ServerResponse: googleapi.ServerResponse{
4507			Header:         res.Header,
4508			HTTPStatusCode: res.StatusCode,
4509		},
4510	}
4511	target := &ret
4512	if err := gensupport.DecodeResponse(target, res); err != nil {
4513		return nil, err
4514	}
4515	return ret, nil
4516	// {
4517	//   "description": "Uploads a new Android App Bundle to this edit. If you are using the Google API client libraries, please increase the timeout of the http request before calling this endpoint (a timeout of 2 minutes is recommended). See [Timeouts and Errors](https://developers.google.com/api-client-library/java/google-api-java-client/errors) for an example in java.",
4518	//   "flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/bundles",
4519	//   "httpMethod": "POST",
4520	//   "id": "androidpublisher.edits.bundles.upload",
4521	//   "mediaUpload": {
4522	//     "accept": [
4523	//       "application/octet-stream"
4524	//     ],
4525	//     "maxSize": "10737418240",
4526	//     "protocols": {
4527	//       "resumable": {
4528	//         "multipart": true,
4529	//         "path": "/resumable/upload/androidpublisher/v3/applications/{packageName}/edits/{editId}/bundles"
4530	//       },
4531	//       "simple": {
4532	//         "multipart": true,
4533	//         "path": "/upload/androidpublisher/v3/applications/{packageName}/edits/{editId}/bundles"
4534	//       }
4535	//     }
4536	//   },
4537	//   "parameterOrder": [
4538	//     "packageName",
4539	//     "editId"
4540	//   ],
4541	//   "parameters": {
4542	//     "ackBundleInstallationWarning": {
4543	//       "description": "Must be set to true if the bundle installation may trigger a warning on user devices (for example, if installation size may be over a threshold, typically 100 MB).",
4544	//       "location": "query",
4545	//       "type": "boolean"
4546	//     },
4547	//     "editId": {
4548	//       "description": "Identifier of the edit.",
4549	//       "location": "path",
4550	//       "required": true,
4551	//       "type": "string"
4552	//     },
4553	//     "packageName": {
4554	//       "description": "Package name of the app.",
4555	//       "location": "path",
4556	//       "required": true,
4557	//       "type": "string"
4558	//     }
4559	//   },
4560	//   "path": "androidpublisher/v3/applications/{packageName}/edits/{editId}/bundles",
4561	//   "response": {
4562	//     "$ref": "Bundle"
4563	//   },
4564	//   "scopes": [
4565	//     "https://www.googleapis.com/auth/androidpublisher"
4566	//   ],
4567	//   "supportsMediaUpload": true
4568	// }
4569
4570}
4571
4572// method id "androidpublisher.edits.deobfuscationfiles.upload":
4573
4574type EditsDeobfuscationfilesUploadCall struct {
4575	s                     *Service
4576	packageNameid         string
4577	editId                string
4578	apkVersionCode        int64
4579	deobfuscationFileType string
4580	urlParams_            gensupport.URLParams
4581	mediaInfo_            *gensupport.MediaInfo
4582	ctx_                  context.Context
4583	header_               http.Header
4584}
4585
4586// Upload: Uploads a new deobfuscation file and attaches to the
4587// specified APK.
4588//
4589// - apkVersionCode: The version code of the APK whose Deobfuscation
4590//   File is being uploaded.
4591// - deobfuscationFileType: The type of the deobfuscation file.
4592// - editId: Unique identifier for this edit.
4593// - packageName: Unique identifier for the Android app.
4594func (r *EditsDeobfuscationfilesService) Upload(packageNameid string, editId string, apkVersionCode int64, deobfuscationFileType string) *EditsDeobfuscationfilesUploadCall {
4595	c := &EditsDeobfuscationfilesUploadCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4596	c.packageNameid = packageNameid
4597	c.editId = editId
4598	c.apkVersionCode = apkVersionCode
4599	c.deobfuscationFileType = deobfuscationFileType
4600	return c
4601}
4602
4603// Media specifies the media to upload in one or more chunks. The chunk
4604// size may be controlled by supplying a MediaOption generated by
4605// googleapi.ChunkSize. The chunk size defaults to
4606// googleapi.DefaultUploadChunkSize.The Content-Type header used in the
4607// upload request will be determined by sniffing the contents of r,
4608// unless a MediaOption generated by googleapi.ContentType is
4609// supplied.
4610// At most one of Media and ResumableMedia may be set.
4611func (c *EditsDeobfuscationfilesUploadCall) Media(r io.Reader, options ...googleapi.MediaOption) *EditsDeobfuscationfilesUploadCall {
4612	c.mediaInfo_ = gensupport.NewInfoFromMedia(r, options)
4613	return c
4614}
4615
4616// ResumableMedia specifies the media to upload in chunks and can be
4617// canceled with ctx.
4618//
4619// Deprecated: use Media instead.
4620//
4621// At most one of Media and ResumableMedia may be set. mediaType
4622// identifies the MIME media type of the upload, such as "image/png". If
4623// mediaType is "", it will be auto-detected. The provided ctx will
4624// supersede any context previously provided to the Context method.
4625func (c *EditsDeobfuscationfilesUploadCall) ResumableMedia(ctx context.Context, r io.ReaderAt, size int64, mediaType string) *EditsDeobfuscationfilesUploadCall {
4626	c.ctx_ = ctx
4627	c.mediaInfo_ = gensupport.NewInfoFromResumableMedia(r, size, mediaType)
4628	return c
4629}
4630
4631// ProgressUpdater provides a callback function that will be called
4632// after every chunk. It should be a low-latency function in order to
4633// not slow down the upload operation. This should only be called when
4634// using ResumableMedia (as opposed to Media).
4635func (c *EditsDeobfuscationfilesUploadCall) ProgressUpdater(pu googleapi.ProgressUpdater) *EditsDeobfuscationfilesUploadCall {
4636	c.mediaInfo_.SetProgressUpdater(pu)
4637	return c
4638}
4639
4640// Fields allows partial responses to be retrieved. See
4641// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4642// for more information.
4643func (c *EditsDeobfuscationfilesUploadCall) Fields(s ...googleapi.Field) *EditsDeobfuscationfilesUploadCall {
4644	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4645	return c
4646}
4647
4648// Context sets the context to be used in this call's Do method. Any
4649// pending HTTP request will be aborted if the provided context is
4650// canceled.
4651// This context will supersede any context previously provided to the
4652// ResumableMedia method.
4653func (c *EditsDeobfuscationfilesUploadCall) Context(ctx context.Context) *EditsDeobfuscationfilesUploadCall {
4654	c.ctx_ = ctx
4655	return c
4656}
4657
4658// Header returns an http.Header that can be modified by the caller to
4659// add HTTP headers to the request.
4660func (c *EditsDeobfuscationfilesUploadCall) Header() http.Header {
4661	if c.header_ == nil {
4662		c.header_ = make(http.Header)
4663	}
4664	return c.header_
4665}
4666
4667func (c *EditsDeobfuscationfilesUploadCall) doRequest(alt string) (*http.Response, error) {
4668	reqHeaders := make(http.Header)
4669	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
4670	for k, v := range c.header_ {
4671		reqHeaders[k] = v
4672	}
4673	reqHeaders.Set("User-Agent", c.s.userAgent())
4674	var body io.Reader = nil
4675	c.urlParams_.Set("alt", alt)
4676	c.urlParams_.Set("prettyPrint", "false")
4677	urls := googleapi.ResolveRelative(c.s.BasePath, "androidpublisher/v3/applications/{packageName}/edits/{editId}/apks/{apkVersionCode}/deobfuscationFiles/{deobfuscationFileType}")
4678	if c.mediaInfo_ != nil {
4679		urls = googleapi.ResolveRelative(c.s.BasePath, "/upload/androidpublisher/v3/applications/{packageName}/edits/{editId}/apks/{apkVersionCode}/deobfuscationFiles/{deobfuscationFileType}")
4680		c.urlParams_.Set("uploadType", c.mediaInfo_.UploadType())
4681	}
4682	if body == nil {
4683		body = new(bytes.Buffer)
4684		reqHeaders.Set("Content-Type", "application/json")
4685	}
4686	body, getBody, cleanup := c.mediaInfo_.UploadRequest(reqHeaders, body)
4687	defer cleanup()
4688	urls += "?" + c.urlParams_.Encode()
4689	req, err := http.NewRequest("POST", urls, body)
4690	if err != nil {
4691		return nil, err
4692	}
4693	req.Header = reqHeaders
4694	req.GetBody = getBody
4695	googleapi.Expand(req.URL, map[string]string{
4696		"packageName":           c.packageNameid,
4697		"editId":                c.editId,
4698		"apkVersionCode":        strconv.FormatInt(c.apkVersionCode, 10),
4699		"deobfuscationFileType": c.deobfuscationFileType,
4700	})
4701	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4702}
4703
4704// Do executes the "androidpublisher.edits.deobfuscationfiles.upload" call.
4705// Exactly one of *DeobfuscationFilesUploadResponse or error will be
4706// non-nil. Any non-2xx status code is an error. Response headers are in
4707// either *DeobfuscationFilesUploadResponse.ServerResponse.Header or (if
4708// a response was returned at all) in error.(*googleapi.Error).Header.
4709// Use googleapi.IsNotModified to check whether the returned error was
4710// because http.StatusNotModified was returned.
4711func (c *EditsDeobfuscationfilesUploadCall) Do(opts ...googleapi.CallOption) (*DeobfuscationFilesUploadResponse, error) {
4712	gensupport.SetOptions(c.urlParams_, opts...)
4713	res, err := c.doRequest("json")
4714	if res != nil && res.StatusCode == http.StatusNotModified {
4715		if res.Body != nil {
4716			res.Body.Close()
4717		}
4718		return nil, &googleapi.Error{
4719			Code:   res.StatusCode,
4720			Header: res.Header,
4721		}
4722	}
4723	if err != nil {
4724		return nil, err
4725	}
4726	defer googleapi.CloseBody(res)
4727	if err := googleapi.CheckResponse(res); err != nil {
4728		return nil, err
4729	}
4730	rx := c.mediaInfo_.ResumableUpload(res.Header.Get("Location"))
4731	if rx != nil {
4732		rx.Client = c.s.client
4733		rx.UserAgent = c.s.userAgent()
4734		ctx := c.ctx_
4735		if ctx == nil {
4736			ctx = context.TODO()
4737		}
4738		res, err = rx.Upload(ctx)
4739		if err != nil {
4740			return nil, err
4741		}
4742		defer res.Body.Close()
4743		if err := googleapi.CheckResponse(res); err != nil {
4744			return nil, err
4745		}
4746	}
4747	ret := &DeobfuscationFilesUploadResponse{
4748		ServerResponse: googleapi.ServerResponse{
4749			Header:         res.Header,
4750			HTTPStatusCode: res.StatusCode,
4751		},
4752	}
4753	target := &ret
4754	if err := gensupport.DecodeResponse(target, res); err != nil {
4755		return nil, err
4756	}
4757	return ret, nil
4758	// {
4759	//   "description": "Uploads a new deobfuscation file and attaches to the specified APK.",
4760	//   "flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/apks/{apkVersionCode}/deobfuscationFiles/{deobfuscationFileType}",
4761	//   "httpMethod": "POST",
4762	//   "id": "androidpublisher.edits.deobfuscationfiles.upload",
4763	//   "mediaUpload": {
4764	//     "accept": [
4765	//       "application/octet-stream"
4766	//     ],
4767	//     "maxSize": "314572800",
4768	//     "protocols": {
4769	//       "resumable": {
4770	//         "multipart": true,
4771	//         "path": "/resumable/upload/androidpublisher/v3/applications/{packageName}/edits/{editId}/apks/{apkVersionCode}/deobfuscationFiles/{deobfuscationFileType}"
4772	//       },
4773	//       "simple": {
4774	//         "multipart": true,
4775	//         "path": "/upload/androidpublisher/v3/applications/{packageName}/edits/{editId}/apks/{apkVersionCode}/deobfuscationFiles/{deobfuscationFileType}"
4776	//       }
4777	//     }
4778	//   },
4779	//   "parameterOrder": [
4780	//     "packageName",
4781	//     "editId",
4782	//     "apkVersionCode",
4783	//     "deobfuscationFileType"
4784	//   ],
4785	//   "parameters": {
4786	//     "apkVersionCode": {
4787	//       "description": "The version code of the APK whose Deobfuscation File is being uploaded.",
4788	//       "format": "int32",
4789	//       "location": "path",
4790	//       "required": true,
4791	//       "type": "integer"
4792	//     },
4793	//     "deobfuscationFileType": {
4794	//       "description": "The type of the deobfuscation file.",
4795	//       "enum": [
4796	//         "deobfuscationFileTypeUnspecified",
4797	//         "proguard",
4798	//         "nativeCode"
4799	//       ],
4800	//       "enumDescriptions": [
4801	//         "Unspecified deobfuscation file type.",
4802	//         "Proguard deobfuscation file type.",
4803	//         "Native debugging symbols file type."
4804	//       ],
4805	//       "location": "path",
4806	//       "required": true,
4807	//       "type": "string"
4808	//     },
4809	//     "editId": {
4810	//       "description": "Unique identifier for this edit.",
4811	//       "location": "path",
4812	//       "required": true,
4813	//       "type": "string"
4814	//     },
4815	//     "packageName": {
4816	//       "description": "Unique identifier for the Android app.",
4817	//       "location": "path",
4818	//       "required": true,
4819	//       "type": "string"
4820	//     }
4821	//   },
4822	//   "path": "androidpublisher/v3/applications/{packageName}/edits/{editId}/apks/{apkVersionCode}/deobfuscationFiles/{deobfuscationFileType}",
4823	//   "response": {
4824	//     "$ref": "DeobfuscationFilesUploadResponse"
4825	//   },
4826	//   "scopes": [
4827	//     "https://www.googleapis.com/auth/androidpublisher"
4828	//   ],
4829	//   "supportsMediaUpload": true
4830	// }
4831
4832}
4833
4834// method id "androidpublisher.edits.details.get":
4835
4836type EditsDetailsGetCall struct {
4837	s            *Service
4838	packageName  string
4839	editId       string
4840	urlParams_   gensupport.URLParams
4841	ifNoneMatch_ string
4842	ctx_         context.Context
4843	header_      http.Header
4844}
4845
4846// Get: Gets details of an app.
4847//
4848// - editId: Identifier of the edit.
4849// - packageName: Package name of the app.
4850func (r *EditsDetailsService) Get(packageName string, editId string) *EditsDetailsGetCall {
4851	c := &EditsDetailsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4852	c.packageName = packageName
4853	c.editId = editId
4854	return c
4855}
4856
4857// Fields allows partial responses to be retrieved. See
4858// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4859// for more information.
4860func (c *EditsDetailsGetCall) Fields(s ...googleapi.Field) *EditsDetailsGetCall {
4861	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4862	return c
4863}
4864
4865// IfNoneMatch sets the optional parameter which makes the operation
4866// fail if the object's ETag matches the given value. This is useful for
4867// getting updates only after the object has changed since the last
4868// request. Use googleapi.IsNotModified to check whether the response
4869// error from Do is the result of In-None-Match.
4870func (c *EditsDetailsGetCall) IfNoneMatch(entityTag string) *EditsDetailsGetCall {
4871	c.ifNoneMatch_ = entityTag
4872	return c
4873}
4874
4875// Context sets the context to be used in this call's Do method. Any
4876// pending HTTP request will be aborted if the provided context is
4877// canceled.
4878func (c *EditsDetailsGetCall) Context(ctx context.Context) *EditsDetailsGetCall {
4879	c.ctx_ = ctx
4880	return c
4881}
4882
4883// Header returns an http.Header that can be modified by the caller to
4884// add HTTP headers to the request.
4885func (c *EditsDetailsGetCall) Header() http.Header {
4886	if c.header_ == nil {
4887		c.header_ = make(http.Header)
4888	}
4889	return c.header_
4890}
4891
4892func (c *EditsDetailsGetCall) doRequest(alt string) (*http.Response, error) {
4893	reqHeaders := make(http.Header)
4894	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
4895	for k, v := range c.header_ {
4896		reqHeaders[k] = v
4897	}
4898	reqHeaders.Set("User-Agent", c.s.userAgent())
4899	if c.ifNoneMatch_ != "" {
4900		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
4901	}
4902	var body io.Reader = nil
4903	c.urlParams_.Set("alt", alt)
4904	c.urlParams_.Set("prettyPrint", "false")
4905	urls := googleapi.ResolveRelative(c.s.BasePath, "androidpublisher/v3/applications/{packageName}/edits/{editId}/details")
4906	urls += "?" + c.urlParams_.Encode()
4907	req, err := http.NewRequest("GET", urls, body)
4908	if err != nil {
4909		return nil, err
4910	}
4911	req.Header = reqHeaders
4912	googleapi.Expand(req.URL, map[string]string{
4913		"packageName": c.packageName,
4914		"editId":      c.editId,
4915	})
4916	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4917}
4918
4919// Do executes the "androidpublisher.edits.details.get" call.
4920// Exactly one of *AppDetails or error will be non-nil. Any non-2xx
4921// status code is an error. Response headers are in either
4922// *AppDetails.ServerResponse.Header or (if a response was returned at
4923// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
4924// to check whether the returned error was because
4925// http.StatusNotModified was returned.
4926func (c *EditsDetailsGetCall) Do(opts ...googleapi.CallOption) (*AppDetails, error) {
4927	gensupport.SetOptions(c.urlParams_, opts...)
4928	res, err := c.doRequest("json")
4929	if res != nil && res.StatusCode == http.StatusNotModified {
4930		if res.Body != nil {
4931			res.Body.Close()
4932		}
4933		return nil, &googleapi.Error{
4934			Code:   res.StatusCode,
4935			Header: res.Header,
4936		}
4937	}
4938	if err != nil {
4939		return nil, err
4940	}
4941	defer googleapi.CloseBody(res)
4942	if err := googleapi.CheckResponse(res); err != nil {
4943		return nil, err
4944	}
4945	ret := &AppDetails{
4946		ServerResponse: googleapi.ServerResponse{
4947			Header:         res.Header,
4948			HTTPStatusCode: res.StatusCode,
4949		},
4950	}
4951	target := &ret
4952	if err := gensupport.DecodeResponse(target, res); err != nil {
4953		return nil, err
4954	}
4955	return ret, nil
4956	// {
4957	//   "description": "Gets details of an app.",
4958	//   "flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/details",
4959	//   "httpMethod": "GET",
4960	//   "id": "androidpublisher.edits.details.get",
4961	//   "parameterOrder": [
4962	//     "packageName",
4963	//     "editId"
4964	//   ],
4965	//   "parameters": {
4966	//     "editId": {
4967	//       "description": "Identifier of the edit.",
4968	//       "location": "path",
4969	//       "required": true,
4970	//       "type": "string"
4971	//     },
4972	//     "packageName": {
4973	//       "description": "Package name of the app.",
4974	//       "location": "path",
4975	//       "required": true,
4976	//       "type": "string"
4977	//     }
4978	//   },
4979	//   "path": "androidpublisher/v3/applications/{packageName}/edits/{editId}/details",
4980	//   "response": {
4981	//     "$ref": "AppDetails"
4982	//   },
4983	//   "scopes": [
4984	//     "https://www.googleapis.com/auth/androidpublisher"
4985	//   ]
4986	// }
4987
4988}
4989
4990// method id "androidpublisher.edits.details.patch":
4991
4992type EditsDetailsPatchCall struct {
4993	s           *Service
4994	packageName string
4995	editId      string
4996	appdetails  *AppDetails
4997	urlParams_  gensupport.URLParams
4998	ctx_        context.Context
4999	header_     http.Header
5000}
5001
5002// Patch: Patches details of an app.
5003//
5004// - editId: Identifier of the edit.
5005// - packageName: Package name of the app.
5006func (r *EditsDetailsService) Patch(packageName string, editId string, appdetails *AppDetails) *EditsDetailsPatchCall {
5007	c := &EditsDetailsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5008	c.packageName = packageName
5009	c.editId = editId
5010	c.appdetails = appdetails
5011	return c
5012}
5013
5014// Fields allows partial responses to be retrieved. See
5015// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5016// for more information.
5017func (c *EditsDetailsPatchCall) Fields(s ...googleapi.Field) *EditsDetailsPatchCall {
5018	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5019	return c
5020}
5021
5022// Context sets the context to be used in this call's Do method. Any
5023// pending HTTP request will be aborted if the provided context is
5024// canceled.
5025func (c *EditsDetailsPatchCall) Context(ctx context.Context) *EditsDetailsPatchCall {
5026	c.ctx_ = ctx
5027	return c
5028}
5029
5030// Header returns an http.Header that can be modified by the caller to
5031// add HTTP headers to the request.
5032func (c *EditsDetailsPatchCall) Header() http.Header {
5033	if c.header_ == nil {
5034		c.header_ = make(http.Header)
5035	}
5036	return c.header_
5037}
5038
5039func (c *EditsDetailsPatchCall) doRequest(alt string) (*http.Response, error) {
5040	reqHeaders := make(http.Header)
5041	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
5042	for k, v := range c.header_ {
5043		reqHeaders[k] = v
5044	}
5045	reqHeaders.Set("User-Agent", c.s.userAgent())
5046	var body io.Reader = nil
5047	body, err := googleapi.WithoutDataWrapper.JSONReader(c.appdetails)
5048	if err != nil {
5049		return nil, err
5050	}
5051	reqHeaders.Set("Content-Type", "application/json")
5052	c.urlParams_.Set("alt", alt)
5053	c.urlParams_.Set("prettyPrint", "false")
5054	urls := googleapi.ResolveRelative(c.s.BasePath, "androidpublisher/v3/applications/{packageName}/edits/{editId}/details")
5055	urls += "?" + c.urlParams_.Encode()
5056	req, err := http.NewRequest("PATCH", urls, body)
5057	if err != nil {
5058		return nil, err
5059	}
5060	req.Header = reqHeaders
5061	googleapi.Expand(req.URL, map[string]string{
5062		"packageName": c.packageName,
5063		"editId":      c.editId,
5064	})
5065	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5066}
5067
5068// Do executes the "androidpublisher.edits.details.patch" call.
5069// Exactly one of *AppDetails or error will be non-nil. Any non-2xx
5070// status code is an error. Response headers are in either
5071// *AppDetails.ServerResponse.Header or (if a response was returned at
5072// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
5073// to check whether the returned error was because
5074// http.StatusNotModified was returned.
5075func (c *EditsDetailsPatchCall) Do(opts ...googleapi.CallOption) (*AppDetails, error) {
5076	gensupport.SetOptions(c.urlParams_, opts...)
5077	res, err := c.doRequest("json")
5078	if res != nil && res.StatusCode == http.StatusNotModified {
5079		if res.Body != nil {
5080			res.Body.Close()
5081		}
5082		return nil, &googleapi.Error{
5083			Code:   res.StatusCode,
5084			Header: res.Header,
5085		}
5086	}
5087	if err != nil {
5088		return nil, err
5089	}
5090	defer googleapi.CloseBody(res)
5091	if err := googleapi.CheckResponse(res); err != nil {
5092		return nil, err
5093	}
5094	ret := &AppDetails{
5095		ServerResponse: googleapi.ServerResponse{
5096			Header:         res.Header,
5097			HTTPStatusCode: res.StatusCode,
5098		},
5099	}
5100	target := &ret
5101	if err := gensupport.DecodeResponse(target, res); err != nil {
5102		return nil, err
5103	}
5104	return ret, nil
5105	// {
5106	//   "description": "Patches details of an app.",
5107	//   "flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/details",
5108	//   "httpMethod": "PATCH",
5109	//   "id": "androidpublisher.edits.details.patch",
5110	//   "parameterOrder": [
5111	//     "packageName",
5112	//     "editId"
5113	//   ],
5114	//   "parameters": {
5115	//     "editId": {
5116	//       "description": "Identifier of the edit.",
5117	//       "location": "path",
5118	//       "required": true,
5119	//       "type": "string"
5120	//     },
5121	//     "packageName": {
5122	//       "description": "Package name of the app.",
5123	//       "location": "path",
5124	//       "required": true,
5125	//       "type": "string"
5126	//     }
5127	//   },
5128	//   "path": "androidpublisher/v3/applications/{packageName}/edits/{editId}/details",
5129	//   "request": {
5130	//     "$ref": "AppDetails"
5131	//   },
5132	//   "response": {
5133	//     "$ref": "AppDetails"
5134	//   },
5135	//   "scopes": [
5136	//     "https://www.googleapis.com/auth/androidpublisher"
5137	//   ]
5138	// }
5139
5140}
5141
5142// method id "androidpublisher.edits.details.update":
5143
5144type EditsDetailsUpdateCall struct {
5145	s           *Service
5146	packageName string
5147	editId      string
5148	appdetails  *AppDetails
5149	urlParams_  gensupport.URLParams
5150	ctx_        context.Context
5151	header_     http.Header
5152}
5153
5154// Update: Updates details of an app.
5155//
5156// - editId: Identifier of the edit.
5157// - packageName: Package name of the app.
5158func (r *EditsDetailsService) Update(packageName string, editId string, appdetails *AppDetails) *EditsDetailsUpdateCall {
5159	c := &EditsDetailsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5160	c.packageName = packageName
5161	c.editId = editId
5162	c.appdetails = appdetails
5163	return c
5164}
5165
5166// Fields allows partial responses to be retrieved. See
5167// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5168// for more information.
5169func (c *EditsDetailsUpdateCall) Fields(s ...googleapi.Field) *EditsDetailsUpdateCall {
5170	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5171	return c
5172}
5173
5174// Context sets the context to be used in this call's Do method. Any
5175// pending HTTP request will be aborted if the provided context is
5176// canceled.
5177func (c *EditsDetailsUpdateCall) Context(ctx context.Context) *EditsDetailsUpdateCall {
5178	c.ctx_ = ctx
5179	return c
5180}
5181
5182// Header returns an http.Header that can be modified by the caller to
5183// add HTTP headers to the request.
5184func (c *EditsDetailsUpdateCall) Header() http.Header {
5185	if c.header_ == nil {
5186		c.header_ = make(http.Header)
5187	}
5188	return c.header_
5189}
5190
5191func (c *EditsDetailsUpdateCall) doRequest(alt string) (*http.Response, error) {
5192	reqHeaders := make(http.Header)
5193	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
5194	for k, v := range c.header_ {
5195		reqHeaders[k] = v
5196	}
5197	reqHeaders.Set("User-Agent", c.s.userAgent())
5198	var body io.Reader = nil
5199	body, err := googleapi.WithoutDataWrapper.JSONReader(c.appdetails)
5200	if err != nil {
5201		return nil, err
5202	}
5203	reqHeaders.Set("Content-Type", "application/json")
5204	c.urlParams_.Set("alt", alt)
5205	c.urlParams_.Set("prettyPrint", "false")
5206	urls := googleapi.ResolveRelative(c.s.BasePath, "androidpublisher/v3/applications/{packageName}/edits/{editId}/details")
5207	urls += "?" + c.urlParams_.Encode()
5208	req, err := http.NewRequest("PUT", urls, body)
5209	if err != nil {
5210		return nil, err
5211	}
5212	req.Header = reqHeaders
5213	googleapi.Expand(req.URL, map[string]string{
5214		"packageName": c.packageName,
5215		"editId":      c.editId,
5216	})
5217	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5218}
5219
5220// Do executes the "androidpublisher.edits.details.update" call.
5221// Exactly one of *AppDetails or error will be non-nil. Any non-2xx
5222// status code is an error. Response headers are in either
5223// *AppDetails.ServerResponse.Header or (if a response was returned at
5224// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
5225// to check whether the returned error was because
5226// http.StatusNotModified was returned.
5227func (c *EditsDetailsUpdateCall) Do(opts ...googleapi.CallOption) (*AppDetails, error) {
5228	gensupport.SetOptions(c.urlParams_, opts...)
5229	res, err := c.doRequest("json")
5230	if res != nil && res.StatusCode == http.StatusNotModified {
5231		if res.Body != nil {
5232			res.Body.Close()
5233		}
5234		return nil, &googleapi.Error{
5235			Code:   res.StatusCode,
5236			Header: res.Header,
5237		}
5238	}
5239	if err != nil {
5240		return nil, err
5241	}
5242	defer googleapi.CloseBody(res)
5243	if err := googleapi.CheckResponse(res); err != nil {
5244		return nil, err
5245	}
5246	ret := &AppDetails{
5247		ServerResponse: googleapi.ServerResponse{
5248			Header:         res.Header,
5249			HTTPStatusCode: res.StatusCode,
5250		},
5251	}
5252	target := &ret
5253	if err := gensupport.DecodeResponse(target, res); err != nil {
5254		return nil, err
5255	}
5256	return ret, nil
5257	// {
5258	//   "description": "Updates details of an app.",
5259	//   "flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/details",
5260	//   "httpMethod": "PUT",
5261	//   "id": "androidpublisher.edits.details.update",
5262	//   "parameterOrder": [
5263	//     "packageName",
5264	//     "editId"
5265	//   ],
5266	//   "parameters": {
5267	//     "editId": {
5268	//       "description": "Identifier of the edit.",
5269	//       "location": "path",
5270	//       "required": true,
5271	//       "type": "string"
5272	//     },
5273	//     "packageName": {
5274	//       "description": "Package name of the app.",
5275	//       "location": "path",
5276	//       "required": true,
5277	//       "type": "string"
5278	//     }
5279	//   },
5280	//   "path": "androidpublisher/v3/applications/{packageName}/edits/{editId}/details",
5281	//   "request": {
5282	//     "$ref": "AppDetails"
5283	//   },
5284	//   "response": {
5285	//     "$ref": "AppDetails"
5286	//   },
5287	//   "scopes": [
5288	//     "https://www.googleapis.com/auth/androidpublisher"
5289	//   ]
5290	// }
5291
5292}
5293
5294// method id "androidpublisher.edits.expansionfiles.get":
5295
5296type EditsExpansionfilesGetCall struct {
5297	s                 *Service
5298	packageName       string
5299	editId            string
5300	apkVersionCode    int64
5301	expansionFileType string
5302	urlParams_        gensupport.URLParams
5303	ifNoneMatch_      string
5304	ctx_              context.Context
5305	header_           http.Header
5306}
5307
5308// Get: Fetches the expansion file configuration for the specified APK.
5309//
5310// - apkVersionCode: The version code of the APK whose expansion file
5311//   configuration is being read or modified.
5312// - editId: Identifier of the edit.
5313// - expansionFileType: The file type of the file configuration which is
5314//   being read or modified.
5315// - packageName: Package name of the app.
5316func (r *EditsExpansionfilesService) Get(packageName string, editId string, apkVersionCode int64, expansionFileType string) *EditsExpansionfilesGetCall {
5317	c := &EditsExpansionfilesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5318	c.packageName = packageName
5319	c.editId = editId
5320	c.apkVersionCode = apkVersionCode
5321	c.expansionFileType = expansionFileType
5322	return c
5323}
5324
5325// Fields allows partial responses to be retrieved. See
5326// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5327// for more information.
5328func (c *EditsExpansionfilesGetCall) Fields(s ...googleapi.Field) *EditsExpansionfilesGetCall {
5329	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5330	return c
5331}
5332
5333// IfNoneMatch sets the optional parameter which makes the operation
5334// fail if the object's ETag matches the given value. This is useful for
5335// getting updates only after the object has changed since the last
5336// request. Use googleapi.IsNotModified to check whether the response
5337// error from Do is the result of In-None-Match.
5338func (c *EditsExpansionfilesGetCall) IfNoneMatch(entityTag string) *EditsExpansionfilesGetCall {
5339	c.ifNoneMatch_ = entityTag
5340	return c
5341}
5342
5343// Context sets the context to be used in this call's Do method. Any
5344// pending HTTP request will be aborted if the provided context is
5345// canceled.
5346func (c *EditsExpansionfilesGetCall) Context(ctx context.Context) *EditsExpansionfilesGetCall {
5347	c.ctx_ = ctx
5348	return c
5349}
5350
5351// Header returns an http.Header that can be modified by the caller to
5352// add HTTP headers to the request.
5353func (c *EditsExpansionfilesGetCall) Header() http.Header {
5354	if c.header_ == nil {
5355		c.header_ = make(http.Header)
5356	}
5357	return c.header_
5358}
5359
5360func (c *EditsExpansionfilesGetCall) doRequest(alt string) (*http.Response, error) {
5361	reqHeaders := make(http.Header)
5362	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
5363	for k, v := range c.header_ {
5364		reqHeaders[k] = v
5365	}
5366	reqHeaders.Set("User-Agent", c.s.userAgent())
5367	if c.ifNoneMatch_ != "" {
5368		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
5369	}
5370	var body io.Reader = nil
5371	c.urlParams_.Set("alt", alt)
5372	c.urlParams_.Set("prettyPrint", "false")
5373	urls := googleapi.ResolveRelative(c.s.BasePath, "androidpublisher/v3/applications/{packageName}/edits/{editId}/apks/{apkVersionCode}/expansionFiles/{expansionFileType}")
5374	urls += "?" + c.urlParams_.Encode()
5375	req, err := http.NewRequest("GET", urls, body)
5376	if err != nil {
5377		return nil, err
5378	}
5379	req.Header = reqHeaders
5380	googleapi.Expand(req.URL, map[string]string{
5381		"packageName":       c.packageName,
5382		"editId":            c.editId,
5383		"apkVersionCode":    strconv.FormatInt(c.apkVersionCode, 10),
5384		"expansionFileType": c.expansionFileType,
5385	})
5386	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5387}
5388
5389// Do executes the "androidpublisher.edits.expansionfiles.get" call.
5390// Exactly one of *ExpansionFile or error will be non-nil. Any non-2xx
5391// status code is an error. Response headers are in either
5392// *ExpansionFile.ServerResponse.Header or (if a response was returned
5393// at all) in error.(*googleapi.Error).Header. Use
5394// googleapi.IsNotModified to check whether the returned error was
5395// because http.StatusNotModified was returned.
5396func (c *EditsExpansionfilesGetCall) Do(opts ...googleapi.CallOption) (*ExpansionFile, error) {
5397	gensupport.SetOptions(c.urlParams_, opts...)
5398	res, err := c.doRequest("json")
5399	if res != nil && res.StatusCode == http.StatusNotModified {
5400		if res.Body != nil {
5401			res.Body.Close()
5402		}
5403		return nil, &googleapi.Error{
5404			Code:   res.StatusCode,
5405			Header: res.Header,
5406		}
5407	}
5408	if err != nil {
5409		return nil, err
5410	}
5411	defer googleapi.CloseBody(res)
5412	if err := googleapi.CheckResponse(res); err != nil {
5413		return nil, err
5414	}
5415	ret := &ExpansionFile{
5416		ServerResponse: googleapi.ServerResponse{
5417			Header:         res.Header,
5418			HTTPStatusCode: res.StatusCode,
5419		},
5420	}
5421	target := &ret
5422	if err := gensupport.DecodeResponse(target, res); err != nil {
5423		return nil, err
5424	}
5425	return ret, nil
5426	// {
5427	//   "description": "Fetches the expansion file configuration for the specified APK.",
5428	//   "flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/apks/{apkVersionCode}/expansionFiles/{expansionFileType}",
5429	//   "httpMethod": "GET",
5430	//   "id": "androidpublisher.edits.expansionfiles.get",
5431	//   "parameterOrder": [
5432	//     "packageName",
5433	//     "editId",
5434	//     "apkVersionCode",
5435	//     "expansionFileType"
5436	//   ],
5437	//   "parameters": {
5438	//     "apkVersionCode": {
5439	//       "description": "The version code of the APK whose expansion file configuration is being read or modified.",
5440	//       "format": "int32",
5441	//       "location": "path",
5442	//       "required": true,
5443	//       "type": "integer"
5444	//     },
5445	//     "editId": {
5446	//       "description": "Identifier of the edit.",
5447	//       "location": "path",
5448	//       "required": true,
5449	//       "type": "string"
5450	//     },
5451	//     "expansionFileType": {
5452	//       "description": "The file type of the file configuration which is being read or modified.",
5453	//       "enum": [
5454	//         "expansionFileTypeUnspecified",
5455	//         "main",
5456	//         "patch"
5457	//       ],
5458	//       "enumDescriptions": [
5459	//         "Unspecified expansion file type.",
5460	//         "Main expansion file.",
5461	//         "Patch expansion file."
5462	//       ],
5463	//       "location": "path",
5464	//       "required": true,
5465	//       "type": "string"
5466	//     },
5467	//     "packageName": {
5468	//       "description": "Package name of the app.",
5469	//       "location": "path",
5470	//       "required": true,
5471	//       "type": "string"
5472	//     }
5473	//   },
5474	//   "path": "androidpublisher/v3/applications/{packageName}/edits/{editId}/apks/{apkVersionCode}/expansionFiles/{expansionFileType}",
5475	//   "response": {
5476	//     "$ref": "ExpansionFile"
5477	//   },
5478	//   "scopes": [
5479	//     "https://www.googleapis.com/auth/androidpublisher"
5480	//   ]
5481	// }
5482
5483}
5484
5485// method id "androidpublisher.edits.expansionfiles.patch":
5486
5487type EditsExpansionfilesPatchCall struct {
5488	s                 *Service
5489	packageName       string
5490	editId            string
5491	apkVersionCode    int64
5492	expansionFileType string
5493	expansionfile     *ExpansionFile
5494	urlParams_        gensupport.URLParams
5495	ctx_              context.Context
5496	header_           http.Header
5497}
5498
5499// Patch: Patches the APK's expansion file configuration to reference
5500// another APK's expansion file. To add a new expansion file use the
5501// Upload method.
5502//
5503// - apkVersionCode: The version code of the APK whose expansion file
5504//   configuration is being read or modified.
5505// - editId: Identifier of the edit.
5506// - expansionFileType: The file type of the expansion file
5507//   configuration which is being updated.
5508// - packageName: Package name of the app.
5509func (r *EditsExpansionfilesService) Patch(packageName string, editId string, apkVersionCode int64, expansionFileType string, expansionfile *ExpansionFile) *EditsExpansionfilesPatchCall {
5510	c := &EditsExpansionfilesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5511	c.packageName = packageName
5512	c.editId = editId
5513	c.apkVersionCode = apkVersionCode
5514	c.expansionFileType = expansionFileType
5515	c.expansionfile = expansionfile
5516	return c
5517}
5518
5519// Fields allows partial responses to be retrieved. See
5520// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5521// for more information.
5522func (c *EditsExpansionfilesPatchCall) Fields(s ...googleapi.Field) *EditsExpansionfilesPatchCall {
5523	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5524	return c
5525}
5526
5527// Context sets the context to be used in this call's Do method. Any
5528// pending HTTP request will be aborted if the provided context is
5529// canceled.
5530func (c *EditsExpansionfilesPatchCall) Context(ctx context.Context) *EditsExpansionfilesPatchCall {
5531	c.ctx_ = ctx
5532	return c
5533}
5534
5535// Header returns an http.Header that can be modified by the caller to
5536// add HTTP headers to the request.
5537func (c *EditsExpansionfilesPatchCall) Header() http.Header {
5538	if c.header_ == nil {
5539		c.header_ = make(http.Header)
5540	}
5541	return c.header_
5542}
5543
5544func (c *EditsExpansionfilesPatchCall) doRequest(alt string) (*http.Response, error) {
5545	reqHeaders := make(http.Header)
5546	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
5547	for k, v := range c.header_ {
5548		reqHeaders[k] = v
5549	}
5550	reqHeaders.Set("User-Agent", c.s.userAgent())
5551	var body io.Reader = nil
5552	body, err := googleapi.WithoutDataWrapper.JSONReader(c.expansionfile)
5553	if err != nil {
5554		return nil, err
5555	}
5556	reqHeaders.Set("Content-Type", "application/json")
5557	c.urlParams_.Set("alt", alt)
5558	c.urlParams_.Set("prettyPrint", "false")
5559	urls := googleapi.ResolveRelative(c.s.BasePath, "androidpublisher/v3/applications/{packageName}/edits/{editId}/apks/{apkVersionCode}/expansionFiles/{expansionFileType}")
5560	urls += "?" + c.urlParams_.Encode()
5561	req, err := http.NewRequest("PATCH", urls, body)
5562	if err != nil {
5563		return nil, err
5564	}
5565	req.Header = reqHeaders
5566	googleapi.Expand(req.URL, map[string]string{
5567		"packageName":       c.packageName,
5568		"editId":            c.editId,
5569		"apkVersionCode":    strconv.FormatInt(c.apkVersionCode, 10),
5570		"expansionFileType": c.expansionFileType,
5571	})
5572	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5573}
5574
5575// Do executes the "androidpublisher.edits.expansionfiles.patch" call.
5576// Exactly one of *ExpansionFile or error will be non-nil. Any non-2xx
5577// status code is an error. Response headers are in either
5578// *ExpansionFile.ServerResponse.Header or (if a response was returned
5579// at all) in error.(*googleapi.Error).Header. Use
5580// googleapi.IsNotModified to check whether the returned error was
5581// because http.StatusNotModified was returned.
5582func (c *EditsExpansionfilesPatchCall) Do(opts ...googleapi.CallOption) (*ExpansionFile, error) {
5583	gensupport.SetOptions(c.urlParams_, opts...)
5584	res, err := c.doRequest("json")
5585	if res != nil && res.StatusCode == http.StatusNotModified {
5586		if res.Body != nil {
5587			res.Body.Close()
5588		}
5589		return nil, &googleapi.Error{
5590			Code:   res.StatusCode,
5591			Header: res.Header,
5592		}
5593	}
5594	if err != nil {
5595		return nil, err
5596	}
5597	defer googleapi.CloseBody(res)
5598	if err := googleapi.CheckResponse(res); err != nil {
5599		return nil, err
5600	}
5601	ret := &ExpansionFile{
5602		ServerResponse: googleapi.ServerResponse{
5603			Header:         res.Header,
5604			HTTPStatusCode: res.StatusCode,
5605		},
5606	}
5607	target := &ret
5608	if err := gensupport.DecodeResponse(target, res); err != nil {
5609		return nil, err
5610	}
5611	return ret, nil
5612	// {
5613	//   "description": "Patches the APK's expansion file configuration to reference another APK's expansion file. To add a new expansion file use the Upload method.",
5614	//   "flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/apks/{apkVersionCode}/expansionFiles/{expansionFileType}",
5615	//   "httpMethod": "PATCH",
5616	//   "id": "androidpublisher.edits.expansionfiles.patch",
5617	//   "parameterOrder": [
5618	//     "packageName",
5619	//     "editId",
5620	//     "apkVersionCode",
5621	//     "expansionFileType"
5622	//   ],
5623	//   "parameters": {
5624	//     "apkVersionCode": {
5625	//       "description": "The version code of the APK whose expansion file configuration is being read or modified.",
5626	//       "format": "int32",
5627	//       "location": "path",
5628	//       "required": true,
5629	//       "type": "integer"
5630	//     },
5631	//     "editId": {
5632	//       "description": "Identifier of the edit.",
5633	//       "location": "path",
5634	//       "required": true,
5635	//       "type": "string"
5636	//     },
5637	//     "expansionFileType": {
5638	//       "description": "The file type of the expansion file configuration which is being updated.",
5639	//       "enum": [
5640	//         "expansionFileTypeUnspecified",
5641	//         "main",
5642	//         "patch"
5643	//       ],
5644	//       "enumDescriptions": [
5645	//         "Unspecified expansion file type.",
5646	//         "Main expansion file.",
5647	//         "Patch expansion file."
5648	//       ],
5649	//       "location": "path",
5650	//       "required": true,
5651	//       "type": "string"
5652	//     },
5653	//     "packageName": {
5654	//       "description": "Package name of the app.",
5655	//       "location": "path",
5656	//       "required": true,
5657	//       "type": "string"
5658	//     }
5659	//   },
5660	//   "path": "androidpublisher/v3/applications/{packageName}/edits/{editId}/apks/{apkVersionCode}/expansionFiles/{expansionFileType}",
5661	//   "request": {
5662	//     "$ref": "ExpansionFile"
5663	//   },
5664	//   "response": {
5665	//     "$ref": "ExpansionFile"
5666	//   },
5667	//   "scopes": [
5668	//     "https://www.googleapis.com/auth/androidpublisher"
5669	//   ]
5670	// }
5671
5672}
5673
5674// method id "androidpublisher.edits.expansionfiles.update":
5675
5676type EditsExpansionfilesUpdateCall struct {
5677	s                 *Service
5678	packageName       string
5679	editId            string
5680	apkVersionCode    int64
5681	expansionFileType string
5682	expansionfile     *ExpansionFile
5683	urlParams_        gensupport.URLParams
5684	ctx_              context.Context
5685	header_           http.Header
5686}
5687
5688// Update: Updates the APK's expansion file configuration to reference
5689// another APK's expansion file. To add a new expansion file use the
5690// Upload method.
5691//
5692// - apkVersionCode: The version code of the APK whose expansion file
5693//   configuration is being read or modified.
5694// - editId: Identifier of the edit.
5695// - expansionFileType: The file type of the file configuration which is
5696//   being read or modified.
5697// - packageName: Package name of the app.
5698func (r *EditsExpansionfilesService) Update(packageName string, editId string, apkVersionCode int64, expansionFileType string, expansionfile *ExpansionFile) *EditsExpansionfilesUpdateCall {
5699	c := &EditsExpansionfilesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5700	c.packageName = packageName
5701	c.editId = editId
5702	c.apkVersionCode = apkVersionCode
5703	c.expansionFileType = expansionFileType
5704	c.expansionfile = expansionfile
5705	return c
5706}
5707
5708// Fields allows partial responses to be retrieved. See
5709// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5710// for more information.
5711func (c *EditsExpansionfilesUpdateCall) Fields(s ...googleapi.Field) *EditsExpansionfilesUpdateCall {
5712	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5713	return c
5714}
5715
5716// Context sets the context to be used in this call's Do method. Any
5717// pending HTTP request will be aborted if the provided context is
5718// canceled.
5719func (c *EditsExpansionfilesUpdateCall) Context(ctx context.Context) *EditsExpansionfilesUpdateCall {
5720	c.ctx_ = ctx
5721	return c
5722}
5723
5724// Header returns an http.Header that can be modified by the caller to
5725// add HTTP headers to the request.
5726func (c *EditsExpansionfilesUpdateCall) Header() http.Header {
5727	if c.header_ == nil {
5728		c.header_ = make(http.Header)
5729	}
5730	return c.header_
5731}
5732
5733func (c *EditsExpansionfilesUpdateCall) doRequest(alt string) (*http.Response, error) {
5734	reqHeaders := make(http.Header)
5735	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
5736	for k, v := range c.header_ {
5737		reqHeaders[k] = v
5738	}
5739	reqHeaders.Set("User-Agent", c.s.userAgent())
5740	var body io.Reader = nil
5741	body, err := googleapi.WithoutDataWrapper.JSONReader(c.expansionfile)
5742	if err != nil {
5743		return nil, err
5744	}
5745	reqHeaders.Set("Content-Type", "application/json")
5746	c.urlParams_.Set("alt", alt)
5747	c.urlParams_.Set("prettyPrint", "false")
5748	urls := googleapi.ResolveRelative(c.s.BasePath, "androidpublisher/v3/applications/{packageName}/edits/{editId}/apks/{apkVersionCode}/expansionFiles/{expansionFileType}")
5749	urls += "?" + c.urlParams_.Encode()
5750	req, err := http.NewRequest("PUT", urls, body)
5751	if err != nil {
5752		return nil, err
5753	}
5754	req.Header = reqHeaders
5755	googleapi.Expand(req.URL, map[string]string{
5756		"packageName":       c.packageName,
5757		"editId":            c.editId,
5758		"apkVersionCode":    strconv.FormatInt(c.apkVersionCode, 10),
5759		"expansionFileType": c.expansionFileType,
5760	})
5761	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5762}
5763
5764// Do executes the "androidpublisher.edits.expansionfiles.update" call.
5765// Exactly one of *ExpansionFile or error will be non-nil. Any non-2xx
5766// status code is an error. Response headers are in either
5767// *ExpansionFile.ServerResponse.Header or (if a response was returned
5768// at all) in error.(*googleapi.Error).Header. Use
5769// googleapi.IsNotModified to check whether the returned error was
5770// because http.StatusNotModified was returned.
5771func (c *EditsExpansionfilesUpdateCall) Do(opts ...googleapi.CallOption) (*ExpansionFile, error) {
5772	gensupport.SetOptions(c.urlParams_, opts...)
5773	res, err := c.doRequest("json")
5774	if res != nil && res.StatusCode == http.StatusNotModified {
5775		if res.Body != nil {
5776			res.Body.Close()
5777		}
5778		return nil, &googleapi.Error{
5779			Code:   res.StatusCode,
5780			Header: res.Header,
5781		}
5782	}
5783	if err != nil {
5784		return nil, err
5785	}
5786	defer googleapi.CloseBody(res)
5787	if err := googleapi.CheckResponse(res); err != nil {
5788		return nil, err
5789	}
5790	ret := &ExpansionFile{
5791		ServerResponse: googleapi.ServerResponse{
5792			Header:         res.Header,
5793			HTTPStatusCode: res.StatusCode,
5794		},
5795	}
5796	target := &ret
5797	if err := gensupport.DecodeResponse(target, res); err != nil {
5798		return nil, err
5799	}
5800	return ret, nil
5801	// {
5802	//   "description": "Updates the APK's expansion file configuration to reference another APK's expansion file. To add a new expansion file use the Upload method.",
5803	//   "flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/apks/{apkVersionCode}/expansionFiles/{expansionFileType}",
5804	//   "httpMethod": "PUT",
5805	//   "id": "androidpublisher.edits.expansionfiles.update",
5806	//   "parameterOrder": [
5807	//     "packageName",
5808	//     "editId",
5809	//     "apkVersionCode",
5810	//     "expansionFileType"
5811	//   ],
5812	//   "parameters": {
5813	//     "apkVersionCode": {
5814	//       "description": "The version code of the APK whose expansion file configuration is being read or modified.",
5815	//       "format": "int32",
5816	//       "location": "path",
5817	//       "required": true,
5818	//       "type": "integer"
5819	//     },
5820	//     "editId": {
5821	//       "description": "Identifier of the edit.",
5822	//       "location": "path",
5823	//       "required": true,
5824	//       "type": "string"
5825	//     },
5826	//     "expansionFileType": {
5827	//       "description": "The file type of the file configuration which is being read or modified.",
5828	//       "enum": [
5829	//         "expansionFileTypeUnspecified",
5830	//         "main",
5831	//         "patch"
5832	//       ],
5833	//       "enumDescriptions": [
5834	//         "Unspecified expansion file type.",
5835	//         "Main expansion file.",
5836	//         "Patch expansion file."
5837	//       ],
5838	//       "location": "path",
5839	//       "required": true,
5840	//       "type": "string"
5841	//     },
5842	//     "packageName": {
5843	//       "description": "Package name of the app.",
5844	//       "location": "path",
5845	//       "required": true,
5846	//       "type": "string"
5847	//     }
5848	//   },
5849	//   "path": "androidpublisher/v3/applications/{packageName}/edits/{editId}/apks/{apkVersionCode}/expansionFiles/{expansionFileType}",
5850	//   "request": {
5851	//     "$ref": "ExpansionFile"
5852	//   },
5853	//   "response": {
5854	//     "$ref": "ExpansionFile"
5855	//   },
5856	//   "scopes": [
5857	//     "https://www.googleapis.com/auth/androidpublisher"
5858	//   ]
5859	// }
5860
5861}
5862
5863// method id "androidpublisher.edits.expansionfiles.upload":
5864
5865type EditsExpansionfilesUploadCall struct {
5866	s                 *Service
5867	packageName       string
5868	editId            string
5869	apkVersionCode    int64
5870	expansionFileType string
5871	urlParams_        gensupport.URLParams
5872	mediaInfo_        *gensupport.MediaInfo
5873	ctx_              context.Context
5874	header_           http.Header
5875}
5876
5877// Upload: Uploads a new expansion file and attaches to the specified
5878// APK.
5879//
5880// - apkVersionCode: The version code of the APK whose expansion file
5881//   configuration is being read or modified.
5882// - editId: Identifier of the edit.
5883// - expansionFileType: The file type of the expansion file
5884//   configuration which is being updated.
5885// - packageName: Package name of the app.
5886func (r *EditsExpansionfilesService) Upload(packageName string, editId string, apkVersionCode int64, expansionFileType string) *EditsExpansionfilesUploadCall {
5887	c := &EditsExpansionfilesUploadCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5888	c.packageName = packageName
5889	c.editId = editId
5890	c.apkVersionCode = apkVersionCode
5891	c.expansionFileType = expansionFileType
5892	return c
5893}
5894
5895// Media specifies the media to upload in one or more chunks. The chunk
5896// size may be controlled by supplying a MediaOption generated by
5897// googleapi.ChunkSize. The chunk size defaults to
5898// googleapi.DefaultUploadChunkSize.The Content-Type header used in the
5899// upload request will be determined by sniffing the contents of r,
5900// unless a MediaOption generated by googleapi.ContentType is
5901// supplied.
5902// At most one of Media and ResumableMedia may be set.
5903func (c *EditsExpansionfilesUploadCall) Media(r io.Reader, options ...googleapi.MediaOption) *EditsExpansionfilesUploadCall {
5904	c.mediaInfo_ = gensupport.NewInfoFromMedia(r, options)
5905	return c
5906}
5907
5908// ResumableMedia specifies the media to upload in chunks and can be
5909// canceled with ctx.
5910//
5911// Deprecated: use Media instead.
5912//
5913// At most one of Media and ResumableMedia may be set. mediaType
5914// identifies the MIME media type of the upload, such as "image/png". If
5915// mediaType is "", it will be auto-detected. The provided ctx will
5916// supersede any context previously provided to the Context method.
5917func (c *EditsExpansionfilesUploadCall) ResumableMedia(ctx context.Context, r io.ReaderAt, size int64, mediaType string) *EditsExpansionfilesUploadCall {
5918	c.ctx_ = ctx
5919	c.mediaInfo_ = gensupport.NewInfoFromResumableMedia(r, size, mediaType)
5920	return c
5921}
5922
5923// ProgressUpdater provides a callback function that will be called
5924// after every chunk. It should be a low-latency function in order to
5925// not slow down the upload operation. This should only be called when
5926// using ResumableMedia (as opposed to Media).
5927func (c *EditsExpansionfilesUploadCall) ProgressUpdater(pu googleapi.ProgressUpdater) *EditsExpansionfilesUploadCall {
5928	c.mediaInfo_.SetProgressUpdater(pu)
5929	return c
5930}
5931
5932// Fields allows partial responses to be retrieved. See
5933// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5934// for more information.
5935func (c *EditsExpansionfilesUploadCall) Fields(s ...googleapi.Field) *EditsExpansionfilesUploadCall {
5936	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5937	return c
5938}
5939
5940// Context sets the context to be used in this call's Do method. Any
5941// pending HTTP request will be aborted if the provided context is
5942// canceled.
5943// This context will supersede any context previously provided to the
5944// ResumableMedia method.
5945func (c *EditsExpansionfilesUploadCall) Context(ctx context.Context) *EditsExpansionfilesUploadCall {
5946	c.ctx_ = ctx
5947	return c
5948}
5949
5950// Header returns an http.Header that can be modified by the caller to
5951// add HTTP headers to the request.
5952func (c *EditsExpansionfilesUploadCall) Header() http.Header {
5953	if c.header_ == nil {
5954		c.header_ = make(http.Header)
5955	}
5956	return c.header_
5957}
5958
5959func (c *EditsExpansionfilesUploadCall) doRequest(alt string) (*http.Response, error) {
5960	reqHeaders := make(http.Header)
5961	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
5962	for k, v := range c.header_ {
5963		reqHeaders[k] = v
5964	}
5965	reqHeaders.Set("User-Agent", c.s.userAgent())
5966	var body io.Reader = nil
5967	c.urlParams_.Set("alt", alt)
5968	c.urlParams_.Set("prettyPrint", "false")
5969	urls := googleapi.ResolveRelative(c.s.BasePath, "androidpublisher/v3/applications/{packageName}/edits/{editId}/apks/{apkVersionCode}/expansionFiles/{expansionFileType}")
5970	if c.mediaInfo_ != nil {
5971		urls = googleapi.ResolveRelative(c.s.BasePath, "/upload/androidpublisher/v3/applications/{packageName}/edits/{editId}/apks/{apkVersionCode}/expansionFiles/{expansionFileType}")
5972		c.urlParams_.Set("uploadType", c.mediaInfo_.UploadType())
5973	}
5974	if body == nil {
5975		body = new(bytes.Buffer)
5976		reqHeaders.Set("Content-Type", "application/json")
5977	}
5978	body, getBody, cleanup := c.mediaInfo_.UploadRequest(reqHeaders, body)
5979	defer cleanup()
5980	urls += "?" + c.urlParams_.Encode()
5981	req, err := http.NewRequest("POST", urls, body)
5982	if err != nil {
5983		return nil, err
5984	}
5985	req.Header = reqHeaders
5986	req.GetBody = getBody
5987	googleapi.Expand(req.URL, map[string]string{
5988		"packageName":       c.packageName,
5989		"editId":            c.editId,
5990		"apkVersionCode":    strconv.FormatInt(c.apkVersionCode, 10),
5991		"expansionFileType": c.expansionFileType,
5992	})
5993	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5994}
5995
5996// Do executes the "androidpublisher.edits.expansionfiles.upload" call.
5997// Exactly one of *ExpansionFilesUploadResponse or error will be
5998// non-nil. Any non-2xx status code is an error. Response headers are in
5999// either *ExpansionFilesUploadResponse.ServerResponse.Header or (if a
6000// response was returned at all) in error.(*googleapi.Error).Header. Use
6001// googleapi.IsNotModified to check whether the returned error was
6002// because http.StatusNotModified was returned.
6003func (c *EditsExpansionfilesUploadCall) Do(opts ...googleapi.CallOption) (*ExpansionFilesUploadResponse, error) {
6004	gensupport.SetOptions(c.urlParams_, opts...)
6005	res, err := c.doRequest("json")
6006	if res != nil && res.StatusCode == http.StatusNotModified {
6007		if res.Body != nil {
6008			res.Body.Close()
6009		}
6010		return nil, &googleapi.Error{
6011			Code:   res.StatusCode,
6012			Header: res.Header,
6013		}
6014	}
6015	if err != nil {
6016		return nil, err
6017	}
6018	defer googleapi.CloseBody(res)
6019	if err := googleapi.CheckResponse(res); err != nil {
6020		return nil, err
6021	}
6022	rx := c.mediaInfo_.ResumableUpload(res.Header.Get("Location"))
6023	if rx != nil {
6024		rx.Client = c.s.client
6025		rx.UserAgent = c.s.userAgent()
6026		ctx := c.ctx_
6027		if ctx == nil {
6028			ctx = context.TODO()
6029		}
6030		res, err = rx.Upload(ctx)
6031		if err != nil {
6032			return nil, err
6033		}
6034		defer res.Body.Close()
6035		if err := googleapi.CheckResponse(res); err != nil {
6036			return nil, err
6037		}
6038	}
6039	ret := &ExpansionFilesUploadResponse{
6040		ServerResponse: googleapi.ServerResponse{
6041			Header:         res.Header,
6042			HTTPStatusCode: res.StatusCode,
6043		},
6044	}
6045	target := &ret
6046	if err := gensupport.DecodeResponse(target, res); err != nil {
6047		return nil, err
6048	}
6049	return ret, nil
6050	// {
6051	//   "description": "Uploads a new expansion file and attaches to the specified APK.",
6052	//   "flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/apks/{apkVersionCode}/expansionFiles/{expansionFileType}",
6053	//   "httpMethod": "POST",
6054	//   "id": "androidpublisher.edits.expansionfiles.upload",
6055	//   "mediaUpload": {
6056	//     "accept": [
6057	//       "application/octet-stream"
6058	//     ],
6059	//     "maxSize": "2147483648",
6060	//     "protocols": {
6061	//       "resumable": {
6062	//         "multipart": true,
6063	//         "path": "/resumable/upload/androidpublisher/v3/applications/{packageName}/edits/{editId}/apks/{apkVersionCode}/expansionFiles/{expansionFileType}"
6064	//       },
6065	//       "simple": {
6066	//         "multipart": true,
6067	//         "path": "/upload/androidpublisher/v3/applications/{packageName}/edits/{editId}/apks/{apkVersionCode}/expansionFiles/{expansionFileType}"
6068	//       }
6069	//     }
6070	//   },
6071	//   "parameterOrder": [
6072	//     "packageName",
6073	//     "editId",
6074	//     "apkVersionCode",
6075	//     "expansionFileType"
6076	//   ],
6077	//   "parameters": {
6078	//     "apkVersionCode": {
6079	//       "description": "The version code of the APK whose expansion file configuration is being read or modified.",
6080	//       "format": "int32",
6081	//       "location": "path",
6082	//       "required": true,
6083	//       "type": "integer"
6084	//     },
6085	//     "editId": {
6086	//       "description": "Identifier of the edit.",
6087	//       "location": "path",
6088	//       "required": true,
6089	//       "type": "string"
6090	//     },
6091	//     "expansionFileType": {
6092	//       "description": "The file type of the expansion file configuration which is being updated.",
6093	//       "enum": [
6094	//         "expansionFileTypeUnspecified",
6095	//         "main",
6096	//         "patch"
6097	//       ],
6098	//       "enumDescriptions": [
6099	//         "Unspecified expansion file type.",
6100	//         "Main expansion file.",
6101	//         "Patch expansion file."
6102	//       ],
6103	//       "location": "path",
6104	//       "required": true,
6105	//       "type": "string"
6106	//     },
6107	//     "packageName": {
6108	//       "description": "Package name of the app.",
6109	//       "location": "path",
6110	//       "required": true,
6111	//       "type": "string"
6112	//     }
6113	//   },
6114	//   "path": "androidpublisher/v3/applications/{packageName}/edits/{editId}/apks/{apkVersionCode}/expansionFiles/{expansionFileType}",
6115	//   "response": {
6116	//     "$ref": "ExpansionFilesUploadResponse"
6117	//   },
6118	//   "scopes": [
6119	//     "https://www.googleapis.com/auth/androidpublisher"
6120	//   ],
6121	//   "supportsMediaUpload": true
6122	// }
6123
6124}
6125
6126// method id "androidpublisher.edits.images.delete":
6127
6128type EditsImagesDeleteCall struct {
6129	s           *Service
6130	packageName string
6131	editId      string
6132	language    string
6133	imageType   string
6134	imageId     string
6135	urlParams_  gensupport.URLParams
6136	ctx_        context.Context
6137	header_     http.Header
6138}
6139
6140// Delete: Deletes the image (specified by id) from the edit.
6141//
6142// - editId: Identifier of the edit.
6143// - imageId: Unique identifier an image within the set of images
6144//   attached to this edit.
6145// - imageType: Type of the Image.
6146// - language: Language localization code (a BCP-47 language tag; for
6147//   example, "de-AT" for Austrian German).
6148// - packageName: Package name of the app.
6149func (r *EditsImagesService) Delete(packageName string, editId string, language string, imageType string, imageId string) *EditsImagesDeleteCall {
6150	c := &EditsImagesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6151	c.packageName = packageName
6152	c.editId = editId
6153	c.language = language
6154	c.imageType = imageType
6155	c.imageId = imageId
6156	return c
6157}
6158
6159// Fields allows partial responses to be retrieved. See
6160// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6161// for more information.
6162func (c *EditsImagesDeleteCall) Fields(s ...googleapi.Field) *EditsImagesDeleteCall {
6163	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6164	return c
6165}
6166
6167// Context sets the context to be used in this call's Do method. Any
6168// pending HTTP request will be aborted if the provided context is
6169// canceled.
6170func (c *EditsImagesDeleteCall) Context(ctx context.Context) *EditsImagesDeleteCall {
6171	c.ctx_ = ctx
6172	return c
6173}
6174
6175// Header returns an http.Header that can be modified by the caller to
6176// add HTTP headers to the request.
6177func (c *EditsImagesDeleteCall) Header() http.Header {
6178	if c.header_ == nil {
6179		c.header_ = make(http.Header)
6180	}
6181	return c.header_
6182}
6183
6184func (c *EditsImagesDeleteCall) doRequest(alt string) (*http.Response, error) {
6185	reqHeaders := make(http.Header)
6186	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
6187	for k, v := range c.header_ {
6188		reqHeaders[k] = v
6189	}
6190	reqHeaders.Set("User-Agent", c.s.userAgent())
6191	var body io.Reader = nil
6192	c.urlParams_.Set("alt", alt)
6193	c.urlParams_.Set("prettyPrint", "false")
6194	urls := googleapi.ResolveRelative(c.s.BasePath, "androidpublisher/v3/applications/{packageName}/edits/{editId}/listings/{language}/{imageType}/{imageId}")
6195	urls += "?" + c.urlParams_.Encode()
6196	req, err := http.NewRequest("DELETE", urls, body)
6197	if err != nil {
6198		return nil, err
6199	}
6200	req.Header = reqHeaders
6201	googleapi.Expand(req.URL, map[string]string{
6202		"packageName": c.packageName,
6203		"editId":      c.editId,
6204		"language":    c.language,
6205		"imageType":   c.imageType,
6206		"imageId":     c.imageId,
6207	})
6208	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6209}
6210
6211// Do executes the "androidpublisher.edits.images.delete" call.
6212func (c *EditsImagesDeleteCall) Do(opts ...googleapi.CallOption) error {
6213	gensupport.SetOptions(c.urlParams_, opts...)
6214	res, err := c.doRequest("json")
6215	if err != nil {
6216		return err
6217	}
6218	defer googleapi.CloseBody(res)
6219	if err := googleapi.CheckResponse(res); err != nil {
6220		return err
6221	}
6222	return nil
6223	// {
6224	//   "description": "Deletes the image (specified by id) from the edit.",
6225	//   "flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/listings/{language}/{imageType}/{imageId}",
6226	//   "httpMethod": "DELETE",
6227	//   "id": "androidpublisher.edits.images.delete",
6228	//   "parameterOrder": [
6229	//     "packageName",
6230	//     "editId",
6231	//     "language",
6232	//     "imageType",
6233	//     "imageId"
6234	//   ],
6235	//   "parameters": {
6236	//     "editId": {
6237	//       "description": "Identifier of the edit.",
6238	//       "location": "path",
6239	//       "required": true,
6240	//       "type": "string"
6241	//     },
6242	//     "imageId": {
6243	//       "description": "Unique identifier an image within the set of images attached to this edit.",
6244	//       "location": "path",
6245	//       "required": true,
6246	//       "type": "string"
6247	//     },
6248	//     "imageType": {
6249	//       "description": "Type of the Image.",
6250	//       "enum": [
6251	//         "appImageTypeUnspecified",
6252	//         "phoneScreenshots",
6253	//         "sevenInchScreenshots",
6254	//         "tenInchScreenshots",
6255	//         "tvScreenshots",
6256	//         "wearScreenshots",
6257	//         "icon",
6258	//         "featureGraphic",
6259	//         "tvBanner"
6260	//       ],
6261	//       "enumDescriptions": [
6262	//         "Unspecified type. Do not use.",
6263	//         "Phone screenshot.",
6264	//         "Seven inch screenshot.",
6265	//         "Ten inch screenshot.",
6266	//         "TV screenshot.",
6267	//         "Wear screenshot.",
6268	//         "Icon.",
6269	//         "Feature graphic.",
6270	//         "TV banner."
6271	//       ],
6272	//       "location": "path",
6273	//       "required": true,
6274	//       "type": "string"
6275	//     },
6276	//     "language": {
6277	//       "description": "Language localization code (a BCP-47 language tag; for example, \"de-AT\" for Austrian German).",
6278	//       "location": "path",
6279	//       "required": true,
6280	//       "type": "string"
6281	//     },
6282	//     "packageName": {
6283	//       "description": "Package name of the app.",
6284	//       "location": "path",
6285	//       "required": true,
6286	//       "type": "string"
6287	//     }
6288	//   },
6289	//   "path": "androidpublisher/v3/applications/{packageName}/edits/{editId}/listings/{language}/{imageType}/{imageId}",
6290	//   "scopes": [
6291	//     "https://www.googleapis.com/auth/androidpublisher"
6292	//   ]
6293	// }
6294
6295}
6296
6297// method id "androidpublisher.edits.images.deleteall":
6298
6299type EditsImagesDeleteallCall struct {
6300	s           *Service
6301	packageName string
6302	editId      string
6303	language    string
6304	imageType   string
6305	urlParams_  gensupport.URLParams
6306	ctx_        context.Context
6307	header_     http.Header
6308}
6309
6310// Deleteall: Deletes all images for the specified language and image
6311// type. Returns an empty response if no images are found.
6312//
6313// - editId: Identifier of the edit.
6314// - imageType: Type of the Image. Providing an image type that refers
6315//   to no images is a no-op.
6316// - language: Language localization code (a BCP-47 language tag; for
6317//   example, "de-AT" for Austrian German). Providing a language that is
6318//   not supported by the App is a no-op.
6319// - packageName: Package name of the app.
6320func (r *EditsImagesService) Deleteall(packageName string, editId string, language string, imageType string) *EditsImagesDeleteallCall {
6321	c := &EditsImagesDeleteallCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6322	c.packageName = packageName
6323	c.editId = editId
6324	c.language = language
6325	c.imageType = imageType
6326	return c
6327}
6328
6329// Fields allows partial responses to be retrieved. See
6330// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6331// for more information.
6332func (c *EditsImagesDeleteallCall) Fields(s ...googleapi.Field) *EditsImagesDeleteallCall {
6333	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6334	return c
6335}
6336
6337// Context sets the context to be used in this call's Do method. Any
6338// pending HTTP request will be aborted if the provided context is
6339// canceled.
6340func (c *EditsImagesDeleteallCall) Context(ctx context.Context) *EditsImagesDeleteallCall {
6341	c.ctx_ = ctx
6342	return c
6343}
6344
6345// Header returns an http.Header that can be modified by the caller to
6346// add HTTP headers to the request.
6347func (c *EditsImagesDeleteallCall) Header() http.Header {
6348	if c.header_ == nil {
6349		c.header_ = make(http.Header)
6350	}
6351	return c.header_
6352}
6353
6354func (c *EditsImagesDeleteallCall) doRequest(alt string) (*http.Response, error) {
6355	reqHeaders := make(http.Header)
6356	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
6357	for k, v := range c.header_ {
6358		reqHeaders[k] = v
6359	}
6360	reqHeaders.Set("User-Agent", c.s.userAgent())
6361	var body io.Reader = nil
6362	c.urlParams_.Set("alt", alt)
6363	c.urlParams_.Set("prettyPrint", "false")
6364	urls := googleapi.ResolveRelative(c.s.BasePath, "androidpublisher/v3/applications/{packageName}/edits/{editId}/listings/{language}/{imageType}")
6365	urls += "?" + c.urlParams_.Encode()
6366	req, err := http.NewRequest("DELETE", urls, body)
6367	if err != nil {
6368		return nil, err
6369	}
6370	req.Header = reqHeaders
6371	googleapi.Expand(req.URL, map[string]string{
6372		"packageName": c.packageName,
6373		"editId":      c.editId,
6374		"language":    c.language,
6375		"imageType":   c.imageType,
6376	})
6377	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6378}
6379
6380// Do executes the "androidpublisher.edits.images.deleteall" call.
6381// Exactly one of *ImagesDeleteAllResponse or error will be non-nil. Any
6382// non-2xx status code is an error. Response headers are in either
6383// *ImagesDeleteAllResponse.ServerResponse.Header or (if a response was
6384// returned at all) in error.(*googleapi.Error).Header. Use
6385// googleapi.IsNotModified to check whether the returned error was
6386// because http.StatusNotModified was returned.
6387func (c *EditsImagesDeleteallCall) Do(opts ...googleapi.CallOption) (*ImagesDeleteAllResponse, error) {
6388	gensupport.SetOptions(c.urlParams_, opts...)
6389	res, err := c.doRequest("json")
6390	if res != nil && res.StatusCode == http.StatusNotModified {
6391		if res.Body != nil {
6392			res.Body.Close()
6393		}
6394		return nil, &googleapi.Error{
6395			Code:   res.StatusCode,
6396			Header: res.Header,
6397		}
6398	}
6399	if err != nil {
6400		return nil, err
6401	}
6402	defer googleapi.CloseBody(res)
6403	if err := googleapi.CheckResponse(res); err != nil {
6404		return nil, err
6405	}
6406	ret := &ImagesDeleteAllResponse{
6407		ServerResponse: googleapi.ServerResponse{
6408			Header:         res.Header,
6409			HTTPStatusCode: res.StatusCode,
6410		},
6411	}
6412	target := &ret
6413	if err := gensupport.DecodeResponse(target, res); err != nil {
6414		return nil, err
6415	}
6416	return ret, nil
6417	// {
6418	//   "description": "Deletes all images for the specified language and image type. Returns an empty response if no images are found.",
6419	//   "flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/listings/{language}/{imageType}",
6420	//   "httpMethod": "DELETE",
6421	//   "id": "androidpublisher.edits.images.deleteall",
6422	//   "parameterOrder": [
6423	//     "packageName",
6424	//     "editId",
6425	//     "language",
6426	//     "imageType"
6427	//   ],
6428	//   "parameters": {
6429	//     "editId": {
6430	//       "description": "Identifier of the edit.",
6431	//       "location": "path",
6432	//       "required": true,
6433	//       "type": "string"
6434	//     },
6435	//     "imageType": {
6436	//       "description": "Type of the Image. Providing an image type that refers to no images is a no-op.",
6437	//       "enum": [
6438	//         "appImageTypeUnspecified",
6439	//         "phoneScreenshots",
6440	//         "sevenInchScreenshots",
6441	//         "tenInchScreenshots",
6442	//         "tvScreenshots",
6443	//         "wearScreenshots",
6444	//         "icon",
6445	//         "featureGraphic",
6446	//         "tvBanner"
6447	//       ],
6448	//       "enumDescriptions": [
6449	//         "Unspecified type. Do not use.",
6450	//         "Phone screenshot.",
6451	//         "Seven inch screenshot.",
6452	//         "Ten inch screenshot.",
6453	//         "TV screenshot.",
6454	//         "Wear screenshot.",
6455	//         "Icon.",
6456	//         "Feature graphic.",
6457	//         "TV banner."
6458	//       ],
6459	//       "location": "path",
6460	//       "required": true,
6461	//       "type": "string"
6462	//     },
6463	//     "language": {
6464	//       "description": "Language localization code (a BCP-47 language tag; for example, \"de-AT\" for Austrian German). Providing a language that is not supported by the App is a no-op.",
6465	//       "location": "path",
6466	//       "required": true,
6467	//       "type": "string"
6468	//     },
6469	//     "packageName": {
6470	//       "description": "Package name of the app.",
6471	//       "location": "path",
6472	//       "required": true,
6473	//       "type": "string"
6474	//     }
6475	//   },
6476	//   "path": "androidpublisher/v3/applications/{packageName}/edits/{editId}/listings/{language}/{imageType}",
6477	//   "response": {
6478	//     "$ref": "ImagesDeleteAllResponse"
6479	//   },
6480	//   "scopes": [
6481	//     "https://www.googleapis.com/auth/androidpublisher"
6482	//   ]
6483	// }
6484
6485}
6486
6487// method id "androidpublisher.edits.images.list":
6488
6489type EditsImagesListCall struct {
6490	s            *Service
6491	packageName  string
6492	editId       string
6493	language     string
6494	imageType    string
6495	urlParams_   gensupport.URLParams
6496	ifNoneMatch_ string
6497	ctx_         context.Context
6498	header_      http.Header
6499}
6500
6501// List: Lists all images. The response may be empty.
6502//
6503// - editId: Identifier of the edit.
6504// - imageType: Type of the Image. Providing an image type that refers
6505//   to no images will return an empty response.
6506// - language: Language localization code (a BCP-47 language tag; for
6507//   example, "de-AT" for Austrian German). There must be a store
6508//   listing for the specified language.
6509// - packageName: Package name of the app.
6510func (r *EditsImagesService) List(packageName string, editId string, language string, imageType string) *EditsImagesListCall {
6511	c := &EditsImagesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6512	c.packageName = packageName
6513	c.editId = editId
6514	c.language = language
6515	c.imageType = imageType
6516	return c
6517}
6518
6519// Fields allows partial responses to be retrieved. See
6520// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6521// for more information.
6522func (c *EditsImagesListCall) Fields(s ...googleapi.Field) *EditsImagesListCall {
6523	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6524	return c
6525}
6526
6527// IfNoneMatch sets the optional parameter which makes the operation
6528// fail if the object's ETag matches the given value. This is useful for
6529// getting updates only after the object has changed since the last
6530// request. Use googleapi.IsNotModified to check whether the response
6531// error from Do is the result of In-None-Match.
6532func (c *EditsImagesListCall) IfNoneMatch(entityTag string) *EditsImagesListCall {
6533	c.ifNoneMatch_ = entityTag
6534	return c
6535}
6536
6537// Context sets the context to be used in this call's Do method. Any
6538// pending HTTP request will be aborted if the provided context is
6539// canceled.
6540func (c *EditsImagesListCall) Context(ctx context.Context) *EditsImagesListCall {
6541	c.ctx_ = ctx
6542	return c
6543}
6544
6545// Header returns an http.Header that can be modified by the caller to
6546// add HTTP headers to the request.
6547func (c *EditsImagesListCall) Header() http.Header {
6548	if c.header_ == nil {
6549		c.header_ = make(http.Header)
6550	}
6551	return c.header_
6552}
6553
6554func (c *EditsImagesListCall) doRequest(alt string) (*http.Response, error) {
6555	reqHeaders := make(http.Header)
6556	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
6557	for k, v := range c.header_ {
6558		reqHeaders[k] = v
6559	}
6560	reqHeaders.Set("User-Agent", c.s.userAgent())
6561	if c.ifNoneMatch_ != "" {
6562		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
6563	}
6564	var body io.Reader = nil
6565	c.urlParams_.Set("alt", alt)
6566	c.urlParams_.Set("prettyPrint", "false")
6567	urls := googleapi.ResolveRelative(c.s.BasePath, "androidpublisher/v3/applications/{packageName}/edits/{editId}/listings/{language}/{imageType}")
6568	urls += "?" + c.urlParams_.Encode()
6569	req, err := http.NewRequest("GET", urls, body)
6570	if err != nil {
6571		return nil, err
6572	}
6573	req.Header = reqHeaders
6574	googleapi.Expand(req.URL, map[string]string{
6575		"packageName": c.packageName,
6576		"editId":      c.editId,
6577		"language":    c.language,
6578		"imageType":   c.imageType,
6579	})
6580	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6581}
6582
6583// Do executes the "androidpublisher.edits.images.list" call.
6584// Exactly one of *ImagesListResponse or error will be non-nil. Any
6585// non-2xx status code is an error. Response headers are in either
6586// *ImagesListResponse.ServerResponse.Header or (if a response was
6587// returned at all) in error.(*googleapi.Error).Header. Use
6588// googleapi.IsNotModified to check whether the returned error was
6589// because http.StatusNotModified was returned.
6590func (c *EditsImagesListCall) Do(opts ...googleapi.CallOption) (*ImagesListResponse, error) {
6591	gensupport.SetOptions(c.urlParams_, opts...)
6592	res, err := c.doRequest("json")
6593	if res != nil && res.StatusCode == http.StatusNotModified {
6594		if res.Body != nil {
6595			res.Body.Close()
6596		}
6597		return nil, &googleapi.Error{
6598			Code:   res.StatusCode,
6599			Header: res.Header,
6600		}
6601	}
6602	if err != nil {
6603		return nil, err
6604	}
6605	defer googleapi.CloseBody(res)
6606	if err := googleapi.CheckResponse(res); err != nil {
6607		return nil, err
6608	}
6609	ret := &ImagesListResponse{
6610		ServerResponse: googleapi.ServerResponse{
6611			Header:         res.Header,
6612			HTTPStatusCode: res.StatusCode,
6613		},
6614	}
6615	target := &ret
6616	if err := gensupport.DecodeResponse(target, res); err != nil {
6617		return nil, err
6618	}
6619	return ret, nil
6620	// {
6621	//   "description": "Lists all images. The response may be empty.",
6622	//   "flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/listings/{language}/{imageType}",
6623	//   "httpMethod": "GET",
6624	//   "id": "androidpublisher.edits.images.list",
6625	//   "parameterOrder": [
6626	//     "packageName",
6627	//     "editId",
6628	//     "language",
6629	//     "imageType"
6630	//   ],
6631	//   "parameters": {
6632	//     "editId": {
6633	//       "description": "Identifier of the edit.",
6634	//       "location": "path",
6635	//       "required": true,
6636	//       "type": "string"
6637	//     },
6638	//     "imageType": {
6639	//       "description": "Type of the Image. Providing an image type that refers to no images will return an empty response.",
6640	//       "enum": [
6641	//         "appImageTypeUnspecified",
6642	//         "phoneScreenshots",
6643	//         "sevenInchScreenshots",
6644	//         "tenInchScreenshots",
6645	//         "tvScreenshots",
6646	//         "wearScreenshots",
6647	//         "icon",
6648	//         "featureGraphic",
6649	//         "tvBanner"
6650	//       ],
6651	//       "enumDescriptions": [
6652	//         "Unspecified type. Do not use.",
6653	//         "Phone screenshot.",
6654	//         "Seven inch screenshot.",
6655	//         "Ten inch screenshot.",
6656	//         "TV screenshot.",
6657	//         "Wear screenshot.",
6658	//         "Icon.",
6659	//         "Feature graphic.",
6660	//         "TV banner."
6661	//       ],
6662	//       "location": "path",
6663	//       "required": true,
6664	//       "type": "string"
6665	//     },
6666	//     "language": {
6667	//       "description": "Language localization code (a BCP-47 language tag; for example, \"de-AT\" for Austrian German). There must be a store listing for the specified language.",
6668	//       "location": "path",
6669	//       "required": true,
6670	//       "type": "string"
6671	//     },
6672	//     "packageName": {
6673	//       "description": "Package name of the app.",
6674	//       "location": "path",
6675	//       "required": true,
6676	//       "type": "string"
6677	//     }
6678	//   },
6679	//   "path": "androidpublisher/v3/applications/{packageName}/edits/{editId}/listings/{language}/{imageType}",
6680	//   "response": {
6681	//     "$ref": "ImagesListResponse"
6682	//   },
6683	//   "scopes": [
6684	//     "https://www.googleapis.com/auth/androidpublisher"
6685	//   ]
6686	// }
6687
6688}
6689
6690// method id "androidpublisher.edits.images.upload":
6691
6692type EditsImagesUploadCall struct {
6693	s           *Service
6694	packageName string
6695	editId      string
6696	language    string
6697	imageType   string
6698	urlParams_  gensupport.URLParams
6699	mediaInfo_  *gensupport.MediaInfo
6700	ctx_        context.Context
6701	header_     http.Header
6702}
6703
6704// Upload: Uploads an image of the specified language and image type,
6705// and adds to the edit.
6706//
6707// - editId: Identifier of the edit.
6708// - imageType: Type of the Image.
6709// - language: Language localization code (a BCP-47 language tag; for
6710//   example, "de-AT" for Austrian German). Providing a language that is
6711//   not supported by the App is a no-op.
6712// - packageName: Package name of the app.
6713func (r *EditsImagesService) Upload(packageName string, editId string, language string, imageType string) *EditsImagesUploadCall {
6714	c := &EditsImagesUploadCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6715	c.packageName = packageName
6716	c.editId = editId
6717	c.language = language
6718	c.imageType = imageType
6719	return c
6720}
6721
6722// Media specifies the media to upload in one or more chunks. The chunk
6723// size may be controlled by supplying a MediaOption generated by
6724// googleapi.ChunkSize. The chunk size defaults to
6725// googleapi.DefaultUploadChunkSize.The Content-Type header used in the
6726// upload request will be determined by sniffing the contents of r,
6727// unless a MediaOption generated by googleapi.ContentType is
6728// supplied.
6729// At most one of Media and ResumableMedia may be set.
6730func (c *EditsImagesUploadCall) Media(r io.Reader, options ...googleapi.MediaOption) *EditsImagesUploadCall {
6731	c.mediaInfo_ = gensupport.NewInfoFromMedia(r, options)
6732	return c
6733}
6734
6735// ResumableMedia specifies the media to upload in chunks and can be
6736// canceled with ctx.
6737//
6738// Deprecated: use Media instead.
6739//
6740// At most one of Media and ResumableMedia may be set. mediaType
6741// identifies the MIME media type of the upload, such as "image/png". If
6742// mediaType is "", it will be auto-detected. The provided ctx will
6743// supersede any context previously provided to the Context method.
6744func (c *EditsImagesUploadCall) ResumableMedia(ctx context.Context, r io.ReaderAt, size int64, mediaType string) *EditsImagesUploadCall {
6745	c.ctx_ = ctx
6746	c.mediaInfo_ = gensupport.NewInfoFromResumableMedia(r, size, mediaType)
6747	return c
6748}
6749
6750// ProgressUpdater provides a callback function that will be called
6751// after every chunk. It should be a low-latency function in order to
6752// not slow down the upload operation. This should only be called when
6753// using ResumableMedia (as opposed to Media).
6754func (c *EditsImagesUploadCall) ProgressUpdater(pu googleapi.ProgressUpdater) *EditsImagesUploadCall {
6755	c.mediaInfo_.SetProgressUpdater(pu)
6756	return c
6757}
6758
6759// Fields allows partial responses to be retrieved. See
6760// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6761// for more information.
6762func (c *EditsImagesUploadCall) Fields(s ...googleapi.Field) *EditsImagesUploadCall {
6763	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6764	return c
6765}
6766
6767// Context sets the context to be used in this call's Do method. Any
6768// pending HTTP request will be aborted if the provided context is
6769// canceled.
6770// This context will supersede any context previously provided to the
6771// ResumableMedia method.
6772func (c *EditsImagesUploadCall) Context(ctx context.Context) *EditsImagesUploadCall {
6773	c.ctx_ = ctx
6774	return c
6775}
6776
6777// Header returns an http.Header that can be modified by the caller to
6778// add HTTP headers to the request.
6779func (c *EditsImagesUploadCall) Header() http.Header {
6780	if c.header_ == nil {
6781		c.header_ = make(http.Header)
6782	}
6783	return c.header_
6784}
6785
6786func (c *EditsImagesUploadCall) doRequest(alt string) (*http.Response, error) {
6787	reqHeaders := make(http.Header)
6788	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
6789	for k, v := range c.header_ {
6790		reqHeaders[k] = v
6791	}
6792	reqHeaders.Set("User-Agent", c.s.userAgent())
6793	var body io.Reader = nil
6794	c.urlParams_.Set("alt", alt)
6795	c.urlParams_.Set("prettyPrint", "false")
6796	urls := googleapi.ResolveRelative(c.s.BasePath, "androidpublisher/v3/applications/{packageName}/edits/{editId}/listings/{language}/{imageType}")
6797	if c.mediaInfo_ != nil {
6798		urls = googleapi.ResolveRelative(c.s.BasePath, "/upload/androidpublisher/v3/applications/{packageName}/edits/{editId}/listings/{language}/{imageType}")
6799		c.urlParams_.Set("uploadType", c.mediaInfo_.UploadType())
6800	}
6801	if body == nil {
6802		body = new(bytes.Buffer)
6803		reqHeaders.Set("Content-Type", "application/json")
6804	}
6805	body, getBody, cleanup := c.mediaInfo_.UploadRequest(reqHeaders, body)
6806	defer cleanup()
6807	urls += "?" + c.urlParams_.Encode()
6808	req, err := http.NewRequest("POST", urls, body)
6809	if err != nil {
6810		return nil, err
6811	}
6812	req.Header = reqHeaders
6813	req.GetBody = getBody
6814	googleapi.Expand(req.URL, map[string]string{
6815		"packageName": c.packageName,
6816		"editId":      c.editId,
6817		"language":    c.language,
6818		"imageType":   c.imageType,
6819	})
6820	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6821}
6822
6823// Do executes the "androidpublisher.edits.images.upload" call.
6824// Exactly one of *ImagesUploadResponse or error will be non-nil. Any
6825// non-2xx status code is an error. Response headers are in either
6826// *ImagesUploadResponse.ServerResponse.Header or (if a response was
6827// returned at all) in error.(*googleapi.Error).Header. Use
6828// googleapi.IsNotModified to check whether the returned error was
6829// because http.StatusNotModified was returned.
6830func (c *EditsImagesUploadCall) Do(opts ...googleapi.CallOption) (*ImagesUploadResponse, error) {
6831	gensupport.SetOptions(c.urlParams_, opts...)
6832	res, err := c.doRequest("json")
6833	if res != nil && res.StatusCode == http.StatusNotModified {
6834		if res.Body != nil {
6835			res.Body.Close()
6836		}
6837		return nil, &googleapi.Error{
6838			Code:   res.StatusCode,
6839			Header: res.Header,
6840		}
6841	}
6842	if err != nil {
6843		return nil, err
6844	}
6845	defer googleapi.CloseBody(res)
6846	if err := googleapi.CheckResponse(res); err != nil {
6847		return nil, err
6848	}
6849	rx := c.mediaInfo_.ResumableUpload(res.Header.Get("Location"))
6850	if rx != nil {
6851		rx.Client = c.s.client
6852		rx.UserAgent = c.s.userAgent()
6853		ctx := c.ctx_
6854		if ctx == nil {
6855			ctx = context.TODO()
6856		}
6857		res, err = rx.Upload(ctx)
6858		if err != nil {
6859			return nil, err
6860		}
6861		defer res.Body.Close()
6862		if err := googleapi.CheckResponse(res); err != nil {
6863			return nil, err
6864		}
6865	}
6866	ret := &ImagesUploadResponse{
6867		ServerResponse: googleapi.ServerResponse{
6868			Header:         res.Header,
6869			HTTPStatusCode: res.StatusCode,
6870		},
6871	}
6872	target := &ret
6873	if err := gensupport.DecodeResponse(target, res); err != nil {
6874		return nil, err
6875	}
6876	return ret, nil
6877	// {
6878	//   "description": "Uploads an image of the specified language and image type, and adds to the edit.",
6879	//   "flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/listings/{language}/{imageType}",
6880	//   "httpMethod": "POST",
6881	//   "id": "androidpublisher.edits.images.upload",
6882	//   "mediaUpload": {
6883	//     "accept": [
6884	//       "image/*"
6885	//     ],
6886	//     "maxSize": "15728640",
6887	//     "protocols": {
6888	//       "resumable": {
6889	//         "multipart": true,
6890	//         "path": "/resumable/upload/androidpublisher/v3/applications/{packageName}/edits/{editId}/listings/{language}/{imageType}"
6891	//       },
6892	//       "simple": {
6893	//         "multipart": true,
6894	//         "path": "/upload/androidpublisher/v3/applications/{packageName}/edits/{editId}/listings/{language}/{imageType}"
6895	//       }
6896	//     }
6897	//   },
6898	//   "parameterOrder": [
6899	//     "packageName",
6900	//     "editId",
6901	//     "language",
6902	//     "imageType"
6903	//   ],
6904	//   "parameters": {
6905	//     "editId": {
6906	//       "description": "Identifier of the edit.",
6907	//       "location": "path",
6908	//       "required": true,
6909	//       "type": "string"
6910	//     },
6911	//     "imageType": {
6912	//       "description": "Type of the Image.",
6913	//       "enum": [
6914	//         "appImageTypeUnspecified",
6915	//         "phoneScreenshots",
6916	//         "sevenInchScreenshots",
6917	//         "tenInchScreenshots",
6918	//         "tvScreenshots",
6919	//         "wearScreenshots",
6920	//         "icon",
6921	//         "featureGraphic",
6922	//         "tvBanner"
6923	//       ],
6924	//       "enumDescriptions": [
6925	//         "Unspecified type. Do not use.",
6926	//         "Phone screenshot.",
6927	//         "Seven inch screenshot.",
6928	//         "Ten inch screenshot.",
6929	//         "TV screenshot.",
6930	//         "Wear screenshot.",
6931	//         "Icon.",
6932	//         "Feature graphic.",
6933	//         "TV banner."
6934	//       ],
6935	//       "location": "path",
6936	//       "required": true,
6937	//       "type": "string"
6938	//     },
6939	//     "language": {
6940	//       "description": "Language localization code (a BCP-47 language tag; for example, \"de-AT\" for Austrian German). Providing a language that is not supported by the App is a no-op.",
6941	//       "location": "path",
6942	//       "required": true,
6943	//       "type": "string"
6944	//     },
6945	//     "packageName": {
6946	//       "description": "Package name of the app.",
6947	//       "location": "path",
6948	//       "required": true,
6949	//       "type": "string"
6950	//     }
6951	//   },
6952	//   "path": "androidpublisher/v3/applications/{packageName}/edits/{editId}/listings/{language}/{imageType}",
6953	//   "response": {
6954	//     "$ref": "ImagesUploadResponse"
6955	//   },
6956	//   "scopes": [
6957	//     "https://www.googleapis.com/auth/androidpublisher"
6958	//   ],
6959	//   "supportsMediaUpload": true
6960	// }
6961
6962}
6963
6964// method id "androidpublisher.edits.listings.delete":
6965
6966type EditsListingsDeleteCall struct {
6967	s           *Service
6968	packageName string
6969	editId      string
6970	language    string
6971	urlParams_  gensupport.URLParams
6972	ctx_        context.Context
6973	header_     http.Header
6974}
6975
6976// Delete: Deletes a localized store listing.
6977//
6978// - editId: Identifier of the edit.
6979// - language: Language localization code (a BCP-47 language tag; for
6980//   example, "de-AT" for Austrian German).
6981// - packageName: Package name of the app.
6982func (r *EditsListingsService) Delete(packageName string, editId string, language string) *EditsListingsDeleteCall {
6983	c := &EditsListingsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6984	c.packageName = packageName
6985	c.editId = editId
6986	c.language = language
6987	return c
6988}
6989
6990// Fields allows partial responses to be retrieved. See
6991// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6992// for more information.
6993func (c *EditsListingsDeleteCall) Fields(s ...googleapi.Field) *EditsListingsDeleteCall {
6994	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6995	return c
6996}
6997
6998// Context sets the context to be used in this call's Do method. Any
6999// pending HTTP request will be aborted if the provided context is
7000// canceled.
7001func (c *EditsListingsDeleteCall) Context(ctx context.Context) *EditsListingsDeleteCall {
7002	c.ctx_ = ctx
7003	return c
7004}
7005
7006// Header returns an http.Header that can be modified by the caller to
7007// add HTTP headers to the request.
7008func (c *EditsListingsDeleteCall) Header() http.Header {
7009	if c.header_ == nil {
7010		c.header_ = make(http.Header)
7011	}
7012	return c.header_
7013}
7014
7015func (c *EditsListingsDeleteCall) doRequest(alt string) (*http.Response, error) {
7016	reqHeaders := make(http.Header)
7017	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
7018	for k, v := range c.header_ {
7019		reqHeaders[k] = v
7020	}
7021	reqHeaders.Set("User-Agent", c.s.userAgent())
7022	var body io.Reader = nil
7023	c.urlParams_.Set("alt", alt)
7024	c.urlParams_.Set("prettyPrint", "false")
7025	urls := googleapi.ResolveRelative(c.s.BasePath, "androidpublisher/v3/applications/{packageName}/edits/{editId}/listings/{language}")
7026	urls += "?" + c.urlParams_.Encode()
7027	req, err := http.NewRequest("DELETE", urls, body)
7028	if err != nil {
7029		return nil, err
7030	}
7031	req.Header = reqHeaders
7032	googleapi.Expand(req.URL, map[string]string{
7033		"packageName": c.packageName,
7034		"editId":      c.editId,
7035		"language":    c.language,
7036	})
7037	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7038}
7039
7040// Do executes the "androidpublisher.edits.listings.delete" call.
7041func (c *EditsListingsDeleteCall) Do(opts ...googleapi.CallOption) error {
7042	gensupport.SetOptions(c.urlParams_, opts...)
7043	res, err := c.doRequest("json")
7044	if err != nil {
7045		return err
7046	}
7047	defer googleapi.CloseBody(res)
7048	if err := googleapi.CheckResponse(res); err != nil {
7049		return err
7050	}
7051	return nil
7052	// {
7053	//   "description": "Deletes a localized store listing.",
7054	//   "flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/listings/{language}",
7055	//   "httpMethod": "DELETE",
7056	//   "id": "androidpublisher.edits.listings.delete",
7057	//   "parameterOrder": [
7058	//     "packageName",
7059	//     "editId",
7060	//     "language"
7061	//   ],
7062	//   "parameters": {
7063	//     "editId": {
7064	//       "description": "Identifier of the edit.",
7065	//       "location": "path",
7066	//       "required": true,
7067	//       "type": "string"
7068	//     },
7069	//     "language": {
7070	//       "description": "Language localization code (a BCP-47 language tag; for example, \"de-AT\" for Austrian German).",
7071	//       "location": "path",
7072	//       "required": true,
7073	//       "type": "string"
7074	//     },
7075	//     "packageName": {
7076	//       "description": "Package name of the app.",
7077	//       "location": "path",
7078	//       "required": true,
7079	//       "type": "string"
7080	//     }
7081	//   },
7082	//   "path": "androidpublisher/v3/applications/{packageName}/edits/{editId}/listings/{language}",
7083	//   "scopes": [
7084	//     "https://www.googleapis.com/auth/androidpublisher"
7085	//   ]
7086	// }
7087
7088}
7089
7090// method id "androidpublisher.edits.listings.deleteall":
7091
7092type EditsListingsDeleteallCall struct {
7093	s           *Service
7094	packageName string
7095	editId      string
7096	urlParams_  gensupport.URLParams
7097	ctx_        context.Context
7098	header_     http.Header
7099}
7100
7101// Deleteall: Deletes all store listings.
7102//
7103// - editId: Identifier of the edit.
7104// - packageName: Package name of the app.
7105func (r *EditsListingsService) Deleteall(packageName string, editId string) *EditsListingsDeleteallCall {
7106	c := &EditsListingsDeleteallCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7107	c.packageName = packageName
7108	c.editId = editId
7109	return c
7110}
7111
7112// Fields allows partial responses to be retrieved. See
7113// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7114// for more information.
7115func (c *EditsListingsDeleteallCall) Fields(s ...googleapi.Field) *EditsListingsDeleteallCall {
7116	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7117	return c
7118}
7119
7120// Context sets the context to be used in this call's Do method. Any
7121// pending HTTP request will be aborted if the provided context is
7122// canceled.
7123func (c *EditsListingsDeleteallCall) Context(ctx context.Context) *EditsListingsDeleteallCall {
7124	c.ctx_ = ctx
7125	return c
7126}
7127
7128// Header returns an http.Header that can be modified by the caller to
7129// add HTTP headers to the request.
7130func (c *EditsListingsDeleteallCall) Header() http.Header {
7131	if c.header_ == nil {
7132		c.header_ = make(http.Header)
7133	}
7134	return c.header_
7135}
7136
7137func (c *EditsListingsDeleteallCall) doRequest(alt string) (*http.Response, error) {
7138	reqHeaders := make(http.Header)
7139	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
7140	for k, v := range c.header_ {
7141		reqHeaders[k] = v
7142	}
7143	reqHeaders.Set("User-Agent", c.s.userAgent())
7144	var body io.Reader = nil
7145	c.urlParams_.Set("alt", alt)
7146	c.urlParams_.Set("prettyPrint", "false")
7147	urls := googleapi.ResolveRelative(c.s.BasePath, "androidpublisher/v3/applications/{packageName}/edits/{editId}/listings")
7148	urls += "?" + c.urlParams_.Encode()
7149	req, err := http.NewRequest("DELETE", urls, body)
7150	if err != nil {
7151		return nil, err
7152	}
7153	req.Header = reqHeaders
7154	googleapi.Expand(req.URL, map[string]string{
7155		"packageName": c.packageName,
7156		"editId":      c.editId,
7157	})
7158	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7159}
7160
7161// Do executes the "androidpublisher.edits.listings.deleteall" call.
7162func (c *EditsListingsDeleteallCall) Do(opts ...googleapi.CallOption) error {
7163	gensupport.SetOptions(c.urlParams_, opts...)
7164	res, err := c.doRequest("json")
7165	if err != nil {
7166		return err
7167	}
7168	defer googleapi.CloseBody(res)
7169	if err := googleapi.CheckResponse(res); err != nil {
7170		return err
7171	}
7172	return nil
7173	// {
7174	//   "description": "Deletes all store listings.",
7175	//   "flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/listings",
7176	//   "httpMethod": "DELETE",
7177	//   "id": "androidpublisher.edits.listings.deleteall",
7178	//   "parameterOrder": [
7179	//     "packageName",
7180	//     "editId"
7181	//   ],
7182	//   "parameters": {
7183	//     "editId": {
7184	//       "description": "Identifier of the edit.",
7185	//       "location": "path",
7186	//       "required": true,
7187	//       "type": "string"
7188	//     },
7189	//     "packageName": {
7190	//       "description": "Package name of the app.",
7191	//       "location": "path",
7192	//       "required": true,
7193	//       "type": "string"
7194	//     }
7195	//   },
7196	//   "path": "androidpublisher/v3/applications/{packageName}/edits/{editId}/listings",
7197	//   "scopes": [
7198	//     "https://www.googleapis.com/auth/androidpublisher"
7199	//   ]
7200	// }
7201
7202}
7203
7204// method id "androidpublisher.edits.listings.get":
7205
7206type EditsListingsGetCall struct {
7207	s            *Service
7208	packageName  string
7209	editId       string
7210	language     string
7211	urlParams_   gensupport.URLParams
7212	ifNoneMatch_ string
7213	ctx_         context.Context
7214	header_      http.Header
7215}
7216
7217// Get: Gets a localized store listing.
7218//
7219// - editId: Identifier of the edit.
7220// - language: Language localization code (a BCP-47 language tag; for
7221//   example, "de-AT" for Austrian German).
7222// - packageName: Package name of the app.
7223func (r *EditsListingsService) Get(packageName string, editId string, language string) *EditsListingsGetCall {
7224	c := &EditsListingsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7225	c.packageName = packageName
7226	c.editId = editId
7227	c.language = language
7228	return c
7229}
7230
7231// Fields allows partial responses to be retrieved. See
7232// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7233// for more information.
7234func (c *EditsListingsGetCall) Fields(s ...googleapi.Field) *EditsListingsGetCall {
7235	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7236	return c
7237}
7238
7239// IfNoneMatch sets the optional parameter which makes the operation
7240// fail if the object's ETag matches the given value. This is useful for
7241// getting updates only after the object has changed since the last
7242// request. Use googleapi.IsNotModified to check whether the response
7243// error from Do is the result of In-None-Match.
7244func (c *EditsListingsGetCall) IfNoneMatch(entityTag string) *EditsListingsGetCall {
7245	c.ifNoneMatch_ = entityTag
7246	return c
7247}
7248
7249// Context sets the context to be used in this call's Do method. Any
7250// pending HTTP request will be aborted if the provided context is
7251// canceled.
7252func (c *EditsListingsGetCall) Context(ctx context.Context) *EditsListingsGetCall {
7253	c.ctx_ = ctx
7254	return c
7255}
7256
7257// Header returns an http.Header that can be modified by the caller to
7258// add HTTP headers to the request.
7259func (c *EditsListingsGetCall) Header() http.Header {
7260	if c.header_ == nil {
7261		c.header_ = make(http.Header)
7262	}
7263	return c.header_
7264}
7265
7266func (c *EditsListingsGetCall) doRequest(alt string) (*http.Response, error) {
7267	reqHeaders := make(http.Header)
7268	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
7269	for k, v := range c.header_ {
7270		reqHeaders[k] = v
7271	}
7272	reqHeaders.Set("User-Agent", c.s.userAgent())
7273	if c.ifNoneMatch_ != "" {
7274		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
7275	}
7276	var body io.Reader = nil
7277	c.urlParams_.Set("alt", alt)
7278	c.urlParams_.Set("prettyPrint", "false")
7279	urls := googleapi.ResolveRelative(c.s.BasePath, "androidpublisher/v3/applications/{packageName}/edits/{editId}/listings/{language}")
7280	urls += "?" + c.urlParams_.Encode()
7281	req, err := http.NewRequest("GET", urls, body)
7282	if err != nil {
7283		return nil, err
7284	}
7285	req.Header = reqHeaders
7286	googleapi.Expand(req.URL, map[string]string{
7287		"packageName": c.packageName,
7288		"editId":      c.editId,
7289		"language":    c.language,
7290	})
7291	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7292}
7293
7294// Do executes the "androidpublisher.edits.listings.get" call.
7295// Exactly one of *Listing or error will be non-nil. Any non-2xx status
7296// code is an error. Response headers are in either
7297// *Listing.ServerResponse.Header or (if a response was returned at all)
7298// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
7299// check whether the returned error was because http.StatusNotModified
7300// was returned.
7301func (c *EditsListingsGetCall) Do(opts ...googleapi.CallOption) (*Listing, error) {
7302	gensupport.SetOptions(c.urlParams_, opts...)
7303	res, err := c.doRequest("json")
7304	if res != nil && res.StatusCode == http.StatusNotModified {
7305		if res.Body != nil {
7306			res.Body.Close()
7307		}
7308		return nil, &googleapi.Error{
7309			Code:   res.StatusCode,
7310			Header: res.Header,
7311		}
7312	}
7313	if err != nil {
7314		return nil, err
7315	}
7316	defer googleapi.CloseBody(res)
7317	if err := googleapi.CheckResponse(res); err != nil {
7318		return nil, err
7319	}
7320	ret := &Listing{
7321		ServerResponse: googleapi.ServerResponse{
7322			Header:         res.Header,
7323			HTTPStatusCode: res.StatusCode,
7324		},
7325	}
7326	target := &ret
7327	if err := gensupport.DecodeResponse(target, res); err != nil {
7328		return nil, err
7329	}
7330	return ret, nil
7331	// {
7332	//   "description": "Gets a localized store listing.",
7333	//   "flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/listings/{language}",
7334	//   "httpMethod": "GET",
7335	//   "id": "androidpublisher.edits.listings.get",
7336	//   "parameterOrder": [
7337	//     "packageName",
7338	//     "editId",
7339	//     "language"
7340	//   ],
7341	//   "parameters": {
7342	//     "editId": {
7343	//       "description": "Identifier of the edit.",
7344	//       "location": "path",
7345	//       "required": true,
7346	//       "type": "string"
7347	//     },
7348	//     "language": {
7349	//       "description": "Language localization code (a BCP-47 language tag; for example, \"de-AT\" for Austrian German).",
7350	//       "location": "path",
7351	//       "required": true,
7352	//       "type": "string"
7353	//     },
7354	//     "packageName": {
7355	//       "description": "Package name of the app.",
7356	//       "location": "path",
7357	//       "required": true,
7358	//       "type": "string"
7359	//     }
7360	//   },
7361	//   "path": "androidpublisher/v3/applications/{packageName}/edits/{editId}/listings/{language}",
7362	//   "response": {
7363	//     "$ref": "Listing"
7364	//   },
7365	//   "scopes": [
7366	//     "https://www.googleapis.com/auth/androidpublisher"
7367	//   ]
7368	// }
7369
7370}
7371
7372// method id "androidpublisher.edits.listings.list":
7373
7374type EditsListingsListCall struct {
7375	s            *Service
7376	packageName  string
7377	editId       string
7378	urlParams_   gensupport.URLParams
7379	ifNoneMatch_ string
7380	ctx_         context.Context
7381	header_      http.Header
7382}
7383
7384// List: Lists all localized store listings.
7385//
7386// - editId: Identifier of the edit.
7387// - packageName: Package name of the app.
7388func (r *EditsListingsService) List(packageName string, editId string) *EditsListingsListCall {
7389	c := &EditsListingsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7390	c.packageName = packageName
7391	c.editId = editId
7392	return c
7393}
7394
7395// Fields allows partial responses to be retrieved. See
7396// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7397// for more information.
7398func (c *EditsListingsListCall) Fields(s ...googleapi.Field) *EditsListingsListCall {
7399	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7400	return c
7401}
7402
7403// IfNoneMatch sets the optional parameter which makes the operation
7404// fail if the object's ETag matches the given value. This is useful for
7405// getting updates only after the object has changed since the last
7406// request. Use googleapi.IsNotModified to check whether the response
7407// error from Do is the result of In-None-Match.
7408func (c *EditsListingsListCall) IfNoneMatch(entityTag string) *EditsListingsListCall {
7409	c.ifNoneMatch_ = entityTag
7410	return c
7411}
7412
7413// Context sets the context to be used in this call's Do method. Any
7414// pending HTTP request will be aborted if the provided context is
7415// canceled.
7416func (c *EditsListingsListCall) Context(ctx context.Context) *EditsListingsListCall {
7417	c.ctx_ = ctx
7418	return c
7419}
7420
7421// Header returns an http.Header that can be modified by the caller to
7422// add HTTP headers to the request.
7423func (c *EditsListingsListCall) Header() http.Header {
7424	if c.header_ == nil {
7425		c.header_ = make(http.Header)
7426	}
7427	return c.header_
7428}
7429
7430func (c *EditsListingsListCall) doRequest(alt string) (*http.Response, error) {
7431	reqHeaders := make(http.Header)
7432	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
7433	for k, v := range c.header_ {
7434		reqHeaders[k] = v
7435	}
7436	reqHeaders.Set("User-Agent", c.s.userAgent())
7437	if c.ifNoneMatch_ != "" {
7438		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
7439	}
7440	var body io.Reader = nil
7441	c.urlParams_.Set("alt", alt)
7442	c.urlParams_.Set("prettyPrint", "false")
7443	urls := googleapi.ResolveRelative(c.s.BasePath, "androidpublisher/v3/applications/{packageName}/edits/{editId}/listings")
7444	urls += "?" + c.urlParams_.Encode()
7445	req, err := http.NewRequest("GET", urls, body)
7446	if err != nil {
7447		return nil, err
7448	}
7449	req.Header = reqHeaders
7450	googleapi.Expand(req.URL, map[string]string{
7451		"packageName": c.packageName,
7452		"editId":      c.editId,
7453	})
7454	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7455}
7456
7457// Do executes the "androidpublisher.edits.listings.list" call.
7458// Exactly one of *ListingsListResponse or error will be non-nil. Any
7459// non-2xx status code is an error. Response headers are in either
7460// *ListingsListResponse.ServerResponse.Header or (if a response was
7461// returned at all) in error.(*googleapi.Error).Header. Use
7462// googleapi.IsNotModified to check whether the returned error was
7463// because http.StatusNotModified was returned.
7464func (c *EditsListingsListCall) Do(opts ...googleapi.CallOption) (*ListingsListResponse, error) {
7465	gensupport.SetOptions(c.urlParams_, opts...)
7466	res, err := c.doRequest("json")
7467	if res != nil && res.StatusCode == http.StatusNotModified {
7468		if res.Body != nil {
7469			res.Body.Close()
7470		}
7471		return nil, &googleapi.Error{
7472			Code:   res.StatusCode,
7473			Header: res.Header,
7474		}
7475	}
7476	if err != nil {
7477		return nil, err
7478	}
7479	defer googleapi.CloseBody(res)
7480	if err := googleapi.CheckResponse(res); err != nil {
7481		return nil, err
7482	}
7483	ret := &ListingsListResponse{
7484		ServerResponse: googleapi.ServerResponse{
7485			Header:         res.Header,
7486			HTTPStatusCode: res.StatusCode,
7487		},
7488	}
7489	target := &ret
7490	if err := gensupport.DecodeResponse(target, res); err != nil {
7491		return nil, err
7492	}
7493	return ret, nil
7494	// {
7495	//   "description": "Lists all localized store listings.",
7496	//   "flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/listings",
7497	//   "httpMethod": "GET",
7498	//   "id": "androidpublisher.edits.listings.list",
7499	//   "parameterOrder": [
7500	//     "packageName",
7501	//     "editId"
7502	//   ],
7503	//   "parameters": {
7504	//     "editId": {
7505	//       "description": "Identifier of the edit.",
7506	//       "location": "path",
7507	//       "required": true,
7508	//       "type": "string"
7509	//     },
7510	//     "packageName": {
7511	//       "description": "Package name of the app.",
7512	//       "location": "path",
7513	//       "required": true,
7514	//       "type": "string"
7515	//     }
7516	//   },
7517	//   "path": "androidpublisher/v3/applications/{packageName}/edits/{editId}/listings",
7518	//   "response": {
7519	//     "$ref": "ListingsListResponse"
7520	//   },
7521	//   "scopes": [
7522	//     "https://www.googleapis.com/auth/androidpublisher"
7523	//   ]
7524	// }
7525
7526}
7527
7528// method id "androidpublisher.edits.listings.patch":
7529
7530type EditsListingsPatchCall struct {
7531	s           *Service
7532	packageName string
7533	editId      string
7534	language    string
7535	listing     *Listing
7536	urlParams_  gensupport.URLParams
7537	ctx_        context.Context
7538	header_     http.Header
7539}
7540
7541// Patch: Patches a localized store listing.
7542//
7543// - editId: Identifier of the edit.
7544// - language: Language localization code (a BCP-47 language tag; for
7545//   example, "de-AT" for Austrian German).
7546// - packageName: Package name of the app.
7547func (r *EditsListingsService) Patch(packageName string, editId string, language string, listing *Listing) *EditsListingsPatchCall {
7548	c := &EditsListingsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7549	c.packageName = packageName
7550	c.editId = editId
7551	c.language = language
7552	c.listing = listing
7553	return c
7554}
7555
7556// Fields allows partial responses to be retrieved. See
7557// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7558// for more information.
7559func (c *EditsListingsPatchCall) Fields(s ...googleapi.Field) *EditsListingsPatchCall {
7560	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7561	return c
7562}
7563
7564// Context sets the context to be used in this call's Do method. Any
7565// pending HTTP request will be aborted if the provided context is
7566// canceled.
7567func (c *EditsListingsPatchCall) Context(ctx context.Context) *EditsListingsPatchCall {
7568	c.ctx_ = ctx
7569	return c
7570}
7571
7572// Header returns an http.Header that can be modified by the caller to
7573// add HTTP headers to the request.
7574func (c *EditsListingsPatchCall) Header() http.Header {
7575	if c.header_ == nil {
7576		c.header_ = make(http.Header)
7577	}
7578	return c.header_
7579}
7580
7581func (c *EditsListingsPatchCall) doRequest(alt string) (*http.Response, error) {
7582	reqHeaders := make(http.Header)
7583	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
7584	for k, v := range c.header_ {
7585		reqHeaders[k] = v
7586	}
7587	reqHeaders.Set("User-Agent", c.s.userAgent())
7588	var body io.Reader = nil
7589	body, err := googleapi.WithoutDataWrapper.JSONReader(c.listing)
7590	if err != nil {
7591		return nil, err
7592	}
7593	reqHeaders.Set("Content-Type", "application/json")
7594	c.urlParams_.Set("alt", alt)
7595	c.urlParams_.Set("prettyPrint", "false")
7596	urls := googleapi.ResolveRelative(c.s.BasePath, "androidpublisher/v3/applications/{packageName}/edits/{editId}/listings/{language}")
7597	urls += "?" + c.urlParams_.Encode()
7598	req, err := http.NewRequest("PATCH", urls, body)
7599	if err != nil {
7600		return nil, err
7601	}
7602	req.Header = reqHeaders
7603	googleapi.Expand(req.URL, map[string]string{
7604		"packageName": c.packageName,
7605		"editId":      c.editId,
7606		"language":    c.language,
7607	})
7608	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7609}
7610
7611// Do executes the "androidpublisher.edits.listings.patch" call.
7612// Exactly one of *Listing or error will be non-nil. Any non-2xx status
7613// code is an error. Response headers are in either
7614// *Listing.ServerResponse.Header or (if a response was returned at all)
7615// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
7616// check whether the returned error was because http.StatusNotModified
7617// was returned.
7618func (c *EditsListingsPatchCall) Do(opts ...googleapi.CallOption) (*Listing, error) {
7619	gensupport.SetOptions(c.urlParams_, opts...)
7620	res, err := c.doRequest("json")
7621	if res != nil && res.StatusCode == http.StatusNotModified {
7622		if res.Body != nil {
7623			res.Body.Close()
7624		}
7625		return nil, &googleapi.Error{
7626			Code:   res.StatusCode,
7627			Header: res.Header,
7628		}
7629	}
7630	if err != nil {
7631		return nil, err
7632	}
7633	defer googleapi.CloseBody(res)
7634	if err := googleapi.CheckResponse(res); err != nil {
7635		return nil, err
7636	}
7637	ret := &Listing{
7638		ServerResponse: googleapi.ServerResponse{
7639			Header:         res.Header,
7640			HTTPStatusCode: res.StatusCode,
7641		},
7642	}
7643	target := &ret
7644	if err := gensupport.DecodeResponse(target, res); err != nil {
7645		return nil, err
7646	}
7647	return ret, nil
7648	// {
7649	//   "description": "Patches a localized store listing.",
7650	//   "flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/listings/{language}",
7651	//   "httpMethod": "PATCH",
7652	//   "id": "androidpublisher.edits.listings.patch",
7653	//   "parameterOrder": [
7654	//     "packageName",
7655	//     "editId",
7656	//     "language"
7657	//   ],
7658	//   "parameters": {
7659	//     "editId": {
7660	//       "description": "Identifier of the edit.",
7661	//       "location": "path",
7662	//       "required": true,
7663	//       "type": "string"
7664	//     },
7665	//     "language": {
7666	//       "description": "Language localization code (a BCP-47 language tag; for example, \"de-AT\" for Austrian German).",
7667	//       "location": "path",
7668	//       "required": true,
7669	//       "type": "string"
7670	//     },
7671	//     "packageName": {
7672	//       "description": "Package name of the app.",
7673	//       "location": "path",
7674	//       "required": true,
7675	//       "type": "string"
7676	//     }
7677	//   },
7678	//   "path": "androidpublisher/v3/applications/{packageName}/edits/{editId}/listings/{language}",
7679	//   "request": {
7680	//     "$ref": "Listing"
7681	//   },
7682	//   "response": {
7683	//     "$ref": "Listing"
7684	//   },
7685	//   "scopes": [
7686	//     "https://www.googleapis.com/auth/androidpublisher"
7687	//   ]
7688	// }
7689
7690}
7691
7692// method id "androidpublisher.edits.listings.update":
7693
7694type EditsListingsUpdateCall struct {
7695	s           *Service
7696	packageName string
7697	editId      string
7698	language    string
7699	listing     *Listing
7700	urlParams_  gensupport.URLParams
7701	ctx_        context.Context
7702	header_     http.Header
7703}
7704
7705// Update: Creates or updates a localized store listing.
7706//
7707// - editId: Identifier of the edit.
7708// - language: Language localization code (a BCP-47 language tag; for
7709//   example, "de-AT" for Austrian German).
7710// - packageName: Package name of the app.
7711func (r *EditsListingsService) Update(packageName string, editId string, language string, listing *Listing) *EditsListingsUpdateCall {
7712	c := &EditsListingsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7713	c.packageName = packageName
7714	c.editId = editId
7715	c.language = language
7716	c.listing = listing
7717	return c
7718}
7719
7720// Fields allows partial responses to be retrieved. See
7721// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7722// for more information.
7723func (c *EditsListingsUpdateCall) Fields(s ...googleapi.Field) *EditsListingsUpdateCall {
7724	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7725	return c
7726}
7727
7728// Context sets the context to be used in this call's Do method. Any
7729// pending HTTP request will be aborted if the provided context is
7730// canceled.
7731func (c *EditsListingsUpdateCall) Context(ctx context.Context) *EditsListingsUpdateCall {
7732	c.ctx_ = ctx
7733	return c
7734}
7735
7736// Header returns an http.Header that can be modified by the caller to
7737// add HTTP headers to the request.
7738func (c *EditsListingsUpdateCall) Header() http.Header {
7739	if c.header_ == nil {
7740		c.header_ = make(http.Header)
7741	}
7742	return c.header_
7743}
7744
7745func (c *EditsListingsUpdateCall) doRequest(alt string) (*http.Response, error) {
7746	reqHeaders := make(http.Header)
7747	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
7748	for k, v := range c.header_ {
7749		reqHeaders[k] = v
7750	}
7751	reqHeaders.Set("User-Agent", c.s.userAgent())
7752	var body io.Reader = nil
7753	body, err := googleapi.WithoutDataWrapper.JSONReader(c.listing)
7754	if err != nil {
7755		return nil, err
7756	}
7757	reqHeaders.Set("Content-Type", "application/json")
7758	c.urlParams_.Set("alt", alt)
7759	c.urlParams_.Set("prettyPrint", "false")
7760	urls := googleapi.ResolveRelative(c.s.BasePath, "androidpublisher/v3/applications/{packageName}/edits/{editId}/listings/{language}")
7761	urls += "?" + c.urlParams_.Encode()
7762	req, err := http.NewRequest("PUT", urls, body)
7763	if err != nil {
7764		return nil, err
7765	}
7766	req.Header = reqHeaders
7767	googleapi.Expand(req.URL, map[string]string{
7768		"packageName": c.packageName,
7769		"editId":      c.editId,
7770		"language":    c.language,
7771	})
7772	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7773}
7774
7775// Do executes the "androidpublisher.edits.listings.update" call.
7776// Exactly one of *Listing or error will be non-nil. Any non-2xx status
7777// code is an error. Response headers are in either
7778// *Listing.ServerResponse.Header or (if a response was returned at all)
7779// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
7780// check whether the returned error was because http.StatusNotModified
7781// was returned.
7782func (c *EditsListingsUpdateCall) Do(opts ...googleapi.CallOption) (*Listing, error) {
7783	gensupport.SetOptions(c.urlParams_, opts...)
7784	res, err := c.doRequest("json")
7785	if res != nil && res.StatusCode == http.StatusNotModified {
7786		if res.Body != nil {
7787			res.Body.Close()
7788		}
7789		return nil, &googleapi.Error{
7790			Code:   res.StatusCode,
7791			Header: res.Header,
7792		}
7793	}
7794	if err != nil {
7795		return nil, err
7796	}
7797	defer googleapi.CloseBody(res)
7798	if err := googleapi.CheckResponse(res); err != nil {
7799		return nil, err
7800	}
7801	ret := &Listing{
7802		ServerResponse: googleapi.ServerResponse{
7803			Header:         res.Header,
7804			HTTPStatusCode: res.StatusCode,
7805		},
7806	}
7807	target := &ret
7808	if err := gensupport.DecodeResponse(target, res); err != nil {
7809		return nil, err
7810	}
7811	return ret, nil
7812	// {
7813	//   "description": "Creates or updates a localized store listing.",
7814	//   "flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/listings/{language}",
7815	//   "httpMethod": "PUT",
7816	//   "id": "androidpublisher.edits.listings.update",
7817	//   "parameterOrder": [
7818	//     "packageName",
7819	//     "editId",
7820	//     "language"
7821	//   ],
7822	//   "parameters": {
7823	//     "editId": {
7824	//       "description": "Identifier of the edit.",
7825	//       "location": "path",
7826	//       "required": true,
7827	//       "type": "string"
7828	//     },
7829	//     "language": {
7830	//       "description": "Language localization code (a BCP-47 language tag; for example, \"de-AT\" for Austrian German).",
7831	//       "location": "path",
7832	//       "required": true,
7833	//       "type": "string"
7834	//     },
7835	//     "packageName": {
7836	//       "description": "Package name of the app.",
7837	//       "location": "path",
7838	//       "required": true,
7839	//       "type": "string"
7840	//     }
7841	//   },
7842	//   "path": "androidpublisher/v3/applications/{packageName}/edits/{editId}/listings/{language}",
7843	//   "request": {
7844	//     "$ref": "Listing"
7845	//   },
7846	//   "response": {
7847	//     "$ref": "Listing"
7848	//   },
7849	//   "scopes": [
7850	//     "https://www.googleapis.com/auth/androidpublisher"
7851	//   ]
7852	// }
7853
7854}
7855
7856// method id "androidpublisher.edits.testers.get":
7857
7858type EditsTestersGetCall struct {
7859	s            *Service
7860	packageName  string
7861	editId       string
7862	track        string
7863	urlParams_   gensupport.URLParams
7864	ifNoneMatch_ string
7865	ctx_         context.Context
7866	header_      http.Header
7867}
7868
7869// Get: Gets testers.
7870//
7871// - editId: Identifier of the edit.
7872// - packageName: Package name of the app.
7873// - track: The track to read from.
7874func (r *EditsTestersService) Get(packageName string, editId string, track string) *EditsTestersGetCall {
7875	c := &EditsTestersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7876	c.packageName = packageName
7877	c.editId = editId
7878	c.track = track
7879	return c
7880}
7881
7882// Fields allows partial responses to be retrieved. See
7883// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7884// for more information.
7885func (c *EditsTestersGetCall) Fields(s ...googleapi.Field) *EditsTestersGetCall {
7886	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7887	return c
7888}
7889
7890// IfNoneMatch sets the optional parameter which makes the operation
7891// fail if the object's ETag matches the given value. This is useful for
7892// getting updates only after the object has changed since the last
7893// request. Use googleapi.IsNotModified to check whether the response
7894// error from Do is the result of In-None-Match.
7895func (c *EditsTestersGetCall) IfNoneMatch(entityTag string) *EditsTestersGetCall {
7896	c.ifNoneMatch_ = entityTag
7897	return c
7898}
7899
7900// Context sets the context to be used in this call's Do method. Any
7901// pending HTTP request will be aborted if the provided context is
7902// canceled.
7903func (c *EditsTestersGetCall) Context(ctx context.Context) *EditsTestersGetCall {
7904	c.ctx_ = ctx
7905	return c
7906}
7907
7908// Header returns an http.Header that can be modified by the caller to
7909// add HTTP headers to the request.
7910func (c *EditsTestersGetCall) Header() http.Header {
7911	if c.header_ == nil {
7912		c.header_ = make(http.Header)
7913	}
7914	return c.header_
7915}
7916
7917func (c *EditsTestersGetCall) doRequest(alt string) (*http.Response, error) {
7918	reqHeaders := make(http.Header)
7919	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
7920	for k, v := range c.header_ {
7921		reqHeaders[k] = v
7922	}
7923	reqHeaders.Set("User-Agent", c.s.userAgent())
7924	if c.ifNoneMatch_ != "" {
7925		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
7926	}
7927	var body io.Reader = nil
7928	c.urlParams_.Set("alt", alt)
7929	c.urlParams_.Set("prettyPrint", "false")
7930	urls := googleapi.ResolveRelative(c.s.BasePath, "androidpublisher/v3/applications/{packageName}/edits/{editId}/testers/{track}")
7931	urls += "?" + c.urlParams_.Encode()
7932	req, err := http.NewRequest("GET", urls, body)
7933	if err != nil {
7934		return nil, err
7935	}
7936	req.Header = reqHeaders
7937	googleapi.Expand(req.URL, map[string]string{
7938		"packageName": c.packageName,
7939		"editId":      c.editId,
7940		"track":       c.track,
7941	})
7942	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7943}
7944
7945// Do executes the "androidpublisher.edits.testers.get" call.
7946// Exactly one of *Testers or error will be non-nil. Any non-2xx status
7947// code is an error. Response headers are in either
7948// *Testers.ServerResponse.Header or (if a response was returned at all)
7949// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
7950// check whether the returned error was because http.StatusNotModified
7951// was returned.
7952func (c *EditsTestersGetCall) Do(opts ...googleapi.CallOption) (*Testers, error) {
7953	gensupport.SetOptions(c.urlParams_, opts...)
7954	res, err := c.doRequest("json")
7955	if res != nil && res.StatusCode == http.StatusNotModified {
7956		if res.Body != nil {
7957			res.Body.Close()
7958		}
7959		return nil, &googleapi.Error{
7960			Code:   res.StatusCode,
7961			Header: res.Header,
7962		}
7963	}
7964	if err != nil {
7965		return nil, err
7966	}
7967	defer googleapi.CloseBody(res)
7968	if err := googleapi.CheckResponse(res); err != nil {
7969		return nil, err
7970	}
7971	ret := &Testers{
7972		ServerResponse: googleapi.ServerResponse{
7973			Header:         res.Header,
7974			HTTPStatusCode: res.StatusCode,
7975		},
7976	}
7977	target := &ret
7978	if err := gensupport.DecodeResponse(target, res); err != nil {
7979		return nil, err
7980	}
7981	return ret, nil
7982	// {
7983	//   "description": "Gets testers.",
7984	//   "flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/testers/{track}",
7985	//   "httpMethod": "GET",
7986	//   "id": "androidpublisher.edits.testers.get",
7987	//   "parameterOrder": [
7988	//     "packageName",
7989	//     "editId",
7990	//     "track"
7991	//   ],
7992	//   "parameters": {
7993	//     "editId": {
7994	//       "description": "Identifier of the edit.",
7995	//       "location": "path",
7996	//       "required": true,
7997	//       "type": "string"
7998	//     },
7999	//     "packageName": {
8000	//       "description": "Package name of the app.",
8001	//       "location": "path",
8002	//       "required": true,
8003	//       "type": "string"
8004	//     },
8005	//     "track": {
8006	//       "description": "The track to read from.",
8007	//       "location": "path",
8008	//       "required": true,
8009	//       "type": "string"
8010	//     }
8011	//   },
8012	//   "path": "androidpublisher/v3/applications/{packageName}/edits/{editId}/testers/{track}",
8013	//   "response": {
8014	//     "$ref": "Testers"
8015	//   },
8016	//   "scopes": [
8017	//     "https://www.googleapis.com/auth/androidpublisher"
8018	//   ]
8019	// }
8020
8021}
8022
8023// method id "androidpublisher.edits.testers.patch":
8024
8025type EditsTestersPatchCall struct {
8026	s           *Service
8027	packageName string
8028	editId      string
8029	track       string
8030	testers     *Testers
8031	urlParams_  gensupport.URLParams
8032	ctx_        context.Context
8033	header_     http.Header
8034}
8035
8036// Patch: Patches testers.
8037//
8038// - editId: Identifier of the edit.
8039// - packageName: Package name of the app.
8040// - track: The track to update.
8041func (r *EditsTestersService) Patch(packageName string, editId string, track string, testers *Testers) *EditsTestersPatchCall {
8042	c := &EditsTestersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8043	c.packageName = packageName
8044	c.editId = editId
8045	c.track = track
8046	c.testers = testers
8047	return c
8048}
8049
8050// Fields allows partial responses to be retrieved. See
8051// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8052// for more information.
8053func (c *EditsTestersPatchCall) Fields(s ...googleapi.Field) *EditsTestersPatchCall {
8054	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8055	return c
8056}
8057
8058// Context sets the context to be used in this call's Do method. Any
8059// pending HTTP request will be aborted if the provided context is
8060// canceled.
8061func (c *EditsTestersPatchCall) Context(ctx context.Context) *EditsTestersPatchCall {
8062	c.ctx_ = ctx
8063	return c
8064}
8065
8066// Header returns an http.Header that can be modified by the caller to
8067// add HTTP headers to the request.
8068func (c *EditsTestersPatchCall) Header() http.Header {
8069	if c.header_ == nil {
8070		c.header_ = make(http.Header)
8071	}
8072	return c.header_
8073}
8074
8075func (c *EditsTestersPatchCall) doRequest(alt string) (*http.Response, error) {
8076	reqHeaders := make(http.Header)
8077	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
8078	for k, v := range c.header_ {
8079		reqHeaders[k] = v
8080	}
8081	reqHeaders.Set("User-Agent", c.s.userAgent())
8082	var body io.Reader = nil
8083	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testers)
8084	if err != nil {
8085		return nil, err
8086	}
8087	reqHeaders.Set("Content-Type", "application/json")
8088	c.urlParams_.Set("alt", alt)
8089	c.urlParams_.Set("prettyPrint", "false")
8090	urls := googleapi.ResolveRelative(c.s.BasePath, "androidpublisher/v3/applications/{packageName}/edits/{editId}/testers/{track}")
8091	urls += "?" + c.urlParams_.Encode()
8092	req, err := http.NewRequest("PATCH", urls, body)
8093	if err != nil {
8094		return nil, err
8095	}
8096	req.Header = reqHeaders
8097	googleapi.Expand(req.URL, map[string]string{
8098		"packageName": c.packageName,
8099		"editId":      c.editId,
8100		"track":       c.track,
8101	})
8102	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8103}
8104
8105// Do executes the "androidpublisher.edits.testers.patch" call.
8106// Exactly one of *Testers or error will be non-nil. Any non-2xx status
8107// code is an error. Response headers are in either
8108// *Testers.ServerResponse.Header or (if a response was returned at all)
8109// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
8110// check whether the returned error was because http.StatusNotModified
8111// was returned.
8112func (c *EditsTestersPatchCall) Do(opts ...googleapi.CallOption) (*Testers, error) {
8113	gensupport.SetOptions(c.urlParams_, opts...)
8114	res, err := c.doRequest("json")
8115	if res != nil && res.StatusCode == http.StatusNotModified {
8116		if res.Body != nil {
8117			res.Body.Close()
8118		}
8119		return nil, &googleapi.Error{
8120			Code:   res.StatusCode,
8121			Header: res.Header,
8122		}
8123	}
8124	if err != nil {
8125		return nil, err
8126	}
8127	defer googleapi.CloseBody(res)
8128	if err := googleapi.CheckResponse(res); err != nil {
8129		return nil, err
8130	}
8131	ret := &Testers{
8132		ServerResponse: googleapi.ServerResponse{
8133			Header:         res.Header,
8134			HTTPStatusCode: res.StatusCode,
8135		},
8136	}
8137	target := &ret
8138	if err := gensupport.DecodeResponse(target, res); err != nil {
8139		return nil, err
8140	}
8141	return ret, nil
8142	// {
8143	//   "description": "Patches testers.",
8144	//   "flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/testers/{track}",
8145	//   "httpMethod": "PATCH",
8146	//   "id": "androidpublisher.edits.testers.patch",
8147	//   "parameterOrder": [
8148	//     "packageName",
8149	//     "editId",
8150	//     "track"
8151	//   ],
8152	//   "parameters": {
8153	//     "editId": {
8154	//       "description": "Identifier of the edit.",
8155	//       "location": "path",
8156	//       "required": true,
8157	//       "type": "string"
8158	//     },
8159	//     "packageName": {
8160	//       "description": "Package name of the app.",
8161	//       "location": "path",
8162	//       "required": true,
8163	//       "type": "string"
8164	//     },
8165	//     "track": {
8166	//       "description": "The track to update.",
8167	//       "location": "path",
8168	//       "required": true,
8169	//       "type": "string"
8170	//     }
8171	//   },
8172	//   "path": "androidpublisher/v3/applications/{packageName}/edits/{editId}/testers/{track}",
8173	//   "request": {
8174	//     "$ref": "Testers"
8175	//   },
8176	//   "response": {
8177	//     "$ref": "Testers"
8178	//   },
8179	//   "scopes": [
8180	//     "https://www.googleapis.com/auth/androidpublisher"
8181	//   ]
8182	// }
8183
8184}
8185
8186// method id "androidpublisher.edits.testers.update":
8187
8188type EditsTestersUpdateCall struct {
8189	s           *Service
8190	packageName string
8191	editId      string
8192	track       string
8193	testers     *Testers
8194	urlParams_  gensupport.URLParams
8195	ctx_        context.Context
8196	header_     http.Header
8197}
8198
8199// Update: Updates testers.
8200//
8201// - editId: Identifier of the edit.
8202// - packageName: Package name of the app.
8203// - track: The track to update.
8204func (r *EditsTestersService) Update(packageName string, editId string, track string, testers *Testers) *EditsTestersUpdateCall {
8205	c := &EditsTestersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8206	c.packageName = packageName
8207	c.editId = editId
8208	c.track = track
8209	c.testers = testers
8210	return c
8211}
8212
8213// Fields allows partial responses to be retrieved. See
8214// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8215// for more information.
8216func (c *EditsTestersUpdateCall) Fields(s ...googleapi.Field) *EditsTestersUpdateCall {
8217	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8218	return c
8219}
8220
8221// Context sets the context to be used in this call's Do method. Any
8222// pending HTTP request will be aborted if the provided context is
8223// canceled.
8224func (c *EditsTestersUpdateCall) Context(ctx context.Context) *EditsTestersUpdateCall {
8225	c.ctx_ = ctx
8226	return c
8227}
8228
8229// Header returns an http.Header that can be modified by the caller to
8230// add HTTP headers to the request.
8231func (c *EditsTestersUpdateCall) Header() http.Header {
8232	if c.header_ == nil {
8233		c.header_ = make(http.Header)
8234	}
8235	return c.header_
8236}
8237
8238func (c *EditsTestersUpdateCall) doRequest(alt string) (*http.Response, error) {
8239	reqHeaders := make(http.Header)
8240	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
8241	for k, v := range c.header_ {
8242		reqHeaders[k] = v
8243	}
8244	reqHeaders.Set("User-Agent", c.s.userAgent())
8245	var body io.Reader = nil
8246	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testers)
8247	if err != nil {
8248		return nil, err
8249	}
8250	reqHeaders.Set("Content-Type", "application/json")
8251	c.urlParams_.Set("alt", alt)
8252	c.urlParams_.Set("prettyPrint", "false")
8253	urls := googleapi.ResolveRelative(c.s.BasePath, "androidpublisher/v3/applications/{packageName}/edits/{editId}/testers/{track}")
8254	urls += "?" + c.urlParams_.Encode()
8255	req, err := http.NewRequest("PUT", urls, body)
8256	if err != nil {
8257		return nil, err
8258	}
8259	req.Header = reqHeaders
8260	googleapi.Expand(req.URL, map[string]string{
8261		"packageName": c.packageName,
8262		"editId":      c.editId,
8263		"track":       c.track,
8264	})
8265	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8266}
8267
8268// Do executes the "androidpublisher.edits.testers.update" call.
8269// Exactly one of *Testers or error will be non-nil. Any non-2xx status
8270// code is an error. Response headers are in either
8271// *Testers.ServerResponse.Header or (if a response was returned at all)
8272// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
8273// check whether the returned error was because http.StatusNotModified
8274// was returned.
8275func (c *EditsTestersUpdateCall) Do(opts ...googleapi.CallOption) (*Testers, error) {
8276	gensupport.SetOptions(c.urlParams_, opts...)
8277	res, err := c.doRequest("json")
8278	if res != nil && res.StatusCode == http.StatusNotModified {
8279		if res.Body != nil {
8280			res.Body.Close()
8281		}
8282		return nil, &googleapi.Error{
8283			Code:   res.StatusCode,
8284			Header: res.Header,
8285		}
8286	}
8287	if err != nil {
8288		return nil, err
8289	}
8290	defer googleapi.CloseBody(res)
8291	if err := googleapi.CheckResponse(res); err != nil {
8292		return nil, err
8293	}
8294	ret := &Testers{
8295		ServerResponse: googleapi.ServerResponse{
8296			Header:         res.Header,
8297			HTTPStatusCode: res.StatusCode,
8298		},
8299	}
8300	target := &ret
8301	if err := gensupport.DecodeResponse(target, res); err != nil {
8302		return nil, err
8303	}
8304	return ret, nil
8305	// {
8306	//   "description": "Updates testers.",
8307	//   "flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/testers/{track}",
8308	//   "httpMethod": "PUT",
8309	//   "id": "androidpublisher.edits.testers.update",
8310	//   "parameterOrder": [
8311	//     "packageName",
8312	//     "editId",
8313	//     "track"
8314	//   ],
8315	//   "parameters": {
8316	//     "editId": {
8317	//       "description": "Identifier of the edit.",
8318	//       "location": "path",
8319	//       "required": true,
8320	//       "type": "string"
8321	//     },
8322	//     "packageName": {
8323	//       "description": "Package name of the app.",
8324	//       "location": "path",
8325	//       "required": true,
8326	//       "type": "string"
8327	//     },
8328	//     "track": {
8329	//       "description": "The track to update.",
8330	//       "location": "path",
8331	//       "required": true,
8332	//       "type": "string"
8333	//     }
8334	//   },
8335	//   "path": "androidpublisher/v3/applications/{packageName}/edits/{editId}/testers/{track}",
8336	//   "request": {
8337	//     "$ref": "Testers"
8338	//   },
8339	//   "response": {
8340	//     "$ref": "Testers"
8341	//   },
8342	//   "scopes": [
8343	//     "https://www.googleapis.com/auth/androidpublisher"
8344	//   ]
8345	// }
8346
8347}
8348
8349// method id "androidpublisher.edits.tracks.get":
8350
8351type EditsTracksGetCall struct {
8352	s            *Service
8353	packageName  string
8354	editId       string
8355	track        string
8356	urlParams_   gensupport.URLParams
8357	ifNoneMatch_ string
8358	ctx_         context.Context
8359	header_      http.Header
8360}
8361
8362// Get: Gets a track.
8363//
8364// - editId: Identifier of the edit.
8365// - packageName: Package name of the app.
8366// - track: Identifier of the track.
8367func (r *EditsTracksService) Get(packageName string, editId string, track string) *EditsTracksGetCall {
8368	c := &EditsTracksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8369	c.packageName = packageName
8370	c.editId = editId
8371	c.track = track
8372	return c
8373}
8374
8375// Fields allows partial responses to be retrieved. See
8376// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8377// for more information.
8378func (c *EditsTracksGetCall) Fields(s ...googleapi.Field) *EditsTracksGetCall {
8379	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8380	return c
8381}
8382
8383// IfNoneMatch sets the optional parameter which makes the operation
8384// fail if the object's ETag matches the given value. This is useful for
8385// getting updates only after the object has changed since the last
8386// request. Use googleapi.IsNotModified to check whether the response
8387// error from Do is the result of In-None-Match.
8388func (c *EditsTracksGetCall) IfNoneMatch(entityTag string) *EditsTracksGetCall {
8389	c.ifNoneMatch_ = entityTag
8390	return c
8391}
8392
8393// Context sets the context to be used in this call's Do method. Any
8394// pending HTTP request will be aborted if the provided context is
8395// canceled.
8396func (c *EditsTracksGetCall) Context(ctx context.Context) *EditsTracksGetCall {
8397	c.ctx_ = ctx
8398	return c
8399}
8400
8401// Header returns an http.Header that can be modified by the caller to
8402// add HTTP headers to the request.
8403func (c *EditsTracksGetCall) Header() http.Header {
8404	if c.header_ == nil {
8405		c.header_ = make(http.Header)
8406	}
8407	return c.header_
8408}
8409
8410func (c *EditsTracksGetCall) doRequest(alt string) (*http.Response, error) {
8411	reqHeaders := make(http.Header)
8412	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
8413	for k, v := range c.header_ {
8414		reqHeaders[k] = v
8415	}
8416	reqHeaders.Set("User-Agent", c.s.userAgent())
8417	if c.ifNoneMatch_ != "" {
8418		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
8419	}
8420	var body io.Reader = nil
8421	c.urlParams_.Set("alt", alt)
8422	c.urlParams_.Set("prettyPrint", "false")
8423	urls := googleapi.ResolveRelative(c.s.BasePath, "androidpublisher/v3/applications/{packageName}/edits/{editId}/tracks/{track}")
8424	urls += "?" + c.urlParams_.Encode()
8425	req, err := http.NewRequest("GET", urls, body)
8426	if err != nil {
8427		return nil, err
8428	}
8429	req.Header = reqHeaders
8430	googleapi.Expand(req.URL, map[string]string{
8431		"packageName": c.packageName,
8432		"editId":      c.editId,
8433		"track":       c.track,
8434	})
8435	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8436}
8437
8438// Do executes the "androidpublisher.edits.tracks.get" call.
8439// Exactly one of *Track or error will be non-nil. Any non-2xx status
8440// code is an error. Response headers are in either
8441// *Track.ServerResponse.Header or (if a response was returned at all)
8442// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
8443// check whether the returned error was because http.StatusNotModified
8444// was returned.
8445func (c *EditsTracksGetCall) Do(opts ...googleapi.CallOption) (*Track, error) {
8446	gensupport.SetOptions(c.urlParams_, opts...)
8447	res, err := c.doRequest("json")
8448	if res != nil && res.StatusCode == http.StatusNotModified {
8449		if res.Body != nil {
8450			res.Body.Close()
8451		}
8452		return nil, &googleapi.Error{
8453			Code:   res.StatusCode,
8454			Header: res.Header,
8455		}
8456	}
8457	if err != nil {
8458		return nil, err
8459	}
8460	defer googleapi.CloseBody(res)
8461	if err := googleapi.CheckResponse(res); err != nil {
8462		return nil, err
8463	}
8464	ret := &Track{
8465		ServerResponse: googleapi.ServerResponse{
8466			Header:         res.Header,
8467			HTTPStatusCode: res.StatusCode,
8468		},
8469	}
8470	target := &ret
8471	if err := gensupport.DecodeResponse(target, res); err != nil {
8472		return nil, err
8473	}
8474	return ret, nil
8475	// {
8476	//   "description": "Gets a track.",
8477	//   "flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/tracks/{track}",
8478	//   "httpMethod": "GET",
8479	//   "id": "androidpublisher.edits.tracks.get",
8480	//   "parameterOrder": [
8481	//     "packageName",
8482	//     "editId",
8483	//     "track"
8484	//   ],
8485	//   "parameters": {
8486	//     "editId": {
8487	//       "description": "Identifier of the edit.",
8488	//       "location": "path",
8489	//       "required": true,
8490	//       "type": "string"
8491	//     },
8492	//     "packageName": {
8493	//       "description": "Package name of the app.",
8494	//       "location": "path",
8495	//       "required": true,
8496	//       "type": "string"
8497	//     },
8498	//     "track": {
8499	//       "description": "Identifier of the track.",
8500	//       "location": "path",
8501	//       "required": true,
8502	//       "type": "string"
8503	//     }
8504	//   },
8505	//   "path": "androidpublisher/v3/applications/{packageName}/edits/{editId}/tracks/{track}",
8506	//   "response": {
8507	//     "$ref": "Track"
8508	//   },
8509	//   "scopes": [
8510	//     "https://www.googleapis.com/auth/androidpublisher"
8511	//   ]
8512	// }
8513
8514}
8515
8516// method id "androidpublisher.edits.tracks.list":
8517
8518type EditsTracksListCall struct {
8519	s            *Service
8520	packageName  string
8521	editId       string
8522	urlParams_   gensupport.URLParams
8523	ifNoneMatch_ string
8524	ctx_         context.Context
8525	header_      http.Header
8526}
8527
8528// List: Lists all tracks.
8529//
8530// - editId: Identifier of the edit.
8531// - packageName: Package name of the app.
8532func (r *EditsTracksService) List(packageName string, editId string) *EditsTracksListCall {
8533	c := &EditsTracksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8534	c.packageName = packageName
8535	c.editId = editId
8536	return c
8537}
8538
8539// Fields allows partial responses to be retrieved. See
8540// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8541// for more information.
8542func (c *EditsTracksListCall) Fields(s ...googleapi.Field) *EditsTracksListCall {
8543	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8544	return c
8545}
8546
8547// IfNoneMatch sets the optional parameter which makes the operation
8548// fail if the object's ETag matches the given value. This is useful for
8549// getting updates only after the object has changed since the last
8550// request. Use googleapi.IsNotModified to check whether the response
8551// error from Do is the result of In-None-Match.
8552func (c *EditsTracksListCall) IfNoneMatch(entityTag string) *EditsTracksListCall {
8553	c.ifNoneMatch_ = entityTag
8554	return c
8555}
8556
8557// Context sets the context to be used in this call's Do method. Any
8558// pending HTTP request will be aborted if the provided context is
8559// canceled.
8560func (c *EditsTracksListCall) Context(ctx context.Context) *EditsTracksListCall {
8561	c.ctx_ = ctx
8562	return c
8563}
8564
8565// Header returns an http.Header that can be modified by the caller to
8566// add HTTP headers to the request.
8567func (c *EditsTracksListCall) Header() http.Header {
8568	if c.header_ == nil {
8569		c.header_ = make(http.Header)
8570	}
8571	return c.header_
8572}
8573
8574func (c *EditsTracksListCall) doRequest(alt string) (*http.Response, error) {
8575	reqHeaders := make(http.Header)
8576	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
8577	for k, v := range c.header_ {
8578		reqHeaders[k] = v
8579	}
8580	reqHeaders.Set("User-Agent", c.s.userAgent())
8581	if c.ifNoneMatch_ != "" {
8582		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
8583	}
8584	var body io.Reader = nil
8585	c.urlParams_.Set("alt", alt)
8586	c.urlParams_.Set("prettyPrint", "false")
8587	urls := googleapi.ResolveRelative(c.s.BasePath, "androidpublisher/v3/applications/{packageName}/edits/{editId}/tracks")
8588	urls += "?" + c.urlParams_.Encode()
8589	req, err := http.NewRequest("GET", urls, body)
8590	if err != nil {
8591		return nil, err
8592	}
8593	req.Header = reqHeaders
8594	googleapi.Expand(req.URL, map[string]string{
8595		"packageName": c.packageName,
8596		"editId":      c.editId,
8597	})
8598	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8599}
8600
8601// Do executes the "androidpublisher.edits.tracks.list" call.
8602// Exactly one of *TracksListResponse or error will be non-nil. Any
8603// non-2xx status code is an error. Response headers are in either
8604// *TracksListResponse.ServerResponse.Header or (if a response was
8605// returned at all) in error.(*googleapi.Error).Header. Use
8606// googleapi.IsNotModified to check whether the returned error was
8607// because http.StatusNotModified was returned.
8608func (c *EditsTracksListCall) Do(opts ...googleapi.CallOption) (*TracksListResponse, error) {
8609	gensupport.SetOptions(c.urlParams_, opts...)
8610	res, err := c.doRequest("json")
8611	if res != nil && res.StatusCode == http.StatusNotModified {
8612		if res.Body != nil {
8613			res.Body.Close()
8614		}
8615		return nil, &googleapi.Error{
8616			Code:   res.StatusCode,
8617			Header: res.Header,
8618		}
8619	}
8620	if err != nil {
8621		return nil, err
8622	}
8623	defer googleapi.CloseBody(res)
8624	if err := googleapi.CheckResponse(res); err != nil {
8625		return nil, err
8626	}
8627	ret := &TracksListResponse{
8628		ServerResponse: googleapi.ServerResponse{
8629			Header:         res.Header,
8630			HTTPStatusCode: res.StatusCode,
8631		},
8632	}
8633	target := &ret
8634	if err := gensupport.DecodeResponse(target, res); err != nil {
8635		return nil, err
8636	}
8637	return ret, nil
8638	// {
8639	//   "description": "Lists all tracks.",
8640	//   "flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/tracks",
8641	//   "httpMethod": "GET",
8642	//   "id": "androidpublisher.edits.tracks.list",
8643	//   "parameterOrder": [
8644	//     "packageName",
8645	//     "editId"
8646	//   ],
8647	//   "parameters": {
8648	//     "editId": {
8649	//       "description": "Identifier of the edit.",
8650	//       "location": "path",
8651	//       "required": true,
8652	//       "type": "string"
8653	//     },
8654	//     "packageName": {
8655	//       "description": "Package name of the app.",
8656	//       "location": "path",
8657	//       "required": true,
8658	//       "type": "string"
8659	//     }
8660	//   },
8661	//   "path": "androidpublisher/v3/applications/{packageName}/edits/{editId}/tracks",
8662	//   "response": {
8663	//     "$ref": "TracksListResponse"
8664	//   },
8665	//   "scopes": [
8666	//     "https://www.googleapis.com/auth/androidpublisher"
8667	//   ]
8668	// }
8669
8670}
8671
8672// method id "androidpublisher.edits.tracks.patch":
8673
8674type EditsTracksPatchCall struct {
8675	s           *Service
8676	packageName string
8677	editId      string
8678	track       string
8679	track2      *Track
8680	urlParams_  gensupport.URLParams
8681	ctx_        context.Context
8682	header_     http.Header
8683}
8684
8685// Patch: Patches a track.
8686//
8687// - editId: Identifier of the edit.
8688// - packageName: Package name of the app.
8689// - track: Identifier of the track.
8690func (r *EditsTracksService) Patch(packageName string, editId string, track string, track2 *Track) *EditsTracksPatchCall {
8691	c := &EditsTracksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8692	c.packageName = packageName
8693	c.editId = editId
8694	c.track = track
8695	c.track2 = track2
8696	return c
8697}
8698
8699// Fields allows partial responses to be retrieved. See
8700// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8701// for more information.
8702func (c *EditsTracksPatchCall) Fields(s ...googleapi.Field) *EditsTracksPatchCall {
8703	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8704	return c
8705}
8706
8707// Context sets the context to be used in this call's Do method. Any
8708// pending HTTP request will be aborted if the provided context is
8709// canceled.
8710func (c *EditsTracksPatchCall) Context(ctx context.Context) *EditsTracksPatchCall {
8711	c.ctx_ = ctx
8712	return c
8713}
8714
8715// Header returns an http.Header that can be modified by the caller to
8716// add HTTP headers to the request.
8717func (c *EditsTracksPatchCall) Header() http.Header {
8718	if c.header_ == nil {
8719		c.header_ = make(http.Header)
8720	}
8721	return c.header_
8722}
8723
8724func (c *EditsTracksPatchCall) doRequest(alt string) (*http.Response, error) {
8725	reqHeaders := make(http.Header)
8726	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
8727	for k, v := range c.header_ {
8728		reqHeaders[k] = v
8729	}
8730	reqHeaders.Set("User-Agent", c.s.userAgent())
8731	var body io.Reader = nil
8732	body, err := googleapi.WithoutDataWrapper.JSONReader(c.track2)
8733	if err != nil {
8734		return nil, err
8735	}
8736	reqHeaders.Set("Content-Type", "application/json")
8737	c.urlParams_.Set("alt", alt)
8738	c.urlParams_.Set("prettyPrint", "false")
8739	urls := googleapi.ResolveRelative(c.s.BasePath, "androidpublisher/v3/applications/{packageName}/edits/{editId}/tracks/{track}")
8740	urls += "?" + c.urlParams_.Encode()
8741	req, err := http.NewRequest("PATCH", urls, body)
8742	if err != nil {
8743		return nil, err
8744	}
8745	req.Header = reqHeaders
8746	googleapi.Expand(req.URL, map[string]string{
8747		"packageName": c.packageName,
8748		"editId":      c.editId,
8749		"track":       c.track,
8750	})
8751	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8752}
8753
8754// Do executes the "androidpublisher.edits.tracks.patch" call.
8755// Exactly one of *Track or error will be non-nil. Any non-2xx status
8756// code is an error. Response headers are in either
8757// *Track.ServerResponse.Header or (if a response was returned at all)
8758// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
8759// check whether the returned error was because http.StatusNotModified
8760// was returned.
8761func (c *EditsTracksPatchCall) Do(opts ...googleapi.CallOption) (*Track, error) {
8762	gensupport.SetOptions(c.urlParams_, opts...)
8763	res, err := c.doRequest("json")
8764	if res != nil && res.StatusCode == http.StatusNotModified {
8765		if res.Body != nil {
8766			res.Body.Close()
8767		}
8768		return nil, &googleapi.Error{
8769			Code:   res.StatusCode,
8770			Header: res.Header,
8771		}
8772	}
8773	if err != nil {
8774		return nil, err
8775	}
8776	defer googleapi.CloseBody(res)
8777	if err := googleapi.CheckResponse(res); err != nil {
8778		return nil, err
8779	}
8780	ret := &Track{
8781		ServerResponse: googleapi.ServerResponse{
8782			Header:         res.Header,
8783			HTTPStatusCode: res.StatusCode,
8784		},
8785	}
8786	target := &ret
8787	if err := gensupport.DecodeResponse(target, res); err != nil {
8788		return nil, err
8789	}
8790	return ret, nil
8791	// {
8792	//   "description": "Patches a track.",
8793	//   "flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/tracks/{track}",
8794	//   "httpMethod": "PATCH",
8795	//   "id": "androidpublisher.edits.tracks.patch",
8796	//   "parameterOrder": [
8797	//     "packageName",
8798	//     "editId",
8799	//     "track"
8800	//   ],
8801	//   "parameters": {
8802	//     "editId": {
8803	//       "description": "Identifier of the edit.",
8804	//       "location": "path",
8805	//       "required": true,
8806	//       "type": "string"
8807	//     },
8808	//     "packageName": {
8809	//       "description": "Package name of the app.",
8810	//       "location": "path",
8811	//       "required": true,
8812	//       "type": "string"
8813	//     },
8814	//     "track": {
8815	//       "description": "Identifier of the track.",
8816	//       "location": "path",
8817	//       "required": true,
8818	//       "type": "string"
8819	//     }
8820	//   },
8821	//   "path": "androidpublisher/v3/applications/{packageName}/edits/{editId}/tracks/{track}",
8822	//   "request": {
8823	//     "$ref": "Track"
8824	//   },
8825	//   "response": {
8826	//     "$ref": "Track"
8827	//   },
8828	//   "scopes": [
8829	//     "https://www.googleapis.com/auth/androidpublisher"
8830	//   ]
8831	// }
8832
8833}
8834
8835// method id "androidpublisher.edits.tracks.update":
8836
8837type EditsTracksUpdateCall struct {
8838	s           *Service
8839	packageName string
8840	editId      string
8841	track       string
8842	track2      *Track
8843	urlParams_  gensupport.URLParams
8844	ctx_        context.Context
8845	header_     http.Header
8846}
8847
8848// Update: Updates a track.
8849//
8850// - editId: Identifier of the edit.
8851// - packageName: Package name of the app.
8852// - track: Identifier of the track.
8853func (r *EditsTracksService) Update(packageName string, editId string, track string, track2 *Track) *EditsTracksUpdateCall {
8854	c := &EditsTracksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
8855	c.packageName = packageName
8856	c.editId = editId
8857	c.track = track
8858	c.track2 = track2
8859	return c
8860}
8861
8862// Fields allows partial responses to be retrieved. See
8863// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
8864// for more information.
8865func (c *EditsTracksUpdateCall) Fields(s ...googleapi.Field) *EditsTracksUpdateCall {
8866	c.urlParams_.Set("fields", googleapi.CombineFields(s))
8867	return c
8868}
8869
8870// Context sets the context to be used in this call's Do method. Any
8871// pending HTTP request will be aborted if the provided context is
8872// canceled.
8873func (c *EditsTracksUpdateCall) Context(ctx context.Context) *EditsTracksUpdateCall {
8874	c.ctx_ = ctx
8875	return c
8876}
8877
8878// Header returns an http.Header that can be modified by the caller to
8879// add HTTP headers to the request.
8880func (c *EditsTracksUpdateCall) Header() http.Header {
8881	if c.header_ == nil {
8882		c.header_ = make(http.Header)
8883	}
8884	return c.header_
8885}
8886
8887func (c *EditsTracksUpdateCall) doRequest(alt string) (*http.Response, error) {
8888	reqHeaders := make(http.Header)
8889	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
8890	for k, v := range c.header_ {
8891		reqHeaders[k] = v
8892	}
8893	reqHeaders.Set("User-Agent", c.s.userAgent())
8894	var body io.Reader = nil
8895	body, err := googleapi.WithoutDataWrapper.JSONReader(c.track2)
8896	if err != nil {
8897		return nil, err
8898	}
8899	reqHeaders.Set("Content-Type", "application/json")
8900	c.urlParams_.Set("alt", alt)
8901	c.urlParams_.Set("prettyPrint", "false")
8902	urls := googleapi.ResolveRelative(c.s.BasePath, "androidpublisher/v3/applications/{packageName}/edits/{editId}/tracks/{track}")
8903	urls += "?" + c.urlParams_.Encode()
8904	req, err := http.NewRequest("PUT", urls, body)
8905	if err != nil {
8906		return nil, err
8907	}
8908	req.Header = reqHeaders
8909	googleapi.Expand(req.URL, map[string]string{
8910		"packageName": c.packageName,
8911		"editId":      c.editId,
8912		"track":       c.track,
8913	})
8914	return gensupport.SendRequest(c.ctx_, c.s.client, req)
8915}
8916
8917// Do executes the "androidpublisher.edits.tracks.update" call.
8918// Exactly one of *Track or error will be non-nil. Any non-2xx status
8919// code is an error. Response headers are in either
8920// *Track.ServerResponse.Header or (if a response was returned at all)
8921// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
8922// check whether the returned error was because http.StatusNotModified
8923// was returned.
8924func (c *EditsTracksUpdateCall) Do(opts ...googleapi.CallOption) (*Track, error) {
8925	gensupport.SetOptions(c.urlParams_, opts...)
8926	res, err := c.doRequest("json")
8927	if res != nil && res.StatusCode == http.StatusNotModified {
8928		if res.Body != nil {
8929			res.Body.Close()
8930		}
8931		return nil, &googleapi.Error{
8932			Code:   res.StatusCode,
8933			Header: res.Header,
8934		}
8935	}
8936	if err != nil {
8937		return nil, err
8938	}
8939	defer googleapi.CloseBody(res)
8940	if err := googleapi.CheckResponse(res); err != nil {
8941		return nil, err
8942	}
8943	ret := &Track{
8944		ServerResponse: googleapi.ServerResponse{
8945			Header:         res.Header,
8946			HTTPStatusCode: res.StatusCode,
8947		},
8948	}
8949	target := &ret
8950	if err := gensupport.DecodeResponse(target, res); err != nil {
8951		return nil, err
8952	}
8953	return ret, nil
8954	// {
8955	//   "description": "Updates a track.",
8956	//   "flatPath": "androidpublisher/v3/applications/{packageName}/edits/{editId}/tracks/{track}",
8957	//   "httpMethod": "PUT",
8958	//   "id": "androidpublisher.edits.tracks.update",
8959	//   "parameterOrder": [
8960	//     "packageName",
8961	//     "editId",
8962	//     "track"
8963	//   ],
8964	//   "parameters": {
8965	//     "editId": {
8966	//       "description": "Identifier of the edit.",
8967	//       "location": "path",
8968	//       "required": true,
8969	//       "type": "string"
8970	//     },
8971	//     "packageName": {
8972	//       "description": "Package name of the app.",
8973	//       "location": "path",
8974	//       "required": true,
8975	//       "type": "string"
8976	//     },
8977	//     "track": {
8978	//       "description": "Identifier of the track.",
8979	//       "location": "path",
8980	//       "required": true,
8981	//       "type": "string"
8982	//     }
8983	//   },
8984	//   "path": "androidpublisher/v3/applications/{packageName}/edits/{editId}/tracks/{track}",
8985	//   "request": {
8986	//     "$ref": "Track"
8987	//   },
8988	//   "response": {
8989	//     "$ref": "Track"
8990	//   },
8991	//   "scopes": [
8992	//     "https://www.googleapis.com/auth/androidpublisher"
8993	//   ]
8994	// }
8995
8996}
8997
8998// method id "androidpublisher.inappproducts.delete":
8999
9000type InappproductsDeleteCall struct {
9001	s           *Service
9002	packageName string
9003	skuid       string
9004	urlParams_  gensupport.URLParams
9005	ctx_        context.Context
9006	header_     http.Header
9007}
9008
9009// Delete: Deletes an in-app product (i.e. a managed product or a
9010// subscriptions).
9011//
9012// - packageName: Package name of the app.
9013// - sku: Unique identifier for the in-app product.
9014func (r *InappproductsService) Delete(packageName string, skuid string) *InappproductsDeleteCall {
9015	c := &InappproductsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9016	c.packageName = packageName
9017	c.skuid = skuid
9018	return c
9019}
9020
9021// Fields allows partial responses to be retrieved. See
9022// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9023// for more information.
9024func (c *InappproductsDeleteCall) Fields(s ...googleapi.Field) *InappproductsDeleteCall {
9025	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9026	return c
9027}
9028
9029// Context sets the context to be used in this call's Do method. Any
9030// pending HTTP request will be aborted if the provided context is
9031// canceled.
9032func (c *InappproductsDeleteCall) Context(ctx context.Context) *InappproductsDeleteCall {
9033	c.ctx_ = ctx
9034	return c
9035}
9036
9037// Header returns an http.Header that can be modified by the caller to
9038// add HTTP headers to the request.
9039func (c *InappproductsDeleteCall) Header() http.Header {
9040	if c.header_ == nil {
9041		c.header_ = make(http.Header)
9042	}
9043	return c.header_
9044}
9045
9046func (c *InappproductsDeleteCall) doRequest(alt string) (*http.Response, error) {
9047	reqHeaders := make(http.Header)
9048	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
9049	for k, v := range c.header_ {
9050		reqHeaders[k] = v
9051	}
9052	reqHeaders.Set("User-Agent", c.s.userAgent())
9053	var body io.Reader = nil
9054	c.urlParams_.Set("alt", alt)
9055	c.urlParams_.Set("prettyPrint", "false")
9056	urls := googleapi.ResolveRelative(c.s.BasePath, "androidpublisher/v3/applications/{packageName}/inappproducts/{sku}")
9057	urls += "?" + c.urlParams_.Encode()
9058	req, err := http.NewRequest("DELETE", urls, body)
9059	if err != nil {
9060		return nil, err
9061	}
9062	req.Header = reqHeaders
9063	googleapi.Expand(req.URL, map[string]string{
9064		"packageName": c.packageName,
9065		"sku":         c.skuid,
9066	})
9067	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9068}
9069
9070// Do executes the "androidpublisher.inappproducts.delete" call.
9071func (c *InappproductsDeleteCall) Do(opts ...googleapi.CallOption) error {
9072	gensupport.SetOptions(c.urlParams_, opts...)
9073	res, err := c.doRequest("json")
9074	if err != nil {
9075		return err
9076	}
9077	defer googleapi.CloseBody(res)
9078	if err := googleapi.CheckResponse(res); err != nil {
9079		return err
9080	}
9081	return nil
9082	// {
9083	//   "description": "Deletes an in-app product (i.e. a managed product or a subscriptions).",
9084	//   "flatPath": "androidpublisher/v3/applications/{packageName}/inappproducts/{sku}",
9085	//   "httpMethod": "DELETE",
9086	//   "id": "androidpublisher.inappproducts.delete",
9087	//   "parameterOrder": [
9088	//     "packageName",
9089	//     "sku"
9090	//   ],
9091	//   "parameters": {
9092	//     "packageName": {
9093	//       "description": "Package name of the app.",
9094	//       "location": "path",
9095	//       "required": true,
9096	//       "type": "string"
9097	//     },
9098	//     "sku": {
9099	//       "description": "Unique identifier for the in-app product.",
9100	//       "location": "path",
9101	//       "required": true,
9102	//       "type": "string"
9103	//     }
9104	//   },
9105	//   "path": "androidpublisher/v3/applications/{packageName}/inappproducts/{sku}",
9106	//   "scopes": [
9107	//     "https://www.googleapis.com/auth/androidpublisher"
9108	//   ]
9109	// }
9110
9111}
9112
9113// method id "androidpublisher.inappproducts.get":
9114
9115type InappproductsGetCall struct {
9116	s            *Service
9117	packageName  string
9118	skuid        string
9119	urlParams_   gensupport.URLParams
9120	ifNoneMatch_ string
9121	ctx_         context.Context
9122	header_      http.Header
9123}
9124
9125// Get: Gets an in-app product, which can be a managed product or a
9126// subscription.
9127//
9128// - packageName: Package name of the app.
9129// - sku: Unique identifier for the in-app product.
9130func (r *InappproductsService) Get(packageName string, skuid string) *InappproductsGetCall {
9131	c := &InappproductsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9132	c.packageName = packageName
9133	c.skuid = skuid
9134	return c
9135}
9136
9137// Fields allows partial responses to be retrieved. See
9138// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9139// for more information.
9140func (c *InappproductsGetCall) Fields(s ...googleapi.Field) *InappproductsGetCall {
9141	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9142	return c
9143}
9144
9145// IfNoneMatch sets the optional parameter which makes the operation
9146// fail if the object's ETag matches the given value. This is useful for
9147// getting updates only after the object has changed since the last
9148// request. Use googleapi.IsNotModified to check whether the response
9149// error from Do is the result of In-None-Match.
9150func (c *InappproductsGetCall) IfNoneMatch(entityTag string) *InappproductsGetCall {
9151	c.ifNoneMatch_ = entityTag
9152	return c
9153}
9154
9155// Context sets the context to be used in this call's Do method. Any
9156// pending HTTP request will be aborted if the provided context is
9157// canceled.
9158func (c *InappproductsGetCall) Context(ctx context.Context) *InappproductsGetCall {
9159	c.ctx_ = ctx
9160	return c
9161}
9162
9163// Header returns an http.Header that can be modified by the caller to
9164// add HTTP headers to the request.
9165func (c *InappproductsGetCall) Header() http.Header {
9166	if c.header_ == nil {
9167		c.header_ = make(http.Header)
9168	}
9169	return c.header_
9170}
9171
9172func (c *InappproductsGetCall) doRequest(alt string) (*http.Response, error) {
9173	reqHeaders := make(http.Header)
9174	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
9175	for k, v := range c.header_ {
9176		reqHeaders[k] = v
9177	}
9178	reqHeaders.Set("User-Agent", c.s.userAgent())
9179	if c.ifNoneMatch_ != "" {
9180		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
9181	}
9182	var body io.Reader = nil
9183	c.urlParams_.Set("alt", alt)
9184	c.urlParams_.Set("prettyPrint", "false")
9185	urls := googleapi.ResolveRelative(c.s.BasePath, "androidpublisher/v3/applications/{packageName}/inappproducts/{sku}")
9186	urls += "?" + c.urlParams_.Encode()
9187	req, err := http.NewRequest("GET", urls, body)
9188	if err != nil {
9189		return nil, err
9190	}
9191	req.Header = reqHeaders
9192	googleapi.Expand(req.URL, map[string]string{
9193		"packageName": c.packageName,
9194		"sku":         c.skuid,
9195	})
9196	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9197}
9198
9199// Do executes the "androidpublisher.inappproducts.get" call.
9200// Exactly one of *InAppProduct or error will be non-nil. Any non-2xx
9201// status code is an error. Response headers are in either
9202// *InAppProduct.ServerResponse.Header or (if a response was returned at
9203// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
9204// to check whether the returned error was because
9205// http.StatusNotModified was returned.
9206func (c *InappproductsGetCall) Do(opts ...googleapi.CallOption) (*InAppProduct, error) {
9207	gensupport.SetOptions(c.urlParams_, opts...)
9208	res, err := c.doRequest("json")
9209	if res != nil && res.StatusCode == http.StatusNotModified {
9210		if res.Body != nil {
9211			res.Body.Close()
9212		}
9213		return nil, &googleapi.Error{
9214			Code:   res.StatusCode,
9215			Header: res.Header,
9216		}
9217	}
9218	if err != nil {
9219		return nil, err
9220	}
9221	defer googleapi.CloseBody(res)
9222	if err := googleapi.CheckResponse(res); err != nil {
9223		return nil, err
9224	}
9225	ret := &InAppProduct{
9226		ServerResponse: googleapi.ServerResponse{
9227			Header:         res.Header,
9228			HTTPStatusCode: res.StatusCode,
9229		},
9230	}
9231	target := &ret
9232	if err := gensupport.DecodeResponse(target, res); err != nil {
9233		return nil, err
9234	}
9235	return ret, nil
9236	// {
9237	//   "description": "Gets an in-app product, which can be a managed product or a subscription.",
9238	//   "flatPath": "androidpublisher/v3/applications/{packageName}/inappproducts/{sku}",
9239	//   "httpMethod": "GET",
9240	//   "id": "androidpublisher.inappproducts.get",
9241	//   "parameterOrder": [
9242	//     "packageName",
9243	//     "sku"
9244	//   ],
9245	//   "parameters": {
9246	//     "packageName": {
9247	//       "description": "Package name of the app.",
9248	//       "location": "path",
9249	//       "required": true,
9250	//       "type": "string"
9251	//     },
9252	//     "sku": {
9253	//       "description": "Unique identifier for the in-app product.",
9254	//       "location": "path",
9255	//       "required": true,
9256	//       "type": "string"
9257	//     }
9258	//   },
9259	//   "path": "androidpublisher/v3/applications/{packageName}/inappproducts/{sku}",
9260	//   "response": {
9261	//     "$ref": "InAppProduct"
9262	//   },
9263	//   "scopes": [
9264	//     "https://www.googleapis.com/auth/androidpublisher"
9265	//   ]
9266	// }
9267
9268}
9269
9270// method id "androidpublisher.inappproducts.insert":
9271
9272type InappproductsInsertCall struct {
9273	s            *Service
9274	packageName  string
9275	inappproduct *InAppProduct
9276	urlParams_   gensupport.URLParams
9277	ctx_         context.Context
9278	header_      http.Header
9279}
9280
9281// Insert: Creates an in-app product (i.e. a managed product or a
9282// subscriptions).
9283//
9284// - packageName: Package name of the app.
9285func (r *InappproductsService) Insert(packageName string, inappproduct *InAppProduct) *InappproductsInsertCall {
9286	c := &InappproductsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9287	c.packageName = packageName
9288	c.inappproduct = inappproduct
9289	return c
9290}
9291
9292// AutoConvertMissingPrices sets the optional parameter
9293// "autoConvertMissingPrices": If true the prices for all regions
9294// targeted by the parent app that don't have a price specified for this
9295// in-app product will be auto converted to the target currency based on
9296// the default price. Defaults to false.
9297func (c *InappproductsInsertCall) AutoConvertMissingPrices(autoConvertMissingPrices bool) *InappproductsInsertCall {
9298	c.urlParams_.Set("autoConvertMissingPrices", fmt.Sprint(autoConvertMissingPrices))
9299	return c
9300}
9301
9302// Fields allows partial responses to be retrieved. See
9303// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9304// for more information.
9305func (c *InappproductsInsertCall) Fields(s ...googleapi.Field) *InappproductsInsertCall {
9306	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9307	return c
9308}
9309
9310// Context sets the context to be used in this call's Do method. Any
9311// pending HTTP request will be aborted if the provided context is
9312// canceled.
9313func (c *InappproductsInsertCall) Context(ctx context.Context) *InappproductsInsertCall {
9314	c.ctx_ = ctx
9315	return c
9316}
9317
9318// Header returns an http.Header that can be modified by the caller to
9319// add HTTP headers to the request.
9320func (c *InappproductsInsertCall) Header() http.Header {
9321	if c.header_ == nil {
9322		c.header_ = make(http.Header)
9323	}
9324	return c.header_
9325}
9326
9327func (c *InappproductsInsertCall) doRequest(alt string) (*http.Response, error) {
9328	reqHeaders := make(http.Header)
9329	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
9330	for k, v := range c.header_ {
9331		reqHeaders[k] = v
9332	}
9333	reqHeaders.Set("User-Agent", c.s.userAgent())
9334	var body io.Reader = nil
9335	body, err := googleapi.WithoutDataWrapper.JSONReader(c.inappproduct)
9336	if err != nil {
9337		return nil, err
9338	}
9339	reqHeaders.Set("Content-Type", "application/json")
9340	c.urlParams_.Set("alt", alt)
9341	c.urlParams_.Set("prettyPrint", "false")
9342	urls := googleapi.ResolveRelative(c.s.BasePath, "androidpublisher/v3/applications/{packageName}/inappproducts")
9343	urls += "?" + c.urlParams_.Encode()
9344	req, err := http.NewRequest("POST", urls, body)
9345	if err != nil {
9346		return nil, err
9347	}
9348	req.Header = reqHeaders
9349	googleapi.Expand(req.URL, map[string]string{
9350		"packageName": c.packageName,
9351	})
9352	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9353}
9354
9355// Do executes the "androidpublisher.inappproducts.insert" call.
9356// Exactly one of *InAppProduct or error will be non-nil. Any non-2xx
9357// status code is an error. Response headers are in either
9358// *InAppProduct.ServerResponse.Header or (if a response was returned at
9359// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
9360// to check whether the returned error was because
9361// http.StatusNotModified was returned.
9362func (c *InappproductsInsertCall) Do(opts ...googleapi.CallOption) (*InAppProduct, error) {
9363	gensupport.SetOptions(c.urlParams_, opts...)
9364	res, err := c.doRequest("json")
9365	if res != nil && res.StatusCode == http.StatusNotModified {
9366		if res.Body != nil {
9367			res.Body.Close()
9368		}
9369		return nil, &googleapi.Error{
9370			Code:   res.StatusCode,
9371			Header: res.Header,
9372		}
9373	}
9374	if err != nil {
9375		return nil, err
9376	}
9377	defer googleapi.CloseBody(res)
9378	if err := googleapi.CheckResponse(res); err != nil {
9379		return nil, err
9380	}
9381	ret := &InAppProduct{
9382		ServerResponse: googleapi.ServerResponse{
9383			Header:         res.Header,
9384			HTTPStatusCode: res.StatusCode,
9385		},
9386	}
9387	target := &ret
9388	if err := gensupport.DecodeResponse(target, res); err != nil {
9389		return nil, err
9390	}
9391	return ret, nil
9392	// {
9393	//   "description": "Creates an in-app product (i.e. a managed product or a subscriptions).",
9394	//   "flatPath": "androidpublisher/v3/applications/{packageName}/inappproducts",
9395	//   "httpMethod": "POST",
9396	//   "id": "androidpublisher.inappproducts.insert",
9397	//   "parameterOrder": [
9398	//     "packageName"
9399	//   ],
9400	//   "parameters": {
9401	//     "autoConvertMissingPrices": {
9402	//       "description": "If true the prices for all regions targeted by the parent app that don't have a price specified for this in-app product will be auto converted to the target currency based on the default price. Defaults to false.",
9403	//       "location": "query",
9404	//       "type": "boolean"
9405	//     },
9406	//     "packageName": {
9407	//       "description": "Package name of the app.",
9408	//       "location": "path",
9409	//       "required": true,
9410	//       "type": "string"
9411	//     }
9412	//   },
9413	//   "path": "androidpublisher/v3/applications/{packageName}/inappproducts",
9414	//   "request": {
9415	//     "$ref": "InAppProduct"
9416	//   },
9417	//   "response": {
9418	//     "$ref": "InAppProduct"
9419	//   },
9420	//   "scopes": [
9421	//     "https://www.googleapis.com/auth/androidpublisher"
9422	//   ]
9423	// }
9424
9425}
9426
9427// method id "androidpublisher.inappproducts.list":
9428
9429type InappproductsListCall struct {
9430	s            *Service
9431	packageName  string
9432	urlParams_   gensupport.URLParams
9433	ifNoneMatch_ string
9434	ctx_         context.Context
9435	header_      http.Header
9436}
9437
9438// List: Lists all in-app products - both managed products and
9439// subscriptions.
9440//
9441// - packageName: Package name of the app.
9442func (r *InappproductsService) List(packageName string) *InappproductsListCall {
9443	c := &InappproductsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9444	c.packageName = packageName
9445	return c
9446}
9447
9448// MaxResults sets the optional parameter "maxResults": How many results
9449// the list operation should return.
9450func (c *InappproductsListCall) MaxResults(maxResults int64) *InappproductsListCall {
9451	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
9452	return c
9453}
9454
9455// StartIndex sets the optional parameter "startIndex": The index of the
9456// first element to return.
9457func (c *InappproductsListCall) StartIndex(startIndex int64) *InappproductsListCall {
9458	c.urlParams_.Set("startIndex", fmt.Sprint(startIndex))
9459	return c
9460}
9461
9462// Token sets the optional parameter "token": Pagination token. If
9463// empty, list starts at the first product.
9464func (c *InappproductsListCall) Token(token string) *InappproductsListCall {
9465	c.urlParams_.Set("token", token)
9466	return c
9467}
9468
9469// Fields allows partial responses to be retrieved. See
9470// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9471// for more information.
9472func (c *InappproductsListCall) Fields(s ...googleapi.Field) *InappproductsListCall {
9473	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9474	return c
9475}
9476
9477// IfNoneMatch sets the optional parameter which makes the operation
9478// fail if the object's ETag matches the given value. This is useful for
9479// getting updates only after the object has changed since the last
9480// request. Use googleapi.IsNotModified to check whether the response
9481// error from Do is the result of In-None-Match.
9482func (c *InappproductsListCall) IfNoneMatch(entityTag string) *InappproductsListCall {
9483	c.ifNoneMatch_ = entityTag
9484	return c
9485}
9486
9487// Context sets the context to be used in this call's Do method. Any
9488// pending HTTP request will be aborted if the provided context is
9489// canceled.
9490func (c *InappproductsListCall) Context(ctx context.Context) *InappproductsListCall {
9491	c.ctx_ = ctx
9492	return c
9493}
9494
9495// Header returns an http.Header that can be modified by the caller to
9496// add HTTP headers to the request.
9497func (c *InappproductsListCall) Header() http.Header {
9498	if c.header_ == nil {
9499		c.header_ = make(http.Header)
9500	}
9501	return c.header_
9502}
9503
9504func (c *InappproductsListCall) doRequest(alt string) (*http.Response, error) {
9505	reqHeaders := make(http.Header)
9506	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
9507	for k, v := range c.header_ {
9508		reqHeaders[k] = v
9509	}
9510	reqHeaders.Set("User-Agent", c.s.userAgent())
9511	if c.ifNoneMatch_ != "" {
9512		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
9513	}
9514	var body io.Reader = nil
9515	c.urlParams_.Set("alt", alt)
9516	c.urlParams_.Set("prettyPrint", "false")
9517	urls := googleapi.ResolveRelative(c.s.BasePath, "androidpublisher/v3/applications/{packageName}/inappproducts")
9518	urls += "?" + c.urlParams_.Encode()
9519	req, err := http.NewRequest("GET", urls, body)
9520	if err != nil {
9521		return nil, err
9522	}
9523	req.Header = reqHeaders
9524	googleapi.Expand(req.URL, map[string]string{
9525		"packageName": c.packageName,
9526	})
9527	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9528}
9529
9530// Do executes the "androidpublisher.inappproducts.list" call.
9531// Exactly one of *InappproductsListResponse or error will be non-nil.
9532// Any non-2xx status code is an error. Response headers are in either
9533// *InappproductsListResponse.ServerResponse.Header or (if a response
9534// was returned at all) in error.(*googleapi.Error).Header. Use
9535// googleapi.IsNotModified to check whether the returned error was
9536// because http.StatusNotModified was returned.
9537func (c *InappproductsListCall) Do(opts ...googleapi.CallOption) (*InappproductsListResponse, error) {
9538	gensupport.SetOptions(c.urlParams_, opts...)
9539	res, err := c.doRequest("json")
9540	if res != nil && res.StatusCode == http.StatusNotModified {
9541		if res.Body != nil {
9542			res.Body.Close()
9543		}
9544		return nil, &googleapi.Error{
9545			Code:   res.StatusCode,
9546			Header: res.Header,
9547		}
9548	}
9549	if err != nil {
9550		return nil, err
9551	}
9552	defer googleapi.CloseBody(res)
9553	if err := googleapi.CheckResponse(res); err != nil {
9554		return nil, err
9555	}
9556	ret := &InappproductsListResponse{
9557		ServerResponse: googleapi.ServerResponse{
9558			Header:         res.Header,
9559			HTTPStatusCode: res.StatusCode,
9560		},
9561	}
9562	target := &ret
9563	if err := gensupport.DecodeResponse(target, res); err != nil {
9564		return nil, err
9565	}
9566	return ret, nil
9567	// {
9568	//   "description": "Lists all in-app products - both managed products and subscriptions.",
9569	//   "flatPath": "androidpublisher/v3/applications/{packageName}/inappproducts",
9570	//   "httpMethod": "GET",
9571	//   "id": "androidpublisher.inappproducts.list",
9572	//   "parameterOrder": [
9573	//     "packageName"
9574	//   ],
9575	//   "parameters": {
9576	//     "maxResults": {
9577	//       "description": "How many results the list operation should return.",
9578	//       "format": "uint32",
9579	//       "location": "query",
9580	//       "type": "integer"
9581	//     },
9582	//     "packageName": {
9583	//       "description": "Package name of the app.",
9584	//       "location": "path",
9585	//       "required": true,
9586	//       "type": "string"
9587	//     },
9588	//     "startIndex": {
9589	//       "description": "The index of the first element to return.",
9590	//       "format": "uint32",
9591	//       "location": "query",
9592	//       "type": "integer"
9593	//     },
9594	//     "token": {
9595	//       "description": "Pagination token. If empty, list starts at the first product.",
9596	//       "location": "query",
9597	//       "type": "string"
9598	//     }
9599	//   },
9600	//   "path": "androidpublisher/v3/applications/{packageName}/inappproducts",
9601	//   "response": {
9602	//     "$ref": "InappproductsListResponse"
9603	//   },
9604	//   "scopes": [
9605	//     "https://www.googleapis.com/auth/androidpublisher"
9606	//   ]
9607	// }
9608
9609}
9610
9611// method id "androidpublisher.inappproducts.patch":
9612
9613type InappproductsPatchCall struct {
9614	s            *Service
9615	packageName  string
9616	skuid        string
9617	inappproduct *InAppProduct
9618	urlParams_   gensupport.URLParams
9619	ctx_         context.Context
9620	header_      http.Header
9621}
9622
9623// Patch: Patches an in-app product (i.e. a managed product or a
9624// subscriptions).
9625//
9626// - packageName: Package name of the app.
9627// - sku: Unique identifier for the in-app product.
9628func (r *InappproductsService) Patch(packageName string, skuid string, inappproduct *InAppProduct) *InappproductsPatchCall {
9629	c := &InappproductsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9630	c.packageName = packageName
9631	c.skuid = skuid
9632	c.inappproduct = inappproduct
9633	return c
9634}
9635
9636// AutoConvertMissingPrices sets the optional parameter
9637// "autoConvertMissingPrices": If true the prices for all regions
9638// targeted by the parent app that don't have a price specified for this
9639// in-app product will be auto converted to the target currency based on
9640// the default price. Defaults to false.
9641func (c *InappproductsPatchCall) AutoConvertMissingPrices(autoConvertMissingPrices bool) *InappproductsPatchCall {
9642	c.urlParams_.Set("autoConvertMissingPrices", fmt.Sprint(autoConvertMissingPrices))
9643	return c
9644}
9645
9646// Fields allows partial responses to be retrieved. See
9647// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9648// for more information.
9649func (c *InappproductsPatchCall) Fields(s ...googleapi.Field) *InappproductsPatchCall {
9650	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9651	return c
9652}
9653
9654// Context sets the context to be used in this call's Do method. Any
9655// pending HTTP request will be aborted if the provided context is
9656// canceled.
9657func (c *InappproductsPatchCall) Context(ctx context.Context) *InappproductsPatchCall {
9658	c.ctx_ = ctx
9659	return c
9660}
9661
9662// Header returns an http.Header that can be modified by the caller to
9663// add HTTP headers to the request.
9664func (c *InappproductsPatchCall) Header() http.Header {
9665	if c.header_ == nil {
9666		c.header_ = make(http.Header)
9667	}
9668	return c.header_
9669}
9670
9671func (c *InappproductsPatchCall) doRequest(alt string) (*http.Response, error) {
9672	reqHeaders := make(http.Header)
9673	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
9674	for k, v := range c.header_ {
9675		reqHeaders[k] = v
9676	}
9677	reqHeaders.Set("User-Agent", c.s.userAgent())
9678	var body io.Reader = nil
9679	body, err := googleapi.WithoutDataWrapper.JSONReader(c.inappproduct)
9680	if err != nil {
9681		return nil, err
9682	}
9683	reqHeaders.Set("Content-Type", "application/json")
9684	c.urlParams_.Set("alt", alt)
9685	c.urlParams_.Set("prettyPrint", "false")
9686	urls := googleapi.ResolveRelative(c.s.BasePath, "androidpublisher/v3/applications/{packageName}/inappproducts/{sku}")
9687	urls += "?" + c.urlParams_.Encode()
9688	req, err := http.NewRequest("PATCH", urls, body)
9689	if err != nil {
9690		return nil, err
9691	}
9692	req.Header = reqHeaders
9693	googleapi.Expand(req.URL, map[string]string{
9694		"packageName": c.packageName,
9695		"sku":         c.skuid,
9696	})
9697	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9698}
9699
9700// Do executes the "androidpublisher.inappproducts.patch" call.
9701// Exactly one of *InAppProduct or error will be non-nil. Any non-2xx
9702// status code is an error. Response headers are in either
9703// *InAppProduct.ServerResponse.Header or (if a response was returned at
9704// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
9705// to check whether the returned error was because
9706// http.StatusNotModified was returned.
9707func (c *InappproductsPatchCall) Do(opts ...googleapi.CallOption) (*InAppProduct, error) {
9708	gensupport.SetOptions(c.urlParams_, opts...)
9709	res, err := c.doRequest("json")
9710	if res != nil && res.StatusCode == http.StatusNotModified {
9711		if res.Body != nil {
9712			res.Body.Close()
9713		}
9714		return nil, &googleapi.Error{
9715			Code:   res.StatusCode,
9716			Header: res.Header,
9717		}
9718	}
9719	if err != nil {
9720		return nil, err
9721	}
9722	defer googleapi.CloseBody(res)
9723	if err := googleapi.CheckResponse(res); err != nil {
9724		return nil, err
9725	}
9726	ret := &InAppProduct{
9727		ServerResponse: googleapi.ServerResponse{
9728			Header:         res.Header,
9729			HTTPStatusCode: res.StatusCode,
9730		},
9731	}
9732	target := &ret
9733	if err := gensupport.DecodeResponse(target, res); err != nil {
9734		return nil, err
9735	}
9736	return ret, nil
9737	// {
9738	//   "description": "Patches an in-app product (i.e. a managed product or a subscriptions).",
9739	//   "flatPath": "androidpublisher/v3/applications/{packageName}/inappproducts/{sku}",
9740	//   "httpMethod": "PATCH",
9741	//   "id": "androidpublisher.inappproducts.patch",
9742	//   "parameterOrder": [
9743	//     "packageName",
9744	//     "sku"
9745	//   ],
9746	//   "parameters": {
9747	//     "autoConvertMissingPrices": {
9748	//       "description": "If true the prices for all regions targeted by the parent app that don't have a price specified for this in-app product will be auto converted to the target currency based on the default price. Defaults to false.",
9749	//       "location": "query",
9750	//       "type": "boolean"
9751	//     },
9752	//     "packageName": {
9753	//       "description": "Package name of the app.",
9754	//       "location": "path",
9755	//       "required": true,
9756	//       "type": "string"
9757	//     },
9758	//     "sku": {
9759	//       "description": "Unique identifier for the in-app product.",
9760	//       "location": "path",
9761	//       "required": true,
9762	//       "type": "string"
9763	//     }
9764	//   },
9765	//   "path": "androidpublisher/v3/applications/{packageName}/inappproducts/{sku}",
9766	//   "request": {
9767	//     "$ref": "InAppProduct"
9768	//   },
9769	//   "response": {
9770	//     "$ref": "InAppProduct"
9771	//   },
9772	//   "scopes": [
9773	//     "https://www.googleapis.com/auth/androidpublisher"
9774	//   ]
9775	// }
9776
9777}
9778
9779// method id "androidpublisher.inappproducts.update":
9780
9781type InappproductsUpdateCall struct {
9782	s            *Service
9783	packageName  string
9784	skuid        string
9785	inappproduct *InAppProduct
9786	urlParams_   gensupport.URLParams
9787	ctx_         context.Context
9788	header_      http.Header
9789}
9790
9791// Update: Updates an in-app product (i.e. a managed product or a
9792// subscriptions).
9793//
9794// - packageName: Package name of the app.
9795// - sku: Unique identifier for the in-app product.
9796func (r *InappproductsService) Update(packageName string, skuid string, inappproduct *InAppProduct) *InappproductsUpdateCall {
9797	c := &InappproductsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9798	c.packageName = packageName
9799	c.skuid = skuid
9800	c.inappproduct = inappproduct
9801	return c
9802}
9803
9804// AutoConvertMissingPrices sets the optional parameter
9805// "autoConvertMissingPrices": If true the prices for all regions
9806// targeted by the parent app that don't have a price specified for this
9807// in-app product will be auto converted to the target currency based on
9808// the default price. Defaults to false.
9809func (c *InappproductsUpdateCall) AutoConvertMissingPrices(autoConvertMissingPrices bool) *InappproductsUpdateCall {
9810	c.urlParams_.Set("autoConvertMissingPrices", fmt.Sprint(autoConvertMissingPrices))
9811	return c
9812}
9813
9814// Fields allows partial responses to be retrieved. See
9815// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
9816// for more information.
9817func (c *InappproductsUpdateCall) Fields(s ...googleapi.Field) *InappproductsUpdateCall {
9818	c.urlParams_.Set("fields", googleapi.CombineFields(s))
9819	return c
9820}
9821
9822// Context sets the context to be used in this call's Do method. Any
9823// pending HTTP request will be aborted if the provided context is
9824// canceled.
9825func (c *InappproductsUpdateCall) Context(ctx context.Context) *InappproductsUpdateCall {
9826	c.ctx_ = ctx
9827	return c
9828}
9829
9830// Header returns an http.Header that can be modified by the caller to
9831// add HTTP headers to the request.
9832func (c *InappproductsUpdateCall) Header() http.Header {
9833	if c.header_ == nil {
9834		c.header_ = make(http.Header)
9835	}
9836	return c.header_
9837}
9838
9839func (c *InappproductsUpdateCall) doRequest(alt string) (*http.Response, error) {
9840	reqHeaders := make(http.Header)
9841	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
9842	for k, v := range c.header_ {
9843		reqHeaders[k] = v
9844	}
9845	reqHeaders.Set("User-Agent", c.s.userAgent())
9846	var body io.Reader = nil
9847	body, err := googleapi.WithoutDataWrapper.JSONReader(c.inappproduct)
9848	if err != nil {
9849		return nil, err
9850	}
9851	reqHeaders.Set("Content-Type", "application/json")
9852	c.urlParams_.Set("alt", alt)
9853	c.urlParams_.Set("prettyPrint", "false")
9854	urls := googleapi.ResolveRelative(c.s.BasePath, "androidpublisher/v3/applications/{packageName}/inappproducts/{sku}")
9855	urls += "?" + c.urlParams_.Encode()
9856	req, err := http.NewRequest("PUT", urls, body)
9857	if err != nil {
9858		return nil, err
9859	}
9860	req.Header = reqHeaders
9861	googleapi.Expand(req.URL, map[string]string{
9862		"packageName": c.packageName,
9863		"sku":         c.skuid,
9864	})
9865	return gensupport.SendRequest(c.ctx_, c.s.client, req)
9866}
9867
9868// Do executes the "androidpublisher.inappproducts.update" call.
9869// Exactly one of *InAppProduct or error will be non-nil. Any non-2xx
9870// status code is an error. Response headers are in either
9871// *InAppProduct.ServerResponse.Header or (if a response was returned at
9872// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
9873// to check whether the returned error was because
9874// http.StatusNotModified was returned.
9875func (c *InappproductsUpdateCall) Do(opts ...googleapi.CallOption) (*InAppProduct, error) {
9876	gensupport.SetOptions(c.urlParams_, opts...)
9877	res, err := c.doRequest("json")
9878	if res != nil && res.StatusCode == http.StatusNotModified {
9879		if res.Body != nil {
9880			res.Body.Close()
9881		}
9882		return nil, &googleapi.Error{
9883			Code:   res.StatusCode,
9884			Header: res.Header,
9885		}
9886	}
9887	if err != nil {
9888		return nil, err
9889	}
9890	defer googleapi.CloseBody(res)
9891	if err := googleapi.CheckResponse(res); err != nil {
9892		return nil, err
9893	}
9894	ret := &InAppProduct{
9895		ServerResponse: googleapi.ServerResponse{
9896			Header:         res.Header,
9897			HTTPStatusCode: res.StatusCode,
9898		},
9899	}
9900	target := &ret
9901	if err := gensupport.DecodeResponse(target, res); err != nil {
9902		return nil, err
9903	}
9904	return ret, nil
9905	// {
9906	//   "description": "Updates an in-app product (i.e. a managed product or a subscriptions).",
9907	//   "flatPath": "androidpublisher/v3/applications/{packageName}/inappproducts/{sku}",
9908	//   "httpMethod": "PUT",
9909	//   "id": "androidpublisher.inappproducts.update",
9910	//   "parameterOrder": [
9911	//     "packageName",
9912	//     "sku"
9913	//   ],
9914	//   "parameters": {
9915	//     "autoConvertMissingPrices": {
9916	//       "description": "If true the prices for all regions targeted by the parent app that don't have a price specified for this in-app product will be auto converted to the target currency based on the default price. Defaults to false.",
9917	//       "location": "query",
9918	//       "type": "boolean"
9919	//     },
9920	//     "packageName": {
9921	//       "description": "Package name of the app.",
9922	//       "location": "path",
9923	//       "required": true,
9924	//       "type": "string"
9925	//     },
9926	//     "sku": {
9927	//       "description": "Unique identifier for the in-app product.",
9928	//       "location": "path",
9929	//       "required": true,
9930	//       "type": "string"
9931	//     }
9932	//   },
9933	//   "path": "androidpublisher/v3/applications/{packageName}/inappproducts/{sku}",
9934	//   "request": {
9935	//     "$ref": "InAppProduct"
9936	//   },
9937	//   "response": {
9938	//     "$ref": "InAppProduct"
9939	//   },
9940	//   "scopes": [
9941	//     "https://www.googleapis.com/auth/androidpublisher"
9942	//   ]
9943	// }
9944
9945}
9946
9947// method id "androidpublisher.internalappsharingartifacts.uploadapk":
9948
9949type InternalappsharingartifactsUploadapkCall struct {
9950	s           *Service
9951	packageName string
9952	urlParams_  gensupport.URLParams
9953	mediaInfo_  *gensupport.MediaInfo
9954	ctx_        context.Context
9955	header_     http.Header
9956}
9957
9958// Uploadapk: Uploads an APK to internal app sharing. If you are using
9959// the Google API client libraries, please increase the timeout of the
9960// http request before calling this endpoint (a timeout of 2 minutes is
9961// recommended). See Timeouts and Errors
9962// (https://developers.google.com/api-client-library/java/google-api-java-client/errors)
9963// for an example in java.
9964//
9965// - packageName: Package name of the app.
9966func (r *InternalappsharingartifactsService) Uploadapk(packageName string) *InternalappsharingartifactsUploadapkCall {
9967	c := &InternalappsharingartifactsUploadapkCall{s: r.s, urlParams_: make(gensupport.URLParams)}
9968	c.packageName = packageName
9969	return c
9970}
9971
9972// Media specifies the media to upload in one or more chunks. The chunk
9973// size may be controlled by supplying a MediaOption generated by
9974// googleapi.ChunkSize. The chunk size defaults to
9975// googleapi.DefaultUploadChunkSize.The Content-Type header used in the
9976// upload request will be determined by sniffing the contents of r,
9977// unless a MediaOption generated by googleapi.ContentType is
9978// supplied.
9979// At most one of Media and ResumableMedia may be set.
9980func (c *InternalappsharingartifactsUploadapkCall) Media(r io.Reader, options ...googleapi.MediaOption) *InternalappsharingartifactsUploadapkCall {
9981	c.mediaInfo_ = gensupport.NewInfoFromMedia(r, options)
9982	return c
9983}
9984
9985// ResumableMedia specifies the media to upload in chunks and can be
9986// canceled with ctx.
9987//
9988// Deprecated: use Media instead.
9989//
9990// At most one of Media and ResumableMedia may be set. mediaType
9991// identifies the MIME media type of the upload, such as "image/png". If
9992// mediaType is "", it will be auto-detected. The provided ctx will
9993// supersede any context previously provided to the Context method.
9994func (c *InternalappsharingartifactsUploadapkCall) ResumableMedia(ctx context.Context, r io.ReaderAt, size int64, mediaType string) *InternalappsharingartifactsUploadapkCall {
9995	c.ctx_ = ctx
9996	c.mediaInfo_ = gensupport.NewInfoFromResumableMedia(r, size, mediaType)
9997	return c
9998}
9999
10000// ProgressUpdater provides a callback function that will be called
10001// after every chunk. It should be a low-latency function in order to
10002// not slow down the upload operation. This should only be called when
10003// using ResumableMedia (as opposed to Media).
10004func (c *InternalappsharingartifactsUploadapkCall) ProgressUpdater(pu googleapi.ProgressUpdater) *InternalappsharingartifactsUploadapkCall {
10005	c.mediaInfo_.SetProgressUpdater(pu)
10006	return c
10007}
10008
10009// Fields allows partial responses to be retrieved. See
10010// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
10011// for more information.
10012func (c *InternalappsharingartifactsUploadapkCall) Fields(s ...googleapi.Field) *InternalappsharingartifactsUploadapkCall {
10013	c.urlParams_.Set("fields", googleapi.CombineFields(s))
10014	return c
10015}
10016
10017// Context sets the context to be used in this call's Do method. Any
10018// pending HTTP request will be aborted if the provided context is
10019// canceled.
10020// This context will supersede any context previously provided to the
10021// ResumableMedia method.
10022func (c *InternalappsharingartifactsUploadapkCall) Context(ctx context.Context) *InternalappsharingartifactsUploadapkCall {
10023	c.ctx_ = ctx
10024	return c
10025}
10026
10027// Header returns an http.Header that can be modified by the caller to
10028// add HTTP headers to the request.
10029func (c *InternalappsharingartifactsUploadapkCall) Header() http.Header {
10030	if c.header_ == nil {
10031		c.header_ = make(http.Header)
10032	}
10033	return c.header_
10034}
10035
10036func (c *InternalappsharingartifactsUploadapkCall) doRequest(alt string) (*http.Response, error) {
10037	reqHeaders := make(http.Header)
10038	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
10039	for k, v := range c.header_ {
10040		reqHeaders[k] = v
10041	}
10042	reqHeaders.Set("User-Agent", c.s.userAgent())
10043	var body io.Reader = nil
10044	c.urlParams_.Set("alt", alt)
10045	c.urlParams_.Set("prettyPrint", "false")
10046	urls := googleapi.ResolveRelative(c.s.BasePath, "androidpublisher/v3/applications/internalappsharing/{packageName}/artifacts/apk")
10047	if c.mediaInfo_ != nil {
10048		urls = googleapi.ResolveRelative(c.s.BasePath, "/upload/androidpublisher/v3/applications/internalappsharing/{packageName}/artifacts/apk")
10049		c.urlParams_.Set("uploadType", c.mediaInfo_.UploadType())
10050	}
10051	if body == nil {
10052		body = new(bytes.Buffer)
10053		reqHeaders.Set("Content-Type", "application/json")
10054	}
10055	body, getBody, cleanup := c.mediaInfo_.UploadRequest(reqHeaders, body)
10056	defer cleanup()
10057	urls += "?" + c.urlParams_.Encode()
10058	req, err := http.NewRequest("POST", urls, body)
10059	if err != nil {
10060		return nil, err
10061	}
10062	req.Header = reqHeaders
10063	req.GetBody = getBody
10064	googleapi.Expand(req.URL, map[string]string{
10065		"packageName": c.packageName,
10066	})
10067	return gensupport.SendRequest(c.ctx_, c.s.client, req)
10068}
10069
10070// Do executes the "androidpublisher.internalappsharingartifacts.uploadapk" call.
10071// Exactly one of *InternalAppSharingArtifact or error will be non-nil.
10072// Any non-2xx status code is an error. Response headers are in either
10073// *InternalAppSharingArtifact.ServerResponse.Header or (if a response
10074// was returned at all) in error.(*googleapi.Error).Header. Use
10075// googleapi.IsNotModified to check whether the returned error was
10076// because http.StatusNotModified was returned.
10077func (c *InternalappsharingartifactsUploadapkCall) Do(opts ...googleapi.CallOption) (*InternalAppSharingArtifact, error) {
10078	gensupport.SetOptions(c.urlParams_, opts...)
10079	res, err := c.doRequest("json")
10080	if res != nil && res.StatusCode == http.StatusNotModified {
10081		if res.Body != nil {
10082			res.Body.Close()
10083		}
10084		return nil, &googleapi.Error{
10085			Code:   res.StatusCode,
10086			Header: res.Header,
10087		}
10088	}
10089	if err != nil {
10090		return nil, err
10091	}
10092	defer googleapi.CloseBody(res)
10093	if err := googleapi.CheckResponse(res); err != nil {
10094		return nil, err
10095	}
10096	rx := c.mediaInfo_.ResumableUpload(res.Header.Get("Location"))
10097	if rx != nil {
10098		rx.Client = c.s.client
10099		rx.UserAgent = c.s.userAgent()
10100		ctx := c.ctx_
10101		if ctx == nil {
10102			ctx = context.TODO()
10103		}
10104		res, err = rx.Upload(ctx)
10105		if err != nil {
10106			return nil, err
10107		}
10108		defer res.Body.Close()
10109		if err := googleapi.CheckResponse(res); err != nil {
10110			return nil, err
10111		}
10112	}
10113	ret := &InternalAppSharingArtifact{
10114		ServerResponse: googleapi.ServerResponse{
10115			Header:         res.Header,
10116			HTTPStatusCode: res.StatusCode,
10117		},
10118	}
10119	target := &ret
10120	if err := gensupport.DecodeResponse(target, res); err != nil {
10121		return nil, err
10122	}
10123	return ret, nil
10124	// {
10125	//   "description": "Uploads an APK to internal app sharing. If you are using the Google API client libraries, please increase the timeout of the http request before calling this endpoint (a timeout of 2 minutes is recommended). See [Timeouts and Errors](https://developers.google.com/api-client-library/java/google-api-java-client/errors) for an example in java.",
10126	//   "flatPath": "androidpublisher/v3/applications/internalappsharing/{packageName}/artifacts/apk",
10127	//   "httpMethod": "POST",
10128	//   "id": "androidpublisher.internalappsharingartifacts.uploadapk",
10129	//   "mediaUpload": {
10130	//     "accept": [
10131	//       "application/octet-stream",
10132	//       "application/vnd.android.package-archive"
10133	//     ],
10134	//     "maxSize": "1073741824",
10135	//     "protocols": {
10136	//       "resumable": {
10137	//         "multipart": true,
10138	//         "path": "/resumable/upload/androidpublisher/v3/applications/internalappsharing/{packageName}/artifacts/apk"
10139	//       },
10140	//       "simple": {
10141	//         "multipart": true,
10142	//         "path": "/upload/androidpublisher/v3/applications/internalappsharing/{packageName}/artifacts/apk"
10143	//       }
10144	//     }
10145	//   },
10146	//   "parameterOrder": [
10147	//     "packageName"
10148	//   ],
10149	//   "parameters": {
10150	//     "packageName": {
10151	//       "description": "Package name of the app.",
10152	//       "location": "path",
10153	//       "required": true,
10154	//       "type": "string"
10155	//     }
10156	//   },
10157	//   "path": "androidpublisher/v3/applications/internalappsharing/{packageName}/artifacts/apk",
10158	//   "response": {
10159	//     "$ref": "InternalAppSharingArtifact"
10160	//   },
10161	//   "scopes": [
10162	//     "https://www.googleapis.com/auth/androidpublisher"
10163	//   ],
10164	//   "supportsMediaUpload": true
10165	// }
10166
10167}
10168
10169// method id "androidpublisher.internalappsharingartifacts.uploadbundle":
10170
10171type InternalappsharingartifactsUploadbundleCall struct {
10172	s           *Service
10173	packageName string
10174	urlParams_  gensupport.URLParams
10175	mediaInfo_  *gensupport.MediaInfo
10176	ctx_        context.Context
10177	header_     http.Header
10178}
10179
10180// Uploadbundle: Uploads an app bundle to internal app sharing. If you
10181// are using the Google API client libraries, please increase the
10182// timeout of the http request before calling this endpoint (a timeout
10183// of 2 minutes is recommended). See Timeouts and Errors
10184// (https://developers.google.com/api-client-library/java/google-api-java-client/errors)
10185// for an example in java.
10186//
10187// - packageName: Package name of the app.
10188func (r *InternalappsharingartifactsService) Uploadbundle(packageName string) *InternalappsharingartifactsUploadbundleCall {
10189	c := &InternalappsharingartifactsUploadbundleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
10190	c.packageName = packageName
10191	return c
10192}
10193
10194// Media specifies the media to upload in one or more chunks. The chunk
10195// size may be controlled by supplying a MediaOption generated by
10196// googleapi.ChunkSize. The chunk size defaults to
10197// googleapi.DefaultUploadChunkSize.The Content-Type header used in the
10198// upload request will be determined by sniffing the contents of r,
10199// unless a MediaOption generated by googleapi.ContentType is
10200// supplied.
10201// At most one of Media and ResumableMedia may be set.
10202func (c *InternalappsharingartifactsUploadbundleCall) Media(r io.Reader, options ...googleapi.MediaOption) *InternalappsharingartifactsUploadbundleCall {
10203	c.mediaInfo_ = gensupport.NewInfoFromMedia(r, options)
10204	return c
10205}
10206
10207// ResumableMedia specifies the media to upload in chunks and can be
10208// canceled with ctx.
10209//
10210// Deprecated: use Media instead.
10211//
10212// At most one of Media and ResumableMedia may be set. mediaType
10213// identifies the MIME media type of the upload, such as "image/png". If
10214// mediaType is "", it will be auto-detected. The provided ctx will
10215// supersede any context previously provided to the Context method.
10216func (c *InternalappsharingartifactsUploadbundleCall) ResumableMedia(ctx context.Context, r io.ReaderAt, size int64, mediaType string) *InternalappsharingartifactsUploadbundleCall {
10217	c.ctx_ = ctx
10218	c.mediaInfo_ = gensupport.NewInfoFromResumableMedia(r, size, mediaType)
10219	return c
10220}
10221
10222// ProgressUpdater provides a callback function that will be called
10223// after every chunk. It should be a low-latency function in order to
10224// not slow down the upload operation. This should only be called when
10225// using ResumableMedia (as opposed to Media).
10226func (c *InternalappsharingartifactsUploadbundleCall) ProgressUpdater(pu googleapi.ProgressUpdater) *InternalappsharingartifactsUploadbundleCall {
10227	c.mediaInfo_.SetProgressUpdater(pu)
10228	return c
10229}
10230
10231// Fields allows partial responses to be retrieved. See
10232// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
10233// for more information.
10234func (c *InternalappsharingartifactsUploadbundleCall) Fields(s ...googleapi.Field) *InternalappsharingartifactsUploadbundleCall {
10235	c.urlParams_.Set("fields", googleapi.CombineFields(s))
10236	return c
10237}
10238
10239// Context sets the context to be used in this call's Do method. Any
10240// pending HTTP request will be aborted if the provided context is
10241// canceled.
10242// This context will supersede any context previously provided to the
10243// ResumableMedia method.
10244func (c *InternalappsharingartifactsUploadbundleCall) Context(ctx context.Context) *InternalappsharingartifactsUploadbundleCall {
10245	c.ctx_ = ctx
10246	return c
10247}
10248
10249// Header returns an http.Header that can be modified by the caller to
10250// add HTTP headers to the request.
10251func (c *InternalappsharingartifactsUploadbundleCall) Header() http.Header {
10252	if c.header_ == nil {
10253		c.header_ = make(http.Header)
10254	}
10255	return c.header_
10256}
10257
10258func (c *InternalappsharingartifactsUploadbundleCall) doRequest(alt string) (*http.Response, error) {
10259	reqHeaders := make(http.Header)
10260	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
10261	for k, v := range c.header_ {
10262		reqHeaders[k] = v
10263	}
10264	reqHeaders.Set("User-Agent", c.s.userAgent())
10265	var body io.Reader = nil
10266	c.urlParams_.Set("alt", alt)
10267	c.urlParams_.Set("prettyPrint", "false")
10268	urls := googleapi.ResolveRelative(c.s.BasePath, "androidpublisher/v3/applications/internalappsharing/{packageName}/artifacts/bundle")
10269	if c.mediaInfo_ != nil {
10270		urls = googleapi.ResolveRelative(c.s.BasePath, "/upload/androidpublisher/v3/applications/internalappsharing/{packageName}/artifacts/bundle")
10271		c.urlParams_.Set("uploadType", c.mediaInfo_.UploadType())
10272	}
10273	if body == nil {
10274		body = new(bytes.Buffer)
10275		reqHeaders.Set("Content-Type", "application/json")
10276	}
10277	body, getBody, cleanup := c.mediaInfo_.UploadRequest(reqHeaders, body)
10278	defer cleanup()
10279	urls += "?" + c.urlParams_.Encode()
10280	req, err := http.NewRequest("POST", urls, body)
10281	if err != nil {
10282		return nil, err
10283	}
10284	req.Header = reqHeaders
10285	req.GetBody = getBody
10286	googleapi.Expand(req.URL, map[string]string{
10287		"packageName": c.packageName,
10288	})
10289	return gensupport.SendRequest(c.ctx_, c.s.client, req)
10290}
10291
10292// Do executes the "androidpublisher.internalappsharingartifacts.uploadbundle" call.
10293// Exactly one of *InternalAppSharingArtifact or error will be non-nil.
10294// Any non-2xx status code is an error. Response headers are in either
10295// *InternalAppSharingArtifact.ServerResponse.Header or (if a response
10296// was returned at all) in error.(*googleapi.Error).Header. Use
10297// googleapi.IsNotModified to check whether the returned error was
10298// because http.StatusNotModified was returned.
10299func (c *InternalappsharingartifactsUploadbundleCall) Do(opts ...googleapi.CallOption) (*InternalAppSharingArtifact, error) {
10300	gensupport.SetOptions(c.urlParams_, opts...)
10301	res, err := c.doRequest("json")
10302	if res != nil && res.StatusCode == http.StatusNotModified {
10303		if res.Body != nil {
10304			res.Body.Close()
10305		}
10306		return nil, &googleapi.Error{
10307			Code:   res.StatusCode,
10308			Header: res.Header,
10309		}
10310	}
10311	if err != nil {
10312		return nil, err
10313	}
10314	defer googleapi.CloseBody(res)
10315	if err := googleapi.CheckResponse(res); err != nil {
10316		return nil, err
10317	}
10318	rx := c.mediaInfo_.ResumableUpload(res.Header.Get("Location"))
10319	if rx != nil {
10320		rx.Client = c.s.client
10321		rx.UserAgent = c.s.userAgent()
10322		ctx := c.ctx_
10323		if ctx == nil {
10324			ctx = context.TODO()
10325		}
10326		res, err = rx.Upload(ctx)
10327		if err != nil {
10328			return nil, err
10329		}
10330		defer res.Body.Close()
10331		if err := googleapi.CheckResponse(res); err != nil {
10332			return nil, err
10333		}
10334	}
10335	ret := &InternalAppSharingArtifact{
10336		ServerResponse: googleapi.ServerResponse{
10337			Header:         res.Header,
10338			HTTPStatusCode: res.StatusCode,
10339		},
10340	}
10341	target := &ret
10342	if err := gensupport.DecodeResponse(target, res); err != nil {
10343		return nil, err
10344	}
10345	return ret, nil
10346	// {
10347	//   "description": "Uploads an app bundle to internal app sharing. If you are using the Google API client libraries, please increase the timeout of the http request before calling this endpoint (a timeout of 2 minutes is recommended). See [Timeouts and Errors](https://developers.google.com/api-client-library/java/google-api-java-client/errors) for an example in java.",
10348	//   "flatPath": "androidpublisher/v3/applications/internalappsharing/{packageName}/artifacts/bundle",
10349	//   "httpMethod": "POST",
10350	//   "id": "androidpublisher.internalappsharingartifacts.uploadbundle",
10351	//   "mediaUpload": {
10352	//     "accept": [
10353	//       "application/octet-stream"
10354	//     ],
10355	//     "maxSize": "10737418240",
10356	//     "protocols": {
10357	//       "resumable": {
10358	//         "multipart": true,
10359	//         "path": "/resumable/upload/androidpublisher/v3/applications/internalappsharing/{packageName}/artifacts/bundle"
10360	//       },
10361	//       "simple": {
10362	//         "multipart": true,
10363	//         "path": "/upload/androidpublisher/v3/applications/internalappsharing/{packageName}/artifacts/bundle"
10364	//       }
10365	//     }
10366	//   },
10367	//   "parameterOrder": [
10368	//     "packageName"
10369	//   ],
10370	//   "parameters": {
10371	//     "packageName": {
10372	//       "description": "Package name of the app.",
10373	//       "location": "path",
10374	//       "required": true,
10375	//       "type": "string"
10376	//     }
10377	//   },
10378	//   "path": "androidpublisher/v3/applications/internalappsharing/{packageName}/artifacts/bundle",
10379	//   "response": {
10380	//     "$ref": "InternalAppSharingArtifact"
10381	//   },
10382	//   "scopes": [
10383	//     "https://www.googleapis.com/auth/androidpublisher"
10384	//   ],
10385	//   "supportsMediaUpload": true
10386	// }
10387
10388}
10389
10390// method id "androidpublisher.orders.refund":
10391
10392type OrdersRefundCall struct {
10393	s           *Service
10394	packageName string
10395	orderId     string
10396	urlParams_  gensupport.URLParams
10397	ctx_        context.Context
10398	header_     http.Header
10399}
10400
10401// Refund: Refund a user's subscription or in-app purchase order.
10402//
10403// - orderId: The order ID provided to the user when the subscription or
10404//   in-app order was purchased.
10405// - packageName: The package name of the application for which this
10406//   subscription or in-app item was purchased (for example,
10407//   'com.some.thing').
10408func (r *OrdersService) Refund(packageName string, orderId string) *OrdersRefundCall {
10409	c := &OrdersRefundCall{s: r.s, urlParams_: make(gensupport.URLParams)}
10410	c.packageName = packageName
10411	c.orderId = orderId
10412	return c
10413}
10414
10415// Revoke sets the optional parameter "revoke": Whether to revoke the
10416// purchased item. If set to true, access to the subscription or in-app
10417// item will be terminated immediately. If the item is a recurring
10418// subscription, all future payments will also be terminated. Consumed
10419// in-app items need to be handled by developer's app. (optional).
10420func (c *OrdersRefundCall) Revoke(revoke bool) *OrdersRefundCall {
10421	c.urlParams_.Set("revoke", fmt.Sprint(revoke))
10422	return c
10423}
10424
10425// Fields allows partial responses to be retrieved. See
10426// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
10427// for more information.
10428func (c *OrdersRefundCall) Fields(s ...googleapi.Field) *OrdersRefundCall {
10429	c.urlParams_.Set("fields", googleapi.CombineFields(s))
10430	return c
10431}
10432
10433// Context sets the context to be used in this call's Do method. Any
10434// pending HTTP request will be aborted if the provided context is
10435// canceled.
10436func (c *OrdersRefundCall) Context(ctx context.Context) *OrdersRefundCall {
10437	c.ctx_ = ctx
10438	return c
10439}
10440
10441// Header returns an http.Header that can be modified by the caller to
10442// add HTTP headers to the request.
10443func (c *OrdersRefundCall) Header() http.Header {
10444	if c.header_ == nil {
10445		c.header_ = make(http.Header)
10446	}
10447	return c.header_
10448}
10449
10450func (c *OrdersRefundCall) doRequest(alt string) (*http.Response, error) {
10451	reqHeaders := make(http.Header)
10452	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
10453	for k, v := range c.header_ {
10454		reqHeaders[k] = v
10455	}
10456	reqHeaders.Set("User-Agent", c.s.userAgent())
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, "androidpublisher/v3/applications/{packageName}/orders/{orderId}:refund")
10461	urls += "?" + c.urlParams_.Encode()
10462	req, err := http.NewRequest("POST", urls, body)
10463	if err != nil {
10464		return nil, err
10465	}
10466	req.Header = reqHeaders
10467	googleapi.Expand(req.URL, map[string]string{
10468		"packageName": c.packageName,
10469		"orderId":     c.orderId,
10470	})
10471	return gensupport.SendRequest(c.ctx_, c.s.client, req)
10472}
10473
10474// Do executes the "androidpublisher.orders.refund" call.
10475func (c *OrdersRefundCall) Do(opts ...googleapi.CallOption) error {
10476	gensupport.SetOptions(c.urlParams_, opts...)
10477	res, err := c.doRequest("json")
10478	if err != nil {
10479		return err
10480	}
10481	defer googleapi.CloseBody(res)
10482	if err := googleapi.CheckResponse(res); err != nil {
10483		return err
10484	}
10485	return nil
10486	// {
10487	//   "description": "Refund a user's subscription or in-app purchase order.",
10488	//   "flatPath": "androidpublisher/v3/applications/{packageName}/orders/{orderId}:refund",
10489	//   "httpMethod": "POST",
10490	//   "id": "androidpublisher.orders.refund",
10491	//   "parameterOrder": [
10492	//     "packageName",
10493	//     "orderId"
10494	//   ],
10495	//   "parameters": {
10496	//     "orderId": {
10497	//       "description": "The order ID provided to the user when the subscription or in-app order was purchased.",
10498	//       "location": "path",
10499	//       "required": true,
10500	//       "type": "string"
10501	//     },
10502	//     "packageName": {
10503	//       "description": "The package name of the application for which this subscription or in-app item was purchased (for example, 'com.some.thing').",
10504	//       "location": "path",
10505	//       "required": true,
10506	//       "type": "string"
10507	//     },
10508	//     "revoke": {
10509	//       "description": "Whether to revoke the purchased item. If set to true, access to the subscription or in-app item will be terminated immediately. If the item is a recurring subscription, all future payments will also be terminated. Consumed in-app items need to be handled by developer's app. (optional).",
10510	//       "location": "query",
10511	//       "type": "boolean"
10512	//     }
10513	//   },
10514	//   "path": "androidpublisher/v3/applications/{packageName}/orders/{orderId}:refund",
10515	//   "scopes": [
10516	//     "https://www.googleapis.com/auth/androidpublisher"
10517	//   ]
10518	// }
10519
10520}
10521
10522// method id "androidpublisher.purchases.products.acknowledge":
10523
10524type PurchasesProductsAcknowledgeCall struct {
10525	s                                  *Service
10526	packageName                        string
10527	productId                          string
10528	token                              string
10529	productpurchasesacknowledgerequest *ProductPurchasesAcknowledgeRequest
10530	urlParams_                         gensupport.URLParams
10531	ctx_                               context.Context
10532	header_                            http.Header
10533}
10534
10535// Acknowledge: Acknowledges a purchase of an inapp item.
10536//
10537// - packageName: The package name of the application the inapp product
10538//   was sold in (for example, 'com.some.thing').
10539// - productId: The inapp product SKU (for example,
10540//   'com.some.thing.inapp1').
10541// - token: The token provided to the user's device when the inapp
10542//   product was purchased.
10543func (r *PurchasesProductsService) Acknowledge(packageName string, productId string, token string, productpurchasesacknowledgerequest *ProductPurchasesAcknowledgeRequest) *PurchasesProductsAcknowledgeCall {
10544	c := &PurchasesProductsAcknowledgeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
10545	c.packageName = packageName
10546	c.productId = productId
10547	c.token = token
10548	c.productpurchasesacknowledgerequest = productpurchasesacknowledgerequest
10549	return c
10550}
10551
10552// Fields allows partial responses to be retrieved. See
10553// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
10554// for more information.
10555func (c *PurchasesProductsAcknowledgeCall) Fields(s ...googleapi.Field) *PurchasesProductsAcknowledgeCall {
10556	c.urlParams_.Set("fields", googleapi.CombineFields(s))
10557	return c
10558}
10559
10560// Context sets the context to be used in this call's Do method. Any
10561// pending HTTP request will be aborted if the provided context is
10562// canceled.
10563func (c *PurchasesProductsAcknowledgeCall) Context(ctx context.Context) *PurchasesProductsAcknowledgeCall {
10564	c.ctx_ = ctx
10565	return c
10566}
10567
10568// Header returns an http.Header that can be modified by the caller to
10569// add HTTP headers to the request.
10570func (c *PurchasesProductsAcknowledgeCall) Header() http.Header {
10571	if c.header_ == nil {
10572		c.header_ = make(http.Header)
10573	}
10574	return c.header_
10575}
10576
10577func (c *PurchasesProductsAcknowledgeCall) doRequest(alt string) (*http.Response, error) {
10578	reqHeaders := make(http.Header)
10579	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
10580	for k, v := range c.header_ {
10581		reqHeaders[k] = v
10582	}
10583	reqHeaders.Set("User-Agent", c.s.userAgent())
10584	var body io.Reader = nil
10585	body, err := googleapi.WithoutDataWrapper.JSONReader(c.productpurchasesacknowledgerequest)
10586	if err != nil {
10587		return nil, err
10588	}
10589	reqHeaders.Set("Content-Type", "application/json")
10590	c.urlParams_.Set("alt", alt)
10591	c.urlParams_.Set("prettyPrint", "false")
10592	urls := googleapi.ResolveRelative(c.s.BasePath, "androidpublisher/v3/applications/{packageName}/purchases/products/{productId}/tokens/{token}:acknowledge")
10593	urls += "?" + c.urlParams_.Encode()
10594	req, err := http.NewRequest("POST", urls, body)
10595	if err != nil {
10596		return nil, err
10597	}
10598	req.Header = reqHeaders
10599	googleapi.Expand(req.URL, map[string]string{
10600		"packageName": c.packageName,
10601		"productId":   c.productId,
10602		"token":       c.token,
10603	})
10604	return gensupport.SendRequest(c.ctx_, c.s.client, req)
10605}
10606
10607// Do executes the "androidpublisher.purchases.products.acknowledge" call.
10608func (c *PurchasesProductsAcknowledgeCall) Do(opts ...googleapi.CallOption) error {
10609	gensupport.SetOptions(c.urlParams_, opts...)
10610	res, err := c.doRequest("json")
10611	if err != nil {
10612		return err
10613	}
10614	defer googleapi.CloseBody(res)
10615	if err := googleapi.CheckResponse(res); err != nil {
10616		return err
10617	}
10618	return nil
10619	// {
10620	//   "description": "Acknowledges a purchase of an inapp item.",
10621	//   "flatPath": "androidpublisher/v3/applications/{packageName}/purchases/products/{productId}/tokens/{token}:acknowledge",
10622	//   "httpMethod": "POST",
10623	//   "id": "androidpublisher.purchases.products.acknowledge",
10624	//   "parameterOrder": [
10625	//     "packageName",
10626	//     "productId",
10627	//     "token"
10628	//   ],
10629	//   "parameters": {
10630	//     "packageName": {
10631	//       "description": "The package name of the application the inapp product was sold in (for example, 'com.some.thing').",
10632	//       "location": "path",
10633	//       "required": true,
10634	//       "type": "string"
10635	//     },
10636	//     "productId": {
10637	//       "description": "The inapp product SKU (for example, 'com.some.thing.inapp1').",
10638	//       "location": "path",
10639	//       "required": true,
10640	//       "type": "string"
10641	//     },
10642	//     "token": {
10643	//       "description": "The token provided to the user's device when the inapp product was purchased.",
10644	//       "location": "path",
10645	//       "required": true,
10646	//       "type": "string"
10647	//     }
10648	//   },
10649	//   "path": "androidpublisher/v3/applications/{packageName}/purchases/products/{productId}/tokens/{token}:acknowledge",
10650	//   "request": {
10651	//     "$ref": "ProductPurchasesAcknowledgeRequest"
10652	//   },
10653	//   "scopes": [
10654	//     "https://www.googleapis.com/auth/androidpublisher"
10655	//   ]
10656	// }
10657
10658}
10659
10660// method id "androidpublisher.purchases.products.get":
10661
10662type PurchasesProductsGetCall struct {
10663	s            *Service
10664	packageName  string
10665	productId    string
10666	token        string
10667	urlParams_   gensupport.URLParams
10668	ifNoneMatch_ string
10669	ctx_         context.Context
10670	header_      http.Header
10671}
10672
10673// Get: Checks the purchase and consumption status of an inapp item.
10674//
10675// - packageName: The package name of the application the inapp product
10676//   was sold in (for example, 'com.some.thing').
10677// - productId: The inapp product SKU (for example,
10678//   'com.some.thing.inapp1').
10679// - token: The token provided to the user's device when the inapp
10680//   product was purchased.
10681func (r *PurchasesProductsService) Get(packageName string, productId string, token string) *PurchasesProductsGetCall {
10682	c := &PurchasesProductsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
10683	c.packageName = packageName
10684	c.productId = productId
10685	c.token = token
10686	return c
10687}
10688
10689// Fields allows partial responses to be retrieved. See
10690// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
10691// for more information.
10692func (c *PurchasesProductsGetCall) Fields(s ...googleapi.Field) *PurchasesProductsGetCall {
10693	c.urlParams_.Set("fields", googleapi.CombineFields(s))
10694	return c
10695}
10696
10697// IfNoneMatch sets the optional parameter which makes the operation
10698// fail if the object's ETag matches the given value. This is useful for
10699// getting updates only after the object has changed since the last
10700// request. Use googleapi.IsNotModified to check whether the response
10701// error from Do is the result of In-None-Match.
10702func (c *PurchasesProductsGetCall) IfNoneMatch(entityTag string) *PurchasesProductsGetCall {
10703	c.ifNoneMatch_ = entityTag
10704	return c
10705}
10706
10707// Context sets the context to be used in this call's Do method. Any
10708// pending HTTP request will be aborted if the provided context is
10709// canceled.
10710func (c *PurchasesProductsGetCall) Context(ctx context.Context) *PurchasesProductsGetCall {
10711	c.ctx_ = ctx
10712	return c
10713}
10714
10715// Header returns an http.Header that can be modified by the caller to
10716// add HTTP headers to the request.
10717func (c *PurchasesProductsGetCall) Header() http.Header {
10718	if c.header_ == nil {
10719		c.header_ = make(http.Header)
10720	}
10721	return c.header_
10722}
10723
10724func (c *PurchasesProductsGetCall) doRequest(alt string) (*http.Response, error) {
10725	reqHeaders := make(http.Header)
10726	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
10727	for k, v := range c.header_ {
10728		reqHeaders[k] = v
10729	}
10730	reqHeaders.Set("User-Agent", c.s.userAgent())
10731	if c.ifNoneMatch_ != "" {
10732		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
10733	}
10734	var body io.Reader = nil
10735	c.urlParams_.Set("alt", alt)
10736	c.urlParams_.Set("prettyPrint", "false")
10737	urls := googleapi.ResolveRelative(c.s.BasePath, "androidpublisher/v3/applications/{packageName}/purchases/products/{productId}/tokens/{token}")
10738	urls += "?" + c.urlParams_.Encode()
10739	req, err := http.NewRequest("GET", urls, body)
10740	if err != nil {
10741		return nil, err
10742	}
10743	req.Header = reqHeaders
10744	googleapi.Expand(req.URL, map[string]string{
10745		"packageName": c.packageName,
10746		"productId":   c.productId,
10747		"token":       c.token,
10748	})
10749	return gensupport.SendRequest(c.ctx_, c.s.client, req)
10750}
10751
10752// Do executes the "androidpublisher.purchases.products.get" call.
10753// Exactly one of *ProductPurchase or error will be non-nil. Any non-2xx
10754// status code is an error. Response headers are in either
10755// *ProductPurchase.ServerResponse.Header or (if a response was returned
10756// at all) in error.(*googleapi.Error).Header. Use
10757// googleapi.IsNotModified to check whether the returned error was
10758// because http.StatusNotModified was returned.
10759func (c *PurchasesProductsGetCall) Do(opts ...googleapi.CallOption) (*ProductPurchase, error) {
10760	gensupport.SetOptions(c.urlParams_, opts...)
10761	res, err := c.doRequest("json")
10762	if res != nil && res.StatusCode == http.StatusNotModified {
10763		if res.Body != nil {
10764			res.Body.Close()
10765		}
10766		return nil, &googleapi.Error{
10767			Code:   res.StatusCode,
10768			Header: res.Header,
10769		}
10770	}
10771	if err != nil {
10772		return nil, err
10773	}
10774	defer googleapi.CloseBody(res)
10775	if err := googleapi.CheckResponse(res); err != nil {
10776		return nil, err
10777	}
10778	ret := &ProductPurchase{
10779		ServerResponse: googleapi.ServerResponse{
10780			Header:         res.Header,
10781			HTTPStatusCode: res.StatusCode,
10782		},
10783	}
10784	target := &ret
10785	if err := gensupport.DecodeResponse(target, res); err != nil {
10786		return nil, err
10787	}
10788	return ret, nil
10789	// {
10790	//   "description": "Checks the purchase and consumption status of an inapp item.",
10791	//   "flatPath": "androidpublisher/v3/applications/{packageName}/purchases/products/{productId}/tokens/{token}",
10792	//   "httpMethod": "GET",
10793	//   "id": "androidpublisher.purchases.products.get",
10794	//   "parameterOrder": [
10795	//     "packageName",
10796	//     "productId",
10797	//     "token"
10798	//   ],
10799	//   "parameters": {
10800	//     "packageName": {
10801	//       "description": "The package name of the application the inapp product was sold in (for example, 'com.some.thing').",
10802	//       "location": "path",
10803	//       "required": true,
10804	//       "type": "string"
10805	//     },
10806	//     "productId": {
10807	//       "description": "The inapp product SKU (for example, 'com.some.thing.inapp1').",
10808	//       "location": "path",
10809	//       "required": true,
10810	//       "type": "string"
10811	//     },
10812	//     "token": {
10813	//       "description": "The token provided to the user's device when the inapp product was purchased.",
10814	//       "location": "path",
10815	//       "required": true,
10816	//       "type": "string"
10817	//     }
10818	//   },
10819	//   "path": "androidpublisher/v3/applications/{packageName}/purchases/products/{productId}/tokens/{token}",
10820	//   "response": {
10821	//     "$ref": "ProductPurchase"
10822	//   },
10823	//   "scopes": [
10824	//     "https://www.googleapis.com/auth/androidpublisher"
10825	//   ]
10826	// }
10827
10828}
10829
10830// method id "androidpublisher.purchases.subscriptions.acknowledge":
10831
10832type PurchasesSubscriptionsAcknowledgeCall struct {
10833	s                                       *Service
10834	packageName                             string
10835	subscriptionId                          string
10836	token                                   string
10837	subscriptionpurchasesacknowledgerequest *SubscriptionPurchasesAcknowledgeRequest
10838	urlParams_                              gensupport.URLParams
10839	ctx_                                    context.Context
10840	header_                                 http.Header
10841}
10842
10843// Acknowledge: Acknowledges a subscription purchase.
10844//
10845// - packageName: The package name of the application for which this
10846//   subscription was purchased (for example, 'com.some.thing').
10847// - subscriptionId: The purchased subscription ID (for example,
10848//   'monthly001').
10849// - token: The token provided to the user's device when the
10850//   subscription was purchased.
10851func (r *PurchasesSubscriptionsService) Acknowledge(packageName string, subscriptionId string, token string, subscriptionpurchasesacknowledgerequest *SubscriptionPurchasesAcknowledgeRequest) *PurchasesSubscriptionsAcknowledgeCall {
10852	c := &PurchasesSubscriptionsAcknowledgeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
10853	c.packageName = packageName
10854	c.subscriptionId = subscriptionId
10855	c.token = token
10856	c.subscriptionpurchasesacknowledgerequest = subscriptionpurchasesacknowledgerequest
10857	return c
10858}
10859
10860// Fields allows partial responses to be retrieved. See
10861// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
10862// for more information.
10863func (c *PurchasesSubscriptionsAcknowledgeCall) Fields(s ...googleapi.Field) *PurchasesSubscriptionsAcknowledgeCall {
10864	c.urlParams_.Set("fields", googleapi.CombineFields(s))
10865	return c
10866}
10867
10868// Context sets the context to be used in this call's Do method. Any
10869// pending HTTP request will be aborted if the provided context is
10870// canceled.
10871func (c *PurchasesSubscriptionsAcknowledgeCall) Context(ctx context.Context) *PurchasesSubscriptionsAcknowledgeCall {
10872	c.ctx_ = ctx
10873	return c
10874}
10875
10876// Header returns an http.Header that can be modified by the caller to
10877// add HTTP headers to the request.
10878func (c *PurchasesSubscriptionsAcknowledgeCall) Header() http.Header {
10879	if c.header_ == nil {
10880		c.header_ = make(http.Header)
10881	}
10882	return c.header_
10883}
10884
10885func (c *PurchasesSubscriptionsAcknowledgeCall) doRequest(alt string) (*http.Response, error) {
10886	reqHeaders := make(http.Header)
10887	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
10888	for k, v := range c.header_ {
10889		reqHeaders[k] = v
10890	}
10891	reqHeaders.Set("User-Agent", c.s.userAgent())
10892	var body io.Reader = nil
10893	body, err := googleapi.WithoutDataWrapper.JSONReader(c.subscriptionpurchasesacknowledgerequest)
10894	if err != nil {
10895		return nil, err
10896	}
10897	reqHeaders.Set("Content-Type", "application/json")
10898	c.urlParams_.Set("alt", alt)
10899	c.urlParams_.Set("prettyPrint", "false")
10900	urls := googleapi.ResolveRelative(c.s.BasePath, "androidpublisher/v3/applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}:acknowledge")
10901	urls += "?" + c.urlParams_.Encode()
10902	req, err := http.NewRequest("POST", urls, body)
10903	if err != nil {
10904		return nil, err
10905	}
10906	req.Header = reqHeaders
10907	googleapi.Expand(req.URL, map[string]string{
10908		"packageName":    c.packageName,
10909		"subscriptionId": c.subscriptionId,
10910		"token":          c.token,
10911	})
10912	return gensupport.SendRequest(c.ctx_, c.s.client, req)
10913}
10914
10915// Do executes the "androidpublisher.purchases.subscriptions.acknowledge" call.
10916func (c *PurchasesSubscriptionsAcknowledgeCall) Do(opts ...googleapi.CallOption) error {
10917	gensupport.SetOptions(c.urlParams_, opts...)
10918	res, err := c.doRequest("json")
10919	if err != nil {
10920		return err
10921	}
10922	defer googleapi.CloseBody(res)
10923	if err := googleapi.CheckResponse(res); err != nil {
10924		return err
10925	}
10926	return nil
10927	// {
10928	//   "description": "Acknowledges a subscription purchase.",
10929	//   "flatPath": "androidpublisher/v3/applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}:acknowledge",
10930	//   "httpMethod": "POST",
10931	//   "id": "androidpublisher.purchases.subscriptions.acknowledge",
10932	//   "parameterOrder": [
10933	//     "packageName",
10934	//     "subscriptionId",
10935	//     "token"
10936	//   ],
10937	//   "parameters": {
10938	//     "packageName": {
10939	//       "description": "The package name of the application for which this subscription was purchased (for example, 'com.some.thing').",
10940	//       "location": "path",
10941	//       "required": true,
10942	//       "type": "string"
10943	//     },
10944	//     "subscriptionId": {
10945	//       "description": "The purchased subscription ID (for example, 'monthly001').",
10946	//       "location": "path",
10947	//       "required": true,
10948	//       "type": "string"
10949	//     },
10950	//     "token": {
10951	//       "description": "The token provided to the user's device when the subscription was purchased.",
10952	//       "location": "path",
10953	//       "required": true,
10954	//       "type": "string"
10955	//     }
10956	//   },
10957	//   "path": "androidpublisher/v3/applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}:acknowledge",
10958	//   "request": {
10959	//     "$ref": "SubscriptionPurchasesAcknowledgeRequest"
10960	//   },
10961	//   "scopes": [
10962	//     "https://www.googleapis.com/auth/androidpublisher"
10963	//   ]
10964	// }
10965
10966}
10967
10968// method id "androidpublisher.purchases.subscriptions.cancel":
10969
10970type PurchasesSubscriptionsCancelCall struct {
10971	s              *Service
10972	packageName    string
10973	subscriptionId string
10974	token          string
10975	urlParams_     gensupport.URLParams
10976	ctx_           context.Context
10977	header_        http.Header
10978}
10979
10980// Cancel: Cancels a user's subscription purchase. The subscription
10981// remains valid until its expiration time.
10982//
10983// - packageName: The package name of the application for which this
10984//   subscription was purchased (for example, 'com.some.thing').
10985// - subscriptionId: The purchased subscription ID (for example,
10986//   'monthly001').
10987// - token: The token provided to the user's device when the
10988//   subscription was purchased.
10989func (r *PurchasesSubscriptionsService) Cancel(packageName string, subscriptionId string, token string) *PurchasesSubscriptionsCancelCall {
10990	c := &PurchasesSubscriptionsCancelCall{s: r.s, urlParams_: make(gensupport.URLParams)}
10991	c.packageName = packageName
10992	c.subscriptionId = subscriptionId
10993	c.token = token
10994	return c
10995}
10996
10997// Fields allows partial responses to be retrieved. See
10998// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
10999// for more information.
11000func (c *PurchasesSubscriptionsCancelCall) Fields(s ...googleapi.Field) *PurchasesSubscriptionsCancelCall {
11001	c.urlParams_.Set("fields", googleapi.CombineFields(s))
11002	return c
11003}
11004
11005// Context sets the context to be used in this call's Do method. Any
11006// pending HTTP request will be aborted if the provided context is
11007// canceled.
11008func (c *PurchasesSubscriptionsCancelCall) Context(ctx context.Context) *PurchasesSubscriptionsCancelCall {
11009	c.ctx_ = ctx
11010	return c
11011}
11012
11013// Header returns an http.Header that can be modified by the caller to
11014// add HTTP headers to the request.
11015func (c *PurchasesSubscriptionsCancelCall) Header() http.Header {
11016	if c.header_ == nil {
11017		c.header_ = make(http.Header)
11018	}
11019	return c.header_
11020}
11021
11022func (c *PurchasesSubscriptionsCancelCall) doRequest(alt string) (*http.Response, error) {
11023	reqHeaders := make(http.Header)
11024	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
11025	for k, v := range c.header_ {
11026		reqHeaders[k] = v
11027	}
11028	reqHeaders.Set("User-Agent", c.s.userAgent())
11029	var body io.Reader = nil
11030	c.urlParams_.Set("alt", alt)
11031	c.urlParams_.Set("prettyPrint", "false")
11032	urls := googleapi.ResolveRelative(c.s.BasePath, "androidpublisher/v3/applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}:cancel")
11033	urls += "?" + c.urlParams_.Encode()
11034	req, err := http.NewRequest("POST", urls, body)
11035	if err != nil {
11036		return nil, err
11037	}
11038	req.Header = reqHeaders
11039	googleapi.Expand(req.URL, map[string]string{
11040		"packageName":    c.packageName,
11041		"subscriptionId": c.subscriptionId,
11042		"token":          c.token,
11043	})
11044	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11045}
11046
11047// Do executes the "androidpublisher.purchases.subscriptions.cancel" call.
11048func (c *PurchasesSubscriptionsCancelCall) Do(opts ...googleapi.CallOption) error {
11049	gensupport.SetOptions(c.urlParams_, opts...)
11050	res, err := c.doRequest("json")
11051	if err != nil {
11052		return err
11053	}
11054	defer googleapi.CloseBody(res)
11055	if err := googleapi.CheckResponse(res); err != nil {
11056		return err
11057	}
11058	return nil
11059	// {
11060	//   "description": "Cancels a user's subscription purchase. The subscription remains valid until its expiration time.",
11061	//   "flatPath": "androidpublisher/v3/applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}:cancel",
11062	//   "httpMethod": "POST",
11063	//   "id": "androidpublisher.purchases.subscriptions.cancel",
11064	//   "parameterOrder": [
11065	//     "packageName",
11066	//     "subscriptionId",
11067	//     "token"
11068	//   ],
11069	//   "parameters": {
11070	//     "packageName": {
11071	//       "description": "The package name of the application for which this subscription was purchased (for example, 'com.some.thing').",
11072	//       "location": "path",
11073	//       "required": true,
11074	//       "type": "string"
11075	//     },
11076	//     "subscriptionId": {
11077	//       "description": "The purchased subscription ID (for example, 'monthly001').",
11078	//       "location": "path",
11079	//       "required": true,
11080	//       "type": "string"
11081	//     },
11082	//     "token": {
11083	//       "description": "The token provided to the user's device when the subscription was purchased.",
11084	//       "location": "path",
11085	//       "required": true,
11086	//       "type": "string"
11087	//     }
11088	//   },
11089	//   "path": "androidpublisher/v3/applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}:cancel",
11090	//   "scopes": [
11091	//     "https://www.googleapis.com/auth/androidpublisher"
11092	//   ]
11093	// }
11094
11095}
11096
11097// method id "androidpublisher.purchases.subscriptions.defer":
11098
11099type PurchasesSubscriptionsDeferCall struct {
11100	s                                 *Service
11101	packageName                       string
11102	subscriptionId                    string
11103	token                             string
11104	subscriptionpurchasesdeferrequest *SubscriptionPurchasesDeferRequest
11105	urlParams_                        gensupport.URLParams
11106	ctx_                              context.Context
11107	header_                           http.Header
11108}
11109
11110// Defer: Defers a user's subscription purchase until a specified future
11111// expiration time.
11112//
11113// - packageName: The package name of the application for which this
11114//   subscription was purchased (for example, 'com.some.thing').
11115// - subscriptionId: The purchased subscription ID (for example,
11116//   'monthly001').
11117// - token: The token provided to the user's device when the
11118//   subscription was purchased.
11119func (r *PurchasesSubscriptionsService) Defer(packageName string, subscriptionId string, token string, subscriptionpurchasesdeferrequest *SubscriptionPurchasesDeferRequest) *PurchasesSubscriptionsDeferCall {
11120	c := &PurchasesSubscriptionsDeferCall{s: r.s, urlParams_: make(gensupport.URLParams)}
11121	c.packageName = packageName
11122	c.subscriptionId = subscriptionId
11123	c.token = token
11124	c.subscriptionpurchasesdeferrequest = subscriptionpurchasesdeferrequest
11125	return c
11126}
11127
11128// Fields allows partial responses to be retrieved. See
11129// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
11130// for more information.
11131func (c *PurchasesSubscriptionsDeferCall) Fields(s ...googleapi.Field) *PurchasesSubscriptionsDeferCall {
11132	c.urlParams_.Set("fields", googleapi.CombineFields(s))
11133	return c
11134}
11135
11136// Context sets the context to be used in this call's Do method. Any
11137// pending HTTP request will be aborted if the provided context is
11138// canceled.
11139func (c *PurchasesSubscriptionsDeferCall) Context(ctx context.Context) *PurchasesSubscriptionsDeferCall {
11140	c.ctx_ = ctx
11141	return c
11142}
11143
11144// Header returns an http.Header that can be modified by the caller to
11145// add HTTP headers to the request.
11146func (c *PurchasesSubscriptionsDeferCall) Header() http.Header {
11147	if c.header_ == nil {
11148		c.header_ = make(http.Header)
11149	}
11150	return c.header_
11151}
11152
11153func (c *PurchasesSubscriptionsDeferCall) doRequest(alt string) (*http.Response, error) {
11154	reqHeaders := make(http.Header)
11155	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
11156	for k, v := range c.header_ {
11157		reqHeaders[k] = v
11158	}
11159	reqHeaders.Set("User-Agent", c.s.userAgent())
11160	var body io.Reader = nil
11161	body, err := googleapi.WithoutDataWrapper.JSONReader(c.subscriptionpurchasesdeferrequest)
11162	if err != nil {
11163		return nil, err
11164	}
11165	reqHeaders.Set("Content-Type", "application/json")
11166	c.urlParams_.Set("alt", alt)
11167	c.urlParams_.Set("prettyPrint", "false")
11168	urls := googleapi.ResolveRelative(c.s.BasePath, "androidpublisher/v3/applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}:defer")
11169	urls += "?" + c.urlParams_.Encode()
11170	req, err := http.NewRequest("POST", urls, body)
11171	if err != nil {
11172		return nil, err
11173	}
11174	req.Header = reqHeaders
11175	googleapi.Expand(req.URL, map[string]string{
11176		"packageName":    c.packageName,
11177		"subscriptionId": c.subscriptionId,
11178		"token":          c.token,
11179	})
11180	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11181}
11182
11183// Do executes the "androidpublisher.purchases.subscriptions.defer" call.
11184// Exactly one of *SubscriptionPurchasesDeferResponse or error will be
11185// non-nil. Any non-2xx status code is an error. Response headers are in
11186// either *SubscriptionPurchasesDeferResponse.ServerResponse.Header or
11187// (if a response was returned at all) in
11188// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
11189// whether the returned error was because http.StatusNotModified was
11190// returned.
11191func (c *PurchasesSubscriptionsDeferCall) Do(opts ...googleapi.CallOption) (*SubscriptionPurchasesDeferResponse, error) {
11192	gensupport.SetOptions(c.urlParams_, opts...)
11193	res, err := c.doRequest("json")
11194	if res != nil && res.StatusCode == http.StatusNotModified {
11195		if res.Body != nil {
11196			res.Body.Close()
11197		}
11198		return nil, &googleapi.Error{
11199			Code:   res.StatusCode,
11200			Header: res.Header,
11201		}
11202	}
11203	if err != nil {
11204		return nil, err
11205	}
11206	defer googleapi.CloseBody(res)
11207	if err := googleapi.CheckResponse(res); err != nil {
11208		return nil, err
11209	}
11210	ret := &SubscriptionPurchasesDeferResponse{
11211		ServerResponse: googleapi.ServerResponse{
11212			Header:         res.Header,
11213			HTTPStatusCode: res.StatusCode,
11214		},
11215	}
11216	target := &ret
11217	if err := gensupport.DecodeResponse(target, res); err != nil {
11218		return nil, err
11219	}
11220	return ret, nil
11221	// {
11222	//   "description": "Defers a user's subscription purchase until a specified future expiration time.",
11223	//   "flatPath": "androidpublisher/v3/applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}:defer",
11224	//   "httpMethod": "POST",
11225	//   "id": "androidpublisher.purchases.subscriptions.defer",
11226	//   "parameterOrder": [
11227	//     "packageName",
11228	//     "subscriptionId",
11229	//     "token"
11230	//   ],
11231	//   "parameters": {
11232	//     "packageName": {
11233	//       "description": "The package name of the application for which this subscription was purchased (for example, 'com.some.thing').",
11234	//       "location": "path",
11235	//       "required": true,
11236	//       "type": "string"
11237	//     },
11238	//     "subscriptionId": {
11239	//       "description": "The purchased subscription ID (for example, 'monthly001').",
11240	//       "location": "path",
11241	//       "required": true,
11242	//       "type": "string"
11243	//     },
11244	//     "token": {
11245	//       "description": "The token provided to the user's device when the subscription was purchased.",
11246	//       "location": "path",
11247	//       "required": true,
11248	//       "type": "string"
11249	//     }
11250	//   },
11251	//   "path": "androidpublisher/v3/applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}:defer",
11252	//   "request": {
11253	//     "$ref": "SubscriptionPurchasesDeferRequest"
11254	//   },
11255	//   "response": {
11256	//     "$ref": "SubscriptionPurchasesDeferResponse"
11257	//   },
11258	//   "scopes": [
11259	//     "https://www.googleapis.com/auth/androidpublisher"
11260	//   ]
11261	// }
11262
11263}
11264
11265// method id "androidpublisher.purchases.subscriptions.get":
11266
11267type PurchasesSubscriptionsGetCall struct {
11268	s              *Service
11269	packageName    string
11270	subscriptionId string
11271	token          string
11272	urlParams_     gensupport.URLParams
11273	ifNoneMatch_   string
11274	ctx_           context.Context
11275	header_        http.Header
11276}
11277
11278// Get: Checks whether a user's subscription purchase is valid and
11279// returns its expiry time.
11280//
11281// - packageName: The package name of the application for which this
11282//   subscription was purchased (for example, 'com.some.thing').
11283// - subscriptionId: The purchased subscription ID (for example,
11284//   'monthly001').
11285// - token: The token provided to the user's device when the
11286//   subscription was purchased.
11287func (r *PurchasesSubscriptionsService) Get(packageName string, subscriptionId string, token string) *PurchasesSubscriptionsGetCall {
11288	c := &PurchasesSubscriptionsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
11289	c.packageName = packageName
11290	c.subscriptionId = subscriptionId
11291	c.token = token
11292	return c
11293}
11294
11295// Fields allows partial responses to be retrieved. See
11296// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
11297// for more information.
11298func (c *PurchasesSubscriptionsGetCall) Fields(s ...googleapi.Field) *PurchasesSubscriptionsGetCall {
11299	c.urlParams_.Set("fields", googleapi.CombineFields(s))
11300	return c
11301}
11302
11303// IfNoneMatch sets the optional parameter which makes the operation
11304// fail if the object's ETag matches the given value. This is useful for
11305// getting updates only after the object has changed since the last
11306// request. Use googleapi.IsNotModified to check whether the response
11307// error from Do is the result of In-None-Match.
11308func (c *PurchasesSubscriptionsGetCall) IfNoneMatch(entityTag string) *PurchasesSubscriptionsGetCall {
11309	c.ifNoneMatch_ = entityTag
11310	return c
11311}
11312
11313// Context sets the context to be used in this call's Do method. Any
11314// pending HTTP request will be aborted if the provided context is
11315// canceled.
11316func (c *PurchasesSubscriptionsGetCall) Context(ctx context.Context) *PurchasesSubscriptionsGetCall {
11317	c.ctx_ = ctx
11318	return c
11319}
11320
11321// Header returns an http.Header that can be modified by the caller to
11322// add HTTP headers to the request.
11323func (c *PurchasesSubscriptionsGetCall) Header() http.Header {
11324	if c.header_ == nil {
11325		c.header_ = make(http.Header)
11326	}
11327	return c.header_
11328}
11329
11330func (c *PurchasesSubscriptionsGetCall) doRequest(alt string) (*http.Response, error) {
11331	reqHeaders := make(http.Header)
11332	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
11333	for k, v := range c.header_ {
11334		reqHeaders[k] = v
11335	}
11336	reqHeaders.Set("User-Agent", c.s.userAgent())
11337	if c.ifNoneMatch_ != "" {
11338		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
11339	}
11340	var body io.Reader = nil
11341	c.urlParams_.Set("alt", alt)
11342	c.urlParams_.Set("prettyPrint", "false")
11343	urls := googleapi.ResolveRelative(c.s.BasePath, "androidpublisher/v3/applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}")
11344	urls += "?" + c.urlParams_.Encode()
11345	req, err := http.NewRequest("GET", urls, body)
11346	if err != nil {
11347		return nil, err
11348	}
11349	req.Header = reqHeaders
11350	googleapi.Expand(req.URL, map[string]string{
11351		"packageName":    c.packageName,
11352		"subscriptionId": c.subscriptionId,
11353		"token":          c.token,
11354	})
11355	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11356}
11357
11358// Do executes the "androidpublisher.purchases.subscriptions.get" call.
11359// Exactly one of *SubscriptionPurchase or error will be non-nil. Any
11360// non-2xx status code is an error. Response headers are in either
11361// *SubscriptionPurchase.ServerResponse.Header or (if a response was
11362// returned at all) in error.(*googleapi.Error).Header. Use
11363// googleapi.IsNotModified to check whether the returned error was
11364// because http.StatusNotModified was returned.
11365func (c *PurchasesSubscriptionsGetCall) Do(opts ...googleapi.CallOption) (*SubscriptionPurchase, error) {
11366	gensupport.SetOptions(c.urlParams_, opts...)
11367	res, err := c.doRequest("json")
11368	if res != nil && res.StatusCode == http.StatusNotModified {
11369		if res.Body != nil {
11370			res.Body.Close()
11371		}
11372		return nil, &googleapi.Error{
11373			Code:   res.StatusCode,
11374			Header: res.Header,
11375		}
11376	}
11377	if err != nil {
11378		return nil, err
11379	}
11380	defer googleapi.CloseBody(res)
11381	if err := googleapi.CheckResponse(res); err != nil {
11382		return nil, err
11383	}
11384	ret := &SubscriptionPurchase{
11385		ServerResponse: googleapi.ServerResponse{
11386			Header:         res.Header,
11387			HTTPStatusCode: res.StatusCode,
11388		},
11389	}
11390	target := &ret
11391	if err := gensupport.DecodeResponse(target, res); err != nil {
11392		return nil, err
11393	}
11394	return ret, nil
11395	// {
11396	//   "description": "Checks whether a user's subscription purchase is valid and returns its expiry time.",
11397	//   "flatPath": "androidpublisher/v3/applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}",
11398	//   "httpMethod": "GET",
11399	//   "id": "androidpublisher.purchases.subscriptions.get",
11400	//   "parameterOrder": [
11401	//     "packageName",
11402	//     "subscriptionId",
11403	//     "token"
11404	//   ],
11405	//   "parameters": {
11406	//     "packageName": {
11407	//       "description": "The package name of the application for which this subscription was purchased (for example, 'com.some.thing').",
11408	//       "location": "path",
11409	//       "required": true,
11410	//       "type": "string"
11411	//     },
11412	//     "subscriptionId": {
11413	//       "description": "The purchased subscription ID (for example, 'monthly001').",
11414	//       "location": "path",
11415	//       "required": true,
11416	//       "type": "string"
11417	//     },
11418	//     "token": {
11419	//       "description": "The token provided to the user's device when the subscription was purchased.",
11420	//       "location": "path",
11421	//       "required": true,
11422	//       "type": "string"
11423	//     }
11424	//   },
11425	//   "path": "androidpublisher/v3/applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}",
11426	//   "response": {
11427	//     "$ref": "SubscriptionPurchase"
11428	//   },
11429	//   "scopes": [
11430	//     "https://www.googleapis.com/auth/androidpublisher"
11431	//   ]
11432	// }
11433
11434}
11435
11436// method id "androidpublisher.purchases.subscriptions.refund":
11437
11438type PurchasesSubscriptionsRefundCall struct {
11439	s              *Service
11440	packageName    string
11441	subscriptionId string
11442	token          string
11443	urlParams_     gensupport.URLParams
11444	ctx_           context.Context
11445	header_        http.Header
11446}
11447
11448// Refund: Refunds a user's subscription purchase, but the subscription
11449// remains valid until its expiration time and it will continue to
11450// recur.
11451//
11452// - packageName: The package name of the application for which this
11453//   subscription was purchased (for example, 'com.some.thing').
11454// - subscriptionId: "The purchased subscription ID (for example,
11455//   'monthly001').
11456// - token: The token provided to the user's device when the
11457//   subscription was purchased.
11458func (r *PurchasesSubscriptionsService) Refund(packageName string, subscriptionId string, token string) *PurchasesSubscriptionsRefundCall {
11459	c := &PurchasesSubscriptionsRefundCall{s: r.s, urlParams_: make(gensupport.URLParams)}
11460	c.packageName = packageName
11461	c.subscriptionId = subscriptionId
11462	c.token = token
11463	return c
11464}
11465
11466// Fields allows partial responses to be retrieved. See
11467// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
11468// for more information.
11469func (c *PurchasesSubscriptionsRefundCall) Fields(s ...googleapi.Field) *PurchasesSubscriptionsRefundCall {
11470	c.urlParams_.Set("fields", googleapi.CombineFields(s))
11471	return c
11472}
11473
11474// Context sets the context to be used in this call's Do method. Any
11475// pending HTTP request will be aborted if the provided context is
11476// canceled.
11477func (c *PurchasesSubscriptionsRefundCall) Context(ctx context.Context) *PurchasesSubscriptionsRefundCall {
11478	c.ctx_ = ctx
11479	return c
11480}
11481
11482// Header returns an http.Header that can be modified by the caller to
11483// add HTTP headers to the request.
11484func (c *PurchasesSubscriptionsRefundCall) Header() http.Header {
11485	if c.header_ == nil {
11486		c.header_ = make(http.Header)
11487	}
11488	return c.header_
11489}
11490
11491func (c *PurchasesSubscriptionsRefundCall) doRequest(alt string) (*http.Response, error) {
11492	reqHeaders := make(http.Header)
11493	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
11494	for k, v := range c.header_ {
11495		reqHeaders[k] = v
11496	}
11497	reqHeaders.Set("User-Agent", c.s.userAgent())
11498	var body io.Reader = nil
11499	c.urlParams_.Set("alt", alt)
11500	c.urlParams_.Set("prettyPrint", "false")
11501	urls := googleapi.ResolveRelative(c.s.BasePath, "androidpublisher/v3/applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}:refund")
11502	urls += "?" + c.urlParams_.Encode()
11503	req, err := http.NewRequest("POST", urls, body)
11504	if err != nil {
11505		return nil, err
11506	}
11507	req.Header = reqHeaders
11508	googleapi.Expand(req.URL, map[string]string{
11509		"packageName":    c.packageName,
11510		"subscriptionId": c.subscriptionId,
11511		"token":          c.token,
11512	})
11513	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11514}
11515
11516// Do executes the "androidpublisher.purchases.subscriptions.refund" call.
11517func (c *PurchasesSubscriptionsRefundCall) Do(opts ...googleapi.CallOption) error {
11518	gensupport.SetOptions(c.urlParams_, opts...)
11519	res, err := c.doRequest("json")
11520	if err != nil {
11521		return err
11522	}
11523	defer googleapi.CloseBody(res)
11524	if err := googleapi.CheckResponse(res); err != nil {
11525		return err
11526	}
11527	return nil
11528	// {
11529	//   "description": "Refunds a user's subscription purchase, but the subscription remains valid until its expiration time and it will continue to recur.",
11530	//   "flatPath": "androidpublisher/v3/applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}:refund",
11531	//   "httpMethod": "POST",
11532	//   "id": "androidpublisher.purchases.subscriptions.refund",
11533	//   "parameterOrder": [
11534	//     "packageName",
11535	//     "subscriptionId",
11536	//     "token"
11537	//   ],
11538	//   "parameters": {
11539	//     "packageName": {
11540	//       "description": "The package name of the application for which this subscription was purchased (for example, 'com.some.thing').",
11541	//       "location": "path",
11542	//       "required": true,
11543	//       "type": "string"
11544	//     },
11545	//     "subscriptionId": {
11546	//       "description": "\"The purchased subscription ID (for example, 'monthly001').",
11547	//       "location": "path",
11548	//       "required": true,
11549	//       "type": "string"
11550	//     },
11551	//     "token": {
11552	//       "description": "The token provided to the user's device when the subscription was purchased.",
11553	//       "location": "path",
11554	//       "required": true,
11555	//       "type": "string"
11556	//     }
11557	//   },
11558	//   "path": "androidpublisher/v3/applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}:refund",
11559	//   "scopes": [
11560	//     "https://www.googleapis.com/auth/androidpublisher"
11561	//   ]
11562	// }
11563
11564}
11565
11566// method id "androidpublisher.purchases.subscriptions.revoke":
11567
11568type PurchasesSubscriptionsRevokeCall struct {
11569	s              *Service
11570	packageName    string
11571	subscriptionId string
11572	token          string
11573	urlParams_     gensupport.URLParams
11574	ctx_           context.Context
11575	header_        http.Header
11576}
11577
11578// Revoke: Refunds and immediately revokes a user's subscription
11579// purchase. Access to the subscription will be terminated immediately
11580// and it will stop recurring.
11581//
11582// - packageName: The package name of the application for which this
11583//   subscription was purchased (for example, 'com.some.thing').
11584// - subscriptionId: The purchased subscription ID (for example,
11585//   'monthly001').
11586// - token: The token provided to the user's device when the
11587//   subscription was purchased.
11588func (r *PurchasesSubscriptionsService) Revoke(packageName string, subscriptionId string, token string) *PurchasesSubscriptionsRevokeCall {
11589	c := &PurchasesSubscriptionsRevokeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
11590	c.packageName = packageName
11591	c.subscriptionId = subscriptionId
11592	c.token = token
11593	return c
11594}
11595
11596// Fields allows partial responses to be retrieved. See
11597// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
11598// for more information.
11599func (c *PurchasesSubscriptionsRevokeCall) Fields(s ...googleapi.Field) *PurchasesSubscriptionsRevokeCall {
11600	c.urlParams_.Set("fields", googleapi.CombineFields(s))
11601	return c
11602}
11603
11604// Context sets the context to be used in this call's Do method. Any
11605// pending HTTP request will be aborted if the provided context is
11606// canceled.
11607func (c *PurchasesSubscriptionsRevokeCall) Context(ctx context.Context) *PurchasesSubscriptionsRevokeCall {
11608	c.ctx_ = ctx
11609	return c
11610}
11611
11612// Header returns an http.Header that can be modified by the caller to
11613// add HTTP headers to the request.
11614func (c *PurchasesSubscriptionsRevokeCall) Header() http.Header {
11615	if c.header_ == nil {
11616		c.header_ = make(http.Header)
11617	}
11618	return c.header_
11619}
11620
11621func (c *PurchasesSubscriptionsRevokeCall) doRequest(alt string) (*http.Response, error) {
11622	reqHeaders := make(http.Header)
11623	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
11624	for k, v := range c.header_ {
11625		reqHeaders[k] = v
11626	}
11627	reqHeaders.Set("User-Agent", c.s.userAgent())
11628	var body io.Reader = nil
11629	c.urlParams_.Set("alt", alt)
11630	c.urlParams_.Set("prettyPrint", "false")
11631	urls := googleapi.ResolveRelative(c.s.BasePath, "androidpublisher/v3/applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}:revoke")
11632	urls += "?" + c.urlParams_.Encode()
11633	req, err := http.NewRequest("POST", urls, body)
11634	if err != nil {
11635		return nil, err
11636	}
11637	req.Header = reqHeaders
11638	googleapi.Expand(req.URL, map[string]string{
11639		"packageName":    c.packageName,
11640		"subscriptionId": c.subscriptionId,
11641		"token":          c.token,
11642	})
11643	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11644}
11645
11646// Do executes the "androidpublisher.purchases.subscriptions.revoke" call.
11647func (c *PurchasesSubscriptionsRevokeCall) Do(opts ...googleapi.CallOption) error {
11648	gensupport.SetOptions(c.urlParams_, opts...)
11649	res, err := c.doRequest("json")
11650	if err != nil {
11651		return err
11652	}
11653	defer googleapi.CloseBody(res)
11654	if err := googleapi.CheckResponse(res); err != nil {
11655		return err
11656	}
11657	return nil
11658	// {
11659	//   "description": "Refunds and immediately revokes a user's subscription purchase. Access to the subscription will be terminated immediately and it will stop recurring.",
11660	//   "flatPath": "androidpublisher/v3/applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}:revoke",
11661	//   "httpMethod": "POST",
11662	//   "id": "androidpublisher.purchases.subscriptions.revoke",
11663	//   "parameterOrder": [
11664	//     "packageName",
11665	//     "subscriptionId",
11666	//     "token"
11667	//   ],
11668	//   "parameters": {
11669	//     "packageName": {
11670	//       "description": "The package name of the application for which this subscription was purchased (for example, 'com.some.thing').",
11671	//       "location": "path",
11672	//       "required": true,
11673	//       "type": "string"
11674	//     },
11675	//     "subscriptionId": {
11676	//       "description": "The purchased subscription ID (for example, 'monthly001').",
11677	//       "location": "path",
11678	//       "required": true,
11679	//       "type": "string"
11680	//     },
11681	//     "token": {
11682	//       "description": "The token provided to the user's device when the subscription was purchased.",
11683	//       "location": "path",
11684	//       "required": true,
11685	//       "type": "string"
11686	//     }
11687	//   },
11688	//   "path": "androidpublisher/v3/applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}:revoke",
11689	//   "scopes": [
11690	//     "https://www.googleapis.com/auth/androidpublisher"
11691	//   ]
11692	// }
11693
11694}
11695
11696// method id "androidpublisher.purchases.voidedpurchases.list":
11697
11698type PurchasesVoidedpurchasesListCall struct {
11699	s            *Service
11700	packageName  string
11701	urlParams_   gensupport.URLParams
11702	ifNoneMatch_ string
11703	ctx_         context.Context
11704	header_      http.Header
11705}
11706
11707// List: Lists the purchases that were canceled, refunded or
11708// charged-back.
11709//
11710// - packageName: The package name of the application for which voided
11711//   purchases need to be returned (for example, 'com.some.thing').
11712func (r *PurchasesVoidedpurchasesService) List(packageName string) *PurchasesVoidedpurchasesListCall {
11713	c := &PurchasesVoidedpurchasesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
11714	c.packageName = packageName
11715	return c
11716}
11717
11718// EndTime sets the optional parameter "endTime": The time, in
11719// milliseconds since the Epoch, of the newest voided purchase that you
11720// want to see in the response. The value of this parameter cannot be
11721// greater than the current time and is ignored if a pagination token is
11722// set. Default value is current time. Note: This filter is applied on
11723// the time at which the record is seen as voided by our systems and not
11724// the actual voided time returned in the response.
11725func (c *PurchasesVoidedpurchasesListCall) EndTime(endTime int64) *PurchasesVoidedpurchasesListCall {
11726	c.urlParams_.Set("endTime", fmt.Sprint(endTime))
11727	return c
11728}
11729
11730// MaxResults sets the optional parameter "maxResults": Defines how many
11731// results the list operation should return. The default number depends
11732// on the resource collection.
11733func (c *PurchasesVoidedpurchasesListCall) MaxResults(maxResults int64) *PurchasesVoidedpurchasesListCall {
11734	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
11735	return c
11736}
11737
11738// StartIndex sets the optional parameter "startIndex": Defines the
11739// index of the first element to return. This can only be used if
11740// indexed paging is enabled.
11741func (c *PurchasesVoidedpurchasesListCall) StartIndex(startIndex int64) *PurchasesVoidedpurchasesListCall {
11742	c.urlParams_.Set("startIndex", fmt.Sprint(startIndex))
11743	return c
11744}
11745
11746// StartTime sets the optional parameter "startTime": The time, in
11747// milliseconds since the Epoch, of the oldest voided purchase that you
11748// want to see in the response. The value of this parameter cannot be
11749// older than 30 days and is ignored if a pagination token is set.
11750// Default value is current time minus 30 days. Note: This filter is
11751// applied on the time at which the record is seen as voided by our
11752// systems and not the actual voided time returned in the response.
11753func (c *PurchasesVoidedpurchasesListCall) StartTime(startTime int64) *PurchasesVoidedpurchasesListCall {
11754	c.urlParams_.Set("startTime", fmt.Sprint(startTime))
11755	return c
11756}
11757
11758// Token sets the optional parameter "token": Defines the token of the
11759// page to return, usually taken from TokenPagination. This can only be
11760// used if token paging is enabled.
11761func (c *PurchasesVoidedpurchasesListCall) Token(token string) *PurchasesVoidedpurchasesListCall {
11762	c.urlParams_.Set("token", token)
11763	return c
11764}
11765
11766// Type sets the optional parameter "type": The type of voided purchases
11767// that you want to see in the response. Possible values are: 0. Only
11768// voided in-app product purchases will be returned in the response.
11769// This is the default value. 1. Both voided in-app purchases and voided
11770// subscription purchases will be returned in the response. Note: Before
11771// requesting to receive voided subscription purchases, you must switch
11772// to use orderId in the response which uniquely identifies one-time
11773// purchases and subscriptions. Otherwise, you will receive multiple
11774// subscription orders with the same PurchaseToken, because subscription
11775// renewal orders share the same PurchaseToken.
11776func (c *PurchasesVoidedpurchasesListCall) Type(type_ int64) *PurchasesVoidedpurchasesListCall {
11777	c.urlParams_.Set("type", fmt.Sprint(type_))
11778	return c
11779}
11780
11781// Fields allows partial responses to be retrieved. See
11782// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
11783// for more information.
11784func (c *PurchasesVoidedpurchasesListCall) Fields(s ...googleapi.Field) *PurchasesVoidedpurchasesListCall {
11785	c.urlParams_.Set("fields", googleapi.CombineFields(s))
11786	return c
11787}
11788
11789// IfNoneMatch sets the optional parameter which makes the operation
11790// fail if the object's ETag matches the given value. This is useful for
11791// getting updates only after the object has changed since the last
11792// request. Use googleapi.IsNotModified to check whether the response
11793// error from Do is the result of In-None-Match.
11794func (c *PurchasesVoidedpurchasesListCall) IfNoneMatch(entityTag string) *PurchasesVoidedpurchasesListCall {
11795	c.ifNoneMatch_ = entityTag
11796	return c
11797}
11798
11799// Context sets the context to be used in this call's Do method. Any
11800// pending HTTP request will be aborted if the provided context is
11801// canceled.
11802func (c *PurchasesVoidedpurchasesListCall) Context(ctx context.Context) *PurchasesVoidedpurchasesListCall {
11803	c.ctx_ = ctx
11804	return c
11805}
11806
11807// Header returns an http.Header that can be modified by the caller to
11808// add HTTP headers to the request.
11809func (c *PurchasesVoidedpurchasesListCall) Header() http.Header {
11810	if c.header_ == nil {
11811		c.header_ = make(http.Header)
11812	}
11813	return c.header_
11814}
11815
11816func (c *PurchasesVoidedpurchasesListCall) doRequest(alt string) (*http.Response, error) {
11817	reqHeaders := make(http.Header)
11818	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
11819	for k, v := range c.header_ {
11820		reqHeaders[k] = v
11821	}
11822	reqHeaders.Set("User-Agent", c.s.userAgent())
11823	if c.ifNoneMatch_ != "" {
11824		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
11825	}
11826	var body io.Reader = nil
11827	c.urlParams_.Set("alt", alt)
11828	c.urlParams_.Set("prettyPrint", "false")
11829	urls := googleapi.ResolveRelative(c.s.BasePath, "androidpublisher/v3/applications/{packageName}/purchases/voidedpurchases")
11830	urls += "?" + c.urlParams_.Encode()
11831	req, err := http.NewRequest("GET", urls, body)
11832	if err != nil {
11833		return nil, err
11834	}
11835	req.Header = reqHeaders
11836	googleapi.Expand(req.URL, map[string]string{
11837		"packageName": c.packageName,
11838	})
11839	return gensupport.SendRequest(c.ctx_, c.s.client, req)
11840}
11841
11842// Do executes the "androidpublisher.purchases.voidedpurchases.list" call.
11843// Exactly one of *VoidedPurchasesListResponse or error will be non-nil.
11844// Any non-2xx status code is an error. Response headers are in either
11845// *VoidedPurchasesListResponse.ServerResponse.Header or (if a response
11846// was returned at all) in error.(*googleapi.Error).Header. Use
11847// googleapi.IsNotModified to check whether the returned error was
11848// because http.StatusNotModified was returned.
11849func (c *PurchasesVoidedpurchasesListCall) Do(opts ...googleapi.CallOption) (*VoidedPurchasesListResponse, error) {
11850	gensupport.SetOptions(c.urlParams_, opts...)
11851	res, err := c.doRequest("json")
11852	if res != nil && res.StatusCode == http.StatusNotModified {
11853		if res.Body != nil {
11854			res.Body.Close()
11855		}
11856		return nil, &googleapi.Error{
11857			Code:   res.StatusCode,
11858			Header: res.Header,
11859		}
11860	}
11861	if err != nil {
11862		return nil, err
11863	}
11864	defer googleapi.CloseBody(res)
11865	if err := googleapi.CheckResponse(res); err != nil {
11866		return nil, err
11867	}
11868	ret := &VoidedPurchasesListResponse{
11869		ServerResponse: googleapi.ServerResponse{
11870			Header:         res.Header,
11871			HTTPStatusCode: res.StatusCode,
11872		},
11873	}
11874	target := &ret
11875	if err := gensupport.DecodeResponse(target, res); err != nil {
11876		return nil, err
11877	}
11878	return ret, nil
11879	// {
11880	//   "description": "Lists the purchases that were canceled, refunded or charged-back.",
11881	//   "flatPath": "androidpublisher/v3/applications/{packageName}/purchases/voidedpurchases",
11882	//   "httpMethod": "GET",
11883	//   "id": "androidpublisher.purchases.voidedpurchases.list",
11884	//   "parameterOrder": [
11885	//     "packageName"
11886	//   ],
11887	//   "parameters": {
11888	//     "endTime": {
11889	//       "description": "The time, in milliseconds since the Epoch, of the newest voided purchase that you want to see in the response. The value of this parameter cannot be greater than the current time and is ignored if a pagination token is set. Default value is current time. Note: This filter is applied on the time at which the record is seen as voided by our systems and not the actual voided time returned in the response.",
11890	//       "format": "int64",
11891	//       "location": "query",
11892	//       "type": "string"
11893	//     },
11894	//     "maxResults": {
11895	//       "description": "Defines how many results the list operation should return. The default number depends on the resource collection.",
11896	//       "format": "uint32",
11897	//       "location": "query",
11898	//       "type": "integer"
11899	//     },
11900	//     "packageName": {
11901	//       "description": "The package name of the application for which voided purchases need to be returned (for example, 'com.some.thing').",
11902	//       "location": "path",
11903	//       "required": true,
11904	//       "type": "string"
11905	//     },
11906	//     "startIndex": {
11907	//       "description": "Defines the index of the first element to return. This can only be used if indexed paging is enabled.",
11908	//       "format": "uint32",
11909	//       "location": "query",
11910	//       "type": "integer"
11911	//     },
11912	//     "startTime": {
11913	//       "description": "The time, in milliseconds since the Epoch, of the oldest voided purchase that you want to see in the response. The value of this parameter cannot be older than 30 days and is ignored if a pagination token is set. Default value is current time minus 30 days. Note: This filter is applied on the time at which the record is seen as voided by our systems and not the actual voided time returned in the response.",
11914	//       "format": "int64",
11915	//       "location": "query",
11916	//       "type": "string"
11917	//     },
11918	//     "token": {
11919	//       "description": "Defines the token of the page to return, usually taken from TokenPagination. This can only be used if token paging is enabled.",
11920	//       "location": "query",
11921	//       "type": "string"
11922	//     },
11923	//     "type": {
11924	//       "description": "The type of voided purchases that you want to see in the response. Possible values are: 0. Only voided in-app product purchases will be returned in the response. This is the default value. 1. Both voided in-app purchases and voided subscription purchases will be returned in the response. Note: Before requesting to receive voided subscription purchases, you must switch to use orderId in the response which uniquely identifies one-time purchases and subscriptions. Otherwise, you will receive multiple subscription orders with the same PurchaseToken, because subscription renewal orders share the same PurchaseToken.",
11925	//       "format": "int32",
11926	//       "location": "query",
11927	//       "type": "integer"
11928	//     }
11929	//   },
11930	//   "path": "androidpublisher/v3/applications/{packageName}/purchases/voidedpurchases",
11931	//   "response": {
11932	//     "$ref": "VoidedPurchasesListResponse"
11933	//   },
11934	//   "scopes": [
11935	//     "https://www.googleapis.com/auth/androidpublisher"
11936	//   ]
11937	// }
11938
11939}
11940
11941// method id "androidpublisher.reviews.get":
11942
11943type ReviewsGetCall struct {
11944	s            *Service
11945	packageName  string
11946	reviewId     string
11947	urlParams_   gensupport.URLParams
11948	ifNoneMatch_ string
11949	ctx_         context.Context
11950	header_      http.Header
11951}
11952
11953// Get: Gets a single review.
11954//
11955// - packageName: Package name of the app.
11956// - reviewId: Unique identifier for a review.
11957func (r *ReviewsService) Get(packageName string, reviewId string) *ReviewsGetCall {
11958	c := &ReviewsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
11959	c.packageName = packageName
11960	c.reviewId = reviewId
11961	return c
11962}
11963
11964// TranslationLanguage sets the optional parameter
11965// "translationLanguage": Language localization code.
11966func (c *ReviewsGetCall) TranslationLanguage(translationLanguage string) *ReviewsGetCall {
11967	c.urlParams_.Set("translationLanguage", translationLanguage)
11968	return c
11969}
11970
11971// Fields allows partial responses to be retrieved. See
11972// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
11973// for more information.
11974func (c *ReviewsGetCall) Fields(s ...googleapi.Field) *ReviewsGetCall {
11975	c.urlParams_.Set("fields", googleapi.CombineFields(s))
11976	return c
11977}
11978
11979// IfNoneMatch sets the optional parameter which makes the operation
11980// fail if the object's ETag matches the given value. This is useful for
11981// getting updates only after the object has changed since the last
11982// request. Use googleapi.IsNotModified to check whether the response
11983// error from Do is the result of In-None-Match.
11984func (c *ReviewsGetCall) IfNoneMatch(entityTag string) *ReviewsGetCall {
11985	c.ifNoneMatch_ = entityTag
11986	return c
11987}
11988
11989// Context sets the context to be used in this call's Do method. Any
11990// pending HTTP request will be aborted if the provided context is
11991// canceled.
11992func (c *ReviewsGetCall) Context(ctx context.Context) *ReviewsGetCall {
11993	c.ctx_ = ctx
11994	return c
11995}
11996
11997// Header returns an http.Header that can be modified by the caller to
11998// add HTTP headers to the request.
11999func (c *ReviewsGetCall) Header() http.Header {
12000	if c.header_ == nil {
12001		c.header_ = make(http.Header)
12002	}
12003	return c.header_
12004}
12005
12006func (c *ReviewsGetCall) doRequest(alt string) (*http.Response, error) {
12007	reqHeaders := make(http.Header)
12008	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
12009	for k, v := range c.header_ {
12010		reqHeaders[k] = v
12011	}
12012	reqHeaders.Set("User-Agent", c.s.userAgent())
12013	if c.ifNoneMatch_ != "" {
12014		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
12015	}
12016	var body io.Reader = nil
12017	c.urlParams_.Set("alt", alt)
12018	c.urlParams_.Set("prettyPrint", "false")
12019	urls := googleapi.ResolveRelative(c.s.BasePath, "androidpublisher/v3/applications/{packageName}/reviews/{reviewId}")
12020	urls += "?" + c.urlParams_.Encode()
12021	req, err := http.NewRequest("GET", urls, body)
12022	if err != nil {
12023		return nil, err
12024	}
12025	req.Header = reqHeaders
12026	googleapi.Expand(req.URL, map[string]string{
12027		"packageName": c.packageName,
12028		"reviewId":    c.reviewId,
12029	})
12030	return gensupport.SendRequest(c.ctx_, c.s.client, req)
12031}
12032
12033// Do executes the "androidpublisher.reviews.get" call.
12034// Exactly one of *Review or error will be non-nil. Any non-2xx status
12035// code is an error. Response headers are in either
12036// *Review.ServerResponse.Header or (if a response was returned at all)
12037// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
12038// check whether the returned error was because http.StatusNotModified
12039// was returned.
12040func (c *ReviewsGetCall) Do(opts ...googleapi.CallOption) (*Review, error) {
12041	gensupport.SetOptions(c.urlParams_, opts...)
12042	res, err := c.doRequest("json")
12043	if res != nil && res.StatusCode == http.StatusNotModified {
12044		if res.Body != nil {
12045			res.Body.Close()
12046		}
12047		return nil, &googleapi.Error{
12048			Code:   res.StatusCode,
12049			Header: res.Header,
12050		}
12051	}
12052	if err != nil {
12053		return nil, err
12054	}
12055	defer googleapi.CloseBody(res)
12056	if err := googleapi.CheckResponse(res); err != nil {
12057		return nil, err
12058	}
12059	ret := &Review{
12060		ServerResponse: googleapi.ServerResponse{
12061			Header:         res.Header,
12062			HTTPStatusCode: res.StatusCode,
12063		},
12064	}
12065	target := &ret
12066	if err := gensupport.DecodeResponse(target, res); err != nil {
12067		return nil, err
12068	}
12069	return ret, nil
12070	// {
12071	//   "description": "Gets a single review.",
12072	//   "flatPath": "androidpublisher/v3/applications/{packageName}/reviews/{reviewId}",
12073	//   "httpMethod": "GET",
12074	//   "id": "androidpublisher.reviews.get",
12075	//   "parameterOrder": [
12076	//     "packageName",
12077	//     "reviewId"
12078	//   ],
12079	//   "parameters": {
12080	//     "packageName": {
12081	//       "description": "Package name of the app.",
12082	//       "location": "path",
12083	//       "required": true,
12084	//       "type": "string"
12085	//     },
12086	//     "reviewId": {
12087	//       "description": "Unique identifier for a review.",
12088	//       "location": "path",
12089	//       "required": true,
12090	//       "type": "string"
12091	//     },
12092	//     "translationLanguage": {
12093	//       "description": "Language localization code.",
12094	//       "location": "query",
12095	//       "type": "string"
12096	//     }
12097	//   },
12098	//   "path": "androidpublisher/v3/applications/{packageName}/reviews/{reviewId}",
12099	//   "response": {
12100	//     "$ref": "Review"
12101	//   },
12102	//   "scopes": [
12103	//     "https://www.googleapis.com/auth/androidpublisher"
12104	//   ]
12105	// }
12106
12107}
12108
12109// method id "androidpublisher.reviews.list":
12110
12111type ReviewsListCall struct {
12112	s            *Service
12113	packageName  string
12114	urlParams_   gensupport.URLParams
12115	ifNoneMatch_ string
12116	ctx_         context.Context
12117	header_      http.Header
12118}
12119
12120// List: Lists all reviews.
12121//
12122// - packageName: Package name of the app.
12123func (r *ReviewsService) List(packageName string) *ReviewsListCall {
12124	c := &ReviewsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
12125	c.packageName = packageName
12126	return c
12127}
12128
12129// MaxResults sets the optional parameter "maxResults": How many results
12130// the list operation should return.
12131func (c *ReviewsListCall) MaxResults(maxResults int64) *ReviewsListCall {
12132	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
12133	return c
12134}
12135
12136// StartIndex sets the optional parameter "startIndex": The index of the
12137// first element to return.
12138func (c *ReviewsListCall) StartIndex(startIndex int64) *ReviewsListCall {
12139	c.urlParams_.Set("startIndex", fmt.Sprint(startIndex))
12140	return c
12141}
12142
12143// Token sets the optional parameter "token": Pagination token. If
12144// empty, list starts at the first review.
12145func (c *ReviewsListCall) Token(token string) *ReviewsListCall {
12146	c.urlParams_.Set("token", token)
12147	return c
12148}
12149
12150// TranslationLanguage sets the optional parameter
12151// "translationLanguage": Language localization code.
12152func (c *ReviewsListCall) TranslationLanguage(translationLanguage string) *ReviewsListCall {
12153	c.urlParams_.Set("translationLanguage", translationLanguage)
12154	return c
12155}
12156
12157// Fields allows partial responses to be retrieved. See
12158// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
12159// for more information.
12160func (c *ReviewsListCall) Fields(s ...googleapi.Field) *ReviewsListCall {
12161	c.urlParams_.Set("fields", googleapi.CombineFields(s))
12162	return c
12163}
12164
12165// IfNoneMatch sets the optional parameter which makes the operation
12166// fail if the object's ETag matches the given value. This is useful for
12167// getting updates only after the object has changed since the last
12168// request. Use googleapi.IsNotModified to check whether the response
12169// error from Do is the result of In-None-Match.
12170func (c *ReviewsListCall) IfNoneMatch(entityTag string) *ReviewsListCall {
12171	c.ifNoneMatch_ = entityTag
12172	return c
12173}
12174
12175// Context sets the context to be used in this call's Do method. Any
12176// pending HTTP request will be aborted if the provided context is
12177// canceled.
12178func (c *ReviewsListCall) Context(ctx context.Context) *ReviewsListCall {
12179	c.ctx_ = ctx
12180	return c
12181}
12182
12183// Header returns an http.Header that can be modified by the caller to
12184// add HTTP headers to the request.
12185func (c *ReviewsListCall) Header() http.Header {
12186	if c.header_ == nil {
12187		c.header_ = make(http.Header)
12188	}
12189	return c.header_
12190}
12191
12192func (c *ReviewsListCall) doRequest(alt string) (*http.Response, error) {
12193	reqHeaders := make(http.Header)
12194	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
12195	for k, v := range c.header_ {
12196		reqHeaders[k] = v
12197	}
12198	reqHeaders.Set("User-Agent", c.s.userAgent())
12199	if c.ifNoneMatch_ != "" {
12200		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
12201	}
12202	var body io.Reader = nil
12203	c.urlParams_.Set("alt", alt)
12204	c.urlParams_.Set("prettyPrint", "false")
12205	urls := googleapi.ResolveRelative(c.s.BasePath, "androidpublisher/v3/applications/{packageName}/reviews")
12206	urls += "?" + c.urlParams_.Encode()
12207	req, err := http.NewRequest("GET", urls, body)
12208	if err != nil {
12209		return nil, err
12210	}
12211	req.Header = reqHeaders
12212	googleapi.Expand(req.URL, map[string]string{
12213		"packageName": c.packageName,
12214	})
12215	return gensupport.SendRequest(c.ctx_, c.s.client, req)
12216}
12217
12218// Do executes the "androidpublisher.reviews.list" call.
12219// Exactly one of *ReviewsListResponse or error will be non-nil. Any
12220// non-2xx status code is an error. Response headers are in either
12221// *ReviewsListResponse.ServerResponse.Header or (if a response was
12222// returned at all) in error.(*googleapi.Error).Header. Use
12223// googleapi.IsNotModified to check whether the returned error was
12224// because http.StatusNotModified was returned.
12225func (c *ReviewsListCall) Do(opts ...googleapi.CallOption) (*ReviewsListResponse, error) {
12226	gensupport.SetOptions(c.urlParams_, opts...)
12227	res, err := c.doRequest("json")
12228	if res != nil && res.StatusCode == http.StatusNotModified {
12229		if res.Body != nil {
12230			res.Body.Close()
12231		}
12232		return nil, &googleapi.Error{
12233			Code:   res.StatusCode,
12234			Header: res.Header,
12235		}
12236	}
12237	if err != nil {
12238		return nil, err
12239	}
12240	defer googleapi.CloseBody(res)
12241	if err := googleapi.CheckResponse(res); err != nil {
12242		return nil, err
12243	}
12244	ret := &ReviewsListResponse{
12245		ServerResponse: googleapi.ServerResponse{
12246			Header:         res.Header,
12247			HTTPStatusCode: res.StatusCode,
12248		},
12249	}
12250	target := &ret
12251	if err := gensupport.DecodeResponse(target, res); err != nil {
12252		return nil, err
12253	}
12254	return ret, nil
12255	// {
12256	//   "description": "Lists all reviews.",
12257	//   "flatPath": "androidpublisher/v3/applications/{packageName}/reviews",
12258	//   "httpMethod": "GET",
12259	//   "id": "androidpublisher.reviews.list",
12260	//   "parameterOrder": [
12261	//     "packageName"
12262	//   ],
12263	//   "parameters": {
12264	//     "maxResults": {
12265	//       "description": "How many results the list operation should return.",
12266	//       "format": "uint32",
12267	//       "location": "query",
12268	//       "type": "integer"
12269	//     },
12270	//     "packageName": {
12271	//       "description": "Package name of the app.",
12272	//       "location": "path",
12273	//       "required": true,
12274	//       "type": "string"
12275	//     },
12276	//     "startIndex": {
12277	//       "description": "The index of the first element to return.",
12278	//       "format": "uint32",
12279	//       "location": "query",
12280	//       "type": "integer"
12281	//     },
12282	//     "token": {
12283	//       "description": "Pagination token. If empty, list starts at the first review.",
12284	//       "location": "query",
12285	//       "type": "string"
12286	//     },
12287	//     "translationLanguage": {
12288	//       "description": "Language localization code.",
12289	//       "location": "query",
12290	//       "type": "string"
12291	//     }
12292	//   },
12293	//   "path": "androidpublisher/v3/applications/{packageName}/reviews",
12294	//   "response": {
12295	//     "$ref": "ReviewsListResponse"
12296	//   },
12297	//   "scopes": [
12298	//     "https://www.googleapis.com/auth/androidpublisher"
12299	//   ]
12300	// }
12301
12302}
12303
12304// method id "androidpublisher.reviews.reply":
12305
12306type ReviewsReplyCall struct {
12307	s                   *Service
12308	packageName         string
12309	reviewId            string
12310	reviewsreplyrequest *ReviewsReplyRequest
12311	urlParams_          gensupport.URLParams
12312	ctx_                context.Context
12313	header_             http.Header
12314}
12315
12316// Reply: Replies to a single review, or updates an existing reply.
12317//
12318// - packageName: Package name of the app.
12319// - reviewId: Unique identifier for a review.
12320func (r *ReviewsService) Reply(packageName string, reviewId string, reviewsreplyrequest *ReviewsReplyRequest) *ReviewsReplyCall {
12321	c := &ReviewsReplyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
12322	c.packageName = packageName
12323	c.reviewId = reviewId
12324	c.reviewsreplyrequest = reviewsreplyrequest
12325	return c
12326}
12327
12328// Fields allows partial responses to be retrieved. See
12329// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
12330// for more information.
12331func (c *ReviewsReplyCall) Fields(s ...googleapi.Field) *ReviewsReplyCall {
12332	c.urlParams_.Set("fields", googleapi.CombineFields(s))
12333	return c
12334}
12335
12336// Context sets the context to be used in this call's Do method. Any
12337// pending HTTP request will be aborted if the provided context is
12338// canceled.
12339func (c *ReviewsReplyCall) Context(ctx context.Context) *ReviewsReplyCall {
12340	c.ctx_ = ctx
12341	return c
12342}
12343
12344// Header returns an http.Header that can be modified by the caller to
12345// add HTTP headers to the request.
12346func (c *ReviewsReplyCall) Header() http.Header {
12347	if c.header_ == nil {
12348		c.header_ = make(http.Header)
12349	}
12350	return c.header_
12351}
12352
12353func (c *ReviewsReplyCall) doRequest(alt string) (*http.Response, error) {
12354	reqHeaders := make(http.Header)
12355	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
12356	for k, v := range c.header_ {
12357		reqHeaders[k] = v
12358	}
12359	reqHeaders.Set("User-Agent", c.s.userAgent())
12360	var body io.Reader = nil
12361	body, err := googleapi.WithoutDataWrapper.JSONReader(c.reviewsreplyrequest)
12362	if err != nil {
12363		return nil, err
12364	}
12365	reqHeaders.Set("Content-Type", "application/json")
12366	c.urlParams_.Set("alt", alt)
12367	c.urlParams_.Set("prettyPrint", "false")
12368	urls := googleapi.ResolveRelative(c.s.BasePath, "androidpublisher/v3/applications/{packageName}/reviews/{reviewId}:reply")
12369	urls += "?" + c.urlParams_.Encode()
12370	req, err := http.NewRequest("POST", urls, body)
12371	if err != nil {
12372		return nil, err
12373	}
12374	req.Header = reqHeaders
12375	googleapi.Expand(req.URL, map[string]string{
12376		"packageName": c.packageName,
12377		"reviewId":    c.reviewId,
12378	})
12379	return gensupport.SendRequest(c.ctx_, c.s.client, req)
12380}
12381
12382// Do executes the "androidpublisher.reviews.reply" call.
12383// Exactly one of *ReviewsReplyResponse or error will be non-nil. Any
12384// non-2xx status code is an error. Response headers are in either
12385// *ReviewsReplyResponse.ServerResponse.Header or (if a response was
12386// returned at all) in error.(*googleapi.Error).Header. Use
12387// googleapi.IsNotModified to check whether the returned error was
12388// because http.StatusNotModified was returned.
12389func (c *ReviewsReplyCall) Do(opts ...googleapi.CallOption) (*ReviewsReplyResponse, error) {
12390	gensupport.SetOptions(c.urlParams_, opts...)
12391	res, err := c.doRequest("json")
12392	if res != nil && res.StatusCode == http.StatusNotModified {
12393		if res.Body != nil {
12394			res.Body.Close()
12395		}
12396		return nil, &googleapi.Error{
12397			Code:   res.StatusCode,
12398			Header: res.Header,
12399		}
12400	}
12401	if err != nil {
12402		return nil, err
12403	}
12404	defer googleapi.CloseBody(res)
12405	if err := googleapi.CheckResponse(res); err != nil {
12406		return nil, err
12407	}
12408	ret := &ReviewsReplyResponse{
12409		ServerResponse: googleapi.ServerResponse{
12410			Header:         res.Header,
12411			HTTPStatusCode: res.StatusCode,
12412		},
12413	}
12414	target := &ret
12415	if err := gensupport.DecodeResponse(target, res); err != nil {
12416		return nil, err
12417	}
12418	return ret, nil
12419	// {
12420	//   "description": "Replies to a single review, or updates an existing reply.",
12421	//   "flatPath": "androidpublisher/v3/applications/{packageName}/reviews/{reviewId}:reply",
12422	//   "httpMethod": "POST",
12423	//   "id": "androidpublisher.reviews.reply",
12424	//   "parameterOrder": [
12425	//     "packageName",
12426	//     "reviewId"
12427	//   ],
12428	//   "parameters": {
12429	//     "packageName": {
12430	//       "description": "Package name of the app.",
12431	//       "location": "path",
12432	//       "required": true,
12433	//       "type": "string"
12434	//     },
12435	//     "reviewId": {
12436	//       "description": "Unique identifier for a review.",
12437	//       "location": "path",
12438	//       "required": true,
12439	//       "type": "string"
12440	//     }
12441	//   },
12442	//   "path": "androidpublisher/v3/applications/{packageName}/reviews/{reviewId}:reply",
12443	//   "request": {
12444	//     "$ref": "ReviewsReplyRequest"
12445	//   },
12446	//   "response": {
12447	//     "$ref": "ReviewsReplyResponse"
12448	//   },
12449	//   "scopes": [
12450	//     "https://www.googleapis.com/auth/androidpublisher"
12451	//   ]
12452	// }
12453
12454}
12455
12456// method id "androidpublisher.systemapks.variants.create":
12457
12458type SystemapksVariantsCreateCall struct {
12459	s           *Service
12460	packageName string
12461	versionCode int64
12462	variant     *Variant
12463	urlParams_  gensupport.URLParams
12464	ctx_        context.Context
12465	header_     http.Header
12466}
12467
12468// Create: Creates an APK which is suitable for inclusion in a system
12469// image from an already uploaded Android App Bundle.
12470//
12471// - packageName: Package name of the app.
12472// - versionCode: The version code of the App Bundle.
12473func (r *SystemapksVariantsService) Create(packageName string, versionCode int64, variant *Variant) *SystemapksVariantsCreateCall {
12474	c := &SystemapksVariantsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
12475	c.packageName = packageName
12476	c.versionCode = versionCode
12477	c.variant = variant
12478	return c
12479}
12480
12481// Fields allows partial responses to be retrieved. See
12482// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
12483// for more information.
12484func (c *SystemapksVariantsCreateCall) Fields(s ...googleapi.Field) *SystemapksVariantsCreateCall {
12485	c.urlParams_.Set("fields", googleapi.CombineFields(s))
12486	return c
12487}
12488
12489// Context sets the context to be used in this call's Do method. Any
12490// pending HTTP request will be aborted if the provided context is
12491// canceled.
12492func (c *SystemapksVariantsCreateCall) Context(ctx context.Context) *SystemapksVariantsCreateCall {
12493	c.ctx_ = ctx
12494	return c
12495}
12496
12497// Header returns an http.Header that can be modified by the caller to
12498// add HTTP headers to the request.
12499func (c *SystemapksVariantsCreateCall) Header() http.Header {
12500	if c.header_ == nil {
12501		c.header_ = make(http.Header)
12502	}
12503	return c.header_
12504}
12505
12506func (c *SystemapksVariantsCreateCall) doRequest(alt string) (*http.Response, error) {
12507	reqHeaders := make(http.Header)
12508	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
12509	for k, v := range c.header_ {
12510		reqHeaders[k] = v
12511	}
12512	reqHeaders.Set("User-Agent", c.s.userAgent())
12513	var body io.Reader = nil
12514	body, err := googleapi.WithoutDataWrapper.JSONReader(c.variant)
12515	if err != nil {
12516		return nil, err
12517	}
12518	reqHeaders.Set("Content-Type", "application/json")
12519	c.urlParams_.Set("alt", alt)
12520	c.urlParams_.Set("prettyPrint", "false")
12521	urls := googleapi.ResolveRelative(c.s.BasePath, "androidpublisher/v3/applications/{packageName}/systemApks/{versionCode}/variants")
12522	urls += "?" + c.urlParams_.Encode()
12523	req, err := http.NewRequest("POST", urls, body)
12524	if err != nil {
12525		return nil, err
12526	}
12527	req.Header = reqHeaders
12528	googleapi.Expand(req.URL, map[string]string{
12529		"packageName": c.packageName,
12530		"versionCode": strconv.FormatInt(c.versionCode, 10),
12531	})
12532	return gensupport.SendRequest(c.ctx_, c.s.client, req)
12533}
12534
12535// Do executes the "androidpublisher.systemapks.variants.create" call.
12536// Exactly one of *Variant or error will be non-nil. Any non-2xx status
12537// code is an error. Response headers are in either
12538// *Variant.ServerResponse.Header or (if a response was returned at all)
12539// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
12540// check whether the returned error was because http.StatusNotModified
12541// was returned.
12542func (c *SystemapksVariantsCreateCall) Do(opts ...googleapi.CallOption) (*Variant, error) {
12543	gensupport.SetOptions(c.urlParams_, opts...)
12544	res, err := c.doRequest("json")
12545	if res != nil && res.StatusCode == http.StatusNotModified {
12546		if res.Body != nil {
12547			res.Body.Close()
12548		}
12549		return nil, &googleapi.Error{
12550			Code:   res.StatusCode,
12551			Header: res.Header,
12552		}
12553	}
12554	if err != nil {
12555		return nil, err
12556	}
12557	defer googleapi.CloseBody(res)
12558	if err := googleapi.CheckResponse(res); err != nil {
12559		return nil, err
12560	}
12561	ret := &Variant{
12562		ServerResponse: googleapi.ServerResponse{
12563			Header:         res.Header,
12564			HTTPStatusCode: res.StatusCode,
12565		},
12566	}
12567	target := &ret
12568	if err := gensupport.DecodeResponse(target, res); err != nil {
12569		return nil, err
12570	}
12571	return ret, nil
12572	// {
12573	//   "description": "Creates an APK which is suitable for inclusion in a system image from an already uploaded Android App Bundle.",
12574	//   "flatPath": "androidpublisher/v3/applications/{packageName}/systemApks/{versionCode}/variants",
12575	//   "httpMethod": "POST",
12576	//   "id": "androidpublisher.systemapks.variants.create",
12577	//   "parameterOrder": [
12578	//     "packageName",
12579	//     "versionCode"
12580	//   ],
12581	//   "parameters": {
12582	//     "packageName": {
12583	//       "description": "Package name of the app.",
12584	//       "location": "path",
12585	//       "required": true,
12586	//       "type": "string"
12587	//     },
12588	//     "versionCode": {
12589	//       "description": "The version code of the App Bundle.",
12590	//       "format": "int64",
12591	//       "location": "path",
12592	//       "required": true,
12593	//       "type": "string"
12594	//     }
12595	//   },
12596	//   "path": "androidpublisher/v3/applications/{packageName}/systemApks/{versionCode}/variants",
12597	//   "request": {
12598	//     "$ref": "Variant"
12599	//   },
12600	//   "response": {
12601	//     "$ref": "Variant"
12602	//   },
12603	//   "scopes": [
12604	//     "https://www.googleapis.com/auth/androidpublisher"
12605	//   ]
12606	// }
12607
12608}
12609
12610// method id "androidpublisher.systemapks.variants.download":
12611
12612type SystemapksVariantsDownloadCall struct {
12613	s            *Service
12614	packageName  string
12615	versionCode  int64
12616	variantId    int64
12617	urlParams_   gensupport.URLParams
12618	ifNoneMatch_ string
12619	ctx_         context.Context
12620	header_      http.Header
12621}
12622
12623// Download: Downloads a previously created system APK which is suitable
12624// for inclusion in a system image.
12625//
12626// - packageName: Package name of the app.
12627// - variantId: The ID of a previously created system APK variant.
12628// - versionCode: The version code of the App Bundle.
12629func (r *SystemapksVariantsService) Download(packageName string, versionCode int64, variantId int64) *SystemapksVariantsDownloadCall {
12630	c := &SystemapksVariantsDownloadCall{s: r.s, urlParams_: make(gensupport.URLParams)}
12631	c.packageName = packageName
12632	c.versionCode = versionCode
12633	c.variantId = variantId
12634	return c
12635}
12636
12637// Fields allows partial responses to be retrieved. See
12638// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
12639// for more information.
12640func (c *SystemapksVariantsDownloadCall) Fields(s ...googleapi.Field) *SystemapksVariantsDownloadCall {
12641	c.urlParams_.Set("fields", googleapi.CombineFields(s))
12642	return c
12643}
12644
12645// IfNoneMatch sets the optional parameter which makes the operation
12646// fail if the object's ETag matches the given value. This is useful for
12647// getting updates only after the object has changed since the last
12648// request. Use googleapi.IsNotModified to check whether the response
12649// error from Do is the result of In-None-Match.
12650func (c *SystemapksVariantsDownloadCall) IfNoneMatch(entityTag string) *SystemapksVariantsDownloadCall {
12651	c.ifNoneMatch_ = entityTag
12652	return c
12653}
12654
12655// Context sets the context to be used in this call's Do and Download
12656// methods. Any pending HTTP request will be aborted if the provided
12657// context is canceled.
12658func (c *SystemapksVariantsDownloadCall) Context(ctx context.Context) *SystemapksVariantsDownloadCall {
12659	c.ctx_ = ctx
12660	return c
12661}
12662
12663// Header returns an http.Header that can be modified by the caller to
12664// add HTTP headers to the request.
12665func (c *SystemapksVariantsDownloadCall) Header() http.Header {
12666	if c.header_ == nil {
12667		c.header_ = make(http.Header)
12668	}
12669	return c.header_
12670}
12671
12672func (c *SystemapksVariantsDownloadCall) doRequest(alt string) (*http.Response, error) {
12673	reqHeaders := make(http.Header)
12674	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
12675	for k, v := range c.header_ {
12676		reqHeaders[k] = v
12677	}
12678	reqHeaders.Set("User-Agent", c.s.userAgent())
12679	if c.ifNoneMatch_ != "" {
12680		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
12681	}
12682	var body io.Reader = nil
12683	c.urlParams_.Set("alt", alt)
12684	c.urlParams_.Set("prettyPrint", "false")
12685	urls := googleapi.ResolveRelative(c.s.BasePath, "androidpublisher/v3/applications/{packageName}/systemApks/{versionCode}/variants/{variantId}:download")
12686	urls += "?" + c.urlParams_.Encode()
12687	req, err := http.NewRequest("GET", urls, body)
12688	if err != nil {
12689		return nil, err
12690	}
12691	req.Header = reqHeaders
12692	googleapi.Expand(req.URL, map[string]string{
12693		"packageName": c.packageName,
12694		"versionCode": strconv.FormatInt(c.versionCode, 10),
12695		"variantId":   strconv.FormatInt(c.variantId, 10),
12696	})
12697	return gensupport.SendRequest(c.ctx_, c.s.client, req)
12698}
12699
12700// Download fetches the API endpoint's "media" value, instead of the normal
12701// API response value. If the returned error is nil, the Response is guaranteed to
12702// have a 2xx status code. Callers must close the Response.Body as usual.
12703func (c *SystemapksVariantsDownloadCall) Download(opts ...googleapi.CallOption) (*http.Response, error) {
12704	gensupport.SetOptions(c.urlParams_, opts...)
12705	res, err := c.doRequest("media")
12706	if err != nil {
12707		return nil, err
12708	}
12709	if err := googleapi.CheckResponse(res); err != nil {
12710		res.Body.Close()
12711		return nil, err
12712	}
12713	return res, nil
12714}
12715
12716// Do executes the "androidpublisher.systemapks.variants.download" call.
12717func (c *SystemapksVariantsDownloadCall) Do(opts ...googleapi.CallOption) error {
12718	gensupport.SetOptions(c.urlParams_, opts...)
12719	res, err := c.doRequest("json")
12720	if err != nil {
12721		return err
12722	}
12723	defer googleapi.CloseBody(res)
12724	if err := googleapi.CheckResponse(res); err != nil {
12725		return err
12726	}
12727	return nil
12728	// {
12729	//   "description": "Downloads a previously created system APK which is suitable for inclusion in a system image.",
12730	//   "flatPath": "androidpublisher/v3/applications/{packageName}/systemApks/{versionCode}/variants/{variantId}:download",
12731	//   "httpMethod": "GET",
12732	//   "id": "androidpublisher.systemapks.variants.download",
12733	//   "parameterOrder": [
12734	//     "packageName",
12735	//     "versionCode",
12736	//     "variantId"
12737	//   ],
12738	//   "parameters": {
12739	//     "packageName": {
12740	//       "description": "Package name of the app.",
12741	//       "location": "path",
12742	//       "required": true,
12743	//       "type": "string"
12744	//     },
12745	//     "variantId": {
12746	//       "description": "The ID of a previously created system APK variant.",
12747	//       "format": "uint32",
12748	//       "location": "path",
12749	//       "required": true,
12750	//       "type": "integer"
12751	//     },
12752	//     "versionCode": {
12753	//       "description": "The version code of the App Bundle.",
12754	//       "format": "int64",
12755	//       "location": "path",
12756	//       "required": true,
12757	//       "type": "string"
12758	//     }
12759	//   },
12760	//   "path": "androidpublisher/v3/applications/{packageName}/systemApks/{versionCode}/variants/{variantId}:download",
12761	//   "scopes": [
12762	//     "https://www.googleapis.com/auth/androidpublisher"
12763	//   ],
12764	//   "supportsMediaDownload": true,
12765	//   "useMediaDownloadService": true
12766	// }
12767
12768}
12769
12770// method id "androidpublisher.systemapks.variants.get":
12771
12772type SystemapksVariantsGetCall struct {
12773	s            *Service
12774	packageName  string
12775	versionCode  int64
12776	variantId    int64
12777	urlParams_   gensupport.URLParams
12778	ifNoneMatch_ string
12779	ctx_         context.Context
12780	header_      http.Header
12781}
12782
12783// Get: Returns a previously created system APK variant.
12784//
12785// - packageName: Package name of the app.
12786// - variantId: The ID of a previously created system APK variant.
12787// - versionCode: The version code of the App Bundle.
12788func (r *SystemapksVariantsService) Get(packageName string, versionCode int64, variantId int64) *SystemapksVariantsGetCall {
12789	c := &SystemapksVariantsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
12790	c.packageName = packageName
12791	c.versionCode = versionCode
12792	c.variantId = variantId
12793	return c
12794}
12795
12796// Fields allows partial responses to be retrieved. See
12797// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
12798// for more information.
12799func (c *SystemapksVariantsGetCall) Fields(s ...googleapi.Field) *SystemapksVariantsGetCall {
12800	c.urlParams_.Set("fields", googleapi.CombineFields(s))
12801	return c
12802}
12803
12804// IfNoneMatch sets the optional parameter which makes the operation
12805// fail if the object's ETag matches the given value. This is useful for
12806// getting updates only after the object has changed since the last
12807// request. Use googleapi.IsNotModified to check whether the response
12808// error from Do is the result of In-None-Match.
12809func (c *SystemapksVariantsGetCall) IfNoneMatch(entityTag string) *SystemapksVariantsGetCall {
12810	c.ifNoneMatch_ = entityTag
12811	return c
12812}
12813
12814// Context sets the context to be used in this call's Do method. Any
12815// pending HTTP request will be aborted if the provided context is
12816// canceled.
12817func (c *SystemapksVariantsGetCall) Context(ctx context.Context) *SystemapksVariantsGetCall {
12818	c.ctx_ = ctx
12819	return c
12820}
12821
12822// Header returns an http.Header that can be modified by the caller to
12823// add HTTP headers to the request.
12824func (c *SystemapksVariantsGetCall) Header() http.Header {
12825	if c.header_ == nil {
12826		c.header_ = make(http.Header)
12827	}
12828	return c.header_
12829}
12830
12831func (c *SystemapksVariantsGetCall) doRequest(alt string) (*http.Response, error) {
12832	reqHeaders := make(http.Header)
12833	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
12834	for k, v := range c.header_ {
12835		reqHeaders[k] = v
12836	}
12837	reqHeaders.Set("User-Agent", c.s.userAgent())
12838	if c.ifNoneMatch_ != "" {
12839		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
12840	}
12841	var body io.Reader = nil
12842	c.urlParams_.Set("alt", alt)
12843	c.urlParams_.Set("prettyPrint", "false")
12844	urls := googleapi.ResolveRelative(c.s.BasePath, "androidpublisher/v3/applications/{packageName}/systemApks/{versionCode}/variants/{variantId}")
12845	urls += "?" + c.urlParams_.Encode()
12846	req, err := http.NewRequest("GET", urls, body)
12847	if err != nil {
12848		return nil, err
12849	}
12850	req.Header = reqHeaders
12851	googleapi.Expand(req.URL, map[string]string{
12852		"packageName": c.packageName,
12853		"versionCode": strconv.FormatInt(c.versionCode, 10),
12854		"variantId":   strconv.FormatInt(c.variantId, 10),
12855	})
12856	return gensupport.SendRequest(c.ctx_, c.s.client, req)
12857}
12858
12859// Do executes the "androidpublisher.systemapks.variants.get" call.
12860// Exactly one of *Variant or error will be non-nil. Any non-2xx status
12861// code is an error. Response headers are in either
12862// *Variant.ServerResponse.Header or (if a response was returned at all)
12863// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
12864// check whether the returned error was because http.StatusNotModified
12865// was returned.
12866func (c *SystemapksVariantsGetCall) Do(opts ...googleapi.CallOption) (*Variant, error) {
12867	gensupport.SetOptions(c.urlParams_, opts...)
12868	res, err := c.doRequest("json")
12869	if res != nil && res.StatusCode == http.StatusNotModified {
12870		if res.Body != nil {
12871			res.Body.Close()
12872		}
12873		return nil, &googleapi.Error{
12874			Code:   res.StatusCode,
12875			Header: res.Header,
12876		}
12877	}
12878	if err != nil {
12879		return nil, err
12880	}
12881	defer googleapi.CloseBody(res)
12882	if err := googleapi.CheckResponse(res); err != nil {
12883		return nil, err
12884	}
12885	ret := &Variant{
12886		ServerResponse: googleapi.ServerResponse{
12887			Header:         res.Header,
12888			HTTPStatusCode: res.StatusCode,
12889		},
12890	}
12891	target := &ret
12892	if err := gensupport.DecodeResponse(target, res); err != nil {
12893		return nil, err
12894	}
12895	return ret, nil
12896	// {
12897	//   "description": "Returns a previously created system APK variant.",
12898	//   "flatPath": "androidpublisher/v3/applications/{packageName}/systemApks/{versionCode}/variants/{variantId}",
12899	//   "httpMethod": "GET",
12900	//   "id": "androidpublisher.systemapks.variants.get",
12901	//   "parameterOrder": [
12902	//     "packageName",
12903	//     "versionCode",
12904	//     "variantId"
12905	//   ],
12906	//   "parameters": {
12907	//     "packageName": {
12908	//       "description": "Package name of the app.",
12909	//       "location": "path",
12910	//       "required": true,
12911	//       "type": "string"
12912	//     },
12913	//     "variantId": {
12914	//       "description": "The ID of a previously created system APK variant.",
12915	//       "format": "uint32",
12916	//       "location": "path",
12917	//       "required": true,
12918	//       "type": "integer"
12919	//     },
12920	//     "versionCode": {
12921	//       "description": "The version code of the App Bundle.",
12922	//       "format": "int64",
12923	//       "location": "path",
12924	//       "required": true,
12925	//       "type": "string"
12926	//     }
12927	//   },
12928	//   "path": "androidpublisher/v3/applications/{packageName}/systemApks/{versionCode}/variants/{variantId}",
12929	//   "response": {
12930	//     "$ref": "Variant"
12931	//   },
12932	//   "scopes": [
12933	//     "https://www.googleapis.com/auth/androidpublisher"
12934	//   ]
12935	// }
12936
12937}
12938
12939// method id "androidpublisher.systemapks.variants.list":
12940
12941type SystemapksVariantsListCall struct {
12942	s            *Service
12943	packageName  string
12944	versionCode  int64
12945	urlParams_   gensupport.URLParams
12946	ifNoneMatch_ string
12947	ctx_         context.Context
12948	header_      http.Header
12949}
12950
12951// List: Returns the list of previously created system APK variants.
12952//
12953// - packageName: Package name of the app.
12954// - versionCode: The version code of the App Bundle.
12955func (r *SystemapksVariantsService) List(packageName string, versionCode int64) *SystemapksVariantsListCall {
12956	c := &SystemapksVariantsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
12957	c.packageName = packageName
12958	c.versionCode = versionCode
12959	return c
12960}
12961
12962// Fields allows partial responses to be retrieved. See
12963// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
12964// for more information.
12965func (c *SystemapksVariantsListCall) Fields(s ...googleapi.Field) *SystemapksVariantsListCall {
12966	c.urlParams_.Set("fields", googleapi.CombineFields(s))
12967	return c
12968}
12969
12970// IfNoneMatch sets the optional parameter which makes the operation
12971// fail if the object's ETag matches the given value. This is useful for
12972// getting updates only after the object has changed since the last
12973// request. Use googleapi.IsNotModified to check whether the response
12974// error from Do is the result of In-None-Match.
12975func (c *SystemapksVariantsListCall) IfNoneMatch(entityTag string) *SystemapksVariantsListCall {
12976	c.ifNoneMatch_ = entityTag
12977	return c
12978}
12979
12980// Context sets the context to be used in this call's Do method. Any
12981// pending HTTP request will be aborted if the provided context is
12982// canceled.
12983func (c *SystemapksVariantsListCall) Context(ctx context.Context) *SystemapksVariantsListCall {
12984	c.ctx_ = ctx
12985	return c
12986}
12987
12988// Header returns an http.Header that can be modified by the caller to
12989// add HTTP headers to the request.
12990func (c *SystemapksVariantsListCall) Header() http.Header {
12991	if c.header_ == nil {
12992		c.header_ = make(http.Header)
12993	}
12994	return c.header_
12995}
12996
12997func (c *SystemapksVariantsListCall) doRequest(alt string) (*http.Response, error) {
12998	reqHeaders := make(http.Header)
12999	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210410")
13000	for k, v := range c.header_ {
13001		reqHeaders[k] = v
13002	}
13003	reqHeaders.Set("User-Agent", c.s.userAgent())
13004	if c.ifNoneMatch_ != "" {
13005		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
13006	}
13007	var body io.Reader = nil
13008	c.urlParams_.Set("alt", alt)
13009	c.urlParams_.Set("prettyPrint", "false")
13010	urls := googleapi.ResolveRelative(c.s.BasePath, "androidpublisher/v3/applications/{packageName}/systemApks/{versionCode}/variants")
13011	urls += "?" + c.urlParams_.Encode()
13012	req, err := http.NewRequest("GET", urls, body)
13013	if err != nil {
13014		return nil, err
13015	}
13016	req.Header = reqHeaders
13017	googleapi.Expand(req.URL, map[string]string{
13018		"packageName": c.packageName,
13019		"versionCode": strconv.FormatInt(c.versionCode, 10),
13020	})
13021	return gensupport.SendRequest(c.ctx_, c.s.client, req)
13022}
13023
13024// Do executes the "androidpublisher.systemapks.variants.list" call.
13025// Exactly one of *SystemApksListResponse or error will be non-nil. Any
13026// non-2xx status code is an error. Response headers are in either
13027// *SystemApksListResponse.ServerResponse.Header or (if a response was
13028// returned at all) in error.(*googleapi.Error).Header. Use
13029// googleapi.IsNotModified to check whether the returned error was
13030// because http.StatusNotModified was returned.
13031func (c *SystemapksVariantsListCall) Do(opts ...googleapi.CallOption) (*SystemApksListResponse, error) {
13032	gensupport.SetOptions(c.urlParams_, opts...)
13033	res, err := c.doRequest("json")
13034	if res != nil && res.StatusCode == http.StatusNotModified {
13035		if res.Body != nil {
13036			res.Body.Close()
13037		}
13038		return nil, &googleapi.Error{
13039			Code:   res.StatusCode,
13040			Header: res.Header,
13041		}
13042	}
13043	if err != nil {
13044		return nil, err
13045	}
13046	defer googleapi.CloseBody(res)
13047	if err := googleapi.CheckResponse(res); err != nil {
13048		return nil, err
13049	}
13050	ret := &SystemApksListResponse{
13051		ServerResponse: googleapi.ServerResponse{
13052			Header:         res.Header,
13053			HTTPStatusCode: res.StatusCode,
13054		},
13055	}
13056	target := &ret
13057	if err := gensupport.DecodeResponse(target, res); err != nil {
13058		return nil, err
13059	}
13060	return ret, nil
13061	// {
13062	//   "description": "Returns the list of previously created system APK variants.",
13063	//   "flatPath": "androidpublisher/v3/applications/{packageName}/systemApks/{versionCode}/variants",
13064	//   "httpMethod": "GET",
13065	//   "id": "androidpublisher.systemapks.variants.list",
13066	//   "parameterOrder": [
13067	//     "packageName",
13068	//     "versionCode"
13069	//   ],
13070	//   "parameters": {
13071	//     "packageName": {
13072	//       "description": "Package name of the app.",
13073	//       "location": "path",
13074	//       "required": true,
13075	//       "type": "string"
13076	//     },
13077	//     "versionCode": {
13078	//       "description": "The version code of the App Bundle.",
13079	//       "format": "int64",
13080	//       "location": "path",
13081	//       "required": true,
13082	//       "type": "string"
13083	//     }
13084	//   },
13085	//   "path": "androidpublisher/v3/applications/{packageName}/systemApks/{versionCode}/variants",
13086	//   "response": {
13087	//     "$ref": "SystemApksListResponse"
13088	//   },
13089	//   "scopes": [
13090	//     "https://www.googleapis.com/auth/androidpublisher"
13091	//   ]
13092	// }
13093
13094}
13095