1// Copyright 2019 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 firebase provides access to the Firebase Management API.
8//
9// For product documentation, see: https://firebase.google.com
10//
11// Creating a client
12//
13// Usage example:
14//
15//   import "google.golang.org/api/firebase/v1beta1"
16//   ...
17//   ctx := context.Background()
18//   firebaseService, err := firebase.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// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
27//
28//   firebaseService, err := firebase.NewService(ctx, option.WithScopes(firebase.FirebaseReadonlyScope))
29//
30// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
31//
32//   firebaseService, err := firebase.NewService(ctx, option.WithAPIKey("AIza..."))
33//
34// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
35//
36//   config := &oauth2.Config{...}
37//   // ...
38//   token, err := config.Exchange(ctx, ...)
39//   firebaseService, err := firebase.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
40//
41// See https://godoc.org/google.golang.org/api/option/ for details on options.
42package firebase // import "google.golang.org/api/firebase/v1beta1"
43
44import (
45	"bytes"
46	"context"
47	"encoding/json"
48	"errors"
49	"fmt"
50	"io"
51	"net/http"
52	"net/url"
53	"strconv"
54	"strings"
55
56	googleapi "google.golang.org/api/googleapi"
57	gensupport "google.golang.org/api/internal/gensupport"
58	option "google.golang.org/api/option"
59	htransport "google.golang.org/api/transport/http"
60)
61
62// Always reference these packages, just in case the auto-generated code
63// below doesn't.
64var _ = bytes.NewBuffer
65var _ = strconv.Itoa
66var _ = fmt.Sprintf
67var _ = json.NewDecoder
68var _ = io.Copy
69var _ = url.Parse
70var _ = gensupport.MarshalJSON
71var _ = googleapi.Version
72var _ = errors.New
73var _ = strings.Replace
74var _ = context.Canceled
75
76const apiId = "firebase:v1beta1"
77const apiName = "firebase"
78const apiVersion = "v1beta1"
79const basePath = "https://firebase.googleapis.com/"
80
81// OAuth2 scopes used by this API.
82const (
83	// View and manage your data across Google Cloud Platform services
84	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
85
86	// View your data across Google Cloud Platform services
87	CloudPlatformReadOnlyScope = "https://www.googleapis.com/auth/cloud-platform.read-only"
88
89	// View and administer all your Firebase data and settings
90	FirebaseScope = "https://www.googleapis.com/auth/firebase"
91
92	// View all your Firebase data and settings
93	FirebaseReadonlyScope = "https://www.googleapis.com/auth/firebase.readonly"
94)
95
96// NewService creates a new Service.
97func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
98	scopesOption := option.WithScopes(
99		"https://www.googleapis.com/auth/cloud-platform",
100		"https://www.googleapis.com/auth/cloud-platform.read-only",
101		"https://www.googleapis.com/auth/firebase",
102		"https://www.googleapis.com/auth/firebase.readonly",
103	)
104	// NOTE: prepend, so we don't override user-specified scopes.
105	opts = append([]option.ClientOption{scopesOption}, opts...)
106	client, endpoint, err := htransport.NewClient(ctx, opts...)
107	if err != nil {
108		return nil, err
109	}
110	s, err := New(client)
111	if err != nil {
112		return nil, err
113	}
114	if endpoint != "" {
115		s.BasePath = endpoint
116	}
117	return s, nil
118}
119
120// New creates a new Service. It uses the provided http.Client for requests.
121//
122// Deprecated: please use NewService instead.
123// To provide a custom HTTP client, use option.WithHTTPClient.
124// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
125func New(client *http.Client) (*Service, error) {
126	if client == nil {
127		return nil, errors.New("client is nil")
128	}
129	s := &Service{client: client, BasePath: basePath}
130	s.AvailableProjects = NewAvailableProjectsService(s)
131	s.Operations = NewOperationsService(s)
132	s.Projects = NewProjectsService(s)
133	return s, nil
134}
135
136type Service struct {
137	client    *http.Client
138	BasePath  string // API endpoint base URL
139	UserAgent string // optional additional User-Agent fragment
140
141	AvailableProjects *AvailableProjectsService
142
143	Operations *OperationsService
144
145	Projects *ProjectsService
146}
147
148func (s *Service) userAgent() string {
149	if s.UserAgent == "" {
150		return googleapi.UserAgent
151	}
152	return googleapi.UserAgent + " " + s.UserAgent
153}
154
155func NewAvailableProjectsService(s *Service) *AvailableProjectsService {
156	rs := &AvailableProjectsService{s: s}
157	return rs
158}
159
160type AvailableProjectsService struct {
161	s *Service
162}
163
164func NewOperationsService(s *Service) *OperationsService {
165	rs := &OperationsService{s: s}
166	return rs
167}
168
169type OperationsService struct {
170	s *Service
171}
172
173func NewProjectsService(s *Service) *ProjectsService {
174	rs := &ProjectsService{s: s}
175	rs.AndroidApps = NewProjectsAndroidAppsService(s)
176	rs.AvailableLocations = NewProjectsAvailableLocationsService(s)
177	rs.DefaultLocation = NewProjectsDefaultLocationService(s)
178	rs.IosApps = NewProjectsIosAppsService(s)
179	rs.WebApps = NewProjectsWebAppsService(s)
180	return rs
181}
182
183type ProjectsService struct {
184	s *Service
185
186	AndroidApps *ProjectsAndroidAppsService
187
188	AvailableLocations *ProjectsAvailableLocationsService
189
190	DefaultLocation *ProjectsDefaultLocationService
191
192	IosApps *ProjectsIosAppsService
193
194	WebApps *ProjectsWebAppsService
195}
196
197func NewProjectsAndroidAppsService(s *Service) *ProjectsAndroidAppsService {
198	rs := &ProjectsAndroidAppsService{s: s}
199	rs.Sha = NewProjectsAndroidAppsShaService(s)
200	return rs
201}
202
203type ProjectsAndroidAppsService struct {
204	s *Service
205
206	Sha *ProjectsAndroidAppsShaService
207}
208
209func NewProjectsAndroidAppsShaService(s *Service) *ProjectsAndroidAppsShaService {
210	rs := &ProjectsAndroidAppsShaService{s: s}
211	return rs
212}
213
214type ProjectsAndroidAppsShaService struct {
215	s *Service
216}
217
218func NewProjectsAvailableLocationsService(s *Service) *ProjectsAvailableLocationsService {
219	rs := &ProjectsAvailableLocationsService{s: s}
220	return rs
221}
222
223type ProjectsAvailableLocationsService struct {
224	s *Service
225}
226
227func NewProjectsDefaultLocationService(s *Service) *ProjectsDefaultLocationService {
228	rs := &ProjectsDefaultLocationService{s: s}
229	return rs
230}
231
232type ProjectsDefaultLocationService struct {
233	s *Service
234}
235
236func NewProjectsIosAppsService(s *Service) *ProjectsIosAppsService {
237	rs := &ProjectsIosAppsService{s: s}
238	return rs
239}
240
241type ProjectsIosAppsService struct {
242	s *Service
243}
244
245func NewProjectsWebAppsService(s *Service) *ProjectsWebAppsService {
246	rs := &ProjectsWebAppsService{s: s}
247	return rs
248}
249
250type ProjectsWebAppsService struct {
251	s *Service
252}
253
254// AddFirebaseRequest: All fields are required.
255type AddFirebaseRequest struct {
256	// LocationId: Deprecated. Instead, to set your project's default GCP
257	// resource location,
258	// call
259	// [`FinalizeDefaultLocation`](../projects.defaultLocation/finalize)
260	// afte
261	// r you add Firebase resources to your project.
262	// <br>
263	// <br>The ID of the project's default GCP resource location. The
264	// location
265	// must be one of the available
266	// [GCP
267	// resource
268	// locations](https://firebase.google.com/docs/projects/location
269	// s).
270	LocationId string `json:"locationId,omitempty"`
271
272	// RegionCode: Deprecated. Instead, to link your Project with a Google
273	// Analytics account,
274	// call
275	// [`AddGoogleAnalytics`](../../v1beta1/projects/addGoogleAnalytics)
276	// afte
277	// r you add Firebase resources to your Project.
278	// <br>
279	// <br>The region code (CLDR) that the account will use for Firebase
280	// Analytics
281	// data.
282	// <br>For example: US, GB, or DE
283	// <br>
284	// <br>In Java, use `com.google.i18n.identifiers.RegionCode`.
285	RegionCode string `json:"regionCode,omitempty"`
286
287	// TimeZone: Deprecated. Instead, to link your Project with a Google
288	// Analytics account,
289	// call
290	// [`AddGoogleAnalytics`](../../v1beta1/projects/addGoogleAnalytics)
291	// afte
292	// r you add Firebase resources to your Project.
293	// <br>
294	// <br>The time zone that the account will use for Firebase Analytics
295	// data.
296	// <br>For example: America/Los_Angeles or Africa/Abidjan
297	TimeZone string `json:"timeZone,omitempty"`
298
299	// ForceSendFields is a list of field names (e.g. "LocationId") to
300	// unconditionally include in API requests. By default, fields with
301	// empty values are omitted from API requests. However, any non-pointer,
302	// non-interface field appearing in ForceSendFields will be sent to the
303	// server regardless of whether the field is empty or not. This may be
304	// used to include empty fields in Patch requests.
305	ForceSendFields []string `json:"-"`
306
307	// NullFields is a list of field names (e.g. "LocationId") to include in
308	// API requests with the JSON null value. By default, fields with empty
309	// values are omitted from API requests. However, any field with an
310	// empty value appearing in NullFields will be sent to the server as
311	// null. It is an error if a field in this list has a non-empty value.
312	// This may be used to include null fields in Patch requests.
313	NullFields []string `json:"-"`
314}
315
316func (s *AddFirebaseRequest) MarshalJSON() ([]byte, error) {
317	type NoMethod AddFirebaseRequest
318	raw := NoMethod(*s)
319	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
320}
321
322type AddGoogleAnalyticsRequest struct {
323	// AnalyticsAccountId: The ID for the existing
324	// [Google Analytics account](http://www.google.com/analytics/) that
325	// you
326	// want to link with your `FirebaseProject`.
327	// <br>
328	// <br>Specifying this field will provision a new Google
329	// Analytics
330	// property in your Google Analytics account and associate the new
331	// property
332	// with your `FirebaseProject`.
333	AnalyticsAccountId string `json:"analyticsAccountId,omitempty"`
334
335	// AnalyticsPropertyId: The ID for the existing Google Analytics
336	// property that you want to
337	// associate with your `FirebaseProject`.
338	AnalyticsPropertyId string `json:"analyticsPropertyId,omitempty"`
339
340	// ForceSendFields is a list of field names (e.g. "AnalyticsAccountId")
341	// to unconditionally include in API requests. By default, fields with
342	// empty values are omitted from API requests. However, any non-pointer,
343	// non-interface field appearing in ForceSendFields will be sent to the
344	// server regardless of whether the field is empty or not. This may be
345	// used to include empty fields in Patch requests.
346	ForceSendFields []string `json:"-"`
347
348	// NullFields is a list of field names (e.g. "AnalyticsAccountId") to
349	// include in API requests with the JSON null value. By default, fields
350	// with empty values are omitted from API requests. However, any field
351	// with an empty value appearing in NullFields will be sent to the
352	// server as null. It is an error if a field in this list has a
353	// non-empty value. This may be used to include null fields in Patch
354	// requests.
355	NullFields []string `json:"-"`
356}
357
358func (s *AddGoogleAnalyticsRequest) MarshalJSON() ([]byte, error) {
359	type NoMethod AddGoogleAnalyticsRequest
360	raw := NoMethod(*s)
361	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
362}
363
364type AdminSdkConfig struct {
365	// DatabaseURL: The default Firebase Realtime Database URL.
366	DatabaseURL string `json:"databaseURL,omitempty"`
367
368	// LocationId: The ID of the project's default GCP resource location.
369	// The location is one
370	// of the available
371	// [GCP
372	// resource
373	// locations](https://firebase.google.com/docs/projects/location
374	// s). <br>
375	// <br>This field is omitted if the default GCP resource location has
376	// not been
377	// finalized yet. To set your project's default GCP resource
378	// location,
379	// call
380	// [`FinalizeDefaultLocation`](../projects.defaultLocation/finalize)
381	// afte
382	// r you add Firebase services to your project.
383	LocationId string `json:"locationId,omitempty"`
384
385	// ProjectId: Immutable. The globally unique, user-assigned project ID
386	// of the parent
387	// Project.
388	ProjectId string `json:"projectId,omitempty"`
389
390	// StorageBucket: The default Cloud Storage for Firebase storage bucket
391	// name.
392	StorageBucket string `json:"storageBucket,omitempty"`
393
394	// ServerResponse contains the HTTP response code and headers from the
395	// server.
396	googleapi.ServerResponse `json:"-"`
397
398	// ForceSendFields is a list of field names (e.g. "DatabaseURL") to
399	// unconditionally include in API requests. By default, fields with
400	// empty values are omitted from API requests. However, any non-pointer,
401	// non-interface field appearing in ForceSendFields will be sent to the
402	// server regardless of whether the field is empty or not. This may be
403	// used to include empty fields in Patch requests.
404	ForceSendFields []string `json:"-"`
405
406	// NullFields is a list of field names (e.g. "DatabaseURL") to include
407	// in API requests with the JSON null value. By default, fields with
408	// empty values are omitted from API requests. However, any field with
409	// an empty value appearing in NullFields will be sent to the server as
410	// null. It is an error if a field in this list has a non-empty value.
411	// This may be used to include null fields in Patch requests.
412	NullFields []string `json:"-"`
413}
414
415func (s *AdminSdkConfig) MarshalJSON() ([]byte, error) {
416	type NoMethod AdminSdkConfig
417	raw := NoMethod(*s)
418	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
419}
420
421type AnalyticsDetails struct {
422	// AnalyticsProperty: The Analytics Property object associated with the
423	// specified
424	// `FirebaseProject`.
425	// <br>
426	// <br>This object contains the details of the Google Analytics
427	// property
428	// associated with the specified `FirebaseProject`.
429	AnalyticsProperty *AnalyticsProperty `json:"analyticsProperty,omitempty"`
430
431	// StreamMappings: For Android Apps and iOS Apps: A map of `app` to
432	// `streamId` for each
433	// Firebase App in the specified `FirebaseProject`. Each `app`
434	// and
435	// `streamId` appears only once.<br>
436	// <br>
437	// For Web Apps: A map of `app` to `streamId` and `measurementId` for
438	// each
439	// Firebase App in the specified `FirebaseProject`. Each `app`,
440	// `streamId`,
441	// and `measurementId` appears only once.
442	StreamMappings []*StreamMapping `json:"streamMappings,omitempty"`
443
444	// ServerResponse contains the HTTP response code and headers from the
445	// server.
446	googleapi.ServerResponse `json:"-"`
447
448	// ForceSendFields is a list of field names (e.g. "AnalyticsProperty")
449	// to unconditionally include in API requests. By default, fields with
450	// empty values are omitted from API requests. However, any non-pointer,
451	// non-interface field appearing in ForceSendFields will be sent to the
452	// server regardless of whether the field is empty or not. This may be
453	// used to include empty fields in Patch requests.
454	ForceSendFields []string `json:"-"`
455
456	// NullFields is a list of field names (e.g. "AnalyticsProperty") to
457	// include in API requests with the JSON null value. By default, fields
458	// with empty values are omitted from API requests. However, any field
459	// with an empty value appearing in NullFields will be sent to the
460	// server as null. It is an error if a field in this list has a
461	// non-empty value. This may be used to include null fields in Patch
462	// requests.
463	NullFields []string `json:"-"`
464}
465
466func (s *AnalyticsDetails) MarshalJSON() ([]byte, error) {
467	type NoMethod AnalyticsDetails
468	raw := NoMethod(*s)
469	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
470}
471
472// AnalyticsProperty: Details of a Google Analytics property
473type AnalyticsProperty struct {
474	// DisplayName: The display name of the Google Analytics property
475	// associated with the
476	// specified `FirebaseProject`.
477	DisplayName string `json:"displayName,omitempty"`
478
479	// Id: The globally unique, Google-assigned identifier of the Google
480	// Analytics
481	// property associated with the specified `FirebaseProject`.
482	// <br>
483	// <br>If you
484	// called
485	// [`AddGoogleAnalytics`](../../v1beta1/projects/addGoogleAnalytic
486	// s) to link
487	// your `FirebaseProject` with a Google Analytics account, the value in
488	// this
489	// `id` field is the same as the ID of the property either specified
490	// or
491	// provisioned with that call to `AddGoogleAnalytics`.
492	Id string `json:"id,omitempty"`
493
494	// ForceSendFields is a list of field names (e.g. "DisplayName") to
495	// unconditionally include in API requests. By default, fields with
496	// empty values are omitted from API requests. However, any non-pointer,
497	// non-interface field appearing in ForceSendFields will be sent to the
498	// server regardless of whether the field is empty or not. This may be
499	// used to include empty fields in Patch requests.
500	ForceSendFields []string `json:"-"`
501
502	// NullFields is a list of field names (e.g. "DisplayName") to include
503	// in API requests with the JSON null value. By default, fields with
504	// empty values are omitted from API requests. However, any field with
505	// an empty value appearing in NullFields will be sent to the server as
506	// null. It is an error if a field in this list has a non-empty value.
507	// This may be used to include null fields in Patch requests.
508	NullFields []string `json:"-"`
509}
510
511func (s *AnalyticsProperty) MarshalJSON() ([]byte, error) {
512	type NoMethod AnalyticsProperty
513	raw := NoMethod(*s)
514	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
515}
516
517// AndroidApp: Details of a Firebase App for Android.
518type AndroidApp struct {
519	// AppId: Immutable. The globally unique, Firebase-assigned identifier
520	// of the App.
521	// <br>
522	// <br>This identifier should be treated as an opaque token, as the
523	// data
524	// format is not specified.
525	AppId string `json:"appId,omitempty"`
526
527	// DisplayName: The user-assigned display name of the App.
528	DisplayName string `json:"displayName,omitempty"`
529
530	// Name: The fully qualified resource name of the App, in the
531	// format:
532	// <br><code>projects/<var>projectId</var>/androidApps/<var>appId
533	// </var></code>
534	Name string `json:"name,omitempty"`
535
536	// PackageName: The canonical package name of the Android App as would
537	// appear in the
538	// Google Play Developer Console.
539	PackageName string `json:"packageName,omitempty"`
540
541	// ProjectId: The globally unique, user-assigned ID of the parent
542	// Project for the App.
543	ProjectId string `json:"projectId,omitempty"`
544
545	// ServerResponse contains the HTTP response code and headers from the
546	// server.
547	googleapi.ServerResponse `json:"-"`
548
549	// ForceSendFields is a list of field names (e.g. "AppId") to
550	// unconditionally include in API requests. By default, fields with
551	// empty values are omitted from API requests. However, any non-pointer,
552	// non-interface field appearing in ForceSendFields will be sent to the
553	// server regardless of whether the field is empty or not. This may be
554	// used to include empty fields in Patch requests.
555	ForceSendFields []string `json:"-"`
556
557	// NullFields is a list of field names (e.g. "AppId") to include in API
558	// requests with the JSON null value. By default, fields with empty
559	// values are omitted from API requests. However, any field with an
560	// empty value appearing in NullFields will be sent to the server as
561	// null. It is an error if a field in this list has a non-empty value.
562	// This may be used to include null fields in Patch requests.
563	NullFields []string `json:"-"`
564}
565
566func (s *AndroidApp) MarshalJSON() ([]byte, error) {
567	type NoMethod AndroidApp
568	raw := NoMethod(*s)
569	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
570}
571
572// AndroidAppConfig: Configuration metadata of a single Firebase App for
573// Android.
574type AndroidAppConfig struct {
575	// ConfigFileContents: The contents of the JSON configuration file.
576	ConfigFileContents string `json:"configFileContents,omitempty"`
577
578	// ConfigFilename: The filename that the configuration artifact is
579	// typically saved as.
580	// <br>For example: `google-services.json`
581	ConfigFilename string `json:"configFilename,omitempty"`
582
583	// ServerResponse contains the HTTP response code and headers from the
584	// server.
585	googleapi.ServerResponse `json:"-"`
586
587	// ForceSendFields is a list of field names (e.g. "ConfigFileContents")
588	// to unconditionally include in API requests. By default, fields with
589	// empty values are omitted from API requests. However, any non-pointer,
590	// non-interface field appearing in ForceSendFields will be sent to the
591	// server regardless of whether the field is empty or not. This may be
592	// used to include empty fields in Patch requests.
593	ForceSendFields []string `json:"-"`
594
595	// NullFields is a list of field names (e.g. "ConfigFileContents") to
596	// include in API requests with the JSON null value. By default, fields
597	// with empty values are omitted from API requests. However, any field
598	// with an empty value appearing in NullFields will be sent to the
599	// server as null. It is an error if a field in this list has a
600	// non-empty value. This may be used to include null fields in Patch
601	// requests.
602	NullFields []string `json:"-"`
603}
604
605func (s *AndroidAppConfig) MarshalJSON() ([]byte, error) {
606	type NoMethod AndroidAppConfig
607	raw := NoMethod(*s)
608	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
609}
610
611// DefaultResources: The default resources associated with a
612// `FirebaseProject`.
613type DefaultResources struct {
614	// HostingSite: The default Firebase Hosting site name, in the
615	// format:
616	// <br><code><var>projectId</var></code>
617	// <br>Though rare, your `projectId` might already be used as the name
618	// for an
619	// existing Hosting site in another project (learn more about
620	// creating
621	// non-default,
622	// [additional
623	// sites](https://firebase.google.com/docs/hosting/multisites)).
624	// In these cases, your `projectId` is appended with a hyphen then
625	// five
626	// alphanumeric characters to create your default Hosting site name.
627	// For
628	// example, if your `projectId` is `myproject123`, your default Hosting
629	// site
630	// name might be:
631	// <br><code>myproject123-a5c16</code>
632	HostingSite string `json:"hostingSite,omitempty"`
633
634	// LocationId: The ID of the project's default GCP resource location.
635	// The location is one
636	// of the available
637	// [GCP
638	// resource
639	// locations](https://firebase.google.com/docs/projects/location
640	// s). <br>
641	// <br>This field is omitted if the default GCP resource location has
642	// not been
643	// finalized yet. To set your project's default GCP resource
644	// location,
645	// call
646	// [`FinalizeDefaultLocation`](../projects.defaultLocation/finalize)
647	// afte
648	// r you add Firebase services to your project.
649	LocationId string `json:"locationId,omitempty"`
650
651	// RealtimeDatabaseInstance: The default Firebase Realtime Database
652	// instance name, in the
653	// format:
654	// <br><code><var>projectId</var></code>
655	// <br>Though rare, your `projectId` might already be used as the name
656	// for an
657	// existing Realtime Database instance in another project (learn more
658	// about
659	// [database
660	// sharding](https://firebase.google.com/docs/database/us
661	// age/sharding)). In
662	// these cases, your `projectId` is appended with a hyphen then
663	// five
664	// alphanumeric characters to create your default Realtime Database
665	// instance
666	// name. For example, if your `projectId` is `myproject123`, your
667	// default
668	// database instance name might be:
669	// <br><code>myproject123-a5c16</code>
670	RealtimeDatabaseInstance string `json:"realtimeDatabaseInstance,omitempty"`
671
672	// StorageBucket: The default Cloud Storage for Firebase storage bucket,
673	// in the format:
674	// <br><code><var>projectId</var>.appspot.com</code>
675	StorageBucket string `json:"storageBucket,omitempty"`
676
677	// ForceSendFields is a list of field names (e.g. "HostingSite") to
678	// unconditionally include in API requests. By default, fields with
679	// empty values are omitted from API requests. However, any non-pointer,
680	// non-interface field appearing in ForceSendFields will be sent to the
681	// server regardless of whether the field is empty or not. This may be
682	// used to include empty fields in Patch requests.
683	ForceSendFields []string `json:"-"`
684
685	// NullFields is a list of field names (e.g. "HostingSite") to include
686	// in API requests with the JSON null value. By default, fields with
687	// empty values are omitted from API requests. However, any field with
688	// an empty value appearing in NullFields will be sent to the server as
689	// null. It is an error if a field in this list has a non-empty value.
690	// This may be used to include null fields in Patch requests.
691	NullFields []string `json:"-"`
692}
693
694func (s *DefaultResources) MarshalJSON() ([]byte, error) {
695	type NoMethod DefaultResources
696	raw := NoMethod(*s)
697	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
698}
699
700// Empty: A generic empty message that you can re-use to avoid defining
701// duplicated
702// empty messages in your APIs. A typical example is to use it as the
703// request
704// or the response type of an API method. For instance:
705//
706//     service Foo {
707//       rpc Bar(google.protobuf.Empty) returns
708// (google.protobuf.Empty);
709//     }
710//
711// The JSON representation for `Empty` is empty JSON object `{}`.
712type Empty struct {
713	// ServerResponse contains the HTTP response code and headers from the
714	// server.
715	googleapi.ServerResponse `json:"-"`
716}
717
718type FinalizeDefaultLocationRequest struct {
719	// LocationId: The ID of the default GCP resource location for the
720	// Project. The location
721	// must be one of the available
722	// [GCP
723	// resource
724	// locations](https://firebase.google.com/docs/projects/location
725	// s).
726	LocationId string `json:"locationId,omitempty"`
727
728	// ForceSendFields is a list of field names (e.g. "LocationId") to
729	// unconditionally include in API requests. By default, fields with
730	// empty values are omitted from API requests. However, any non-pointer,
731	// non-interface field appearing in ForceSendFields will be sent to the
732	// server regardless of whether the field is empty or not. This may be
733	// used to include empty fields in Patch requests.
734	ForceSendFields []string `json:"-"`
735
736	// NullFields is a list of field names (e.g. "LocationId") to include in
737	// API requests with the JSON null value. By default, fields with empty
738	// values are omitted from API requests. However, any field with an
739	// empty value appearing in NullFields will be sent to the server as
740	// null. It is an error if a field in this list has a non-empty value.
741	// This may be used to include null fields in Patch requests.
742	NullFields []string `json:"-"`
743}
744
745func (s *FinalizeDefaultLocationRequest) MarshalJSON() ([]byte, error) {
746	type NoMethod FinalizeDefaultLocationRequest
747	raw := NoMethod(*s)
748	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
749}
750
751// FirebaseAppInfo: A high-level summary of an App.
752type FirebaseAppInfo struct {
753	// AppId: Immutable. The globally unique, Firebase-assigned identifier
754	// of the App.
755	// <br>
756	// <br>This identifier should be treated as an opaque token, as the
757	// data
758	// format is not specified.
759	AppId string `json:"appId,omitempty"`
760
761	// DisplayName: The user-assigned display name of the Firebase App.
762	DisplayName string `json:"displayName,omitempty"`
763
764	// Name: The fully qualified resource name of the Firebase App, in the
765	// format:
766	// <br><code>projects/<var>projectId</var>/iosApps/<var>appId</va
767	// r></code>
768	// or
769	// <br><code>projects/<var>projectId</var>/androidApps/<var>appId</var>
770	// <
771	// /code>
772	Name string `json:"name,omitempty"`
773
774	// Platform: The platform of the Firebase App.
775	//
776	// Possible values:
777	//   "PLATFORM_UNSPECIFIED" - Unknown state. This is only used for
778	// distinguishing unset values.
779	//   "IOS" - The Firebase App is associated with iOS.
780	//   "ANDROID" - The Firebase App is associated with Android.
781	//   "WEB" - The Firebase App is associated with web.
782	Platform string `json:"platform,omitempty"`
783
784	// ForceSendFields is a list of field names (e.g. "AppId") to
785	// unconditionally include in API requests. By default, fields with
786	// empty values are omitted from API requests. However, any non-pointer,
787	// non-interface field appearing in ForceSendFields will be sent to the
788	// server regardless of whether the field is empty or not. This may be
789	// used to include empty fields in Patch requests.
790	ForceSendFields []string `json:"-"`
791
792	// NullFields is a list of field names (e.g. "AppId") to include in API
793	// requests with the JSON null value. By default, fields with empty
794	// values are omitted from API requests. However, any field with an
795	// empty value appearing in NullFields will be sent to the server as
796	// null. It is an error if a field in this list has a non-empty value.
797	// This may be used to include null fields in Patch requests.
798	NullFields []string `json:"-"`
799}
800
801func (s *FirebaseAppInfo) MarshalJSON() ([]byte, error) {
802	type NoMethod FirebaseAppInfo
803	raw := NoMethod(*s)
804	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
805}
806
807// FirebaseProject: A `FirebaseProject` is the top-level Firebase
808// entity. It is the container for
809// Firebase Apps, Firebase Hosting sites, storage systems (Firebase
810// Realtime
811// Database, Cloud Firestore, Cloud Storage buckets) and other Firebase
812// and
813// Google Cloud Platform (GCP) resources.
814// <br>
815// <br>You can create a new `FirebaseProject` in the
816// [Firebase console](https://console.firebase.google.com/),
817// or you can add Firebase resources to an
818// existing
819// [GCP
820// `Project`](https://cloud.google.com/resource-manager/ref
821// erence/rest/v1/projects)
822// by calling
823// AddFirebase.
824// <br>
825// <br>A `FirebaseProject` is actually also a GCP `Project`, so
826// a
827// `FirebaseProject` uses underlying GCP identifiers (most
828// importantly,
829// `projectId`) as its own for easy interop with GCP APIs.
830type FirebaseProject struct {
831	// DisplayName: The user-assigned display name of the Project.
832	DisplayName string `json:"displayName,omitempty"`
833
834	// Name: The fully qualified resource name of the Project, in the
835	// format:
836	// <br><code>projects/<var>projectId</var></code>
837	Name string `json:"name,omitempty"`
838
839	// ProjectId: Immutable. The globally unique, user-assigned ID of the
840	// Project.
841	ProjectId string `json:"projectId,omitempty"`
842
843	// ProjectNumber: The globally unique, Google-assigned identifier of the
844	// Project.
845	ProjectNumber int64 `json:"projectNumber,omitempty,string"`
846
847	// Resources: The default Firebase resources associated with the
848	// Project.
849	Resources *DefaultResources `json:"resources,omitempty"`
850
851	// ServerResponse contains the HTTP response code and headers from the
852	// server.
853	googleapi.ServerResponse `json:"-"`
854
855	// ForceSendFields is a list of field names (e.g. "DisplayName") to
856	// unconditionally include in API requests. By default, fields with
857	// empty values are omitted from API requests. However, any non-pointer,
858	// non-interface field appearing in ForceSendFields will be sent to the
859	// server regardless of whether the field is empty or not. This may be
860	// used to include empty fields in Patch requests.
861	ForceSendFields []string `json:"-"`
862
863	// NullFields is a list of field names (e.g. "DisplayName") to include
864	// in API requests with the JSON null value. By default, fields with
865	// empty values are omitted from API requests. However, any field with
866	// an empty value appearing in NullFields will be sent to the server as
867	// null. It is an error if a field in this list has a non-empty value.
868	// This may be used to include null fields in Patch requests.
869	NullFields []string `json:"-"`
870}
871
872func (s *FirebaseProject) MarshalJSON() ([]byte, error) {
873	type NoMethod FirebaseProject
874	raw := NoMethod(*s)
875	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
876}
877
878// IosApp: Details of a Firebase App for iOS.
879type IosApp struct {
880	// AppId: Immutable. The globally unique, Firebase-assigned identifier
881	// of the App.
882	// <br>
883	// <br>This identifier should be treated as an opaque token, as the
884	// data
885	// format is not specified.
886	AppId string `json:"appId,omitempty"`
887
888	// AppStoreId: The automatically generated Apple ID assigned to the App
889	// by Apple in the
890	// iOS App Store.
891	AppStoreId string `json:"appStoreId,omitempty"`
892
893	// BundleId: The canonical bundle ID of the iOS App as it would appear
894	// in the iOS
895	// AppStore.
896	BundleId string `json:"bundleId,omitempty"`
897
898	// DisplayName: The user-assigned display name of the App.
899	DisplayName string `json:"displayName,omitempty"`
900
901	// Name: The fully qualified resource name of the App, in the
902	// format:
903	// <br><code>projects/<var>projectId</var>/iosApps/<var>appId</va
904	// r></code>
905	Name string `json:"name,omitempty"`
906
907	// ProjectId: The globally unique, user-assigned ID of the parent
908	// Project for the App.
909	ProjectId string `json:"projectId,omitempty"`
910
911	// ServerResponse contains the HTTP response code and headers from the
912	// server.
913	googleapi.ServerResponse `json:"-"`
914
915	// ForceSendFields is a list of field names (e.g. "AppId") to
916	// unconditionally include in API requests. By default, fields with
917	// empty values are omitted from API requests. However, any non-pointer,
918	// non-interface field appearing in ForceSendFields will be sent to the
919	// server regardless of whether the field is empty or not. This may be
920	// used to include empty fields in Patch requests.
921	ForceSendFields []string `json:"-"`
922
923	// NullFields is a list of field names (e.g. "AppId") to include in API
924	// requests with the JSON null value. By default, fields with empty
925	// values are omitted from API requests. However, any field with an
926	// empty value appearing in NullFields will be sent to the server as
927	// null. It is an error if a field in this list has a non-empty value.
928	// This may be used to include null fields in Patch requests.
929	NullFields []string `json:"-"`
930}
931
932func (s *IosApp) MarshalJSON() ([]byte, error) {
933	type NoMethod IosApp
934	raw := NoMethod(*s)
935	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
936}
937
938// IosAppConfig: Configuration metadata of a single Firebase App for
939// iOS.
940type IosAppConfig struct {
941	// ConfigFileContents: The content of the XML configuration file.
942	ConfigFileContents string `json:"configFileContents,omitempty"`
943
944	// ConfigFilename: The filename that the configuration artifact is
945	// typically saved as.
946	// <br>For example: `GoogleService-Info.plist`
947	ConfigFilename string `json:"configFilename,omitempty"`
948
949	// ServerResponse contains the HTTP response code and headers from the
950	// server.
951	googleapi.ServerResponse `json:"-"`
952
953	// ForceSendFields is a list of field names (e.g. "ConfigFileContents")
954	// to unconditionally include in API requests. By default, fields with
955	// empty values are omitted from API requests. However, any non-pointer,
956	// non-interface field appearing in ForceSendFields will be sent to the
957	// server regardless of whether the field is empty or not. This may be
958	// used to include empty fields in Patch requests.
959	ForceSendFields []string `json:"-"`
960
961	// NullFields is a list of field names (e.g. "ConfigFileContents") to
962	// include in API requests with the JSON null value. By default, fields
963	// with empty values are omitted from API requests. However, any field
964	// with an empty value appearing in NullFields will be sent to the
965	// server as null. It is an error if a field in this list has a
966	// non-empty value. This may be used to include null fields in Patch
967	// requests.
968	NullFields []string `json:"-"`
969}
970
971func (s *IosAppConfig) MarshalJSON() ([]byte, error) {
972	type NoMethod IosAppConfig
973	raw := NoMethod(*s)
974	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
975}
976
977type ListAndroidAppsResponse struct {
978	// Apps: List of each AndroidApp that is in the parent Firebase Project.
979	Apps []*AndroidApp `json:"apps,omitempty"`
980
981	// NextPageToken: If the result list is too large to fit in a single
982	// response, then a token
983	// is returned. If the string is empty, then this response is the last
984	// page of
985	// results.
986	// <br>
987	// <br>This token can be used in a subsequent call to `ListAndroidApps`
988	// to
989	// find the next group of Apps.
990	// <br>
991	// <br>Page tokens are short-lived and should not be persisted.
992	NextPageToken string `json:"nextPageToken,omitempty"`
993
994	// ServerResponse contains the HTTP response code and headers from the
995	// server.
996	googleapi.ServerResponse `json:"-"`
997
998	// ForceSendFields is a list of field names (e.g. "Apps") to
999	// unconditionally include in API requests. By default, fields with
1000	// empty values are omitted from API requests. However, any non-pointer,
1001	// non-interface field appearing in ForceSendFields will be sent to the
1002	// server regardless of whether the field is empty or not. This may be
1003	// used to include empty fields in Patch requests.
1004	ForceSendFields []string `json:"-"`
1005
1006	// NullFields is a list of field names (e.g. "Apps") to include in API
1007	// requests with the JSON null value. By default, fields with empty
1008	// values are omitted from API requests. However, any field with an
1009	// empty value appearing in NullFields will be sent to the server as
1010	// null. It is an error if a field in this list has a non-empty value.
1011	// This may be used to include null fields in Patch requests.
1012	NullFields []string `json:"-"`
1013}
1014
1015func (s *ListAndroidAppsResponse) MarshalJSON() ([]byte, error) {
1016	type NoMethod ListAndroidAppsResponse
1017	raw := NoMethod(*s)
1018	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1019}
1020
1021type ListAvailableLocationsResponse struct {
1022	// Locations: One page of results from a call to
1023	// `ListAvailableLocations`.
1024	Locations []*Location `json:"locations,omitempty"`
1025
1026	// NextPageToken: If the result list is too large to fit in a single
1027	// response, then a token
1028	// is returned. If the string is empty, then this response is the last
1029	// page of
1030	// results and all available locations have been listed.
1031	// <br>
1032	// <br>This token can be used in a subsequent call
1033	// to
1034	// `ListAvailableLocations` to find more locations.
1035	// <br>
1036	// <br>Page tokens are short-lived and should not be persisted.
1037	NextPageToken string `json:"nextPageToken,omitempty"`
1038
1039	// ServerResponse contains the HTTP response code and headers from the
1040	// server.
1041	googleapi.ServerResponse `json:"-"`
1042
1043	// ForceSendFields is a list of field names (e.g. "Locations") to
1044	// unconditionally include in API requests. By default, fields with
1045	// empty values are omitted from API requests. However, any non-pointer,
1046	// non-interface field appearing in ForceSendFields will be sent to the
1047	// server regardless of whether the field is empty or not. This may be
1048	// used to include empty fields in Patch requests.
1049	ForceSendFields []string `json:"-"`
1050
1051	// NullFields is a list of field names (e.g. "Locations") to include in
1052	// API requests with the JSON null value. By default, fields with empty
1053	// values are omitted from API requests. However, any field with an
1054	// empty value appearing in NullFields will be sent to the server as
1055	// null. It is an error if a field in this list has a non-empty value.
1056	// This may be used to include null fields in Patch requests.
1057	NullFields []string `json:"-"`
1058}
1059
1060func (s *ListAvailableLocationsResponse) MarshalJSON() ([]byte, error) {
1061	type NoMethod ListAvailableLocationsResponse
1062	raw := NoMethod(*s)
1063	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1064}
1065
1066type ListAvailableProjectsResponse struct {
1067	// NextPageToken: If the result list is too large to fit in a single
1068	// response, then a token
1069	// is returned. If the string is empty, then this response is the last
1070	// page of
1071	// results.
1072	// <br>
1073	// <br>This token can be used in a subsequent calls to
1074	// `ListAvailableProjects`
1075	// to find the next group of GCP `Projects`.
1076	// <br>
1077	// <br>Page tokens are short-lived and should not be persisted.
1078	NextPageToken string `json:"nextPageToken,omitempty"`
1079
1080	// ProjectInfo: The list of GCP `Projects` which can have Firebase
1081	// resources added to them.
1082	ProjectInfo []*ProjectInfo `json:"projectInfo,omitempty"`
1083
1084	// ServerResponse contains the HTTP response code and headers from the
1085	// server.
1086	googleapi.ServerResponse `json:"-"`
1087
1088	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
1089	// unconditionally include in API requests. By default, fields with
1090	// empty values are omitted from API requests. However, any non-pointer,
1091	// non-interface field appearing in ForceSendFields will be sent to the
1092	// server regardless of whether the field is empty or not. This may be
1093	// used to include empty fields in Patch requests.
1094	ForceSendFields []string `json:"-"`
1095
1096	// NullFields is a list of field names (e.g. "NextPageToken") to include
1097	// in API requests with the JSON null value. By default, fields with
1098	// empty values are omitted from API requests. However, any field with
1099	// an empty value appearing in NullFields will be sent to the server as
1100	// null. It is an error if a field in this list has a non-empty value.
1101	// This may be used to include null fields in Patch requests.
1102	NullFields []string `json:"-"`
1103}
1104
1105func (s *ListAvailableProjectsResponse) MarshalJSON() ([]byte, error) {
1106	type NoMethod ListAvailableProjectsResponse
1107	raw := NoMethod(*s)
1108	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1109}
1110
1111type ListFirebaseProjectsResponse struct {
1112	// NextPageToken: If the result list is too large to fit in a single
1113	// response, then a token
1114	// is returned. If the string is empty, then this response is the last
1115	// page of
1116	// results.
1117	// <br>
1118	// <br>This token can be used in a subsequent calls to
1119	// `ListFirebaseProjects`
1120	// to find the next group of Projects.
1121	// <br>
1122	// <br>Page tokens are short-lived and should not be persisted.
1123	NextPageToken string `json:"nextPageToken,omitempty"`
1124
1125	// Results: One page of the list of Projects that are accessible to the
1126	// caller.
1127	Results []*FirebaseProject `json:"results,omitempty"`
1128
1129	// ServerResponse contains the HTTP response code and headers from the
1130	// server.
1131	googleapi.ServerResponse `json:"-"`
1132
1133	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
1134	// unconditionally include in API requests. By default, fields with
1135	// empty values are omitted from API requests. However, any non-pointer,
1136	// non-interface field appearing in ForceSendFields will be sent to the
1137	// server regardless of whether the field is empty or not. This may be
1138	// used to include empty fields in Patch requests.
1139	ForceSendFields []string `json:"-"`
1140
1141	// NullFields is a list of field names (e.g. "NextPageToken") to include
1142	// in API requests with the JSON null value. By default, fields with
1143	// empty values are omitted from API requests. However, any field with
1144	// an empty value appearing in NullFields will be sent to the server as
1145	// null. It is an error if a field in this list has a non-empty value.
1146	// This may be used to include null fields in Patch requests.
1147	NullFields []string `json:"-"`
1148}
1149
1150func (s *ListFirebaseProjectsResponse) MarshalJSON() ([]byte, error) {
1151	type NoMethod ListFirebaseProjectsResponse
1152	raw := NoMethod(*s)
1153	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1154}
1155
1156type ListIosAppsResponse struct {
1157	// Apps: List of each IosApp that is in the parent Firebase Project.
1158	Apps []*IosApp `json:"apps,omitempty"`
1159
1160	// NextPageToken: If the result list is too large to fit in a single
1161	// response, then a token
1162	// is returned. If the string is empty, then this response is the last
1163	// page of
1164	// results.
1165	// <br>
1166	// <br>This token can be used in a subsequent call to `ListIosApps` to
1167	// find
1168	// the next group of Apps.
1169	// <br>
1170	// <br>Page tokens are short-lived and should not be persisted.
1171	NextPageToken string `json:"nextPageToken,omitempty"`
1172
1173	// ServerResponse contains the HTTP response code and headers from the
1174	// server.
1175	googleapi.ServerResponse `json:"-"`
1176
1177	// ForceSendFields is a list of field names (e.g. "Apps") to
1178	// unconditionally include in API requests. By default, fields with
1179	// empty values are omitted from API requests. However, any non-pointer,
1180	// non-interface field appearing in ForceSendFields will be sent to the
1181	// server regardless of whether the field is empty or not. This may be
1182	// used to include empty fields in Patch requests.
1183	ForceSendFields []string `json:"-"`
1184
1185	// NullFields is a list of field names (e.g. "Apps") to include in API
1186	// requests with the JSON null value. By default, fields with empty
1187	// values are omitted from API requests. However, any field with an
1188	// empty value appearing in NullFields will be sent to the server as
1189	// null. It is an error if a field in this list has a non-empty value.
1190	// This may be used to include null fields in Patch requests.
1191	NullFields []string `json:"-"`
1192}
1193
1194func (s *ListIosAppsResponse) MarshalJSON() ([]byte, error) {
1195	type NoMethod ListIosAppsResponse
1196	raw := NoMethod(*s)
1197	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1198}
1199
1200type ListShaCertificatesResponse struct {
1201	// Certificates: The list of SHA certificates associated with the App.
1202	Certificates []*ShaCertificate `json:"certificates,omitempty"`
1203
1204	// ServerResponse contains the HTTP response code and headers from the
1205	// server.
1206	googleapi.ServerResponse `json:"-"`
1207
1208	// ForceSendFields is a list of field names (e.g. "Certificates") to
1209	// unconditionally include in API requests. By default, fields with
1210	// empty values are omitted from API requests. However, any non-pointer,
1211	// non-interface field appearing in ForceSendFields will be sent to the
1212	// server regardless of whether the field is empty or not. This may be
1213	// used to include empty fields in Patch requests.
1214	ForceSendFields []string `json:"-"`
1215
1216	// NullFields is a list of field names (e.g. "Certificates") to include
1217	// in API requests with the JSON null value. By default, fields with
1218	// empty values are omitted from API requests. However, any field with
1219	// an empty value appearing in NullFields will be sent to the server as
1220	// null. It is an error if a field in this list has a non-empty value.
1221	// This may be used to include null fields in Patch requests.
1222	NullFields []string `json:"-"`
1223}
1224
1225func (s *ListShaCertificatesResponse) MarshalJSON() ([]byte, error) {
1226	type NoMethod ListShaCertificatesResponse
1227	raw := NoMethod(*s)
1228	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1229}
1230
1231type ListWebAppsResponse struct {
1232	// Apps: List of each WebApp that is in the parent Firebase Project.
1233	Apps []*WebApp `json:"apps,omitempty"`
1234
1235	// NextPageToken: If the result list is too large to fit in a single
1236	// response, then a token
1237	// is returned. If the string is empty, then this response is the last
1238	// page of
1239	// results.
1240	// <br>
1241	// <br>This token can be used in a subsequent call to `ListWebApps` to
1242	// find
1243	// the next group of Apps.
1244	// <br>
1245	// <br>Page tokens are short-lived and should not be persisted.
1246	NextPageToken string `json:"nextPageToken,omitempty"`
1247
1248	// ServerResponse contains the HTTP response code and headers from the
1249	// server.
1250	googleapi.ServerResponse `json:"-"`
1251
1252	// ForceSendFields is a list of field names (e.g. "Apps") to
1253	// unconditionally include in API requests. By default, fields with
1254	// empty values are omitted from API requests. However, any non-pointer,
1255	// non-interface field appearing in ForceSendFields will be sent to the
1256	// server regardless of whether the field is empty or not. This may be
1257	// used to include empty fields in Patch requests.
1258	ForceSendFields []string `json:"-"`
1259
1260	// NullFields is a list of field names (e.g. "Apps") to include in API
1261	// requests with the JSON null value. By default, fields with empty
1262	// values are omitted from API requests. However, any field with an
1263	// empty value appearing in NullFields will be sent to the server as
1264	// null. It is an error if a field in this list has a non-empty value.
1265	// This may be used to include null fields in Patch requests.
1266	NullFields []string `json:"-"`
1267}
1268
1269func (s *ListWebAppsResponse) MarshalJSON() ([]byte, error) {
1270	type NoMethod ListWebAppsResponse
1271	raw := NoMethod(*s)
1272	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1273}
1274
1275// Location: A GCP resource location that can be selected for a Project.
1276type Location struct {
1277	// LocationId: The ID of the default GCP resource location. It must be
1278	// one of the
1279	// available
1280	// [GCP
1281	// resource
1282	// locations](https://firebase.google.com/docs/projects/location
1283	// s).
1284	LocationId string `json:"locationId,omitempty"`
1285
1286	// ForceSendFields is a list of field names (e.g. "LocationId") to
1287	// unconditionally include in API requests. By default, fields with
1288	// empty values are omitted from API requests. However, any non-pointer,
1289	// non-interface field appearing in ForceSendFields will be sent to the
1290	// server regardless of whether the field is empty or not. This may be
1291	// used to include empty fields in Patch requests.
1292	ForceSendFields []string `json:"-"`
1293
1294	// NullFields is a list of field names (e.g. "LocationId") to include in
1295	// API requests with the JSON null value. By default, fields with empty
1296	// values are omitted from API requests. However, any field with an
1297	// empty value appearing in NullFields will be sent to the server as
1298	// null. It is an error if a field in this list has a non-empty value.
1299	// This may be used to include null fields in Patch requests.
1300	NullFields []string `json:"-"`
1301}
1302
1303func (s *Location) MarshalJSON() ([]byte, error) {
1304	type NoMethod Location
1305	raw := NoMethod(*s)
1306	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1307}
1308
1309// MessageSet: This is proto2's version of MessageSet.
1310type MessageSet struct {
1311}
1312
1313// Operation: This resource represents a long-running operation that is
1314// the result of a
1315// network API call.
1316type Operation struct {
1317	// Done: If the value is `false`, it means the operation is still in
1318	// progress.
1319	// If `true`, the operation is completed, and either `error` or
1320	// `response` is
1321	// available.
1322	Done bool `json:"done,omitempty"`
1323
1324	// Error: The error result of the operation in case of failure or
1325	// cancellation.
1326	Error *Status `json:"error,omitempty"`
1327
1328	// Metadata: Service-specific metadata associated with the operation.
1329	// It typically
1330	// contains progress information and common metadata such as create
1331	// time.
1332	// Some services might not provide such metadata.  Any method that
1333	// returns a
1334	// long-running operation should document the metadata type, if any.
1335	Metadata googleapi.RawMessage `json:"metadata,omitempty"`
1336
1337	// Name: The server-assigned name, which is only unique within the same
1338	// service that
1339	// originally returns it. If you use the default HTTP mapping,
1340	// the
1341	// `name` should be a resource name ending with
1342	// `operations/{unique_id}`.
1343	Name string `json:"name,omitempty"`
1344
1345	// Response: The normal response of the operation in case of success.
1346	// If the original
1347	// method returns no data on success, such as `Delete`, the response
1348	// is
1349	// `google.protobuf.Empty`.  If the original method is
1350	// standard
1351	// `Get`/`Create`/`Update`, the response should be the resource.  For
1352	// other
1353	// methods, the response should have the type `XxxResponse`, where
1354	// `Xxx`
1355	// is the original method name.  For example, if the original method
1356	// name
1357	// is `TakeSnapshot()`, the inferred response type
1358	// is
1359	// `TakeSnapshotResponse`.
1360	Response googleapi.RawMessage `json:"response,omitempty"`
1361
1362	// ServerResponse contains the HTTP response code and headers from the
1363	// server.
1364	googleapi.ServerResponse `json:"-"`
1365
1366	// ForceSendFields is a list of field names (e.g. "Done") to
1367	// unconditionally include in API requests. By default, fields with
1368	// empty values are omitted from API requests. However, any non-pointer,
1369	// non-interface field appearing in ForceSendFields will be sent to the
1370	// server regardless of whether the field is empty or not. This may be
1371	// used to include empty fields in Patch requests.
1372	ForceSendFields []string `json:"-"`
1373
1374	// NullFields is a list of field names (e.g. "Done") to include in API
1375	// requests with the JSON null value. By default, fields with empty
1376	// values are omitted from API requests. However, any field with an
1377	// empty value appearing in NullFields will be sent to the server as
1378	// null. It is an error if a field in this list has a non-empty value.
1379	// This may be used to include null fields in Patch requests.
1380	NullFields []string `json:"-"`
1381}
1382
1383func (s *Operation) MarshalJSON() ([]byte, error) {
1384	type NoMethod Operation
1385	raw := NoMethod(*s)
1386	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1387}
1388
1389// ProjectInfo: A reference to a Google Cloud Platform (GCP) `Project`.
1390type ProjectInfo struct {
1391	// DisplayName: The user-assigned display name of the GCP `Project`, for
1392	// example:
1393	// <code>My App</code>
1394	DisplayName string `json:"displayName,omitempty"`
1395
1396	// LocationId: The ID of the project's default GCP resource location.
1397	// The location is one
1398	// of the available
1399	// [GCP
1400	// resource
1401	// locations](https://firebase.google.com/docs/projects/location
1402	// s). <br> <br>
1403	// Not all projects will have this field populated. If it is not
1404	// populated, it
1405	// means that the project does not yet have a default GCP resource
1406	// location.
1407	// To set your project's default GCP resource location,
1408	// call
1409	// [`FinalizeDefaultLocation`](../projects.defaultLocation/finalize)
1410	//  after you
1411	// add Firebase resources to your project.
1412	LocationId string `json:"locationId,omitempty"`
1413
1414	// Project: The resource name of the GCP `Project` to which Firebase
1415	// resources can be
1416	// added, in the format:
1417	// <br><code>projects/<var>projectId</var></code>
1418	Project string `json:"project,omitempty"`
1419
1420	// ForceSendFields is a list of field names (e.g. "DisplayName") to
1421	// unconditionally include in API requests. By default, fields with
1422	// empty values are omitted from API requests. However, any non-pointer,
1423	// non-interface field appearing in ForceSendFields will be sent to the
1424	// server regardless of whether the field is empty or not. This may be
1425	// used to include empty fields in Patch requests.
1426	ForceSendFields []string `json:"-"`
1427
1428	// NullFields is a list of field names (e.g. "DisplayName") to include
1429	// in API requests with the JSON null value. By default, fields with
1430	// empty values are omitted from API requests. However, any field with
1431	// an empty value appearing in NullFields will be sent to the server as
1432	// null. It is an error if a field in this list has a non-empty value.
1433	// This may be used to include null fields in Patch requests.
1434	NullFields []string `json:"-"`
1435}
1436
1437func (s *ProjectInfo) MarshalJSON() ([]byte, error) {
1438	type NoMethod ProjectInfo
1439	raw := NoMethod(*s)
1440	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1441}
1442
1443type RemoveAnalyticsRequest struct {
1444	// AnalyticsPropertyId: Optional. The ID of the Google Analytics
1445	// property associated with the
1446	// specified `FirebaseProject`.
1447	// <ul>
1448	// <li>If not set, then the Google Analytics property that is
1449	// currently
1450	// associated with the specified `FirebaseProject` is
1451	// removed.</li>
1452	// <li>If set, and the specified `FirebaseProject` is currently
1453	// associated
1454	// with a <em>different</em> Google Analytics property, then the
1455	// response is a
1456	// `412 Precondition Failed` error.</li>
1457	// </ul>
1458	AnalyticsPropertyId string `json:"analyticsPropertyId,omitempty"`
1459
1460	// ForceSendFields is a list of field names (e.g. "AnalyticsPropertyId")
1461	// to unconditionally include in API requests. By default, fields with
1462	// empty values are omitted from API requests. However, any non-pointer,
1463	// non-interface field appearing in ForceSendFields will be sent to the
1464	// server regardless of whether the field is empty or not. This may be
1465	// used to include empty fields in Patch requests.
1466	ForceSendFields []string `json:"-"`
1467
1468	// NullFields is a list of field names (e.g. "AnalyticsPropertyId") to
1469	// include in API requests with the JSON null value. By default, fields
1470	// with empty values are omitted from API requests. However, any field
1471	// with an empty value appearing in NullFields will be sent to the
1472	// server as null. It is an error if a field in this list has a
1473	// non-empty value. This may be used to include null fields in Patch
1474	// requests.
1475	NullFields []string `json:"-"`
1476}
1477
1478func (s *RemoveAnalyticsRequest) MarshalJSON() ([]byte, error) {
1479	type NoMethod RemoveAnalyticsRequest
1480	raw := NoMethod(*s)
1481	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1482}
1483
1484type SearchFirebaseAppsResponse struct {
1485	// Apps: One page of results from a call to `SearchFirebaseApps`.
1486	Apps []*FirebaseAppInfo `json:"apps,omitempty"`
1487
1488	// NextPageToken: If the result list is too large to fit in a single
1489	// response, then a token
1490	// is returned.
1491	// <br>
1492	// <br>This token can be used in a subsequent calls to
1493	// `SearchFirebaseApps`
1494	// to find the next group of Apps.
1495	// <br>If the string is empty, then this response is the last page of
1496	// results.
1497	// <br>Page tokens are short-lived and should not be persisted.
1498	NextPageToken string `json:"nextPageToken,omitempty"`
1499
1500	// ServerResponse contains the HTTP response code and headers from the
1501	// server.
1502	googleapi.ServerResponse `json:"-"`
1503
1504	// ForceSendFields is a list of field names (e.g. "Apps") to
1505	// unconditionally include in API requests. By default, fields with
1506	// empty values are omitted from API requests. However, any non-pointer,
1507	// non-interface field appearing in ForceSendFields will be sent to the
1508	// server regardless of whether the field is empty or not. This may be
1509	// used to include empty fields in Patch requests.
1510	ForceSendFields []string `json:"-"`
1511
1512	// NullFields is a list of field names (e.g. "Apps") to include in API
1513	// requests with the JSON null value. By default, fields with empty
1514	// values are omitted from API requests. However, any field with an
1515	// empty value appearing in NullFields will be sent to the server as
1516	// null. It is an error if a field in this list has a non-empty value.
1517	// This may be used to include null fields in Patch requests.
1518	NullFields []string `json:"-"`
1519}
1520
1521func (s *SearchFirebaseAppsResponse) MarshalJSON() ([]byte, error) {
1522	type NoMethod SearchFirebaseAppsResponse
1523	raw := NoMethod(*s)
1524	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1525}
1526
1527// ShaCertificate: A SHA-1 or SHA-256 certificate associated with the
1528// AndroidApp.
1529type ShaCertificate struct {
1530	// CertType: The SHA certificate type.
1531	//
1532	// Possible values:
1533	//   "SHA_CERTIFICATE_TYPE_UNSPECIFIED" - Unknown state.  This is only
1534	// used for distinguishing unset values.
1535	//   "SHA_1" - Certificate is a SHA-1 type certificate.
1536	//   "SHA_256" - Certificate is a SHA-256 type certificate.
1537	CertType string `json:"certType,omitempty"`
1538
1539	// Name: The fully qualified resource name of the `sha-key`, in the
1540	// format:
1541	// <br><code>projects/<var>projectId</var>/androidApps/<var>appId
1542	// </var>/sha/<var>shaId</var></code>
1543	Name string `json:"name,omitempty"`
1544
1545	// ShaHash: The certificate hash for the App.
1546	ShaHash string `json:"shaHash,omitempty"`
1547
1548	// ServerResponse contains the HTTP response code and headers from the
1549	// server.
1550	googleapi.ServerResponse `json:"-"`
1551
1552	// ForceSendFields is a list of field names (e.g. "CertType") to
1553	// unconditionally include in API requests. By default, fields with
1554	// empty values are omitted from API requests. However, any non-pointer,
1555	// non-interface field appearing in ForceSendFields will be sent to the
1556	// server regardless of whether the field is empty or not. This may be
1557	// used to include empty fields in Patch requests.
1558	ForceSendFields []string `json:"-"`
1559
1560	// NullFields is a list of field names (e.g. "CertType") to include in
1561	// API requests with the JSON null value. By default, fields with empty
1562	// values are omitted from API requests. However, any field with an
1563	// empty value appearing in NullFields will be sent to the server as
1564	// null. It is an error if a field in this list has a non-empty value.
1565	// This may be used to include null fields in Patch requests.
1566	NullFields []string `json:"-"`
1567}
1568
1569func (s *ShaCertificate) MarshalJSON() ([]byte, error) {
1570	type NoMethod ShaCertificate
1571	raw := NoMethod(*s)
1572	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1573}
1574
1575// Status: The `Status` type defines a logical error model that is
1576// suitable for
1577// different programming environments, including REST APIs and RPC APIs.
1578// It is
1579// used by [gRPC](https://github.com/grpc). Each `Status` message
1580// contains
1581// three pieces of data: error code, error message, and error
1582// details.
1583//
1584// You can find out more about this error model and how to work with it
1585// in the
1586// [API Design Guide](https://cloud.google.com/apis/design/errors).
1587type Status struct {
1588	// Code: The status code, which should be an enum value of
1589	// google.rpc.Code.
1590	Code int64 `json:"code,omitempty"`
1591
1592	// Details: A list of messages that carry the error details.  There is a
1593	// common set of
1594	// message types for APIs to use.
1595	Details []googleapi.RawMessage `json:"details,omitempty"`
1596
1597	// Message: A developer-facing error message, which should be in
1598	// English. Any
1599	// user-facing error message should be localized and sent in
1600	// the
1601	// google.rpc.Status.details field, or localized by the client.
1602	Message string `json:"message,omitempty"`
1603
1604	// ForceSendFields is a list of field names (e.g. "Code") 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. "Code") to include in API
1613	// 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 *Status) MarshalJSON() ([]byte, error) {
1622	type NoMethod Status
1623	raw := NoMethod(*s)
1624	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1625}
1626
1627// StatusProto: Wire-format for a Status object
1628type StatusProto struct {
1629	// CanonicalCode: The canonical error code (see codes.proto) that most
1630	// closely
1631	// corresponds to this status. May be missing.
1632	CanonicalCode int64 `json:"canonicalCode,omitempty"`
1633
1634	// Code: Numeric code drawn from the space specified below. Often, this
1635	// is the
1636	// canonical error space, and code is drawn from
1637	// google3/util/task/codes.proto
1638	Code int64 `json:"code,omitempty"`
1639
1640	// Message: Detail message
1641	Message string `json:"message,omitempty"`
1642
1643	// MessageSet: message_set associates an arbitrary proto message with
1644	// the status.
1645	MessageSet *MessageSet `json:"messageSet,omitempty"`
1646
1647	// Payload: DEPRECATED.
1648	//
1649	// This field was deprecated in 2011 with cl/20297133.  Java support
1650	// for the field was moved to a proto1 backward compatibility class
1651	// in April 2017 with cl/142615857 and cl/154123203.  There was
1652	// never support for this field in Go; if set Go will ignore it.
1653	// C++ stopped setting StatusProto::payload in October 2015 with
1654	// cl/106347055,
1655	// and stopped reading the field in October 2017 with cl/173324114.
1656	//
1657	// In general, newly written code should use only "message_set". If you
1658	// need
1659	// to maintain backward compatibility with code written before
1660	// 3/25/2011, do
1661	// the following:
1662	//
1663	// - During the transition period, either (1) set both "payload" and
1664	//   "message_set", or (2) write the consumer of StatusProto so that it
1665	// can
1666	//   forge a MessageSet object from "payload" if "message_set" is
1667	// missing.
1668	//   The C++ util::Status implementation does (2).
1669	//
1670	// - Once all the consumers are converted to accept "message_set", then
1671	//   remove the use of "payload" on the producer side.
1672	Payload *TypedMessage `json:"payload,omitempty"`
1673
1674	// Space: The following are usually only present when code != 0
1675	// Space to which this status belongs
1676	Space string `json:"space,omitempty"`
1677
1678	// ForceSendFields is a list of field names (e.g. "CanonicalCode") to
1679	// unconditionally include in API requests. By default, fields with
1680	// empty values are omitted from API requests. However, any non-pointer,
1681	// non-interface field appearing in ForceSendFields will be sent to the
1682	// server regardless of whether the field is empty or not. This may be
1683	// used to include empty fields in Patch requests.
1684	ForceSendFields []string `json:"-"`
1685
1686	// NullFields is a list of field names (e.g. "CanonicalCode") to include
1687	// in API requests with the JSON null value. By default, fields with
1688	// empty values are omitted from API requests. However, any field with
1689	// an empty value appearing in NullFields will be sent to the server as
1690	// null. It is an error if a field in this list has a non-empty value.
1691	// This may be used to include null fields in Patch requests.
1692	NullFields []string `json:"-"`
1693}
1694
1695func (s *StatusProto) MarshalJSON() ([]byte, error) {
1696	type NoMethod StatusProto
1697	raw := NoMethod(*s)
1698	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1699}
1700
1701// StreamMapping: A mapping of a Firebase App to a Google Analytics data
1702// stream
1703type StreamMapping struct {
1704	// App: The fully qualified resource name of the Firebase App associated
1705	// with the
1706	// Google Analytics data stream, in the
1707	// format:
1708	// <br><code>projects/<var>projectId</var>/androidApps/<var>appId
1709	// </var></code>
1710	// or
1711	// <code>projects/<var>projectId</var>/iosApps/<var>appI
1712	// d</var></code>
1713	// or
1714	// <code>projects/<var>projectId</var>/webApps/<var>app
1715	// Id</var></code>
1716	App string `json:"app,omitempty"`
1717
1718	// MeasurementId: Applicable for Firebase Web Apps only.<br>
1719	// <br>The unique Google-assigned identifier of the Google Analytics
1720	// web
1721	// stream associated with the Firebase Web App. Firebase SDKs use this
1722	// ID to
1723	// interact with Google Analytics APIs.
1724	// <br>
1725	// <br>Learn more about this ID and Google Analytics web streams in
1726	// the
1727	// [Analytics
1728	// documentation](https://support.google.com/analytics/top
1729	// ic/9303475).
1730	MeasurementId string `json:"measurementId,omitempty"`
1731
1732	// StreamId: The unique Google-assigned identifier of the Google
1733	// Analytics data stream
1734	// associated with the Firebase App.
1735	// <br>
1736	// <br>Learn more about Google Analytics data streams in
1737	// the
1738	// [Analytics
1739	// documentation](https://support.google.com/analytics/ans
1740	// wer/9303323).
1741	StreamId int64 `json:"streamId,omitempty,string"`
1742
1743	// ForceSendFields is a list of field names (e.g. "App") to
1744	// unconditionally include in API requests. By default, fields with
1745	// empty values are omitted from API requests. However, any non-pointer,
1746	// non-interface field appearing in ForceSendFields will be sent to the
1747	// server regardless of whether the field is empty or not. This may be
1748	// used to include empty fields in Patch requests.
1749	ForceSendFields []string `json:"-"`
1750
1751	// NullFields is a list of field names (e.g. "App") to include in API
1752	// requests with the JSON null value. By default, fields with empty
1753	// values are omitted from API requests. However, any field with an
1754	// empty value appearing in NullFields will be sent to the server as
1755	// null. It is an error if a field in this list has a non-empty value.
1756	// This may be used to include null fields in Patch requests.
1757	NullFields []string `json:"-"`
1758}
1759
1760func (s *StreamMapping) MarshalJSON() ([]byte, error) {
1761	type NoMethod StreamMapping
1762	raw := NoMethod(*s)
1763	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1764}
1765
1766// TypedMessage: Message that groups a protocol type_id (as defined by
1767// MessageSet),
1768// with an encoded message of that type.  Its use is similar
1769// to
1770// MessageSet, except it represents a single (type, encoded
1771// message)
1772// instead of a set.
1773//
1774// To fill for known protocol type:
1775//   MyProtocolMsg proto;
1776//   TypedMessage typed_msg;
1777//   typed_msg.set_type_id(MyProtocolMsg::MESSAGE_TYPE_ID);
1778//   proto.AppendToCord(typed_msg.mutable_message());
1779//
1780// To fill for unknown protocol type:
1781//   ProtocolMessage proto;
1782//   TypedMessage typed_msg;
1783//   typed_msg.set_type_id(proto.GetMapper()->type_id());
1784//   proto.AppendToCord(typed_msg.mutable_message());
1785type TypedMessage struct {
1786	// Message: Message bytes.
1787	Message string `json:"message,omitempty"`
1788
1789	// TypeId: Identifier for the type.
1790	TypeId int64 `json:"typeId,omitempty"`
1791
1792	// ForceSendFields is a list of field names (e.g. "Message") to
1793	// unconditionally include in API requests. By default, fields with
1794	// empty values are omitted from API requests. However, any non-pointer,
1795	// non-interface field appearing in ForceSendFields will be sent to the
1796	// server regardless of whether the field is empty or not. This may be
1797	// used to include empty fields in Patch requests.
1798	ForceSendFields []string `json:"-"`
1799
1800	// NullFields is a list of field names (e.g. "Message") to include in
1801	// API requests with the JSON null value. By default, fields with empty
1802	// values are omitted from API requests. However, any field with an
1803	// empty value appearing in NullFields will be sent to the server as
1804	// null. It is an error if a field in this list has a non-empty value.
1805	// This may be used to include null fields in Patch requests.
1806	NullFields []string `json:"-"`
1807}
1808
1809func (s *TypedMessage) MarshalJSON() ([]byte, error) {
1810	type NoMethod TypedMessage
1811	raw := NoMethod(*s)
1812	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1813}
1814
1815// WebApp: Details of a Firebase App for the web.
1816type WebApp struct {
1817	// AppId: Immutable. The globally unique, Firebase-assigned identifier
1818	// of the App.
1819	// <br>
1820	// <br>This identifier should be treated as an opaque token, as the
1821	// data
1822	// format is not specified.
1823	AppId string `json:"appId,omitempty"`
1824
1825	// AppUrls: The fully qualified URLs where the App is hosted.
1826	AppUrls []string `json:"appUrls,omitempty"`
1827
1828	// DisplayName: The user-assigned display name of the App.
1829	DisplayName string `json:"displayName,omitempty"`
1830
1831	// Name: The fully qualified resource name of the App, for
1832	// example:
1833	// <br><code>projects/<var>projectId</var>/webApps/<var>appId</v
1834	// ar></code>
1835	Name string `json:"name,omitempty"`
1836
1837	// ProjectId: The globally unique, user-assigned ID of the parent
1838	// Project for the App.
1839	ProjectId string `json:"projectId,omitempty"`
1840
1841	// ServerResponse contains the HTTP response code and headers from the
1842	// server.
1843	googleapi.ServerResponse `json:"-"`
1844
1845	// ForceSendFields is a list of field names (e.g. "AppId") to
1846	// unconditionally include in API requests. By default, fields with
1847	// empty values are omitted from API requests. However, any non-pointer,
1848	// non-interface field appearing in ForceSendFields will be sent to the
1849	// server regardless of whether the field is empty or not. This may be
1850	// used to include empty fields in Patch requests.
1851	ForceSendFields []string `json:"-"`
1852
1853	// NullFields is a list of field names (e.g. "AppId") to include in API
1854	// requests with the JSON null value. By default, fields with empty
1855	// values are omitted from API requests. However, any field with an
1856	// empty value appearing in NullFields will be sent to the server as
1857	// null. It is an error if a field in this list has a non-empty value.
1858	// This may be used to include null fields in Patch requests.
1859	NullFields []string `json:"-"`
1860}
1861
1862func (s *WebApp) MarshalJSON() ([]byte, error) {
1863	type NoMethod WebApp
1864	raw := NoMethod(*s)
1865	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1866}
1867
1868// WebAppConfig: Configuration metadata of a single Firebase App for the
1869// web.
1870type WebAppConfig struct {
1871	// ApiKey: The API key associated with the web App.
1872	ApiKey string `json:"apiKey,omitempty"`
1873
1874	// AppId: Immutable. The globally unique, Firebase-assigned identifier
1875	// of the App.
1876	AppId string `json:"appId,omitempty"`
1877
1878	// AuthDomain: The domain Firebase Auth configures for OAuth redirects,
1879	// in the format:
1880	// <br><code><var>projectId</var>.firebaseapp.com</code>
1881	AuthDomain string `json:"authDomain,omitempty"`
1882
1883	// DatabaseURL: The default Firebase Realtime Database URL.
1884	DatabaseURL string `json:"databaseURL,omitempty"`
1885
1886	// LocationId: The ID of the project's default GCP resource location.
1887	// The location is one
1888	// of the available
1889	// [GCP
1890	// resource
1891	// locations](https://firebase.google.com/docs/projects/location
1892	// s). <br>
1893	// <br>This field is omitted if the default GCP resource location has
1894	// not been
1895	// finalized yet. To set your project's default GCP resource
1896	// location,
1897	// call
1898	// [`FinalizeDefaultLocation`](../projects.defaultLocation/finalize)
1899	// afte
1900	// r you add Firebase services to your project.
1901	LocationId string `json:"locationId,omitempty"`
1902
1903	// MeasurementId: The unique Google-assigned identifier of the Google
1904	// Analytics web stream
1905	// associated with the Firebase Web App. Firebase SDKs use this ID to
1906	// interact
1907	// with Google Analytics APIs.
1908	// <br>
1909	// <br>This field is only present if the App is linked to a web stream
1910	// in a
1911	// Google Analytics App + Web property. Learn more about this ID and
1912	// Google
1913	// Analytics web streams in the
1914	// [Analytics
1915	// documentation](https://support.google.com/analytics/topic/9
1916	// 303475).
1917	// <br>
1918	// <br>To generate a `measurementId` and link the Web App with a
1919	// Google
1920	// Analytics web stream,
1921	// call
1922	// [`AddGoogleAnalytics`](../../v1beta1/projects/addGoogleAnalytics)
1923	// .
1924	MeasurementId string `json:"measurementId,omitempty"`
1925
1926	// MessagingSenderId: The sender ID for use with Firebase Cloud
1927	// Messaging.
1928	MessagingSenderId string `json:"messagingSenderId,omitempty"`
1929
1930	// ProjectId: Immutable. The globally unique, user-assigned project ID
1931	// of the parent
1932	// Project for the App.
1933	ProjectId string `json:"projectId,omitempty"`
1934
1935	// StorageBucket: The default Cloud Storage for Firebase storage bucket
1936	// name.
1937	StorageBucket string `json:"storageBucket,omitempty"`
1938
1939	// ServerResponse contains the HTTP response code and headers from the
1940	// server.
1941	googleapi.ServerResponse `json:"-"`
1942
1943	// ForceSendFields is a list of field names (e.g. "ApiKey") to
1944	// unconditionally include in API requests. By default, fields with
1945	// empty values are omitted from API requests. However, any non-pointer,
1946	// non-interface field appearing in ForceSendFields will be sent to the
1947	// server regardless of whether the field is empty or not. This may be
1948	// used to include empty fields in Patch requests.
1949	ForceSendFields []string `json:"-"`
1950
1951	// NullFields is a list of field names (e.g. "ApiKey") to include in API
1952	// requests with the JSON null value. By default, fields with empty
1953	// values are omitted from API requests. However, any field with an
1954	// empty value appearing in NullFields will be sent to the server as
1955	// null. It is an error if a field in this list has a non-empty value.
1956	// This may be used to include null fields in Patch requests.
1957	NullFields []string `json:"-"`
1958}
1959
1960func (s *WebAppConfig) MarshalJSON() ([]byte, error) {
1961	type NoMethod WebAppConfig
1962	raw := NoMethod(*s)
1963	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1964}
1965
1966// method id "firebase.availableProjects.list":
1967
1968type AvailableProjectsListCall struct {
1969	s            *Service
1970	urlParams_   gensupport.URLParams
1971	ifNoneMatch_ string
1972	ctx_         context.Context
1973	header_      http.Header
1974}
1975
1976// List: Returns a list of [Google Cloud Platform (GCP)
1977// `Projects`]
1978// (https://cloud.google.com/resource-manager/reference/rest/
1979// v1/projects)
1980// that are available to have Firebase resources added to
1981// them.
1982// <br>
1983// <br>A GCP `Project` will only be returned if:
1984// <ol>
1985//   <li><p>The caller has sufficient
1986//          [Google IAM](https://cloud.google.com/iam) permissions to
1987// call
1988//          AddFirebase.</p></li>
1989//   <li><p>The GCP `Project` is not already a
1990// FirebaseProject.</p></li>
1991//   <li><p>The GCP `Project` is not in an Organization which has
1992// policies
1993//          that prevent Firebase resources from being
1994// added.</p></li>
1995// </ol>
1996func (r *AvailableProjectsService) List() *AvailableProjectsListCall {
1997	c := &AvailableProjectsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
1998	return c
1999}
2000
2001// PageSize sets the optional parameter "pageSize": The maximum number
2002// of GCP `Projects` to return in the response.
2003// <br>
2004// <br>The server may return fewer than this value at its discretion.
2005// If no value is specified (or too large a value is specified), the
2006// server
2007// will impose its own limit.
2008// <br>
2009// <br>This value cannot be negative.
2010func (c *AvailableProjectsListCall) PageSize(pageSize int64) *AvailableProjectsListCall {
2011	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
2012	return c
2013}
2014
2015// PageToken sets the optional parameter "pageToken": Token returned
2016// from a previous call to `ListAvailableProjects`
2017// indicating where in the set of GCP `Projects` to resume listing.
2018func (c *AvailableProjectsListCall) PageToken(pageToken string) *AvailableProjectsListCall {
2019	c.urlParams_.Set("pageToken", pageToken)
2020	return c
2021}
2022
2023// Fields allows partial responses to be retrieved. See
2024// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
2025// for more information.
2026func (c *AvailableProjectsListCall) Fields(s ...googleapi.Field) *AvailableProjectsListCall {
2027	c.urlParams_.Set("fields", googleapi.CombineFields(s))
2028	return c
2029}
2030
2031// IfNoneMatch sets the optional parameter which makes the operation
2032// fail if the object's ETag matches the given value. This is useful for
2033// getting updates only after the object has changed since the last
2034// request. Use googleapi.IsNotModified to check whether the response
2035// error from Do is the result of In-None-Match.
2036func (c *AvailableProjectsListCall) IfNoneMatch(entityTag string) *AvailableProjectsListCall {
2037	c.ifNoneMatch_ = entityTag
2038	return c
2039}
2040
2041// Context sets the context to be used in this call's Do method. Any
2042// pending HTTP request will be aborted if the provided context is
2043// canceled.
2044func (c *AvailableProjectsListCall) Context(ctx context.Context) *AvailableProjectsListCall {
2045	c.ctx_ = ctx
2046	return c
2047}
2048
2049// Header returns an http.Header that can be modified by the caller to
2050// add HTTP headers to the request.
2051func (c *AvailableProjectsListCall) Header() http.Header {
2052	if c.header_ == nil {
2053		c.header_ = make(http.Header)
2054	}
2055	return c.header_
2056}
2057
2058func (c *AvailableProjectsListCall) doRequest(alt string) (*http.Response, error) {
2059	reqHeaders := make(http.Header)
2060	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20190926")
2061	for k, v := range c.header_ {
2062		reqHeaders[k] = v
2063	}
2064	reqHeaders.Set("User-Agent", c.s.userAgent())
2065	if c.ifNoneMatch_ != "" {
2066		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
2067	}
2068	var body io.Reader = nil
2069	c.urlParams_.Set("alt", alt)
2070	c.urlParams_.Set("prettyPrint", "false")
2071	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/availableProjects")
2072	urls += "?" + c.urlParams_.Encode()
2073	req, err := http.NewRequest("GET", urls, body)
2074	if err != nil {
2075		return nil, err
2076	}
2077	req.Header = reqHeaders
2078	return gensupport.SendRequest(c.ctx_, c.s.client, req)
2079}
2080
2081// Do executes the "firebase.availableProjects.list" call.
2082// Exactly one of *ListAvailableProjectsResponse or error will be
2083// non-nil. Any non-2xx status code is an error. Response headers are in
2084// either *ListAvailableProjectsResponse.ServerResponse.Header or (if a
2085// response was returned at all) in error.(*googleapi.Error).Header. Use
2086// googleapi.IsNotModified to check whether the returned error was
2087// because http.StatusNotModified was returned.
2088func (c *AvailableProjectsListCall) Do(opts ...googleapi.CallOption) (*ListAvailableProjectsResponse, error) {
2089	gensupport.SetOptions(c.urlParams_, opts...)
2090	res, err := c.doRequest("json")
2091	if res != nil && res.StatusCode == http.StatusNotModified {
2092		if res.Body != nil {
2093			res.Body.Close()
2094		}
2095		return nil, &googleapi.Error{
2096			Code:   res.StatusCode,
2097			Header: res.Header,
2098		}
2099	}
2100	if err != nil {
2101		return nil, err
2102	}
2103	defer googleapi.CloseBody(res)
2104	if err := googleapi.CheckResponse(res); err != nil {
2105		return nil, err
2106	}
2107	ret := &ListAvailableProjectsResponse{
2108		ServerResponse: googleapi.ServerResponse{
2109			Header:         res.Header,
2110			HTTPStatusCode: res.StatusCode,
2111		},
2112	}
2113	target := &ret
2114	if err := gensupport.DecodeResponse(target, res); err != nil {
2115		return nil, err
2116	}
2117	return ret, nil
2118	// {
2119	//   "description": "Returns a list of [Google Cloud Platform (GCP) `Projects`]\n(https://cloud.google.com/resource-manager/reference/rest/v1/projects)\nthat are available to have Firebase resources added to them.\n\u003cbr\u003e\n\u003cbr\u003eA GCP `Project` will only be returned if:\n\u003col\u003e\n  \u003cli\u003e\u003cp\u003eThe caller has sufficient\n         [Google IAM](https://cloud.google.com/iam) permissions to call\n         AddFirebase.\u003c/p\u003e\u003c/li\u003e\n  \u003cli\u003e\u003cp\u003eThe GCP `Project` is not already a FirebaseProject.\u003c/p\u003e\u003c/li\u003e\n  \u003cli\u003e\u003cp\u003eThe GCP `Project` is not in an Organization which has policies\n         that prevent Firebase resources from being added.\u003c/p\u003e\u003c/li\u003e\n\u003c/ol\u003e",
2120	//   "flatPath": "v1beta1/availableProjects",
2121	//   "httpMethod": "GET",
2122	//   "id": "firebase.availableProjects.list",
2123	//   "parameterOrder": [],
2124	//   "parameters": {
2125	//     "pageSize": {
2126	//       "description": "The maximum number of GCP `Projects` to return in the response.\n\u003cbr\u003e\n\u003cbr\u003eThe server may return fewer than this value at its discretion.\nIf no value is specified (or too large a value is specified), the server\nwill impose its own limit.\n\u003cbr\u003e\n\u003cbr\u003eThis value cannot be negative.",
2127	//       "format": "int32",
2128	//       "location": "query",
2129	//       "type": "integer"
2130	//     },
2131	//     "pageToken": {
2132	//       "description": "Token returned from a previous call to `ListAvailableProjects`\nindicating where in the set of GCP `Projects` to resume listing.",
2133	//       "location": "query",
2134	//       "type": "string"
2135	//     }
2136	//   },
2137	//   "path": "v1beta1/availableProjects",
2138	//   "response": {
2139	//     "$ref": "ListAvailableProjectsResponse"
2140	//   },
2141	//   "scopes": [
2142	//     "https://www.googleapis.com/auth/cloud-platform",
2143	//     "https://www.googleapis.com/auth/cloud-platform.read-only",
2144	//     "https://www.googleapis.com/auth/firebase",
2145	//     "https://www.googleapis.com/auth/firebase.readonly"
2146	//   ]
2147	// }
2148
2149}
2150
2151// Pages invokes f for each page of results.
2152// A non-nil error returned from f will halt the iteration.
2153// The provided context supersedes any context provided to the Context method.
2154func (c *AvailableProjectsListCall) Pages(ctx context.Context, f func(*ListAvailableProjectsResponse) error) error {
2155	c.ctx_ = ctx
2156	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
2157	for {
2158		x, err := c.Do()
2159		if err != nil {
2160			return err
2161		}
2162		if err := f(x); err != nil {
2163			return err
2164		}
2165		if x.NextPageToken == "" {
2166			return nil
2167		}
2168		c.PageToken(x.NextPageToken)
2169	}
2170}
2171
2172// method id "firebase.operations.get":
2173
2174type OperationsGetCall struct {
2175	s            *Service
2176	name         string
2177	urlParams_   gensupport.URLParams
2178	ifNoneMatch_ string
2179	ctx_         context.Context
2180	header_      http.Header
2181}
2182
2183// Get: Gets the latest state of a long-running operation.  Clients can
2184// use this
2185// method to poll the operation result at intervals as recommended by
2186// the API
2187// service.
2188func (r *OperationsService) Get(name string) *OperationsGetCall {
2189	c := &OperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
2190	c.name = name
2191	return c
2192}
2193
2194// Fields allows partial responses to be retrieved. See
2195// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
2196// for more information.
2197func (c *OperationsGetCall) Fields(s ...googleapi.Field) *OperationsGetCall {
2198	c.urlParams_.Set("fields", googleapi.CombineFields(s))
2199	return c
2200}
2201
2202// IfNoneMatch sets the optional parameter which makes the operation
2203// fail if the object's ETag matches the given value. This is useful for
2204// getting updates only after the object has changed since the last
2205// request. Use googleapi.IsNotModified to check whether the response
2206// error from Do is the result of In-None-Match.
2207func (c *OperationsGetCall) IfNoneMatch(entityTag string) *OperationsGetCall {
2208	c.ifNoneMatch_ = entityTag
2209	return c
2210}
2211
2212// Context sets the context to be used in this call's Do method. Any
2213// pending HTTP request will be aborted if the provided context is
2214// canceled.
2215func (c *OperationsGetCall) Context(ctx context.Context) *OperationsGetCall {
2216	c.ctx_ = ctx
2217	return c
2218}
2219
2220// Header returns an http.Header that can be modified by the caller to
2221// add HTTP headers to the request.
2222func (c *OperationsGetCall) Header() http.Header {
2223	if c.header_ == nil {
2224		c.header_ = make(http.Header)
2225	}
2226	return c.header_
2227}
2228
2229func (c *OperationsGetCall) doRequest(alt string) (*http.Response, error) {
2230	reqHeaders := make(http.Header)
2231	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20190926")
2232	for k, v := range c.header_ {
2233		reqHeaders[k] = v
2234	}
2235	reqHeaders.Set("User-Agent", c.s.userAgent())
2236	if c.ifNoneMatch_ != "" {
2237		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
2238	}
2239	var body io.Reader = nil
2240	c.urlParams_.Set("alt", alt)
2241	c.urlParams_.Set("prettyPrint", "false")
2242	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+name}")
2243	urls += "?" + c.urlParams_.Encode()
2244	req, err := http.NewRequest("GET", urls, body)
2245	if err != nil {
2246		return nil, err
2247	}
2248	req.Header = reqHeaders
2249	googleapi.Expand(req.URL, map[string]string{
2250		"name": c.name,
2251	})
2252	return gensupport.SendRequest(c.ctx_, c.s.client, req)
2253}
2254
2255// Do executes the "firebase.operations.get" call.
2256// Exactly one of *Operation or error will be non-nil. Any non-2xx
2257// status code is an error. Response headers are in either
2258// *Operation.ServerResponse.Header or (if a response was returned at
2259// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
2260// to check whether the returned error was because
2261// http.StatusNotModified was returned.
2262func (c *OperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
2263	gensupport.SetOptions(c.urlParams_, opts...)
2264	res, err := c.doRequest("json")
2265	if res != nil && res.StatusCode == http.StatusNotModified {
2266		if res.Body != nil {
2267			res.Body.Close()
2268		}
2269		return nil, &googleapi.Error{
2270			Code:   res.StatusCode,
2271			Header: res.Header,
2272		}
2273	}
2274	if err != nil {
2275		return nil, err
2276	}
2277	defer googleapi.CloseBody(res)
2278	if err := googleapi.CheckResponse(res); err != nil {
2279		return nil, err
2280	}
2281	ret := &Operation{
2282		ServerResponse: googleapi.ServerResponse{
2283			Header:         res.Header,
2284			HTTPStatusCode: res.StatusCode,
2285		},
2286	}
2287	target := &ret
2288	if err := gensupport.DecodeResponse(target, res); err != nil {
2289		return nil, err
2290	}
2291	return ret, nil
2292	// {
2293	//   "description": "Gets the latest state of a long-running operation.  Clients can use this\nmethod to poll the operation result at intervals as recommended by the API\nservice.",
2294	//   "flatPath": "v1beta1/operations/{operationsId}",
2295	//   "httpMethod": "GET",
2296	//   "id": "firebase.operations.get",
2297	//   "parameterOrder": [
2298	//     "name"
2299	//   ],
2300	//   "parameters": {
2301	//     "name": {
2302	//       "description": "The name of the operation resource.",
2303	//       "location": "path",
2304	//       "pattern": "^operations/.+$",
2305	//       "required": true,
2306	//       "type": "string"
2307	//     }
2308	//   },
2309	//   "path": "v1beta1/{+name}",
2310	//   "response": {
2311	//     "$ref": "Operation"
2312	//   },
2313	//   "scopes": [
2314	//     "https://www.googleapis.com/auth/cloud-platform",
2315	//     "https://www.googleapis.com/auth/cloud-platform.read-only",
2316	//     "https://www.googleapis.com/auth/firebase",
2317	//     "https://www.googleapis.com/auth/firebase.readonly"
2318	//   ]
2319	// }
2320
2321}
2322
2323// method id "firebase.projects.addFirebase":
2324
2325type ProjectsAddFirebaseCall struct {
2326	s                  *Service
2327	project            string
2328	addfirebaserequest *AddFirebaseRequest
2329	urlParams_         gensupport.URLParams
2330	ctx_               context.Context
2331	header_            http.Header
2332}
2333
2334// AddFirebase: Adds Firebase resources to the specified
2335// existing
2336// [Google Cloud Platform (GCP)
2337// `Project`]
2338// (https://cloud.google.com/resource-manager/reference/rest/v
2339// 1/projects).
2340// <br>
2341// <br>Since a FirebaseProject is actually also a GCP `Project`,
2342// a
2343// `FirebaseProject` uses underlying GCP identifiers (most
2344// importantly,
2345// the `projectId`) as its own for easy interop with GCP
2346// APIs.
2347// <br>
2348// <br>The result of this call is an
2349// [`Operation`](../../v1beta1/operations).
2350// Poll the `Operation` to track the provisioning process by
2351// calling
2352// GetOperation
2353// until
2354// [`done`](../../v1beta1/operations#Operation.FIELDS.done) is `true`.
2355// When
2356// `done` is `true`, the `Operation` has either succeeded or failed. If
2357// the
2358// `Operation` succeeded,
2359// its
2360// [`response`](../../v1beta1/operations#Operation.FIELDS.response) is
2361// set to
2362// a FirebaseProject; if the `Operation` failed,
2363// its
2364// [`error`](../../v1beta1/operations#Operation.FIELDS.error) is set to
2365// a
2366// google.rpc.Status. The `Operation` is automatically deleted
2367// after
2368// completion, so there is no need to
2369// call
2370// DeleteOperation.
2371// <br>
2372// <br>This method does not modify any billing account information on
2373// the
2374// underlying GCP `Project`.
2375// <br>
2376// <br>To call `AddFirebase`, a member must be an Editor or Owner for
2377// the
2378// existing GCP `Project`. Service accounts cannot call `AddFirebase`.
2379func (r *ProjectsService) AddFirebase(project string, addfirebaserequest *AddFirebaseRequest) *ProjectsAddFirebaseCall {
2380	c := &ProjectsAddFirebaseCall{s: r.s, urlParams_: make(gensupport.URLParams)}
2381	c.project = project
2382	c.addfirebaserequest = addfirebaserequest
2383	return c
2384}
2385
2386// Fields allows partial responses to be retrieved. See
2387// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
2388// for more information.
2389func (c *ProjectsAddFirebaseCall) Fields(s ...googleapi.Field) *ProjectsAddFirebaseCall {
2390	c.urlParams_.Set("fields", googleapi.CombineFields(s))
2391	return c
2392}
2393
2394// Context sets the context to be used in this call's Do method. Any
2395// pending HTTP request will be aborted if the provided context is
2396// canceled.
2397func (c *ProjectsAddFirebaseCall) Context(ctx context.Context) *ProjectsAddFirebaseCall {
2398	c.ctx_ = ctx
2399	return c
2400}
2401
2402// Header returns an http.Header that can be modified by the caller to
2403// add HTTP headers to the request.
2404func (c *ProjectsAddFirebaseCall) Header() http.Header {
2405	if c.header_ == nil {
2406		c.header_ = make(http.Header)
2407	}
2408	return c.header_
2409}
2410
2411func (c *ProjectsAddFirebaseCall) doRequest(alt string) (*http.Response, error) {
2412	reqHeaders := make(http.Header)
2413	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20190926")
2414	for k, v := range c.header_ {
2415		reqHeaders[k] = v
2416	}
2417	reqHeaders.Set("User-Agent", c.s.userAgent())
2418	var body io.Reader = nil
2419	body, err := googleapi.WithoutDataWrapper.JSONReader(c.addfirebaserequest)
2420	if err != nil {
2421		return nil, err
2422	}
2423	reqHeaders.Set("Content-Type", "application/json")
2424	c.urlParams_.Set("alt", alt)
2425	c.urlParams_.Set("prettyPrint", "false")
2426	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+project}:addFirebase")
2427	urls += "?" + c.urlParams_.Encode()
2428	req, err := http.NewRequest("POST", urls, body)
2429	if err != nil {
2430		return nil, err
2431	}
2432	req.Header = reqHeaders
2433	googleapi.Expand(req.URL, map[string]string{
2434		"project": c.project,
2435	})
2436	return gensupport.SendRequest(c.ctx_, c.s.client, req)
2437}
2438
2439// Do executes the "firebase.projects.addFirebase" call.
2440// Exactly one of *Operation or error will be non-nil. Any non-2xx
2441// status code is an error. Response headers are in either
2442// *Operation.ServerResponse.Header or (if a response was returned at
2443// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
2444// to check whether the returned error was because
2445// http.StatusNotModified was returned.
2446func (c *ProjectsAddFirebaseCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
2447	gensupport.SetOptions(c.urlParams_, opts...)
2448	res, err := c.doRequest("json")
2449	if res != nil && res.StatusCode == http.StatusNotModified {
2450		if res.Body != nil {
2451			res.Body.Close()
2452		}
2453		return nil, &googleapi.Error{
2454			Code:   res.StatusCode,
2455			Header: res.Header,
2456		}
2457	}
2458	if err != nil {
2459		return nil, err
2460	}
2461	defer googleapi.CloseBody(res)
2462	if err := googleapi.CheckResponse(res); err != nil {
2463		return nil, err
2464	}
2465	ret := &Operation{
2466		ServerResponse: googleapi.ServerResponse{
2467			Header:         res.Header,
2468			HTTPStatusCode: res.StatusCode,
2469		},
2470	}
2471	target := &ret
2472	if err := gensupport.DecodeResponse(target, res); err != nil {
2473		return nil, err
2474	}
2475	return ret, nil
2476	// {
2477	//   "description": "Adds Firebase resources to the specified existing\n[Google Cloud Platform (GCP) `Project`]\n(https://cloud.google.com/resource-manager/reference/rest/v1/projects).\n\u003cbr\u003e\n\u003cbr\u003eSince a FirebaseProject is actually also a GCP `Project`, a\n`FirebaseProject` uses underlying GCP identifiers (most importantly,\nthe `projectId`) as its own for easy interop with GCP APIs.\n\u003cbr\u003e\n\u003cbr\u003eThe result of this call is an [`Operation`](../../v1beta1/operations).\nPoll the `Operation` to track the provisioning process by calling\nGetOperation until\n[`done`](../../v1beta1/operations#Operation.FIELDS.done) is `true`. When\n`done` is `true`, the `Operation` has either succeeded or failed. If the\n`Operation` succeeded, its\n[`response`](../../v1beta1/operations#Operation.FIELDS.response) is set to\na FirebaseProject; if the `Operation` failed, its\n[`error`](../../v1beta1/operations#Operation.FIELDS.error) is set to a\ngoogle.rpc.Status. The `Operation` is automatically deleted after\ncompletion, so there is no need to call\nDeleteOperation.\n\u003cbr\u003e\n\u003cbr\u003eThis method does not modify any billing account information on the\nunderlying GCP `Project`.\n\u003cbr\u003e\n\u003cbr\u003eTo call `AddFirebase`, a member must be an Editor or Owner for the\nexisting GCP `Project`. Service accounts cannot call `AddFirebase`.",
2478	//   "flatPath": "v1beta1/projects/{projectsId}:addFirebase",
2479	//   "httpMethod": "POST",
2480	//   "id": "firebase.projects.addFirebase",
2481	//   "parameterOrder": [
2482	//     "project"
2483	//   ],
2484	//   "parameters": {
2485	//     "project": {
2486	//       "description": "The resource name of the GCP `Project` to which Firebase resources will be\nadded, in the format:\n\u003cbr\u003e\u003ccode\u003eprojects/\u003cvar\u003eprojectId\u003c/var\u003e\u003c/code\u003e\nAfter calling `AddFirebase`, the\n[`projectId`](https://cloud.google.com/resource-manager/reference/rest/v1/projects#Project.FIELDS.project_id)\nof the GCP `Project` is also the `projectId` of the FirebaseProject.",
2487	//       "location": "path",
2488	//       "pattern": "^projects/[^/]+$",
2489	//       "required": true,
2490	//       "type": "string"
2491	//     }
2492	//   },
2493	//   "path": "v1beta1/{+project}:addFirebase",
2494	//   "request": {
2495	//     "$ref": "AddFirebaseRequest"
2496	//   },
2497	//   "response": {
2498	//     "$ref": "Operation"
2499	//   },
2500	//   "scopes": [
2501	//     "https://www.googleapis.com/auth/cloud-platform",
2502	//     "https://www.googleapis.com/auth/firebase"
2503	//   ]
2504	// }
2505
2506}
2507
2508// method id "firebase.projects.addGoogleAnalytics":
2509
2510type ProjectsAddGoogleAnalyticsCall struct {
2511	s                         *Service
2512	parent                    string
2513	addgoogleanalyticsrequest *AddGoogleAnalyticsRequest
2514	urlParams_                gensupport.URLParams
2515	ctx_                      context.Context
2516	header_                   http.Header
2517}
2518
2519// AddGoogleAnalytics: Links a FirebaseProject with an existing
2520// [Google Analytics
2521// account](http://www.google.com/analytics/).
2522// <br>
2523// <br>Using this call, you can either:
2524// <ul>
2525// <li>Specify an `analyticsAccountId` to provision a new Google
2526// Analytics
2527// property within the specified account and associate the new property
2528// with
2529// your `FirebaseProject`.</li>
2530// <li>Specify an existing `analyticsPropertyId` to associate the
2531// property
2532// with your `FirebaseProject`.</li>
2533// </ul>
2534// <br>
2535// Note that when you call `AddGoogleAnalytics`:
2536// <ol>
2537// <li>The first check determines if any existing data streams in
2538// the
2539// Google Analytics property correspond to any existing Firebase Apps in
2540// your
2541// `FirebaseProject` (based on the `packageName` or `bundleId`
2542// associated with
2543// the data stream). Then, as applicable, the data streams and apps
2544// are
2545// linked. Note that this auto-linking only applies to Android Apps and
2546// iOS
2547// Apps.</li>
2548// <li>If no corresponding data streams are found for your Firebase
2549// Apps,
2550// new data streams are provisioned in the Google Analytics property
2551// for each of your Firebase Apps. Note that a new data stream is
2552// always
2553// provisioned for a Web App even if it was previously associated with
2554// a
2555// data stream in your Analytics property.</li>
2556// </ol>
2557// Learn more about the hierarchy and structure of Google
2558// Analytics
2559// accounts in
2560// the
2561// [Analytics
2562// documentation](https://support.google.com/analytics/ans
2563// wer/9303323).
2564// <br>
2565// <br>The result of this call is an
2566// [`Operation`](../../v1beta1/operations).
2567// Poll the `Operation` to track the provisioning process by
2568// calling
2569// GetOperation
2570// until
2571// [`done`](../../v1beta1/operations#Operation.FIELDS.done) is `true`.
2572// When
2573// `done` is `true`, the `Operation` has either succeeded or failed. If
2574// the
2575// `Operation` succeeded,
2576// its
2577// [`response`](../../v1beta1/operations#Operation.FIELDS.response) is
2578// set to
2579// an AnalyticsDetails; if the `Operation` failed,
2580// its
2581// [`error`](../../v1beta1/operations#Operation.FIELDS.error) is set to
2582// a
2583// google.rpc.Status.
2584// <br>
2585// <br>To call `AddGoogleAnalytics`, a member must be an Owner for
2586// the existing `FirebaseProject` and have the
2587// [`Edit`
2588// permission](https://support.google.com/analytics/answer/2884495)
2589// for the Google Analytics account.
2590// <br>
2591// <br>If a `FirebaseProject` already has Google Analytics enabled, and
2592// you
2593// call `AddGoogleAnalytics` using an `analyticsPropertyId` that's
2594// different
2595// from the currently associated property, then the call will fail.
2596// Analytics
2597// may have already been enabled in the Firebase console or by
2598// specifying
2599// `timeZone` and `regionCode` in the call
2600// to
2601// [`AddFirebase`](../../v1beta1/projects/addFirebase).
2602func (r *ProjectsService) AddGoogleAnalytics(parent string, addgoogleanalyticsrequest *AddGoogleAnalyticsRequest) *ProjectsAddGoogleAnalyticsCall {
2603	c := &ProjectsAddGoogleAnalyticsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
2604	c.parent = parent
2605	c.addgoogleanalyticsrequest = addgoogleanalyticsrequest
2606	return c
2607}
2608
2609// Fields allows partial responses to be retrieved. See
2610// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
2611// for more information.
2612func (c *ProjectsAddGoogleAnalyticsCall) Fields(s ...googleapi.Field) *ProjectsAddGoogleAnalyticsCall {
2613	c.urlParams_.Set("fields", googleapi.CombineFields(s))
2614	return c
2615}
2616
2617// Context sets the context to be used in this call's Do method. Any
2618// pending HTTP request will be aborted if the provided context is
2619// canceled.
2620func (c *ProjectsAddGoogleAnalyticsCall) Context(ctx context.Context) *ProjectsAddGoogleAnalyticsCall {
2621	c.ctx_ = ctx
2622	return c
2623}
2624
2625// Header returns an http.Header that can be modified by the caller to
2626// add HTTP headers to the request.
2627func (c *ProjectsAddGoogleAnalyticsCall) Header() http.Header {
2628	if c.header_ == nil {
2629		c.header_ = make(http.Header)
2630	}
2631	return c.header_
2632}
2633
2634func (c *ProjectsAddGoogleAnalyticsCall) doRequest(alt string) (*http.Response, error) {
2635	reqHeaders := make(http.Header)
2636	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20190926")
2637	for k, v := range c.header_ {
2638		reqHeaders[k] = v
2639	}
2640	reqHeaders.Set("User-Agent", c.s.userAgent())
2641	var body io.Reader = nil
2642	body, err := googleapi.WithoutDataWrapper.JSONReader(c.addgoogleanalyticsrequest)
2643	if err != nil {
2644		return nil, err
2645	}
2646	reqHeaders.Set("Content-Type", "application/json")
2647	c.urlParams_.Set("alt", alt)
2648	c.urlParams_.Set("prettyPrint", "false")
2649	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+parent}:addGoogleAnalytics")
2650	urls += "?" + c.urlParams_.Encode()
2651	req, err := http.NewRequest("POST", urls, body)
2652	if err != nil {
2653		return nil, err
2654	}
2655	req.Header = reqHeaders
2656	googleapi.Expand(req.URL, map[string]string{
2657		"parent": c.parent,
2658	})
2659	return gensupport.SendRequest(c.ctx_, c.s.client, req)
2660}
2661
2662// Do executes the "firebase.projects.addGoogleAnalytics" call.
2663// Exactly one of *Operation or error will be non-nil. Any non-2xx
2664// status code is an error. Response headers are in either
2665// *Operation.ServerResponse.Header or (if a response was returned at
2666// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
2667// to check whether the returned error was because
2668// http.StatusNotModified was returned.
2669func (c *ProjectsAddGoogleAnalyticsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
2670	gensupport.SetOptions(c.urlParams_, opts...)
2671	res, err := c.doRequest("json")
2672	if res != nil && res.StatusCode == http.StatusNotModified {
2673		if res.Body != nil {
2674			res.Body.Close()
2675		}
2676		return nil, &googleapi.Error{
2677			Code:   res.StatusCode,
2678			Header: res.Header,
2679		}
2680	}
2681	if err != nil {
2682		return nil, err
2683	}
2684	defer googleapi.CloseBody(res)
2685	if err := googleapi.CheckResponse(res); err != nil {
2686		return nil, err
2687	}
2688	ret := &Operation{
2689		ServerResponse: googleapi.ServerResponse{
2690			Header:         res.Header,
2691			HTTPStatusCode: res.StatusCode,
2692		},
2693	}
2694	target := &ret
2695	if err := gensupport.DecodeResponse(target, res); err != nil {
2696		return nil, err
2697	}
2698	return ret, nil
2699	// {
2700	//   "description": "Links a FirebaseProject with an existing\n[Google Analytics account](http://www.google.com/analytics/).\n\u003cbr\u003e\n\u003cbr\u003eUsing this call, you can either:\n\u003cul\u003e\n\u003cli\u003eSpecify an `analyticsAccountId` to provision a new Google Analytics\nproperty within the specified account and associate the new property with\nyour `FirebaseProject`.\u003c/li\u003e\n\u003cli\u003eSpecify an existing `analyticsPropertyId` to associate the property\nwith your `FirebaseProject`.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cbr\u003e\nNote that when you call `AddGoogleAnalytics`:\n\u003col\u003e\n\u003cli\u003eThe first check determines if any existing data streams in the\nGoogle Analytics property correspond to any existing Firebase Apps in your\n`FirebaseProject` (based on the `packageName` or `bundleId` associated with\nthe data stream). Then, as applicable, the data streams and apps are\nlinked. Note that this auto-linking only applies to Android Apps and iOS\nApps.\u003c/li\u003e\n\u003cli\u003eIf no corresponding data streams are found for your Firebase Apps,\nnew data streams are provisioned in the Google Analytics property\nfor each of your Firebase Apps. Note that a new data stream is always\nprovisioned for a Web App even if it was previously associated with a\ndata stream in your Analytics property.\u003c/li\u003e\n\u003c/ol\u003e\nLearn more about the hierarchy and structure of Google Analytics\naccounts in the\n[Analytics\ndocumentation](https://support.google.com/analytics/answer/9303323).\n\u003cbr\u003e\n\u003cbr\u003eThe result of this call is an [`Operation`](../../v1beta1/operations).\nPoll the `Operation` to track the provisioning process by calling\nGetOperation until\n[`done`](../../v1beta1/operations#Operation.FIELDS.done) is `true`. When\n`done` is `true`, the `Operation` has either succeeded or failed. If the\n`Operation` succeeded, its\n[`response`](../../v1beta1/operations#Operation.FIELDS.response) is set to\nan AnalyticsDetails; if the `Operation` failed, its\n[`error`](../../v1beta1/operations#Operation.FIELDS.error) is set to a\ngoogle.rpc.Status.\n\u003cbr\u003e\n\u003cbr\u003eTo call `AddGoogleAnalytics`, a member must be an Owner for\nthe existing `FirebaseProject` and have the\n[`Edit` permission](https://support.google.com/analytics/answer/2884495)\nfor the Google Analytics account.\n\u003cbr\u003e\n\u003cbr\u003eIf a `FirebaseProject` already has Google Analytics enabled, and you\ncall `AddGoogleAnalytics` using an `analyticsPropertyId` that's different\nfrom the currently associated property, then the call will fail. Analytics\nmay have already been enabled in the Firebase console or by specifying\n`timeZone` and `regionCode` in the call to\n[`AddFirebase`](../../v1beta1/projects/addFirebase).",
2701	//   "flatPath": "v1beta1/projects/{projectsId}:addGoogleAnalytics",
2702	//   "httpMethod": "POST",
2703	//   "id": "firebase.projects.addGoogleAnalytics",
2704	//   "parameterOrder": [
2705	//     "parent"
2706	//   ],
2707	//   "parameters": {
2708	//     "parent": {
2709	//       "description": "The parent `FirebaseProject` to link to an existing Google Analytics\naccount, in the format:\n\u003cbr\u003e\u003ccode\u003eprojects/\u003cvar\u003eprojectId\u003c/var\u003e\u003c/code\u003e",
2710	//       "location": "path",
2711	//       "pattern": "^projects/[^/]+$",
2712	//       "required": true,
2713	//       "type": "string"
2714	//     }
2715	//   },
2716	//   "path": "v1beta1/{+parent}:addGoogleAnalytics",
2717	//   "request": {
2718	//     "$ref": "AddGoogleAnalyticsRequest"
2719	//   },
2720	//   "response": {
2721	//     "$ref": "Operation"
2722	//   },
2723	//   "scopes": [
2724	//     "https://www.googleapis.com/auth/cloud-platform",
2725	//     "https://www.googleapis.com/auth/firebase"
2726	//   ]
2727	// }
2728
2729}
2730
2731// method id "firebase.projects.get":
2732
2733type ProjectsGetCall struct {
2734	s            *Service
2735	name         string
2736	urlParams_   gensupport.URLParams
2737	ifNoneMatch_ string
2738	ctx_         context.Context
2739	header_      http.Header
2740}
2741
2742// Get: Gets the FirebaseProject identified by the specified resource
2743// name.
2744func (r *ProjectsService) Get(name string) *ProjectsGetCall {
2745	c := &ProjectsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
2746	c.name = name
2747	return c
2748}
2749
2750// Fields allows partial responses to be retrieved. See
2751// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
2752// for more information.
2753func (c *ProjectsGetCall) Fields(s ...googleapi.Field) *ProjectsGetCall {
2754	c.urlParams_.Set("fields", googleapi.CombineFields(s))
2755	return c
2756}
2757
2758// IfNoneMatch sets the optional parameter which makes the operation
2759// fail if the object's ETag matches the given value. This is useful for
2760// getting updates only after the object has changed since the last
2761// request. Use googleapi.IsNotModified to check whether the response
2762// error from Do is the result of In-None-Match.
2763func (c *ProjectsGetCall) IfNoneMatch(entityTag string) *ProjectsGetCall {
2764	c.ifNoneMatch_ = entityTag
2765	return c
2766}
2767
2768// Context sets the context to be used in this call's Do method. Any
2769// pending HTTP request will be aborted if the provided context is
2770// canceled.
2771func (c *ProjectsGetCall) Context(ctx context.Context) *ProjectsGetCall {
2772	c.ctx_ = ctx
2773	return c
2774}
2775
2776// Header returns an http.Header that can be modified by the caller to
2777// add HTTP headers to the request.
2778func (c *ProjectsGetCall) Header() http.Header {
2779	if c.header_ == nil {
2780		c.header_ = make(http.Header)
2781	}
2782	return c.header_
2783}
2784
2785func (c *ProjectsGetCall) doRequest(alt string) (*http.Response, error) {
2786	reqHeaders := make(http.Header)
2787	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20190926")
2788	for k, v := range c.header_ {
2789		reqHeaders[k] = v
2790	}
2791	reqHeaders.Set("User-Agent", c.s.userAgent())
2792	if c.ifNoneMatch_ != "" {
2793		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
2794	}
2795	var body io.Reader = nil
2796	c.urlParams_.Set("alt", alt)
2797	c.urlParams_.Set("prettyPrint", "false")
2798	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+name}")
2799	urls += "?" + c.urlParams_.Encode()
2800	req, err := http.NewRequest("GET", urls, body)
2801	if err != nil {
2802		return nil, err
2803	}
2804	req.Header = reqHeaders
2805	googleapi.Expand(req.URL, map[string]string{
2806		"name": c.name,
2807	})
2808	return gensupport.SendRequest(c.ctx_, c.s.client, req)
2809}
2810
2811// Do executes the "firebase.projects.get" call.
2812// Exactly one of *FirebaseProject or error will be non-nil. Any non-2xx
2813// status code is an error. Response headers are in either
2814// *FirebaseProject.ServerResponse.Header or (if a response was returned
2815// at all) in error.(*googleapi.Error).Header. Use
2816// googleapi.IsNotModified to check whether the returned error was
2817// because http.StatusNotModified was returned.
2818func (c *ProjectsGetCall) Do(opts ...googleapi.CallOption) (*FirebaseProject, error) {
2819	gensupport.SetOptions(c.urlParams_, opts...)
2820	res, err := c.doRequest("json")
2821	if res != nil && res.StatusCode == http.StatusNotModified {
2822		if res.Body != nil {
2823			res.Body.Close()
2824		}
2825		return nil, &googleapi.Error{
2826			Code:   res.StatusCode,
2827			Header: res.Header,
2828		}
2829	}
2830	if err != nil {
2831		return nil, err
2832	}
2833	defer googleapi.CloseBody(res)
2834	if err := googleapi.CheckResponse(res); err != nil {
2835		return nil, err
2836	}
2837	ret := &FirebaseProject{
2838		ServerResponse: googleapi.ServerResponse{
2839			Header:         res.Header,
2840			HTTPStatusCode: res.StatusCode,
2841		},
2842	}
2843	target := &ret
2844	if err := gensupport.DecodeResponse(target, res); err != nil {
2845		return nil, err
2846	}
2847	return ret, nil
2848	// {
2849	//   "description": "Gets the FirebaseProject identified by the specified resource name.",
2850	//   "flatPath": "v1beta1/projects/{projectsId}",
2851	//   "httpMethod": "GET",
2852	//   "id": "firebase.projects.get",
2853	//   "parameterOrder": [
2854	//     "name"
2855	//   ],
2856	//   "parameters": {
2857	//     "name": {
2858	//       "description": "The fully qualified resource name of the Project, in the format:\n\u003cbr\u003e\u003ccode\u003eprojects/\u003cvar\u003eprojectId\u003c/var\u003e\u003c/code\u003e",
2859	//       "location": "path",
2860	//       "pattern": "^projects/[^/]+$",
2861	//       "required": true,
2862	//       "type": "string"
2863	//     }
2864	//   },
2865	//   "path": "v1beta1/{+name}",
2866	//   "response": {
2867	//     "$ref": "FirebaseProject"
2868	//   },
2869	//   "scopes": [
2870	//     "https://www.googleapis.com/auth/cloud-platform",
2871	//     "https://www.googleapis.com/auth/cloud-platform.read-only",
2872	//     "https://www.googleapis.com/auth/firebase",
2873	//     "https://www.googleapis.com/auth/firebase.readonly"
2874	//   ]
2875	// }
2876
2877}
2878
2879// method id "firebase.projects.getAdminSdkConfig":
2880
2881type ProjectsGetAdminSdkConfigCall struct {
2882	s            *Service
2883	name         string
2884	urlParams_   gensupport.URLParams
2885	ifNoneMatch_ string
2886	ctx_         context.Context
2887	header_      http.Header
2888}
2889
2890// GetAdminSdkConfig: Gets the configuration artifact used by servers to
2891// simplify initialization.
2892// <br>
2893// <br>Typically, this configuration is used with the Firebase Admin
2894// SDK
2895// [initializeApp](https://firebase.google.com/docs/admin/setup#initi
2896// alize_the_sdk)
2897// command.
2898func (r *ProjectsService) GetAdminSdkConfig(name string) *ProjectsGetAdminSdkConfigCall {
2899	c := &ProjectsGetAdminSdkConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
2900	c.name = name
2901	return c
2902}
2903
2904// Fields allows partial responses to be retrieved. See
2905// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
2906// for more information.
2907func (c *ProjectsGetAdminSdkConfigCall) Fields(s ...googleapi.Field) *ProjectsGetAdminSdkConfigCall {
2908	c.urlParams_.Set("fields", googleapi.CombineFields(s))
2909	return c
2910}
2911
2912// IfNoneMatch sets the optional parameter which makes the operation
2913// fail if the object's ETag matches the given value. This is useful for
2914// getting updates only after the object has changed since the last
2915// request. Use googleapi.IsNotModified to check whether the response
2916// error from Do is the result of In-None-Match.
2917func (c *ProjectsGetAdminSdkConfigCall) IfNoneMatch(entityTag string) *ProjectsGetAdminSdkConfigCall {
2918	c.ifNoneMatch_ = entityTag
2919	return c
2920}
2921
2922// Context sets the context to be used in this call's Do method. Any
2923// pending HTTP request will be aborted if the provided context is
2924// canceled.
2925func (c *ProjectsGetAdminSdkConfigCall) Context(ctx context.Context) *ProjectsGetAdminSdkConfigCall {
2926	c.ctx_ = ctx
2927	return c
2928}
2929
2930// Header returns an http.Header that can be modified by the caller to
2931// add HTTP headers to the request.
2932func (c *ProjectsGetAdminSdkConfigCall) Header() http.Header {
2933	if c.header_ == nil {
2934		c.header_ = make(http.Header)
2935	}
2936	return c.header_
2937}
2938
2939func (c *ProjectsGetAdminSdkConfigCall) doRequest(alt string) (*http.Response, error) {
2940	reqHeaders := make(http.Header)
2941	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20190926")
2942	for k, v := range c.header_ {
2943		reqHeaders[k] = v
2944	}
2945	reqHeaders.Set("User-Agent", c.s.userAgent())
2946	if c.ifNoneMatch_ != "" {
2947		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
2948	}
2949	var body io.Reader = nil
2950	c.urlParams_.Set("alt", alt)
2951	c.urlParams_.Set("prettyPrint", "false")
2952	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+name}")
2953	urls += "?" + c.urlParams_.Encode()
2954	req, err := http.NewRequest("GET", urls, body)
2955	if err != nil {
2956		return nil, err
2957	}
2958	req.Header = reqHeaders
2959	googleapi.Expand(req.URL, map[string]string{
2960		"name": c.name,
2961	})
2962	return gensupport.SendRequest(c.ctx_, c.s.client, req)
2963}
2964
2965// Do executes the "firebase.projects.getAdminSdkConfig" call.
2966// Exactly one of *AdminSdkConfig or error will be non-nil. Any non-2xx
2967// status code is an error. Response headers are in either
2968// *AdminSdkConfig.ServerResponse.Header or (if a response was returned
2969// at all) in error.(*googleapi.Error).Header. Use
2970// googleapi.IsNotModified to check whether the returned error was
2971// because http.StatusNotModified was returned.
2972func (c *ProjectsGetAdminSdkConfigCall) Do(opts ...googleapi.CallOption) (*AdminSdkConfig, error) {
2973	gensupport.SetOptions(c.urlParams_, opts...)
2974	res, err := c.doRequest("json")
2975	if res != nil && res.StatusCode == http.StatusNotModified {
2976		if res.Body != nil {
2977			res.Body.Close()
2978		}
2979		return nil, &googleapi.Error{
2980			Code:   res.StatusCode,
2981			Header: res.Header,
2982		}
2983	}
2984	if err != nil {
2985		return nil, err
2986	}
2987	defer googleapi.CloseBody(res)
2988	if err := googleapi.CheckResponse(res); err != nil {
2989		return nil, err
2990	}
2991	ret := &AdminSdkConfig{
2992		ServerResponse: googleapi.ServerResponse{
2993			Header:         res.Header,
2994			HTTPStatusCode: res.StatusCode,
2995		},
2996	}
2997	target := &ret
2998	if err := gensupport.DecodeResponse(target, res); err != nil {
2999		return nil, err
3000	}
3001	return ret, nil
3002	// {
3003	//   "description": "Gets the configuration artifact used by servers to simplify initialization.\n\u003cbr\u003e\n\u003cbr\u003eTypically, this configuration is used with the Firebase Admin SDK\n[initializeApp](https://firebase.google.com/docs/admin/setup#initialize_the_sdk)\ncommand.",
3004	//   "flatPath": "v1beta1/projects/{projectsId}/adminSdkConfig",
3005	//   "httpMethod": "GET",
3006	//   "id": "firebase.projects.getAdminSdkConfig",
3007	//   "parameterOrder": [
3008	//     "name"
3009	//   ],
3010	//   "parameters": {
3011	//     "name": {
3012	//       "description": "The fully qualified resource name of the Project, in the format:\n\u003cbr\u003e\u003ccode\u003eprojects/\u003cvar\u003eprojectId\u003c/var\u003e/adminSdkConfig\u003c/code\u003e",
3013	//       "location": "path",
3014	//       "pattern": "^projects/[^/]+/adminSdkConfig$",
3015	//       "required": true,
3016	//       "type": "string"
3017	//     }
3018	//   },
3019	//   "path": "v1beta1/{+name}",
3020	//   "response": {
3021	//     "$ref": "AdminSdkConfig"
3022	//   },
3023	//   "scopes": [
3024	//     "https://www.googleapis.com/auth/cloud-platform",
3025	//     "https://www.googleapis.com/auth/cloud-platform.read-only",
3026	//     "https://www.googleapis.com/auth/firebase",
3027	//     "https://www.googleapis.com/auth/firebase.readonly"
3028	//   ]
3029	// }
3030
3031}
3032
3033// method id "firebase.projects.getAnalyticsDetails":
3034
3035type ProjectsGetAnalyticsDetailsCall struct {
3036	s            *Service
3037	name         string
3038	urlParams_   gensupport.URLParams
3039	ifNoneMatch_ string
3040	ctx_         context.Context
3041	header_      http.Header
3042}
3043
3044// GetAnalyticsDetails: Gets the Google Analytics details currently
3045// associated with a
3046// FirebaseProject.
3047// <br>
3048// <br>If the `FirebaseProject` is not yet linked to Google Analytics,
3049// then
3050// the response to `GetAnalyticsDetails` is NOT_FOUND.
3051func (r *ProjectsService) GetAnalyticsDetails(name string) *ProjectsGetAnalyticsDetailsCall {
3052	c := &ProjectsGetAnalyticsDetailsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
3053	c.name = name
3054	return c
3055}
3056
3057// Fields allows partial responses to be retrieved. See
3058// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
3059// for more information.
3060func (c *ProjectsGetAnalyticsDetailsCall) Fields(s ...googleapi.Field) *ProjectsGetAnalyticsDetailsCall {
3061	c.urlParams_.Set("fields", googleapi.CombineFields(s))
3062	return c
3063}
3064
3065// IfNoneMatch sets the optional parameter which makes the operation
3066// fail if the object's ETag matches the given value. This is useful for
3067// getting updates only after the object has changed since the last
3068// request. Use googleapi.IsNotModified to check whether the response
3069// error from Do is the result of In-None-Match.
3070func (c *ProjectsGetAnalyticsDetailsCall) IfNoneMatch(entityTag string) *ProjectsGetAnalyticsDetailsCall {
3071	c.ifNoneMatch_ = entityTag
3072	return c
3073}
3074
3075// Context sets the context to be used in this call's Do method. Any
3076// pending HTTP request will be aborted if the provided context is
3077// canceled.
3078func (c *ProjectsGetAnalyticsDetailsCall) Context(ctx context.Context) *ProjectsGetAnalyticsDetailsCall {
3079	c.ctx_ = ctx
3080	return c
3081}
3082
3083// Header returns an http.Header that can be modified by the caller to
3084// add HTTP headers to the request.
3085func (c *ProjectsGetAnalyticsDetailsCall) Header() http.Header {
3086	if c.header_ == nil {
3087		c.header_ = make(http.Header)
3088	}
3089	return c.header_
3090}
3091
3092func (c *ProjectsGetAnalyticsDetailsCall) doRequest(alt string) (*http.Response, error) {
3093	reqHeaders := make(http.Header)
3094	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20190926")
3095	for k, v := range c.header_ {
3096		reqHeaders[k] = v
3097	}
3098	reqHeaders.Set("User-Agent", c.s.userAgent())
3099	if c.ifNoneMatch_ != "" {
3100		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
3101	}
3102	var body io.Reader = nil
3103	c.urlParams_.Set("alt", alt)
3104	c.urlParams_.Set("prettyPrint", "false")
3105	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+name}")
3106	urls += "?" + c.urlParams_.Encode()
3107	req, err := http.NewRequest("GET", urls, body)
3108	if err != nil {
3109		return nil, err
3110	}
3111	req.Header = reqHeaders
3112	googleapi.Expand(req.URL, map[string]string{
3113		"name": c.name,
3114	})
3115	return gensupport.SendRequest(c.ctx_, c.s.client, req)
3116}
3117
3118// Do executes the "firebase.projects.getAnalyticsDetails" call.
3119// Exactly one of *AnalyticsDetails or error will be non-nil. Any
3120// non-2xx status code is an error. Response headers are in either
3121// *AnalyticsDetails.ServerResponse.Header or (if a response was
3122// returned at all) in error.(*googleapi.Error).Header. Use
3123// googleapi.IsNotModified to check whether the returned error was
3124// because http.StatusNotModified was returned.
3125func (c *ProjectsGetAnalyticsDetailsCall) Do(opts ...googleapi.CallOption) (*AnalyticsDetails, error) {
3126	gensupport.SetOptions(c.urlParams_, opts...)
3127	res, err := c.doRequest("json")
3128	if res != nil && res.StatusCode == http.StatusNotModified {
3129		if res.Body != nil {
3130			res.Body.Close()
3131		}
3132		return nil, &googleapi.Error{
3133			Code:   res.StatusCode,
3134			Header: res.Header,
3135		}
3136	}
3137	if err != nil {
3138		return nil, err
3139	}
3140	defer googleapi.CloseBody(res)
3141	if err := googleapi.CheckResponse(res); err != nil {
3142		return nil, err
3143	}
3144	ret := &AnalyticsDetails{
3145		ServerResponse: googleapi.ServerResponse{
3146			Header:         res.Header,
3147			HTTPStatusCode: res.StatusCode,
3148		},
3149	}
3150	target := &ret
3151	if err := gensupport.DecodeResponse(target, res); err != nil {
3152		return nil, err
3153	}
3154	return ret, nil
3155	// {
3156	//   "description": "Gets the Google Analytics details currently associated with a\nFirebaseProject.\n\u003cbr\u003e\n\u003cbr\u003eIf the `FirebaseProject` is not yet linked to Google Analytics, then\nthe response to `GetAnalyticsDetails` is NOT_FOUND.",
3157	//   "flatPath": "v1beta1/projects/{projectsId}/analyticsDetails",
3158	//   "httpMethod": "GET",
3159	//   "id": "firebase.projects.getAnalyticsDetails",
3160	//   "parameterOrder": [
3161	//     "name"
3162	//   ],
3163	//   "parameters": {
3164	//     "name": {
3165	//       "description": "The fully qualified resource name, in the format:\n\u003cbr\u003e\u003ccode\u003eprojects/\u003cvar\u003eprojectId\u003c/var\u003e/analyticsDetails\u003c/code\u003e",
3166	//       "location": "path",
3167	//       "pattern": "^projects/[^/]+/analyticsDetails$",
3168	//       "required": true,
3169	//       "type": "string"
3170	//     }
3171	//   },
3172	//   "path": "v1beta1/{+name}",
3173	//   "response": {
3174	//     "$ref": "AnalyticsDetails"
3175	//   },
3176	//   "scopes": [
3177	//     "https://www.googleapis.com/auth/cloud-platform",
3178	//     "https://www.googleapis.com/auth/cloud-platform.read-only",
3179	//     "https://www.googleapis.com/auth/firebase",
3180	//     "https://www.googleapis.com/auth/firebase.readonly"
3181	//   ]
3182	// }
3183
3184}
3185
3186// method id "firebase.projects.list":
3187
3188type ProjectsListCall struct {
3189	s            *Service
3190	urlParams_   gensupport.URLParams
3191	ifNoneMatch_ string
3192	ctx_         context.Context
3193	header_      http.Header
3194}
3195
3196// List: Lists each FirebaseProject accessible to the
3197// caller.
3198// <br>
3199// <br>The elements are returned in no particular order, but they will
3200// be a
3201// consistent view of the Projects when additional requests are made
3202// with a
3203// `pageToken`.
3204// <br>
3205// <br>This method is eventually consistent with Project mutations,
3206// which
3207// means newly provisioned Projects and recent modifications to
3208// existing
3209// Projects might not be reflected in the set of Projects. The list
3210// will
3211// include only ACTIVE Projects.
3212// <br>
3213// <br>Use
3214// GetFirebaseProject
3215// for consistent reads as well as for additional Project details.
3216func (r *ProjectsService) List() *ProjectsListCall {
3217	c := &ProjectsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
3218	return c
3219}
3220
3221// PageSize sets the optional parameter "pageSize": The maximum number
3222// of Projects to return in the response.
3223// <br>
3224// <br>The server may return fewer than this at its discretion.
3225// If no value is specified (or too large a value is specified), the
3226// server
3227// will impose its own limit.
3228// <br>
3229// <br>This value cannot be negative.
3230func (c *ProjectsListCall) PageSize(pageSize int64) *ProjectsListCall {
3231	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
3232	return c
3233}
3234
3235// PageToken sets the optional parameter "pageToken": Token returned
3236// from a previous call to `ListFirebaseProjects` indicating
3237// where in the set of Projects to resume listing.
3238func (c *ProjectsListCall) PageToken(pageToken string) *ProjectsListCall {
3239	c.urlParams_.Set("pageToken", pageToken)
3240	return c
3241}
3242
3243// Fields allows partial responses to be retrieved. See
3244// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
3245// for more information.
3246func (c *ProjectsListCall) Fields(s ...googleapi.Field) *ProjectsListCall {
3247	c.urlParams_.Set("fields", googleapi.CombineFields(s))
3248	return c
3249}
3250
3251// IfNoneMatch sets the optional parameter which makes the operation
3252// fail if the object's ETag matches the given value. This is useful for
3253// getting updates only after the object has changed since the last
3254// request. Use googleapi.IsNotModified to check whether the response
3255// error from Do is the result of In-None-Match.
3256func (c *ProjectsListCall) IfNoneMatch(entityTag string) *ProjectsListCall {
3257	c.ifNoneMatch_ = entityTag
3258	return c
3259}
3260
3261// Context sets the context to be used in this call's Do method. Any
3262// pending HTTP request will be aborted if the provided context is
3263// canceled.
3264func (c *ProjectsListCall) Context(ctx context.Context) *ProjectsListCall {
3265	c.ctx_ = ctx
3266	return c
3267}
3268
3269// Header returns an http.Header that can be modified by the caller to
3270// add HTTP headers to the request.
3271func (c *ProjectsListCall) Header() http.Header {
3272	if c.header_ == nil {
3273		c.header_ = make(http.Header)
3274	}
3275	return c.header_
3276}
3277
3278func (c *ProjectsListCall) doRequest(alt string) (*http.Response, error) {
3279	reqHeaders := make(http.Header)
3280	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20190926")
3281	for k, v := range c.header_ {
3282		reqHeaders[k] = v
3283	}
3284	reqHeaders.Set("User-Agent", c.s.userAgent())
3285	if c.ifNoneMatch_ != "" {
3286		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
3287	}
3288	var body io.Reader = nil
3289	c.urlParams_.Set("alt", alt)
3290	c.urlParams_.Set("prettyPrint", "false")
3291	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/projects")
3292	urls += "?" + c.urlParams_.Encode()
3293	req, err := http.NewRequest("GET", urls, body)
3294	if err != nil {
3295		return nil, err
3296	}
3297	req.Header = reqHeaders
3298	return gensupport.SendRequest(c.ctx_, c.s.client, req)
3299}
3300
3301// Do executes the "firebase.projects.list" call.
3302// Exactly one of *ListFirebaseProjectsResponse or error will be
3303// non-nil. Any non-2xx status code is an error. Response headers are in
3304// either *ListFirebaseProjectsResponse.ServerResponse.Header or (if a
3305// response was returned at all) in error.(*googleapi.Error).Header. Use
3306// googleapi.IsNotModified to check whether the returned error was
3307// because http.StatusNotModified was returned.
3308func (c *ProjectsListCall) Do(opts ...googleapi.CallOption) (*ListFirebaseProjectsResponse, error) {
3309	gensupport.SetOptions(c.urlParams_, opts...)
3310	res, err := c.doRequest("json")
3311	if res != nil && res.StatusCode == http.StatusNotModified {
3312		if res.Body != nil {
3313			res.Body.Close()
3314		}
3315		return nil, &googleapi.Error{
3316			Code:   res.StatusCode,
3317			Header: res.Header,
3318		}
3319	}
3320	if err != nil {
3321		return nil, err
3322	}
3323	defer googleapi.CloseBody(res)
3324	if err := googleapi.CheckResponse(res); err != nil {
3325		return nil, err
3326	}
3327	ret := &ListFirebaseProjectsResponse{
3328		ServerResponse: googleapi.ServerResponse{
3329			Header:         res.Header,
3330			HTTPStatusCode: res.StatusCode,
3331		},
3332	}
3333	target := &ret
3334	if err := gensupport.DecodeResponse(target, res); err != nil {
3335		return nil, err
3336	}
3337	return ret, nil
3338	// {
3339	//   "description": "Lists each FirebaseProject accessible to the caller.\n\u003cbr\u003e\n\u003cbr\u003eThe elements are returned in no particular order, but they will be a\nconsistent view of the Projects when additional requests are made with a\n`pageToken`.\n\u003cbr\u003e\n\u003cbr\u003eThis method is eventually consistent with Project mutations, which\nmeans newly provisioned Projects and recent modifications to existing\nProjects might not be reflected in the set of Projects. The list will\ninclude only ACTIVE Projects.\n\u003cbr\u003e\n\u003cbr\u003eUse\nGetFirebaseProject\nfor consistent reads as well as for additional Project details.",
3340	//   "flatPath": "v1beta1/projects",
3341	//   "httpMethod": "GET",
3342	//   "id": "firebase.projects.list",
3343	//   "parameterOrder": [],
3344	//   "parameters": {
3345	//     "pageSize": {
3346	//       "description": "The maximum number of Projects to return in the response.\n\u003cbr\u003e\n\u003cbr\u003eThe server may return fewer than this at its discretion.\nIf no value is specified (or too large a value is specified), the server\nwill impose its own limit.\n\u003cbr\u003e\n\u003cbr\u003eThis value cannot be negative.",
3347	//       "format": "int32",
3348	//       "location": "query",
3349	//       "type": "integer"
3350	//     },
3351	//     "pageToken": {
3352	//       "description": "Token returned from a previous call to `ListFirebaseProjects` indicating\nwhere in the set of Projects to resume listing.",
3353	//       "location": "query",
3354	//       "type": "string"
3355	//     }
3356	//   },
3357	//   "path": "v1beta1/projects",
3358	//   "response": {
3359	//     "$ref": "ListFirebaseProjectsResponse"
3360	//   },
3361	//   "scopes": [
3362	//     "https://www.googleapis.com/auth/cloud-platform",
3363	//     "https://www.googleapis.com/auth/cloud-platform.read-only",
3364	//     "https://www.googleapis.com/auth/firebase",
3365	//     "https://www.googleapis.com/auth/firebase.readonly"
3366	//   ]
3367	// }
3368
3369}
3370
3371// Pages invokes f for each page of results.
3372// A non-nil error returned from f will halt the iteration.
3373// The provided context supersedes any context provided to the Context method.
3374func (c *ProjectsListCall) Pages(ctx context.Context, f func(*ListFirebaseProjectsResponse) error) error {
3375	c.ctx_ = ctx
3376	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
3377	for {
3378		x, err := c.Do()
3379		if err != nil {
3380			return err
3381		}
3382		if err := f(x); err != nil {
3383			return err
3384		}
3385		if x.NextPageToken == "" {
3386			return nil
3387		}
3388		c.PageToken(x.NextPageToken)
3389	}
3390}
3391
3392// method id "firebase.projects.patch":
3393
3394type ProjectsPatchCall struct {
3395	s               *Service
3396	name            string
3397	firebaseproject *FirebaseProject
3398	urlParams_      gensupport.URLParams
3399	ctx_            context.Context
3400	header_         http.Header
3401}
3402
3403// Patch: Updates the attributes of the FirebaseProject identified by
3404// the
3405// specified resource name.
3406// <br>
3407// <br>All [query parameters](#query-parameters) are required.
3408func (r *ProjectsService) Patch(name string, firebaseproject *FirebaseProject) *ProjectsPatchCall {
3409	c := &ProjectsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
3410	c.name = name
3411	c.firebaseproject = firebaseproject
3412	return c
3413}
3414
3415// UpdateMask sets the optional parameter "updateMask": Specifies which
3416// fields to update.
3417// <br>
3418// <br>If this list is empty, then no state will be updated.
3419// <br>Note that the fields `name`, `project_id`, and `project_number`
3420// are all
3421// immutable.
3422func (c *ProjectsPatchCall) UpdateMask(updateMask string) *ProjectsPatchCall {
3423	c.urlParams_.Set("updateMask", updateMask)
3424	return c
3425}
3426
3427// Fields allows partial responses to be retrieved. See
3428// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
3429// for more information.
3430func (c *ProjectsPatchCall) Fields(s ...googleapi.Field) *ProjectsPatchCall {
3431	c.urlParams_.Set("fields", googleapi.CombineFields(s))
3432	return c
3433}
3434
3435// Context sets the context to be used in this call's Do method. Any
3436// pending HTTP request will be aborted if the provided context is
3437// canceled.
3438func (c *ProjectsPatchCall) Context(ctx context.Context) *ProjectsPatchCall {
3439	c.ctx_ = ctx
3440	return c
3441}
3442
3443// Header returns an http.Header that can be modified by the caller to
3444// add HTTP headers to the request.
3445func (c *ProjectsPatchCall) Header() http.Header {
3446	if c.header_ == nil {
3447		c.header_ = make(http.Header)
3448	}
3449	return c.header_
3450}
3451
3452func (c *ProjectsPatchCall) doRequest(alt string) (*http.Response, error) {
3453	reqHeaders := make(http.Header)
3454	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20190926")
3455	for k, v := range c.header_ {
3456		reqHeaders[k] = v
3457	}
3458	reqHeaders.Set("User-Agent", c.s.userAgent())
3459	var body io.Reader = nil
3460	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firebaseproject)
3461	if err != nil {
3462		return nil, err
3463	}
3464	reqHeaders.Set("Content-Type", "application/json")
3465	c.urlParams_.Set("alt", alt)
3466	c.urlParams_.Set("prettyPrint", "false")
3467	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+name}")
3468	urls += "?" + c.urlParams_.Encode()
3469	req, err := http.NewRequest("PATCH", urls, body)
3470	if err != nil {
3471		return nil, err
3472	}
3473	req.Header = reqHeaders
3474	googleapi.Expand(req.URL, map[string]string{
3475		"name": c.name,
3476	})
3477	return gensupport.SendRequest(c.ctx_, c.s.client, req)
3478}
3479
3480// Do executes the "firebase.projects.patch" call.
3481// Exactly one of *FirebaseProject or error will be non-nil. Any non-2xx
3482// status code is an error. Response headers are in either
3483// *FirebaseProject.ServerResponse.Header or (if a response was returned
3484// at all) in error.(*googleapi.Error).Header. Use
3485// googleapi.IsNotModified to check whether the returned error was
3486// because http.StatusNotModified was returned.
3487func (c *ProjectsPatchCall) Do(opts ...googleapi.CallOption) (*FirebaseProject, error) {
3488	gensupport.SetOptions(c.urlParams_, opts...)
3489	res, err := c.doRequest("json")
3490	if res != nil && res.StatusCode == http.StatusNotModified {
3491		if res.Body != nil {
3492			res.Body.Close()
3493		}
3494		return nil, &googleapi.Error{
3495			Code:   res.StatusCode,
3496			Header: res.Header,
3497		}
3498	}
3499	if err != nil {
3500		return nil, err
3501	}
3502	defer googleapi.CloseBody(res)
3503	if err := googleapi.CheckResponse(res); err != nil {
3504		return nil, err
3505	}
3506	ret := &FirebaseProject{
3507		ServerResponse: googleapi.ServerResponse{
3508			Header:         res.Header,
3509			HTTPStatusCode: res.StatusCode,
3510		},
3511	}
3512	target := &ret
3513	if err := gensupport.DecodeResponse(target, res); err != nil {
3514		return nil, err
3515	}
3516	return ret, nil
3517	// {
3518	//   "description": "Updates the attributes of the FirebaseProject identified by the\nspecified resource name.\n\u003cbr\u003e\n\u003cbr\u003eAll [query parameters](#query-parameters) are required.",
3519	//   "flatPath": "v1beta1/projects/{projectsId}",
3520	//   "httpMethod": "PATCH",
3521	//   "id": "firebase.projects.patch",
3522	//   "parameterOrder": [
3523	//     "name"
3524	//   ],
3525	//   "parameters": {
3526	//     "name": {
3527	//       "description": "The fully qualified resource name of the Project, in the format:\n\u003cbr\u003e\u003ccode\u003eprojects/\u003cvar\u003eprojectId\u003c/var\u003e\u003c/code\u003e",
3528	//       "location": "path",
3529	//       "pattern": "^projects/[^/]+$",
3530	//       "required": true,
3531	//       "type": "string"
3532	//     },
3533	//     "updateMask": {
3534	//       "description": "Specifies which fields to update.\n\u003cbr\u003e\n\u003cbr\u003eIf this list is empty, then no state will be updated.\n\u003cbr\u003eNote that the fields `name`, `project_id`, and `project_number` are all\nimmutable.",
3535	//       "format": "google-fieldmask",
3536	//       "location": "query",
3537	//       "type": "string"
3538	//     }
3539	//   },
3540	//   "path": "v1beta1/{+name}",
3541	//   "request": {
3542	//     "$ref": "FirebaseProject"
3543	//   },
3544	//   "response": {
3545	//     "$ref": "FirebaseProject"
3546	//   },
3547	//   "scopes": [
3548	//     "https://www.googleapis.com/auth/cloud-platform",
3549	//     "https://www.googleapis.com/auth/firebase"
3550	//   ]
3551	// }
3552
3553}
3554
3555// method id "firebase.projects.removeAnalytics":
3556
3557type ProjectsRemoveAnalyticsCall struct {
3558	s                      *Service
3559	parent                 string
3560	removeanalyticsrequest *RemoveAnalyticsRequest
3561	urlParams_             gensupport.URLParams
3562	ctx_                   context.Context
3563	header_                http.Header
3564}
3565
3566// RemoveAnalytics: Unlinks the specified `FirebaseProject` from its
3567// Google Analytics account.
3568// <br>
3569// <br>This call removes the association of the specified
3570// `FirebaseProject`
3571// with its current Google Analytics property. However, this call does
3572// not
3573// delete the Google Analytics resources, such as the Google
3574// Analytics
3575// property or any data streams.
3576// <br>
3577// <br>These resources may be re-associated later to the
3578// `FirebaseProject`
3579// by
3580// calling
3581// [`AddGoogleAnalytics`](../../v1beta1/projects/addGoogleAnal
3582// ytics) and
3583// specifying the same `analyticsPropertyId`. For Android Apps and iOS
3584// Apps,
3585// this call re-links data streams with their corresponding apps.
3586// However,
3587// for Web Apps, this call provisions a <em>new</em> data stream for
3588// each Web
3589// App.
3590// <br>
3591// <br>To call `RemoveAnalytics`, a member must be an Owner for
3592// the `FirebaseProject`.
3593func (r *ProjectsService) RemoveAnalytics(parent string, removeanalyticsrequest *RemoveAnalyticsRequest) *ProjectsRemoveAnalyticsCall {
3594	c := &ProjectsRemoveAnalyticsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
3595	c.parent = parent
3596	c.removeanalyticsrequest = removeanalyticsrequest
3597	return c
3598}
3599
3600// Fields allows partial responses to be retrieved. See
3601// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
3602// for more information.
3603func (c *ProjectsRemoveAnalyticsCall) Fields(s ...googleapi.Field) *ProjectsRemoveAnalyticsCall {
3604	c.urlParams_.Set("fields", googleapi.CombineFields(s))
3605	return c
3606}
3607
3608// Context sets the context to be used in this call's Do method. Any
3609// pending HTTP request will be aborted if the provided context is
3610// canceled.
3611func (c *ProjectsRemoveAnalyticsCall) Context(ctx context.Context) *ProjectsRemoveAnalyticsCall {
3612	c.ctx_ = ctx
3613	return c
3614}
3615
3616// Header returns an http.Header that can be modified by the caller to
3617// add HTTP headers to the request.
3618func (c *ProjectsRemoveAnalyticsCall) Header() http.Header {
3619	if c.header_ == nil {
3620		c.header_ = make(http.Header)
3621	}
3622	return c.header_
3623}
3624
3625func (c *ProjectsRemoveAnalyticsCall) doRequest(alt string) (*http.Response, error) {
3626	reqHeaders := make(http.Header)
3627	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20190926")
3628	for k, v := range c.header_ {
3629		reqHeaders[k] = v
3630	}
3631	reqHeaders.Set("User-Agent", c.s.userAgent())
3632	var body io.Reader = nil
3633	body, err := googleapi.WithoutDataWrapper.JSONReader(c.removeanalyticsrequest)
3634	if err != nil {
3635		return nil, err
3636	}
3637	reqHeaders.Set("Content-Type", "application/json")
3638	c.urlParams_.Set("alt", alt)
3639	c.urlParams_.Set("prettyPrint", "false")
3640	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+parent}:removeAnalytics")
3641	urls += "?" + c.urlParams_.Encode()
3642	req, err := http.NewRequest("POST", urls, body)
3643	if err != nil {
3644		return nil, err
3645	}
3646	req.Header = reqHeaders
3647	googleapi.Expand(req.URL, map[string]string{
3648		"parent": c.parent,
3649	})
3650	return gensupport.SendRequest(c.ctx_, c.s.client, req)
3651}
3652
3653// Do executes the "firebase.projects.removeAnalytics" call.
3654// Exactly one of *Empty or error will be non-nil. Any non-2xx status
3655// code is an error. Response headers are in either
3656// *Empty.ServerResponse.Header or (if a response was returned at all)
3657// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
3658// check whether the returned error was because http.StatusNotModified
3659// was returned.
3660func (c *ProjectsRemoveAnalyticsCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
3661	gensupport.SetOptions(c.urlParams_, opts...)
3662	res, err := c.doRequest("json")
3663	if res != nil && res.StatusCode == http.StatusNotModified {
3664		if res.Body != nil {
3665			res.Body.Close()
3666		}
3667		return nil, &googleapi.Error{
3668			Code:   res.StatusCode,
3669			Header: res.Header,
3670		}
3671	}
3672	if err != nil {
3673		return nil, err
3674	}
3675	defer googleapi.CloseBody(res)
3676	if err := googleapi.CheckResponse(res); err != nil {
3677		return nil, err
3678	}
3679	ret := &Empty{
3680		ServerResponse: googleapi.ServerResponse{
3681			Header:         res.Header,
3682			HTTPStatusCode: res.StatusCode,
3683		},
3684	}
3685	target := &ret
3686	if err := gensupport.DecodeResponse(target, res); err != nil {
3687		return nil, err
3688	}
3689	return ret, nil
3690	// {
3691	//   "description": "Unlinks the specified `FirebaseProject` from its Google Analytics account.\n\u003cbr\u003e\n\u003cbr\u003eThis call removes the association of the specified `FirebaseProject`\nwith its current Google Analytics property. However, this call does not\ndelete the Google Analytics resources, such as the Google Analytics\nproperty or any data streams.\n\u003cbr\u003e\n\u003cbr\u003eThese resources may be re-associated later to the `FirebaseProject` by\ncalling\n[`AddGoogleAnalytics`](../../v1beta1/projects/addGoogleAnalytics) and\nspecifying the same `analyticsPropertyId`. For Android Apps and iOS Apps,\nthis call re-links data streams with their corresponding apps. However,\nfor Web Apps, this call provisions a \u003cem\u003enew\u003c/em\u003e data stream for each Web\nApp.\n\u003cbr\u003e\n\u003cbr\u003eTo call `RemoveAnalytics`, a member must be an Owner for\nthe `FirebaseProject`.",
3692	//   "flatPath": "v1beta1/projects/{projectsId}:removeAnalytics",
3693	//   "httpMethod": "POST",
3694	//   "id": "firebase.projects.removeAnalytics",
3695	//   "parameterOrder": [
3696	//     "parent"
3697	//   ],
3698	//   "parameters": {
3699	//     "parent": {
3700	//       "description": "The parent `FirebaseProject` to unlink from its Google Analytics account,\nin the format:\n\u003cbr\u003e\u003ccode\u003eprojects/\u003cvar\u003eprojectId\u003c/var\u003e\u003c/code\u003e",
3701	//       "location": "path",
3702	//       "pattern": "^projects/[^/]+$",
3703	//       "required": true,
3704	//       "type": "string"
3705	//     }
3706	//   },
3707	//   "path": "v1beta1/{+parent}:removeAnalytics",
3708	//   "request": {
3709	//     "$ref": "RemoveAnalyticsRequest"
3710	//   },
3711	//   "response": {
3712	//     "$ref": "Empty"
3713	//   },
3714	//   "scopes": [
3715	//     "https://www.googleapis.com/auth/cloud-platform"
3716	//   ]
3717	// }
3718
3719}
3720
3721// method id "firebase.projects.searchApps":
3722
3723type ProjectsSearchAppsCall struct {
3724	s            *Service
3725	parent       string
3726	urlParams_   gensupport.URLParams
3727	ifNoneMatch_ string
3728	ctx_         context.Context
3729	header_      http.Header
3730}
3731
3732// SearchApps: A convenience method that lists all available Apps for
3733// the specified
3734// FirebaseProject.
3735// <br>
3736// <br>Typically, interaction with an App should be done using
3737// the
3738// platform-specific service, but some tool use-cases require a summary
3739// of all
3740// known Apps (such as for App selector interfaces).
3741func (r *ProjectsService) SearchApps(parent string) *ProjectsSearchAppsCall {
3742	c := &ProjectsSearchAppsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
3743	c.parent = parent
3744	return c
3745}
3746
3747// PageSize sets the optional parameter "pageSize": The maximum number
3748// of Apps to return in the response.
3749// <br>
3750// <br>The server may return fewer than this value at its discretion.
3751// If no value is specified (or too large a value is specified), then
3752// the
3753// server will impose its own limit.
3754// <br>
3755// <br>This value cannot be negative.
3756func (c *ProjectsSearchAppsCall) PageSize(pageSize int64) *ProjectsSearchAppsCall {
3757	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
3758	return c
3759}
3760
3761// PageToken sets the optional parameter "pageToken": Token returned
3762// from a previous call to `SearchFirebaseApps` indicating
3763// where in the set of Apps to resume listing.
3764func (c *ProjectsSearchAppsCall) PageToken(pageToken string) *ProjectsSearchAppsCall {
3765	c.urlParams_.Set("pageToken", pageToken)
3766	return c
3767}
3768
3769// Fields allows partial responses to be retrieved. See
3770// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
3771// for more information.
3772func (c *ProjectsSearchAppsCall) Fields(s ...googleapi.Field) *ProjectsSearchAppsCall {
3773	c.urlParams_.Set("fields", googleapi.CombineFields(s))
3774	return c
3775}
3776
3777// IfNoneMatch sets the optional parameter which makes the operation
3778// fail if the object's ETag matches the given value. This is useful for
3779// getting updates only after the object has changed since the last
3780// request. Use googleapi.IsNotModified to check whether the response
3781// error from Do is the result of In-None-Match.
3782func (c *ProjectsSearchAppsCall) IfNoneMatch(entityTag string) *ProjectsSearchAppsCall {
3783	c.ifNoneMatch_ = entityTag
3784	return c
3785}
3786
3787// Context sets the context to be used in this call's Do method. Any
3788// pending HTTP request will be aborted if the provided context is
3789// canceled.
3790func (c *ProjectsSearchAppsCall) Context(ctx context.Context) *ProjectsSearchAppsCall {
3791	c.ctx_ = ctx
3792	return c
3793}
3794
3795// Header returns an http.Header that can be modified by the caller to
3796// add HTTP headers to the request.
3797func (c *ProjectsSearchAppsCall) Header() http.Header {
3798	if c.header_ == nil {
3799		c.header_ = make(http.Header)
3800	}
3801	return c.header_
3802}
3803
3804func (c *ProjectsSearchAppsCall) doRequest(alt string) (*http.Response, error) {
3805	reqHeaders := make(http.Header)
3806	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20190926")
3807	for k, v := range c.header_ {
3808		reqHeaders[k] = v
3809	}
3810	reqHeaders.Set("User-Agent", c.s.userAgent())
3811	if c.ifNoneMatch_ != "" {
3812		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
3813	}
3814	var body io.Reader = nil
3815	c.urlParams_.Set("alt", alt)
3816	c.urlParams_.Set("prettyPrint", "false")
3817	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+parent}:searchApps")
3818	urls += "?" + c.urlParams_.Encode()
3819	req, err := http.NewRequest("GET", urls, body)
3820	if err != nil {
3821		return nil, err
3822	}
3823	req.Header = reqHeaders
3824	googleapi.Expand(req.URL, map[string]string{
3825		"parent": c.parent,
3826	})
3827	return gensupport.SendRequest(c.ctx_, c.s.client, req)
3828}
3829
3830// Do executes the "firebase.projects.searchApps" call.
3831// Exactly one of *SearchFirebaseAppsResponse or error will be non-nil.
3832// Any non-2xx status code is an error. Response headers are in either
3833// *SearchFirebaseAppsResponse.ServerResponse.Header or (if a response
3834// was returned at all) in error.(*googleapi.Error).Header. Use
3835// googleapi.IsNotModified to check whether the returned error was
3836// because http.StatusNotModified was returned.
3837func (c *ProjectsSearchAppsCall) Do(opts ...googleapi.CallOption) (*SearchFirebaseAppsResponse, error) {
3838	gensupport.SetOptions(c.urlParams_, opts...)
3839	res, err := c.doRequest("json")
3840	if res != nil && res.StatusCode == http.StatusNotModified {
3841		if res.Body != nil {
3842			res.Body.Close()
3843		}
3844		return nil, &googleapi.Error{
3845			Code:   res.StatusCode,
3846			Header: res.Header,
3847		}
3848	}
3849	if err != nil {
3850		return nil, err
3851	}
3852	defer googleapi.CloseBody(res)
3853	if err := googleapi.CheckResponse(res); err != nil {
3854		return nil, err
3855	}
3856	ret := &SearchFirebaseAppsResponse{
3857		ServerResponse: googleapi.ServerResponse{
3858			Header:         res.Header,
3859			HTTPStatusCode: res.StatusCode,
3860		},
3861	}
3862	target := &ret
3863	if err := gensupport.DecodeResponse(target, res); err != nil {
3864		return nil, err
3865	}
3866	return ret, nil
3867	// {
3868	//   "description": "A convenience method that lists all available Apps for the specified\nFirebaseProject.\n\u003cbr\u003e\n\u003cbr\u003eTypically, interaction with an App should be done using the\nplatform-specific service, but some tool use-cases require a summary of all\nknown Apps (such as for App selector interfaces).",
3869	//   "flatPath": "v1beta1/projects/{projectsId}:searchApps",
3870	//   "httpMethod": "GET",
3871	//   "id": "firebase.projects.searchApps",
3872	//   "parameterOrder": [
3873	//     "parent"
3874	//   ],
3875	//   "parameters": {
3876	//     "pageSize": {
3877	//       "description": "The maximum number of Apps to return in the response.\n\u003cbr\u003e\n\u003cbr\u003eThe server may return fewer than this value at its discretion.\nIf no value is specified (or too large a value is specified), then the\nserver will impose its own limit.\n\u003cbr\u003e\n\u003cbr\u003eThis value cannot be negative.",
3878	//       "format": "int32",
3879	//       "location": "query",
3880	//       "type": "integer"
3881	//     },
3882	//     "pageToken": {
3883	//       "description": "Token returned from a previous call to `SearchFirebaseApps` indicating\nwhere in the set of Apps to resume listing.",
3884	//       "location": "query",
3885	//       "type": "string"
3886	//     },
3887	//     "parent": {
3888	//       "description": "The parent Project for which to list Apps, in the format:\n\u003cbr\u003e\u003ccode\u003eprojects/\u003cvar\u003eprojectId\u003c/var\u003e\u003c/code\u003e",
3889	//       "location": "path",
3890	//       "pattern": "^projects/[^/]+$",
3891	//       "required": true,
3892	//       "type": "string"
3893	//     }
3894	//   },
3895	//   "path": "v1beta1/{+parent}:searchApps",
3896	//   "response": {
3897	//     "$ref": "SearchFirebaseAppsResponse"
3898	//   },
3899	//   "scopes": [
3900	//     "https://www.googleapis.com/auth/cloud-platform",
3901	//     "https://www.googleapis.com/auth/cloud-platform.read-only",
3902	//     "https://www.googleapis.com/auth/firebase",
3903	//     "https://www.googleapis.com/auth/firebase.readonly"
3904	//   ]
3905	// }
3906
3907}
3908
3909// Pages invokes f for each page of results.
3910// A non-nil error returned from f will halt the iteration.
3911// The provided context supersedes any context provided to the Context method.
3912func (c *ProjectsSearchAppsCall) Pages(ctx context.Context, f func(*SearchFirebaseAppsResponse) error) error {
3913	c.ctx_ = ctx
3914	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
3915	for {
3916		x, err := c.Do()
3917		if err != nil {
3918			return err
3919		}
3920		if err := f(x); err != nil {
3921			return err
3922		}
3923		if x.NextPageToken == "" {
3924			return nil
3925		}
3926		c.PageToken(x.NextPageToken)
3927	}
3928}
3929
3930// method id "firebase.projects.androidApps.create":
3931
3932type ProjectsAndroidAppsCreateCall struct {
3933	s          *Service
3934	parent     string
3935	androidapp *AndroidApp
3936	urlParams_ gensupport.URLParams
3937	ctx_       context.Context
3938	header_    http.Header
3939}
3940
3941// Create: Requests that a new AndroidApp be created.
3942// <br>
3943// <br>The result of this call is an `Operation` which can be used to
3944// track
3945// the provisioning process. The `Operation` is automatically deleted
3946// after
3947// completion, so there is no need to call `DeleteOperation`.
3948func (r *ProjectsAndroidAppsService) Create(parent string, androidapp *AndroidApp) *ProjectsAndroidAppsCreateCall {
3949	c := &ProjectsAndroidAppsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
3950	c.parent = parent
3951	c.androidapp = androidapp
3952	return c
3953}
3954
3955// Fields allows partial responses to be retrieved. See
3956// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
3957// for more information.
3958func (c *ProjectsAndroidAppsCreateCall) Fields(s ...googleapi.Field) *ProjectsAndroidAppsCreateCall {
3959	c.urlParams_.Set("fields", googleapi.CombineFields(s))
3960	return c
3961}
3962
3963// Context sets the context to be used in this call's Do method. Any
3964// pending HTTP request will be aborted if the provided context is
3965// canceled.
3966func (c *ProjectsAndroidAppsCreateCall) Context(ctx context.Context) *ProjectsAndroidAppsCreateCall {
3967	c.ctx_ = ctx
3968	return c
3969}
3970
3971// Header returns an http.Header that can be modified by the caller to
3972// add HTTP headers to the request.
3973func (c *ProjectsAndroidAppsCreateCall) Header() http.Header {
3974	if c.header_ == nil {
3975		c.header_ = make(http.Header)
3976	}
3977	return c.header_
3978}
3979
3980func (c *ProjectsAndroidAppsCreateCall) doRequest(alt string) (*http.Response, error) {
3981	reqHeaders := make(http.Header)
3982	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20190926")
3983	for k, v := range c.header_ {
3984		reqHeaders[k] = v
3985	}
3986	reqHeaders.Set("User-Agent", c.s.userAgent())
3987	var body io.Reader = nil
3988	body, err := googleapi.WithoutDataWrapper.JSONReader(c.androidapp)
3989	if err != nil {
3990		return nil, err
3991	}
3992	reqHeaders.Set("Content-Type", "application/json")
3993	c.urlParams_.Set("alt", alt)
3994	c.urlParams_.Set("prettyPrint", "false")
3995	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+parent}/androidApps")
3996	urls += "?" + c.urlParams_.Encode()
3997	req, err := http.NewRequest("POST", urls, body)
3998	if err != nil {
3999		return nil, err
4000	}
4001	req.Header = reqHeaders
4002	googleapi.Expand(req.URL, map[string]string{
4003		"parent": c.parent,
4004	})
4005	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4006}
4007
4008// Do executes the "firebase.projects.androidApps.create" call.
4009// Exactly one of *Operation or error will be non-nil. Any non-2xx
4010// status code is an error. Response headers are in either
4011// *Operation.ServerResponse.Header or (if a response was returned at
4012// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
4013// to check whether the returned error was because
4014// http.StatusNotModified was returned.
4015func (c *ProjectsAndroidAppsCreateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
4016	gensupport.SetOptions(c.urlParams_, opts...)
4017	res, err := c.doRequest("json")
4018	if res != nil && res.StatusCode == http.StatusNotModified {
4019		if res.Body != nil {
4020			res.Body.Close()
4021		}
4022		return nil, &googleapi.Error{
4023			Code:   res.StatusCode,
4024			Header: res.Header,
4025		}
4026	}
4027	if err != nil {
4028		return nil, err
4029	}
4030	defer googleapi.CloseBody(res)
4031	if err := googleapi.CheckResponse(res); err != nil {
4032		return nil, err
4033	}
4034	ret := &Operation{
4035		ServerResponse: googleapi.ServerResponse{
4036			Header:         res.Header,
4037			HTTPStatusCode: res.StatusCode,
4038		},
4039	}
4040	target := &ret
4041	if err := gensupport.DecodeResponse(target, res); err != nil {
4042		return nil, err
4043	}
4044	return ret, nil
4045	// {
4046	//   "description": "Requests that a new AndroidApp be created.\n\u003cbr\u003e\n\u003cbr\u003eThe result of this call is an `Operation` which can be used to track\nthe provisioning process. The `Operation` is automatically deleted after\ncompletion, so there is no need to call `DeleteOperation`.",
4047	//   "flatPath": "v1beta1/projects/{projectsId}/androidApps",
4048	//   "httpMethod": "POST",
4049	//   "id": "firebase.projects.androidApps.create",
4050	//   "parameterOrder": [
4051	//     "parent"
4052	//   ],
4053	//   "parameters": {
4054	//     "parent": {
4055	//       "description": "The parent Project for which to list Apps, in the format:\n\u003cbr\u003e\u003ccode\u003eprojects/\u003cvar\u003eprojectId\u003c/var\u003e\u003c/code\u003e",
4056	//       "location": "path",
4057	//       "pattern": "^projects/[^/]+$",
4058	//       "required": true,
4059	//       "type": "string"
4060	//     }
4061	//   },
4062	//   "path": "v1beta1/{+parent}/androidApps",
4063	//   "request": {
4064	//     "$ref": "AndroidApp"
4065	//   },
4066	//   "response": {
4067	//     "$ref": "Operation"
4068	//   },
4069	//   "scopes": [
4070	//     "https://www.googleapis.com/auth/cloud-platform",
4071	//     "https://www.googleapis.com/auth/firebase"
4072	//   ]
4073	// }
4074
4075}
4076
4077// method id "firebase.projects.androidApps.get":
4078
4079type ProjectsAndroidAppsGetCall struct {
4080	s            *Service
4081	nameid       string
4082	urlParams_   gensupport.URLParams
4083	ifNoneMatch_ string
4084	ctx_         context.Context
4085	header_      http.Header
4086}
4087
4088// Get: Gets the AndroidApp identified by the specified resource name.
4089func (r *ProjectsAndroidAppsService) Get(nameid string) *ProjectsAndroidAppsGetCall {
4090	c := &ProjectsAndroidAppsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4091	c.nameid = nameid
4092	return c
4093}
4094
4095// Fields allows partial responses to be retrieved. See
4096// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4097// for more information.
4098func (c *ProjectsAndroidAppsGetCall) Fields(s ...googleapi.Field) *ProjectsAndroidAppsGetCall {
4099	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4100	return c
4101}
4102
4103// IfNoneMatch sets the optional parameter which makes the operation
4104// fail if the object's ETag matches the given value. This is useful for
4105// getting updates only after the object has changed since the last
4106// request. Use googleapi.IsNotModified to check whether the response
4107// error from Do is the result of In-None-Match.
4108func (c *ProjectsAndroidAppsGetCall) IfNoneMatch(entityTag string) *ProjectsAndroidAppsGetCall {
4109	c.ifNoneMatch_ = entityTag
4110	return c
4111}
4112
4113// Context sets the context to be used in this call's Do method. Any
4114// pending HTTP request will be aborted if the provided context is
4115// canceled.
4116func (c *ProjectsAndroidAppsGetCall) Context(ctx context.Context) *ProjectsAndroidAppsGetCall {
4117	c.ctx_ = ctx
4118	return c
4119}
4120
4121// Header returns an http.Header that can be modified by the caller to
4122// add HTTP headers to the request.
4123func (c *ProjectsAndroidAppsGetCall) Header() http.Header {
4124	if c.header_ == nil {
4125		c.header_ = make(http.Header)
4126	}
4127	return c.header_
4128}
4129
4130func (c *ProjectsAndroidAppsGetCall) doRequest(alt string) (*http.Response, error) {
4131	reqHeaders := make(http.Header)
4132	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20190926")
4133	for k, v := range c.header_ {
4134		reqHeaders[k] = v
4135	}
4136	reqHeaders.Set("User-Agent", c.s.userAgent())
4137	if c.ifNoneMatch_ != "" {
4138		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
4139	}
4140	var body io.Reader = nil
4141	c.urlParams_.Set("alt", alt)
4142	c.urlParams_.Set("prettyPrint", "false")
4143	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+name}")
4144	urls += "?" + c.urlParams_.Encode()
4145	req, err := http.NewRequest("GET", urls, body)
4146	if err != nil {
4147		return nil, err
4148	}
4149	req.Header = reqHeaders
4150	googleapi.Expand(req.URL, map[string]string{
4151		"name": c.nameid,
4152	})
4153	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4154}
4155
4156// Do executes the "firebase.projects.androidApps.get" call.
4157// Exactly one of *AndroidApp or error will be non-nil. Any non-2xx
4158// status code is an error. Response headers are in either
4159// *AndroidApp.ServerResponse.Header or (if a response was returned at
4160// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
4161// to check whether the returned error was because
4162// http.StatusNotModified was returned.
4163func (c *ProjectsAndroidAppsGetCall) Do(opts ...googleapi.CallOption) (*AndroidApp, error) {
4164	gensupport.SetOptions(c.urlParams_, opts...)
4165	res, err := c.doRequest("json")
4166	if res != nil && res.StatusCode == http.StatusNotModified {
4167		if res.Body != nil {
4168			res.Body.Close()
4169		}
4170		return nil, &googleapi.Error{
4171			Code:   res.StatusCode,
4172			Header: res.Header,
4173		}
4174	}
4175	if err != nil {
4176		return nil, err
4177	}
4178	defer googleapi.CloseBody(res)
4179	if err := googleapi.CheckResponse(res); err != nil {
4180		return nil, err
4181	}
4182	ret := &AndroidApp{
4183		ServerResponse: googleapi.ServerResponse{
4184			Header:         res.Header,
4185			HTTPStatusCode: res.StatusCode,
4186		},
4187	}
4188	target := &ret
4189	if err := gensupport.DecodeResponse(target, res); err != nil {
4190		return nil, err
4191	}
4192	return ret, nil
4193	// {
4194	//   "description": "Gets the AndroidApp identified by the specified resource name.",
4195	//   "flatPath": "v1beta1/projects/{projectsId}/androidApps/{androidAppsId}",
4196	//   "httpMethod": "GET",
4197	//   "id": "firebase.projects.androidApps.get",
4198	//   "parameterOrder": [
4199	//     "name"
4200	//   ],
4201	//   "parameters": {
4202	//     "name": {
4203	//       "description": "The fully qualified resource name of the App, in the format:\n\u003cbr\u003e\u003ccode\u003eprojects/\u003cvar\u003eprojectId\u003c/var\u003e/androidApps/\u003cvar\u003eappId\u003c/var\u003e\u003c/code\u003e\n\u003cbr\u003eAs an \u003cvar\u003eappId\u003c/var\u003e is a unique identifier, the Unique Resource\nfrom Sub-Collection access pattern may be used here, in the format:\n\u003cbr\u003e\u003ccode\u003eprojects/-/androidApps/\u003cvar\u003eappId\u003c/var\u003e\u003c/code\u003e",
4204	//       "location": "path",
4205	//       "pattern": "^projects/[^/]+/androidApps/[^/]+$",
4206	//       "required": true,
4207	//       "type": "string"
4208	//     }
4209	//   },
4210	//   "path": "v1beta1/{+name}",
4211	//   "response": {
4212	//     "$ref": "AndroidApp"
4213	//   },
4214	//   "scopes": [
4215	//     "https://www.googleapis.com/auth/cloud-platform",
4216	//     "https://www.googleapis.com/auth/cloud-platform.read-only",
4217	//     "https://www.googleapis.com/auth/firebase",
4218	//     "https://www.googleapis.com/auth/firebase.readonly"
4219	//   ]
4220	// }
4221
4222}
4223
4224// method id "firebase.projects.androidApps.getConfig":
4225
4226type ProjectsAndroidAppsGetConfigCall struct {
4227	s            *Service
4228	nameid       string
4229	urlParams_   gensupport.URLParams
4230	ifNoneMatch_ string
4231	ctx_         context.Context
4232	header_      http.Header
4233}
4234
4235// GetConfig: Gets the configuration artifact associated with the
4236// specified
4237// AndroidApp.
4238func (r *ProjectsAndroidAppsService) GetConfig(nameid string) *ProjectsAndroidAppsGetConfigCall {
4239	c := &ProjectsAndroidAppsGetConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4240	c.nameid = nameid
4241	return c
4242}
4243
4244// Fields allows partial responses to be retrieved. See
4245// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4246// for more information.
4247func (c *ProjectsAndroidAppsGetConfigCall) Fields(s ...googleapi.Field) *ProjectsAndroidAppsGetConfigCall {
4248	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4249	return c
4250}
4251
4252// IfNoneMatch sets the optional parameter which makes the operation
4253// fail if the object's ETag matches the given value. This is useful for
4254// getting updates only after the object has changed since the last
4255// request. Use googleapi.IsNotModified to check whether the response
4256// error from Do is the result of In-None-Match.
4257func (c *ProjectsAndroidAppsGetConfigCall) IfNoneMatch(entityTag string) *ProjectsAndroidAppsGetConfigCall {
4258	c.ifNoneMatch_ = entityTag
4259	return c
4260}
4261
4262// Context sets the context to be used in this call's Do method. Any
4263// pending HTTP request will be aborted if the provided context is
4264// canceled.
4265func (c *ProjectsAndroidAppsGetConfigCall) Context(ctx context.Context) *ProjectsAndroidAppsGetConfigCall {
4266	c.ctx_ = ctx
4267	return c
4268}
4269
4270// Header returns an http.Header that can be modified by the caller to
4271// add HTTP headers to the request.
4272func (c *ProjectsAndroidAppsGetConfigCall) Header() http.Header {
4273	if c.header_ == nil {
4274		c.header_ = make(http.Header)
4275	}
4276	return c.header_
4277}
4278
4279func (c *ProjectsAndroidAppsGetConfigCall) doRequest(alt string) (*http.Response, error) {
4280	reqHeaders := make(http.Header)
4281	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20190926")
4282	for k, v := range c.header_ {
4283		reqHeaders[k] = v
4284	}
4285	reqHeaders.Set("User-Agent", c.s.userAgent())
4286	if c.ifNoneMatch_ != "" {
4287		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
4288	}
4289	var body io.Reader = nil
4290	c.urlParams_.Set("alt", alt)
4291	c.urlParams_.Set("prettyPrint", "false")
4292	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+name}")
4293	urls += "?" + c.urlParams_.Encode()
4294	req, err := http.NewRequest("GET", urls, body)
4295	if err != nil {
4296		return nil, err
4297	}
4298	req.Header = reqHeaders
4299	googleapi.Expand(req.URL, map[string]string{
4300		"name": c.nameid,
4301	})
4302	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4303}
4304
4305// Do executes the "firebase.projects.androidApps.getConfig" call.
4306// Exactly one of *AndroidAppConfig or error will be non-nil. Any
4307// non-2xx status code is an error. Response headers are in either
4308// *AndroidAppConfig.ServerResponse.Header or (if a response was
4309// returned at all) in error.(*googleapi.Error).Header. Use
4310// googleapi.IsNotModified to check whether the returned error was
4311// because http.StatusNotModified was returned.
4312func (c *ProjectsAndroidAppsGetConfigCall) Do(opts ...googleapi.CallOption) (*AndroidAppConfig, error) {
4313	gensupport.SetOptions(c.urlParams_, opts...)
4314	res, err := c.doRequest("json")
4315	if res != nil && res.StatusCode == http.StatusNotModified {
4316		if res.Body != nil {
4317			res.Body.Close()
4318		}
4319		return nil, &googleapi.Error{
4320			Code:   res.StatusCode,
4321			Header: res.Header,
4322		}
4323	}
4324	if err != nil {
4325		return nil, err
4326	}
4327	defer googleapi.CloseBody(res)
4328	if err := googleapi.CheckResponse(res); err != nil {
4329		return nil, err
4330	}
4331	ret := &AndroidAppConfig{
4332		ServerResponse: googleapi.ServerResponse{
4333			Header:         res.Header,
4334			HTTPStatusCode: res.StatusCode,
4335		},
4336	}
4337	target := &ret
4338	if err := gensupport.DecodeResponse(target, res); err != nil {
4339		return nil, err
4340	}
4341	return ret, nil
4342	// {
4343	//   "description": "Gets the configuration artifact associated with the specified\nAndroidApp.",
4344	//   "flatPath": "v1beta1/projects/{projectsId}/androidApps/{androidAppsId}/config",
4345	//   "httpMethod": "GET",
4346	//   "id": "firebase.projects.androidApps.getConfig",
4347	//   "parameterOrder": [
4348	//     "name"
4349	//   ],
4350	//   "parameters": {
4351	//     "name": {
4352	//       "description": "The resource name of the App configuration to download, in the format:\n\u003cbr\u003e\u003ccode\u003eprojects/\u003cvar\u003eprojectId\u003c/var\u003e/androidApps/\u003cvar\u003eappId\u003c/var\u003e/config\u003c/code\u003e\n\u003cbr\u003eAs an \u003cvar\u003eappId\u003c/var\u003e is a unique identifier, the Unique Resource\nfrom Sub-Collection access pattern may be used here, in the format:\n\u003cbr\u003e\u003ccode\u003eprojects/-/androidApps/\u003cvar\u003eappId\u003c/var\u003e\u003c/code\u003e",
4353	//       "location": "path",
4354	//       "pattern": "^projects/[^/]+/androidApps/[^/]+/config$",
4355	//       "required": true,
4356	//       "type": "string"
4357	//     }
4358	//   },
4359	//   "path": "v1beta1/{+name}",
4360	//   "response": {
4361	//     "$ref": "AndroidAppConfig"
4362	//   },
4363	//   "scopes": [
4364	//     "https://www.googleapis.com/auth/cloud-platform"
4365	//   ]
4366	// }
4367
4368}
4369
4370// method id "firebase.projects.androidApps.list":
4371
4372type ProjectsAndroidAppsListCall struct {
4373	s            *Service
4374	parent       string
4375	urlParams_   gensupport.URLParams
4376	ifNoneMatch_ string
4377	ctx_         context.Context
4378	header_      http.Header
4379}
4380
4381// List: Lists each AndroidApp associated with the specified parent
4382// Project.
4383// <br>
4384// <br>The elements are returned in no particular order, but will be
4385// a
4386// consistent view of the Apps when additional requests are made with
4387// a
4388// `pageToken`.
4389func (r *ProjectsAndroidAppsService) List(parent string) *ProjectsAndroidAppsListCall {
4390	c := &ProjectsAndroidAppsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4391	c.parent = parent
4392	return c
4393}
4394
4395// PageSize sets the optional parameter "pageSize": The maximum number
4396// of Apps to return in the response.
4397// <br>
4398// <br>The server may return fewer than this at its discretion.
4399// If no value is specified (or too large a value is specified), then
4400// the
4401// server will impose its own limit.
4402func (c *ProjectsAndroidAppsListCall) PageSize(pageSize int64) *ProjectsAndroidAppsListCall {
4403	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
4404	return c
4405}
4406
4407// PageToken sets the optional parameter "pageToken": Token returned
4408// from a previous call to `ListAndroidApps` indicating where
4409// in the set of Apps to resume listing.
4410func (c *ProjectsAndroidAppsListCall) PageToken(pageToken string) *ProjectsAndroidAppsListCall {
4411	c.urlParams_.Set("pageToken", pageToken)
4412	return c
4413}
4414
4415// Fields allows partial responses to be retrieved. See
4416// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4417// for more information.
4418func (c *ProjectsAndroidAppsListCall) Fields(s ...googleapi.Field) *ProjectsAndroidAppsListCall {
4419	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4420	return c
4421}
4422
4423// IfNoneMatch sets the optional parameter which makes the operation
4424// fail if the object's ETag matches the given value. This is useful for
4425// getting updates only after the object has changed since the last
4426// request. Use googleapi.IsNotModified to check whether the response
4427// error from Do is the result of In-None-Match.
4428func (c *ProjectsAndroidAppsListCall) IfNoneMatch(entityTag string) *ProjectsAndroidAppsListCall {
4429	c.ifNoneMatch_ = entityTag
4430	return c
4431}
4432
4433// Context sets the context to be used in this call's Do method. Any
4434// pending HTTP request will be aborted if the provided context is
4435// canceled.
4436func (c *ProjectsAndroidAppsListCall) Context(ctx context.Context) *ProjectsAndroidAppsListCall {
4437	c.ctx_ = ctx
4438	return c
4439}
4440
4441// Header returns an http.Header that can be modified by the caller to
4442// add HTTP headers to the request.
4443func (c *ProjectsAndroidAppsListCall) Header() http.Header {
4444	if c.header_ == nil {
4445		c.header_ = make(http.Header)
4446	}
4447	return c.header_
4448}
4449
4450func (c *ProjectsAndroidAppsListCall) doRequest(alt string) (*http.Response, error) {
4451	reqHeaders := make(http.Header)
4452	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20190926")
4453	for k, v := range c.header_ {
4454		reqHeaders[k] = v
4455	}
4456	reqHeaders.Set("User-Agent", c.s.userAgent())
4457	if c.ifNoneMatch_ != "" {
4458		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
4459	}
4460	var body io.Reader = nil
4461	c.urlParams_.Set("alt", alt)
4462	c.urlParams_.Set("prettyPrint", "false")
4463	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+parent}/androidApps")
4464	urls += "?" + c.urlParams_.Encode()
4465	req, err := http.NewRequest("GET", urls, body)
4466	if err != nil {
4467		return nil, err
4468	}
4469	req.Header = reqHeaders
4470	googleapi.Expand(req.URL, map[string]string{
4471		"parent": c.parent,
4472	})
4473	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4474}
4475
4476// Do executes the "firebase.projects.androidApps.list" call.
4477// Exactly one of *ListAndroidAppsResponse or error will be non-nil. Any
4478// non-2xx status code is an error. Response headers are in either
4479// *ListAndroidAppsResponse.ServerResponse.Header or (if a response was
4480// returned at all) in error.(*googleapi.Error).Header. Use
4481// googleapi.IsNotModified to check whether the returned error was
4482// because http.StatusNotModified was returned.
4483func (c *ProjectsAndroidAppsListCall) Do(opts ...googleapi.CallOption) (*ListAndroidAppsResponse, error) {
4484	gensupport.SetOptions(c.urlParams_, opts...)
4485	res, err := c.doRequest("json")
4486	if res != nil && res.StatusCode == http.StatusNotModified {
4487		if res.Body != nil {
4488			res.Body.Close()
4489		}
4490		return nil, &googleapi.Error{
4491			Code:   res.StatusCode,
4492			Header: res.Header,
4493		}
4494	}
4495	if err != nil {
4496		return nil, err
4497	}
4498	defer googleapi.CloseBody(res)
4499	if err := googleapi.CheckResponse(res); err != nil {
4500		return nil, err
4501	}
4502	ret := &ListAndroidAppsResponse{
4503		ServerResponse: googleapi.ServerResponse{
4504			Header:         res.Header,
4505			HTTPStatusCode: res.StatusCode,
4506		},
4507	}
4508	target := &ret
4509	if err := gensupport.DecodeResponse(target, res); err != nil {
4510		return nil, err
4511	}
4512	return ret, nil
4513	// {
4514	//   "description": "Lists each AndroidApp associated with the specified parent Project.\n\u003cbr\u003e\n\u003cbr\u003eThe elements are returned in no particular order, but will be a\nconsistent view of the Apps when additional requests are made with a\n`pageToken`.",
4515	//   "flatPath": "v1beta1/projects/{projectsId}/androidApps",
4516	//   "httpMethod": "GET",
4517	//   "id": "firebase.projects.androidApps.list",
4518	//   "parameterOrder": [
4519	//     "parent"
4520	//   ],
4521	//   "parameters": {
4522	//     "pageSize": {
4523	//       "description": "The maximum number of Apps to return in the response.\n\u003cbr\u003e\n\u003cbr\u003eThe server may return fewer than this at its discretion.\nIf no value is specified (or too large a value is specified), then the\nserver will impose its own limit.",
4524	//       "format": "int32",
4525	//       "location": "query",
4526	//       "type": "integer"
4527	//     },
4528	//     "pageToken": {
4529	//       "description": "Token returned from a previous call to `ListAndroidApps` indicating where\nin the set of Apps to resume listing.",
4530	//       "location": "query",
4531	//       "type": "string"
4532	//     },
4533	//     "parent": {
4534	//       "description": "The parent Project for which to list Apps, in the format:\n\u003cbr\u003e\u003ccode\u003eprojects/\u003cvar\u003eprojectId\u003c/var\u003e\u003c/code\u003e",
4535	//       "location": "path",
4536	//       "pattern": "^projects/[^/]+$",
4537	//       "required": true,
4538	//       "type": "string"
4539	//     }
4540	//   },
4541	//   "path": "v1beta1/{+parent}/androidApps",
4542	//   "response": {
4543	//     "$ref": "ListAndroidAppsResponse"
4544	//   },
4545	//   "scopes": [
4546	//     "https://www.googleapis.com/auth/cloud-platform",
4547	//     "https://www.googleapis.com/auth/cloud-platform.read-only",
4548	//     "https://www.googleapis.com/auth/firebase",
4549	//     "https://www.googleapis.com/auth/firebase.readonly"
4550	//   ]
4551	// }
4552
4553}
4554
4555// Pages invokes f for each page of results.
4556// A non-nil error returned from f will halt the iteration.
4557// The provided context supersedes any context provided to the Context method.
4558func (c *ProjectsAndroidAppsListCall) Pages(ctx context.Context, f func(*ListAndroidAppsResponse) error) error {
4559	c.ctx_ = ctx
4560	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
4561	for {
4562		x, err := c.Do()
4563		if err != nil {
4564			return err
4565		}
4566		if err := f(x); err != nil {
4567			return err
4568		}
4569		if x.NextPageToken == "" {
4570			return nil
4571		}
4572		c.PageToken(x.NextPageToken)
4573	}
4574}
4575
4576// method id "firebase.projects.androidApps.patch":
4577
4578type ProjectsAndroidAppsPatchCall struct {
4579	s          *Service
4580	name       string
4581	androidapp *AndroidApp
4582	urlParams_ gensupport.URLParams
4583	ctx_       context.Context
4584	header_    http.Header
4585}
4586
4587// Patch: Updates the attributes of the AndroidApp identified by the
4588// specified
4589// resource name.
4590func (r *ProjectsAndroidAppsService) Patch(name string, androidapp *AndroidApp) *ProjectsAndroidAppsPatchCall {
4591	c := &ProjectsAndroidAppsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4592	c.name = name
4593	c.androidapp = androidapp
4594	return c
4595}
4596
4597// UpdateMask sets the optional parameter "updateMask": Specifies which
4598// fields to update.
4599// <br>Note that the fields `name`, `appId`, `projectId`, and
4600// `packageName`
4601// are all immutable.
4602func (c *ProjectsAndroidAppsPatchCall) UpdateMask(updateMask string) *ProjectsAndroidAppsPatchCall {
4603	c.urlParams_.Set("updateMask", updateMask)
4604	return c
4605}
4606
4607// Fields allows partial responses to be retrieved. See
4608// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4609// for more information.
4610func (c *ProjectsAndroidAppsPatchCall) Fields(s ...googleapi.Field) *ProjectsAndroidAppsPatchCall {
4611	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4612	return c
4613}
4614
4615// Context sets the context to be used in this call's Do method. Any
4616// pending HTTP request will be aborted if the provided context is
4617// canceled.
4618func (c *ProjectsAndroidAppsPatchCall) Context(ctx context.Context) *ProjectsAndroidAppsPatchCall {
4619	c.ctx_ = ctx
4620	return c
4621}
4622
4623// Header returns an http.Header that can be modified by the caller to
4624// add HTTP headers to the request.
4625func (c *ProjectsAndroidAppsPatchCall) Header() http.Header {
4626	if c.header_ == nil {
4627		c.header_ = make(http.Header)
4628	}
4629	return c.header_
4630}
4631
4632func (c *ProjectsAndroidAppsPatchCall) doRequest(alt string) (*http.Response, error) {
4633	reqHeaders := make(http.Header)
4634	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20190926")
4635	for k, v := range c.header_ {
4636		reqHeaders[k] = v
4637	}
4638	reqHeaders.Set("User-Agent", c.s.userAgent())
4639	var body io.Reader = nil
4640	body, err := googleapi.WithoutDataWrapper.JSONReader(c.androidapp)
4641	if err != nil {
4642		return nil, err
4643	}
4644	reqHeaders.Set("Content-Type", "application/json")
4645	c.urlParams_.Set("alt", alt)
4646	c.urlParams_.Set("prettyPrint", "false")
4647	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+name}")
4648	urls += "?" + c.urlParams_.Encode()
4649	req, err := http.NewRequest("PATCH", urls, body)
4650	if err != nil {
4651		return nil, err
4652	}
4653	req.Header = reqHeaders
4654	googleapi.Expand(req.URL, map[string]string{
4655		"name": c.name,
4656	})
4657	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4658}
4659
4660// Do executes the "firebase.projects.androidApps.patch" call.
4661// Exactly one of *AndroidApp or error will be non-nil. Any non-2xx
4662// status code is an error. Response headers are in either
4663// *AndroidApp.ServerResponse.Header or (if a response was returned at
4664// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
4665// to check whether the returned error was because
4666// http.StatusNotModified was returned.
4667func (c *ProjectsAndroidAppsPatchCall) Do(opts ...googleapi.CallOption) (*AndroidApp, error) {
4668	gensupport.SetOptions(c.urlParams_, opts...)
4669	res, err := c.doRequest("json")
4670	if res != nil && res.StatusCode == http.StatusNotModified {
4671		if res.Body != nil {
4672			res.Body.Close()
4673		}
4674		return nil, &googleapi.Error{
4675			Code:   res.StatusCode,
4676			Header: res.Header,
4677		}
4678	}
4679	if err != nil {
4680		return nil, err
4681	}
4682	defer googleapi.CloseBody(res)
4683	if err := googleapi.CheckResponse(res); err != nil {
4684		return nil, err
4685	}
4686	ret := &AndroidApp{
4687		ServerResponse: googleapi.ServerResponse{
4688			Header:         res.Header,
4689			HTTPStatusCode: res.StatusCode,
4690		},
4691	}
4692	target := &ret
4693	if err := gensupport.DecodeResponse(target, res); err != nil {
4694		return nil, err
4695	}
4696	return ret, nil
4697	// {
4698	//   "description": "Updates the attributes of the AndroidApp identified by the specified\nresource name.",
4699	//   "flatPath": "v1beta1/projects/{projectsId}/androidApps/{androidAppsId}",
4700	//   "httpMethod": "PATCH",
4701	//   "id": "firebase.projects.androidApps.patch",
4702	//   "parameterOrder": [
4703	//     "name"
4704	//   ],
4705	//   "parameters": {
4706	//     "name": {
4707	//       "description": "The fully qualified resource name of the App, in the format:\n\u003cbr\u003e\u003ccode\u003eprojects/\u003cvar\u003eprojectId\u003c/var\u003e/androidApps/\u003cvar\u003eappId\u003c/var\u003e\u003c/code\u003e",
4708	//       "location": "path",
4709	//       "pattern": "^projects/[^/]+/androidApps/[^/]+$",
4710	//       "required": true,
4711	//       "type": "string"
4712	//     },
4713	//     "updateMask": {
4714	//       "description": "Specifies which fields to update.\n\u003cbr\u003eNote that the fields `name`, `appId`, `projectId`, and `packageName`\nare all immutable.",
4715	//       "format": "google-fieldmask",
4716	//       "location": "query",
4717	//       "type": "string"
4718	//     }
4719	//   },
4720	//   "path": "v1beta1/{+name}",
4721	//   "request": {
4722	//     "$ref": "AndroidApp"
4723	//   },
4724	//   "response": {
4725	//     "$ref": "AndroidApp"
4726	//   },
4727	//   "scopes": [
4728	//     "https://www.googleapis.com/auth/cloud-platform",
4729	//     "https://www.googleapis.com/auth/firebase"
4730	//   ]
4731	// }
4732
4733}
4734
4735// method id "firebase.projects.androidApps.sha.create":
4736
4737type ProjectsAndroidAppsShaCreateCall struct {
4738	s              *Service
4739	parentid       string
4740	shacertificate *ShaCertificate
4741	urlParams_     gensupport.URLParams
4742	ctx_           context.Context
4743	header_        http.Header
4744}
4745
4746// Create: Adds a SHA certificate to the specified AndroidApp.
4747func (r *ProjectsAndroidAppsShaService) Create(parentid string, shacertificate *ShaCertificate) *ProjectsAndroidAppsShaCreateCall {
4748	c := &ProjectsAndroidAppsShaCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4749	c.parentid = parentid
4750	c.shacertificate = shacertificate
4751	return c
4752}
4753
4754// Fields allows partial responses to be retrieved. See
4755// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4756// for more information.
4757func (c *ProjectsAndroidAppsShaCreateCall) Fields(s ...googleapi.Field) *ProjectsAndroidAppsShaCreateCall {
4758	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4759	return c
4760}
4761
4762// Context sets the context to be used in this call's Do method. Any
4763// pending HTTP request will be aborted if the provided context is
4764// canceled.
4765func (c *ProjectsAndroidAppsShaCreateCall) Context(ctx context.Context) *ProjectsAndroidAppsShaCreateCall {
4766	c.ctx_ = ctx
4767	return c
4768}
4769
4770// Header returns an http.Header that can be modified by the caller to
4771// add HTTP headers to the request.
4772func (c *ProjectsAndroidAppsShaCreateCall) Header() http.Header {
4773	if c.header_ == nil {
4774		c.header_ = make(http.Header)
4775	}
4776	return c.header_
4777}
4778
4779func (c *ProjectsAndroidAppsShaCreateCall) doRequest(alt string) (*http.Response, error) {
4780	reqHeaders := make(http.Header)
4781	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20190926")
4782	for k, v := range c.header_ {
4783		reqHeaders[k] = v
4784	}
4785	reqHeaders.Set("User-Agent", c.s.userAgent())
4786	var body io.Reader = nil
4787	body, err := googleapi.WithoutDataWrapper.JSONReader(c.shacertificate)
4788	if err != nil {
4789		return nil, err
4790	}
4791	reqHeaders.Set("Content-Type", "application/json")
4792	c.urlParams_.Set("alt", alt)
4793	c.urlParams_.Set("prettyPrint", "false")
4794	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+parent}/sha")
4795	urls += "?" + c.urlParams_.Encode()
4796	req, err := http.NewRequest("POST", urls, body)
4797	if err != nil {
4798		return nil, err
4799	}
4800	req.Header = reqHeaders
4801	googleapi.Expand(req.URL, map[string]string{
4802		"parent": c.parentid,
4803	})
4804	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4805}
4806
4807// Do executes the "firebase.projects.androidApps.sha.create" call.
4808// Exactly one of *ShaCertificate or error will be non-nil. Any non-2xx
4809// status code is an error. Response headers are in either
4810// *ShaCertificate.ServerResponse.Header or (if a response was returned
4811// at all) in error.(*googleapi.Error).Header. Use
4812// googleapi.IsNotModified to check whether the returned error was
4813// because http.StatusNotModified was returned.
4814func (c *ProjectsAndroidAppsShaCreateCall) Do(opts ...googleapi.CallOption) (*ShaCertificate, error) {
4815	gensupport.SetOptions(c.urlParams_, opts...)
4816	res, err := c.doRequest("json")
4817	if res != nil && res.StatusCode == http.StatusNotModified {
4818		if res.Body != nil {
4819			res.Body.Close()
4820		}
4821		return nil, &googleapi.Error{
4822			Code:   res.StatusCode,
4823			Header: res.Header,
4824		}
4825	}
4826	if err != nil {
4827		return nil, err
4828	}
4829	defer googleapi.CloseBody(res)
4830	if err := googleapi.CheckResponse(res); err != nil {
4831		return nil, err
4832	}
4833	ret := &ShaCertificate{
4834		ServerResponse: googleapi.ServerResponse{
4835			Header:         res.Header,
4836			HTTPStatusCode: res.StatusCode,
4837		},
4838	}
4839	target := &ret
4840	if err := gensupport.DecodeResponse(target, res); err != nil {
4841		return nil, err
4842	}
4843	return ret, nil
4844	// {
4845	//   "description": "Adds a SHA certificate to the specified AndroidApp.",
4846	//   "flatPath": "v1beta1/projects/{projectsId}/androidApps/{androidAppsId}/sha",
4847	//   "httpMethod": "POST",
4848	//   "id": "firebase.projects.androidApps.sha.create",
4849	//   "parameterOrder": [
4850	//     "parent"
4851	//   ],
4852	//   "parameters": {
4853	//     "parent": {
4854	//       "description": "The parent App to which a SHA certificate will be added, in the format:\n\u003cbr\u003e\u003ccode\u003eprojects/\u003cvar\u003eprojectId\u003c/var\u003e/androidApps/\u003cvar\u003eappId\u003c/var\u003e\u003c/code\u003e\n\u003cbr\u003eAs an \u003cvar\u003eappId\u003c/var\u003e is a unique identifier, the Unique Resource\nfrom Sub-Collection access pattern may be used here, in the format:\n\u003cbr\u003e\u003ccode\u003eprojects/-/androidApps/\u003cvar\u003eappId\u003c/var\u003e\u003c/code\u003e",
4855	//       "location": "path",
4856	//       "pattern": "^projects/[^/]+/androidApps/[^/]+$",
4857	//       "required": true,
4858	//       "type": "string"
4859	//     }
4860	//   },
4861	//   "path": "v1beta1/{+parent}/sha",
4862	//   "request": {
4863	//     "$ref": "ShaCertificate"
4864	//   },
4865	//   "response": {
4866	//     "$ref": "ShaCertificate"
4867	//   },
4868	//   "scopes": [
4869	//     "https://www.googleapis.com/auth/cloud-platform",
4870	//     "https://www.googleapis.com/auth/firebase"
4871	//   ]
4872	// }
4873
4874}
4875
4876// method id "firebase.projects.androidApps.sha.delete":
4877
4878type ProjectsAndroidAppsShaDeleteCall struct {
4879	s          *Service
4880	name       string
4881	urlParams_ gensupport.URLParams
4882	ctx_       context.Context
4883	header_    http.Header
4884}
4885
4886// Delete: Removes a SHA certificate from the specified AndroidApp.
4887func (r *ProjectsAndroidAppsShaService) Delete(name string) *ProjectsAndroidAppsShaDeleteCall {
4888	c := &ProjectsAndroidAppsShaDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
4889	c.name = name
4890	return c
4891}
4892
4893// Fields allows partial responses to be retrieved. See
4894// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
4895// for more information.
4896func (c *ProjectsAndroidAppsShaDeleteCall) Fields(s ...googleapi.Field) *ProjectsAndroidAppsShaDeleteCall {
4897	c.urlParams_.Set("fields", googleapi.CombineFields(s))
4898	return c
4899}
4900
4901// Context sets the context to be used in this call's Do method. Any
4902// pending HTTP request will be aborted if the provided context is
4903// canceled.
4904func (c *ProjectsAndroidAppsShaDeleteCall) Context(ctx context.Context) *ProjectsAndroidAppsShaDeleteCall {
4905	c.ctx_ = ctx
4906	return c
4907}
4908
4909// Header returns an http.Header that can be modified by the caller to
4910// add HTTP headers to the request.
4911func (c *ProjectsAndroidAppsShaDeleteCall) Header() http.Header {
4912	if c.header_ == nil {
4913		c.header_ = make(http.Header)
4914	}
4915	return c.header_
4916}
4917
4918func (c *ProjectsAndroidAppsShaDeleteCall) doRequest(alt string) (*http.Response, error) {
4919	reqHeaders := make(http.Header)
4920	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20190926")
4921	for k, v := range c.header_ {
4922		reqHeaders[k] = v
4923	}
4924	reqHeaders.Set("User-Agent", c.s.userAgent())
4925	var body io.Reader = nil
4926	c.urlParams_.Set("alt", alt)
4927	c.urlParams_.Set("prettyPrint", "false")
4928	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+name}")
4929	urls += "?" + c.urlParams_.Encode()
4930	req, err := http.NewRequest("DELETE", urls, body)
4931	if err != nil {
4932		return nil, err
4933	}
4934	req.Header = reqHeaders
4935	googleapi.Expand(req.URL, map[string]string{
4936		"name": c.name,
4937	})
4938	return gensupport.SendRequest(c.ctx_, c.s.client, req)
4939}
4940
4941// Do executes the "firebase.projects.androidApps.sha.delete" call.
4942// Exactly one of *Empty or error will be non-nil. Any non-2xx status
4943// code is an error. Response headers are in either
4944// *Empty.ServerResponse.Header or (if a response was returned at all)
4945// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
4946// check whether the returned error was because http.StatusNotModified
4947// was returned.
4948func (c *ProjectsAndroidAppsShaDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
4949	gensupport.SetOptions(c.urlParams_, opts...)
4950	res, err := c.doRequest("json")
4951	if res != nil && res.StatusCode == http.StatusNotModified {
4952		if res.Body != nil {
4953			res.Body.Close()
4954		}
4955		return nil, &googleapi.Error{
4956			Code:   res.StatusCode,
4957			Header: res.Header,
4958		}
4959	}
4960	if err != nil {
4961		return nil, err
4962	}
4963	defer googleapi.CloseBody(res)
4964	if err := googleapi.CheckResponse(res); err != nil {
4965		return nil, err
4966	}
4967	ret := &Empty{
4968		ServerResponse: googleapi.ServerResponse{
4969			Header:         res.Header,
4970			HTTPStatusCode: res.StatusCode,
4971		},
4972	}
4973	target := &ret
4974	if err := gensupport.DecodeResponse(target, res); err != nil {
4975		return nil, err
4976	}
4977	return ret, nil
4978	// {
4979	//   "description": "Removes a SHA certificate from the specified AndroidApp.",
4980	//   "flatPath": "v1beta1/projects/{projectsId}/androidApps/{androidAppsId}/sha/{shaId}",
4981	//   "httpMethod": "DELETE",
4982	//   "id": "firebase.projects.androidApps.sha.delete",
4983	//   "parameterOrder": [
4984	//     "name"
4985	//   ],
4986	//   "parameters": {
4987	//     "name": {
4988	//       "description": "The fully qualified resource name of the `sha-key`, in the format:\n\u003cbr\u003e\u003ccode\u003eprojects/\u003cvar\u003eprojectId\u003c/var\u003e/androidApps/\u003cvar\u003eappId\u003c/var\u003e/sha/\u003cvar\u003eshaId\u003c/var\u003e\u003c/code\u003e\n\u003cbr\u003eYou can obtain the full name from the response of\n[`ListShaCertificates`](../projects.androidApps.sha/list) or the original\n[`CreateShaCertificate`](../projects.androidApps.sha/create).",
4989	//       "location": "path",
4990	//       "pattern": "^projects/[^/]+/androidApps/[^/]+/sha/[^/]+$",
4991	//       "required": true,
4992	//       "type": "string"
4993	//     }
4994	//   },
4995	//   "path": "v1beta1/{+name}",
4996	//   "response": {
4997	//     "$ref": "Empty"
4998	//   },
4999	//   "scopes": [
5000	//     "https://www.googleapis.com/auth/cloud-platform",
5001	//     "https://www.googleapis.com/auth/firebase"
5002	//   ]
5003	// }
5004
5005}
5006
5007// method id "firebase.projects.androidApps.sha.list":
5008
5009type ProjectsAndroidAppsShaListCall struct {
5010	s            *Service
5011	parentid     string
5012	urlParams_   gensupport.URLParams
5013	ifNoneMatch_ string
5014	ctx_         context.Context
5015	header_      http.Header
5016}
5017
5018// List: Returns the list of SHA-1 and SHA-256 certificates for the
5019// specified
5020// AndroidApp.
5021func (r *ProjectsAndroidAppsShaService) List(parentid string) *ProjectsAndroidAppsShaListCall {
5022	c := &ProjectsAndroidAppsShaListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5023	c.parentid = parentid
5024	return c
5025}
5026
5027// Fields allows partial responses to be retrieved. See
5028// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5029// for more information.
5030func (c *ProjectsAndroidAppsShaListCall) Fields(s ...googleapi.Field) *ProjectsAndroidAppsShaListCall {
5031	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5032	return c
5033}
5034
5035// IfNoneMatch sets the optional parameter which makes the operation
5036// fail if the object's ETag matches the given value. This is useful for
5037// getting updates only after the object has changed since the last
5038// request. Use googleapi.IsNotModified to check whether the response
5039// error from Do is the result of In-None-Match.
5040func (c *ProjectsAndroidAppsShaListCall) IfNoneMatch(entityTag string) *ProjectsAndroidAppsShaListCall {
5041	c.ifNoneMatch_ = entityTag
5042	return c
5043}
5044
5045// Context sets the context to be used in this call's Do method. Any
5046// pending HTTP request will be aborted if the provided context is
5047// canceled.
5048func (c *ProjectsAndroidAppsShaListCall) Context(ctx context.Context) *ProjectsAndroidAppsShaListCall {
5049	c.ctx_ = ctx
5050	return c
5051}
5052
5053// Header returns an http.Header that can be modified by the caller to
5054// add HTTP headers to the request.
5055func (c *ProjectsAndroidAppsShaListCall) Header() http.Header {
5056	if c.header_ == nil {
5057		c.header_ = make(http.Header)
5058	}
5059	return c.header_
5060}
5061
5062func (c *ProjectsAndroidAppsShaListCall) doRequest(alt string) (*http.Response, error) {
5063	reqHeaders := make(http.Header)
5064	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20190926")
5065	for k, v := range c.header_ {
5066		reqHeaders[k] = v
5067	}
5068	reqHeaders.Set("User-Agent", c.s.userAgent())
5069	if c.ifNoneMatch_ != "" {
5070		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
5071	}
5072	var body io.Reader = nil
5073	c.urlParams_.Set("alt", alt)
5074	c.urlParams_.Set("prettyPrint", "false")
5075	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+parent}/sha")
5076	urls += "?" + c.urlParams_.Encode()
5077	req, err := http.NewRequest("GET", urls, body)
5078	if err != nil {
5079		return nil, err
5080	}
5081	req.Header = reqHeaders
5082	googleapi.Expand(req.URL, map[string]string{
5083		"parent": c.parentid,
5084	})
5085	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5086}
5087
5088// Do executes the "firebase.projects.androidApps.sha.list" call.
5089// Exactly one of *ListShaCertificatesResponse or error will be non-nil.
5090// Any non-2xx status code is an error. Response headers are in either
5091// *ListShaCertificatesResponse.ServerResponse.Header or (if a response
5092// was returned at all) in error.(*googleapi.Error).Header. Use
5093// googleapi.IsNotModified to check whether the returned error was
5094// because http.StatusNotModified was returned.
5095func (c *ProjectsAndroidAppsShaListCall) Do(opts ...googleapi.CallOption) (*ListShaCertificatesResponse, error) {
5096	gensupport.SetOptions(c.urlParams_, opts...)
5097	res, err := c.doRequest("json")
5098	if res != nil && res.StatusCode == http.StatusNotModified {
5099		if res.Body != nil {
5100			res.Body.Close()
5101		}
5102		return nil, &googleapi.Error{
5103			Code:   res.StatusCode,
5104			Header: res.Header,
5105		}
5106	}
5107	if err != nil {
5108		return nil, err
5109	}
5110	defer googleapi.CloseBody(res)
5111	if err := googleapi.CheckResponse(res); err != nil {
5112		return nil, err
5113	}
5114	ret := &ListShaCertificatesResponse{
5115		ServerResponse: googleapi.ServerResponse{
5116			Header:         res.Header,
5117			HTTPStatusCode: res.StatusCode,
5118		},
5119	}
5120	target := &ret
5121	if err := gensupport.DecodeResponse(target, res); err != nil {
5122		return nil, err
5123	}
5124	return ret, nil
5125	// {
5126	//   "description": "Returns the list of SHA-1 and SHA-256 certificates for the specified\nAndroidApp.",
5127	//   "flatPath": "v1beta1/projects/{projectsId}/androidApps/{androidAppsId}/sha",
5128	//   "httpMethod": "GET",
5129	//   "id": "firebase.projects.androidApps.sha.list",
5130	//   "parameterOrder": [
5131	//     "parent"
5132	//   ],
5133	//   "parameters": {
5134	//     "parent": {
5135	//       "description": "The parent App for which to list SHA certificates, in the format:\n\u003cbr\u003e\u003ccode\u003eprojects/\u003cvar\u003eprojectId\u003c/var\u003e/androidApps/\u003cvar\u003eappId\u003c/var\u003e\u003c/code\u003e\n\u003cbr\u003eAs an \u003cvar\u003eappId\u003c/var\u003e is a unique identifier, the Unique Resource\nfrom Sub-Collection access pattern may be used here, in the format:\n\u003cbr\u003e\u003ccode\u003eprojects/-/androidApps/\u003cvar\u003eappId\u003c/var\u003e\u003c/code\u003e",
5136	//       "location": "path",
5137	//       "pattern": "^projects/[^/]+/androidApps/[^/]+$",
5138	//       "required": true,
5139	//       "type": "string"
5140	//     }
5141	//   },
5142	//   "path": "v1beta1/{+parent}/sha",
5143	//   "response": {
5144	//     "$ref": "ListShaCertificatesResponse"
5145	//   },
5146	//   "scopes": [
5147	//     "https://www.googleapis.com/auth/cloud-platform",
5148	//     "https://www.googleapis.com/auth/cloud-platform.read-only",
5149	//     "https://www.googleapis.com/auth/firebase",
5150	//     "https://www.googleapis.com/auth/firebase.readonly"
5151	//   ]
5152	// }
5153
5154}
5155
5156// method id "firebase.projects.availableLocations.list":
5157
5158type ProjectsAvailableLocationsListCall struct {
5159	s            *Service
5160	parent       string
5161	urlParams_   gensupport.URLParams
5162	ifNoneMatch_ string
5163	ctx_         context.Context
5164	header_      http.Header
5165}
5166
5167// List: Returns a list of valid Google Cloud Platform (GCP) resource
5168// locations for
5169// the specified Project (including a FirebaseProject).
5170// <br>
5171// <br>The default GCP resource location of a project defines the
5172// geographical
5173// location where project resources, such as Cloud Firestore, will
5174// be
5175// provisioned by default.
5176// <br>
5177// <br>The returned list are the available
5178// [GCP
5179// resource
5180// locations](https://firebase.google.com/docs/projects/location
5181// s). <br>
5182// <br>This call checks for any location restrictions for the
5183// specified
5184// Project and, thus, might return a subset of all possible GCP
5185// resource
5186// locations. To list all GCP resource locations (regardless of
5187// any
5188// restrictions), call the endpoint without specifying a `projectId`
5189// (that
5190// is,
5191// `/v1beta1/{parent=projects/-}/listAvailableLocations`).
5192// <br>
5193// <br>T
5194// o call `ListAvailableLocations` with a specified project, a
5195// member
5196// must be at minimum a Viewer of the project. Calls without a
5197// specified
5198// project do not require any specific project permissions.
5199func (r *ProjectsAvailableLocationsService) List(parent string) *ProjectsAvailableLocationsListCall {
5200	c := &ProjectsAvailableLocationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5201	c.parent = parent
5202	return c
5203}
5204
5205// PageSize sets the optional parameter "pageSize": The maximum number
5206// of locations to return in the response.
5207// <br>
5208// <br>The server may return fewer than this value at its discretion.
5209// If no value is specified (or too large a value is specified), then
5210// the
5211// server will impose its own limit.
5212// <br>
5213// <br>This value cannot be negative.
5214func (c *ProjectsAvailableLocationsListCall) PageSize(pageSize int64) *ProjectsAvailableLocationsListCall {
5215	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
5216	return c
5217}
5218
5219// PageToken sets the optional parameter "pageToken": Token returned
5220// from a previous call to `ListAvailableLocations` indicating
5221// where in the list of locations to resume listing.
5222func (c *ProjectsAvailableLocationsListCall) PageToken(pageToken string) *ProjectsAvailableLocationsListCall {
5223	c.urlParams_.Set("pageToken", pageToken)
5224	return c
5225}
5226
5227// Fields allows partial responses to be retrieved. See
5228// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5229// for more information.
5230func (c *ProjectsAvailableLocationsListCall) Fields(s ...googleapi.Field) *ProjectsAvailableLocationsListCall {
5231	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5232	return c
5233}
5234
5235// IfNoneMatch sets the optional parameter which makes the operation
5236// fail if the object's ETag matches the given value. This is useful for
5237// getting updates only after the object has changed since the last
5238// request. Use googleapi.IsNotModified to check whether the response
5239// error from Do is the result of In-None-Match.
5240func (c *ProjectsAvailableLocationsListCall) IfNoneMatch(entityTag string) *ProjectsAvailableLocationsListCall {
5241	c.ifNoneMatch_ = entityTag
5242	return c
5243}
5244
5245// Context sets the context to be used in this call's Do method. Any
5246// pending HTTP request will be aborted if the provided context is
5247// canceled.
5248func (c *ProjectsAvailableLocationsListCall) Context(ctx context.Context) *ProjectsAvailableLocationsListCall {
5249	c.ctx_ = ctx
5250	return c
5251}
5252
5253// Header returns an http.Header that can be modified by the caller to
5254// add HTTP headers to the request.
5255func (c *ProjectsAvailableLocationsListCall) Header() http.Header {
5256	if c.header_ == nil {
5257		c.header_ = make(http.Header)
5258	}
5259	return c.header_
5260}
5261
5262func (c *ProjectsAvailableLocationsListCall) doRequest(alt string) (*http.Response, error) {
5263	reqHeaders := make(http.Header)
5264	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20190926")
5265	for k, v := range c.header_ {
5266		reqHeaders[k] = v
5267	}
5268	reqHeaders.Set("User-Agent", c.s.userAgent())
5269	if c.ifNoneMatch_ != "" {
5270		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
5271	}
5272	var body io.Reader = nil
5273	c.urlParams_.Set("alt", alt)
5274	c.urlParams_.Set("prettyPrint", "false")
5275	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+parent}/availableLocations")
5276	urls += "?" + c.urlParams_.Encode()
5277	req, err := http.NewRequest("GET", urls, body)
5278	if err != nil {
5279		return nil, err
5280	}
5281	req.Header = reqHeaders
5282	googleapi.Expand(req.URL, map[string]string{
5283		"parent": c.parent,
5284	})
5285	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5286}
5287
5288// Do executes the "firebase.projects.availableLocations.list" call.
5289// Exactly one of *ListAvailableLocationsResponse or error will be
5290// non-nil. Any non-2xx status code is an error. Response headers are in
5291// either *ListAvailableLocationsResponse.ServerResponse.Header or (if a
5292// response was returned at all) in error.(*googleapi.Error).Header. Use
5293// googleapi.IsNotModified to check whether the returned error was
5294// because http.StatusNotModified was returned.
5295func (c *ProjectsAvailableLocationsListCall) Do(opts ...googleapi.CallOption) (*ListAvailableLocationsResponse, error) {
5296	gensupport.SetOptions(c.urlParams_, opts...)
5297	res, err := c.doRequest("json")
5298	if res != nil && res.StatusCode == http.StatusNotModified {
5299		if res.Body != nil {
5300			res.Body.Close()
5301		}
5302		return nil, &googleapi.Error{
5303			Code:   res.StatusCode,
5304			Header: res.Header,
5305		}
5306	}
5307	if err != nil {
5308		return nil, err
5309	}
5310	defer googleapi.CloseBody(res)
5311	if err := googleapi.CheckResponse(res); err != nil {
5312		return nil, err
5313	}
5314	ret := &ListAvailableLocationsResponse{
5315		ServerResponse: googleapi.ServerResponse{
5316			Header:         res.Header,
5317			HTTPStatusCode: res.StatusCode,
5318		},
5319	}
5320	target := &ret
5321	if err := gensupport.DecodeResponse(target, res); err != nil {
5322		return nil, err
5323	}
5324	return ret, nil
5325	// {
5326	//   "description": "Returns a list of valid Google Cloud Platform (GCP) resource locations for\nthe specified Project (including a FirebaseProject).\n\u003cbr\u003e\n\u003cbr\u003eThe default GCP resource location of a project defines the geographical\nlocation where project resources, such as Cloud Firestore, will be\nprovisioned by default.\n\u003cbr\u003e\n\u003cbr\u003eThe returned list are the available\n[GCP resource\nlocations](https://firebase.google.com/docs/projects/locations). \u003cbr\u003e\n\u003cbr\u003eThis call checks for any location restrictions for the specified\nProject and, thus, might return a subset of all possible GCP resource\nlocations. To list all GCP resource locations (regardless of any\nrestrictions), call the endpoint without specifying a `projectId` (that is,\n`/v1beta1/{parent=projects/-}/listAvailableLocations`).\n\u003cbr\u003e\n\u003cbr\u003eTo call `ListAvailableLocations` with a specified project, a member\nmust be at minimum a Viewer of the project. Calls without a specified\nproject do not require any specific project permissions.",
5327	//   "flatPath": "v1beta1/projects/{projectsId}/availableLocations",
5328	//   "httpMethod": "GET",
5329	//   "id": "firebase.projects.availableLocations.list",
5330	//   "parameterOrder": [
5331	//     "parent"
5332	//   ],
5333	//   "parameters": {
5334	//     "pageSize": {
5335	//       "description": "The maximum number of locations to return in the response.\n\u003cbr\u003e\n\u003cbr\u003eThe server may return fewer than this value at its discretion.\nIf no value is specified (or too large a value is specified), then the\nserver will impose its own limit.\n\u003cbr\u003e\n\u003cbr\u003eThis value cannot be negative.",
5336	//       "format": "int32",
5337	//       "location": "query",
5338	//       "type": "integer"
5339	//     },
5340	//     "pageToken": {
5341	//       "description": "Token returned from a previous call to `ListAvailableLocations` indicating\nwhere in the list of locations to resume listing.",
5342	//       "location": "query",
5343	//       "type": "string"
5344	//     },
5345	//     "parent": {
5346	//       "description": "The Project for which to list GCP resource locations, in the format:\n\u003cbr\u003e\u003ccode\u003eprojects/\u003cvar\u003eprojectId\u003c/var\u003e\u003c/code\u003e\n\u003cbr\u003eIf no project is specified (that is, `projects/-`), the returned list\ndoes not take into account org-specific or project-specific location\nrestrictions.",
5347	//       "location": "path",
5348	//       "pattern": "^projects/[^/]+$",
5349	//       "required": true,
5350	//       "type": "string"
5351	//     }
5352	//   },
5353	//   "path": "v1beta1/{+parent}/availableLocations",
5354	//   "response": {
5355	//     "$ref": "ListAvailableLocationsResponse"
5356	//   },
5357	//   "scopes": [
5358	//     "https://www.googleapis.com/auth/cloud-platform",
5359	//     "https://www.googleapis.com/auth/cloud-platform.read-only",
5360	//     "https://www.googleapis.com/auth/firebase",
5361	//     "https://www.googleapis.com/auth/firebase.readonly"
5362	//   ]
5363	// }
5364
5365}
5366
5367// Pages invokes f for each page of results.
5368// A non-nil error returned from f will halt the iteration.
5369// The provided context supersedes any context provided to the Context method.
5370func (c *ProjectsAvailableLocationsListCall) Pages(ctx context.Context, f func(*ListAvailableLocationsResponse) error) error {
5371	c.ctx_ = ctx
5372	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
5373	for {
5374		x, err := c.Do()
5375		if err != nil {
5376			return err
5377		}
5378		if err := f(x); err != nil {
5379			return err
5380		}
5381		if x.NextPageToken == "" {
5382			return nil
5383		}
5384		c.PageToken(x.NextPageToken)
5385	}
5386}
5387
5388// method id "firebase.projects.defaultLocation.finalize":
5389
5390type ProjectsDefaultLocationFinalizeCall struct {
5391	s                              *Service
5392	parent                         string
5393	finalizedefaultlocationrequest *FinalizeDefaultLocationRequest
5394	urlParams_                     gensupport.URLParams
5395	ctx_                           context.Context
5396	header_                        http.Header
5397}
5398
5399// Finalize: Sets the default Google Cloud Platform (GCP) resource
5400// location for the
5401// specified FirebaseProject.
5402// <br>
5403// <br>This method creates an App Engine application with a
5404// [default Cloud
5405// Storage
5406// bucket](https://cloud.google.com/appengine/docs/standard/pytho
5407// n/googlecloudstorageclient/setting-up-cloud-storage#activating_a_cloud
5408// _storage_bucket),
5409// located in the
5410// specified
5411// [`location_id`](#body.request_body.FIELDS.location_id).
5412// This
5413//  location must be one of the available
5414// [GCP
5415// resource
5416// locations](https://firebase.google.com/docs/projects/location
5417// s). <br>
5418// <br>After the default GCP resource location is finalized, or if it
5419// was
5420// already set, it cannot be changed. The default GCP resource location
5421// for
5422// the specified FirebaseProject might already be set because either
5423// the
5424// GCP `Project` already has an App Engine application
5425// or
5426// `FinalizeDefaultLocation` was previously called with a
5427// specified
5428// `location_id`. Any new calls to `FinalizeDefaultLocation` with
5429// a
5430// <em>different</em> specified `location_id` will return a 409
5431// error.
5432// <br>
5433// <br>The result of this call is an
5434// [`Operation`](../../v1beta1/operations),
5435// which can be used to track the provisioning process.
5436// The
5437// [`response`](../../v1beta1/operations#Operation.FIELDS.response) type
5438// of
5439// the `Operation` is google.protobuf.Empty.
5440// <br>
5441// <br>The `Operation` can be polled by its `name` using
5442// GetOperation until `done` is
5443// true. When `done` is true, the `Operation` has either succeeded or
5444// failed.
5445// If the `Operation` has succeeded,
5446// its
5447// [`response`](../../v1beta1/operations#Operation.FIELDS.response) will
5448// be
5449// set to a google.protobuf.Empty; if the `Operation` has failed,
5450// its
5451// `error` will be set to a google.rpc.Status. The `Operation`
5452// is
5453// automatically deleted after completion, so there is no need to
5454// call
5455// DeleteOperation.
5456// <br>
5457// <br>All fields listed in the [request body](#request-body) are
5458// required.
5459// <br>
5460// <br>To call `FinalizeDefaultLocation`, a member must be an Owner
5461// of the project.
5462func (r *ProjectsDefaultLocationService) Finalize(parent string, finalizedefaultlocationrequest *FinalizeDefaultLocationRequest) *ProjectsDefaultLocationFinalizeCall {
5463	c := &ProjectsDefaultLocationFinalizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5464	c.parent = parent
5465	c.finalizedefaultlocationrequest = finalizedefaultlocationrequest
5466	return c
5467}
5468
5469// Fields allows partial responses to be retrieved. See
5470// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5471// for more information.
5472func (c *ProjectsDefaultLocationFinalizeCall) Fields(s ...googleapi.Field) *ProjectsDefaultLocationFinalizeCall {
5473	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5474	return c
5475}
5476
5477// Context sets the context to be used in this call's Do method. Any
5478// pending HTTP request will be aborted if the provided context is
5479// canceled.
5480func (c *ProjectsDefaultLocationFinalizeCall) Context(ctx context.Context) *ProjectsDefaultLocationFinalizeCall {
5481	c.ctx_ = ctx
5482	return c
5483}
5484
5485// Header returns an http.Header that can be modified by the caller to
5486// add HTTP headers to the request.
5487func (c *ProjectsDefaultLocationFinalizeCall) Header() http.Header {
5488	if c.header_ == nil {
5489		c.header_ = make(http.Header)
5490	}
5491	return c.header_
5492}
5493
5494func (c *ProjectsDefaultLocationFinalizeCall) doRequest(alt string) (*http.Response, error) {
5495	reqHeaders := make(http.Header)
5496	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20190926")
5497	for k, v := range c.header_ {
5498		reqHeaders[k] = v
5499	}
5500	reqHeaders.Set("User-Agent", c.s.userAgent())
5501	var body io.Reader = nil
5502	body, err := googleapi.WithoutDataWrapper.JSONReader(c.finalizedefaultlocationrequest)
5503	if err != nil {
5504		return nil, err
5505	}
5506	reqHeaders.Set("Content-Type", "application/json")
5507	c.urlParams_.Set("alt", alt)
5508	c.urlParams_.Set("prettyPrint", "false")
5509	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+parent}/defaultLocation:finalize")
5510	urls += "?" + c.urlParams_.Encode()
5511	req, err := http.NewRequest("POST", urls, body)
5512	if err != nil {
5513		return nil, err
5514	}
5515	req.Header = reqHeaders
5516	googleapi.Expand(req.URL, map[string]string{
5517		"parent": c.parent,
5518	})
5519	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5520}
5521
5522// Do executes the "firebase.projects.defaultLocation.finalize" call.
5523// Exactly one of *Operation or error will be non-nil. Any non-2xx
5524// status code is an error. Response headers are in either
5525// *Operation.ServerResponse.Header or (if a response was returned at
5526// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
5527// to check whether the returned error was because
5528// http.StatusNotModified was returned.
5529func (c *ProjectsDefaultLocationFinalizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
5530	gensupport.SetOptions(c.urlParams_, opts...)
5531	res, err := c.doRequest("json")
5532	if res != nil && res.StatusCode == http.StatusNotModified {
5533		if res.Body != nil {
5534			res.Body.Close()
5535		}
5536		return nil, &googleapi.Error{
5537			Code:   res.StatusCode,
5538			Header: res.Header,
5539		}
5540	}
5541	if err != nil {
5542		return nil, err
5543	}
5544	defer googleapi.CloseBody(res)
5545	if err := googleapi.CheckResponse(res); err != nil {
5546		return nil, err
5547	}
5548	ret := &Operation{
5549		ServerResponse: googleapi.ServerResponse{
5550			Header:         res.Header,
5551			HTTPStatusCode: res.StatusCode,
5552		},
5553	}
5554	target := &ret
5555	if err := gensupport.DecodeResponse(target, res); err != nil {
5556		return nil, err
5557	}
5558	return ret, nil
5559	// {
5560	//   "description": "Sets the default Google Cloud Platform (GCP) resource location for the\nspecified FirebaseProject.\n\u003cbr\u003e\n\u003cbr\u003eThis method creates an App Engine application with a\n[default Cloud Storage\nbucket](https://cloud.google.com/appengine/docs/standard/python/googlecloudstorageclient/setting-up-cloud-storage#activating_a_cloud_storage_bucket),\nlocated in the specified\n[`location_id`](#body.request_body.FIELDS.location_id).\nThis location must be one of the available\n[GCP resource\nlocations](https://firebase.google.com/docs/projects/locations). \u003cbr\u003e\n\u003cbr\u003eAfter the default GCP resource location is finalized, or if it was\nalready set, it cannot be changed. The default GCP resource location for\nthe specified FirebaseProject might already be set because either the\nGCP `Project` already has an App Engine application or\n`FinalizeDefaultLocation` was previously called with a specified\n`location_id`. Any new calls to `FinalizeDefaultLocation` with a\n\u003cem\u003edifferent\u003c/em\u003e specified `location_id` will return a 409 error.\n\u003cbr\u003e\n\u003cbr\u003eThe result of this call is an [`Operation`](../../v1beta1/operations),\nwhich can be used to track the provisioning process. The\n[`response`](../../v1beta1/operations#Operation.FIELDS.response) type of\nthe `Operation` is google.protobuf.Empty.\n\u003cbr\u003e\n\u003cbr\u003eThe `Operation` can be polled by its `name` using\nGetOperation until `done` is\ntrue. When `done` is true, the `Operation` has either succeeded or failed.\nIf the `Operation` has succeeded, its\n[`response`](../../v1beta1/operations#Operation.FIELDS.response) will be\nset to a google.protobuf.Empty; if the `Operation` has failed, its\n`error` will be set to a google.rpc.Status. The `Operation` is\nautomatically deleted after completion, so there is no need to call\nDeleteOperation.\n\u003cbr\u003e\n\u003cbr\u003eAll fields listed in the [request body](#request-body) are required.\n\u003cbr\u003e\n\u003cbr\u003eTo call `FinalizeDefaultLocation`, a member must be an Owner\nof the project.",
5561	//   "flatPath": "v1beta1/projects/{projectsId}/defaultLocation:finalize",
5562	//   "httpMethod": "POST",
5563	//   "id": "firebase.projects.defaultLocation.finalize",
5564	//   "parameterOrder": [
5565	//     "parent"
5566	//   ],
5567	//   "parameters": {
5568	//     "parent": {
5569	//       "description": "The resource name of the Project for which the default GCP resource\nlocation will be set, in the format:\n\u003cbr\u003e\u003ccode\u003eprojects/\u003cvar\u003eprojectId\u003c/var\u003e\u003c/code\u003e",
5570	//       "location": "path",
5571	//       "pattern": "^projects/[^/]+$",
5572	//       "required": true,
5573	//       "type": "string"
5574	//     }
5575	//   },
5576	//   "path": "v1beta1/{+parent}/defaultLocation:finalize",
5577	//   "request": {
5578	//     "$ref": "FinalizeDefaultLocationRequest"
5579	//   },
5580	//   "response": {
5581	//     "$ref": "Operation"
5582	//   },
5583	//   "scopes": [
5584	//     "https://www.googleapis.com/auth/cloud-platform"
5585	//   ]
5586	// }
5587
5588}
5589
5590// method id "firebase.projects.iosApps.create":
5591
5592type ProjectsIosAppsCreateCall struct {
5593	s          *Service
5594	parent     string
5595	iosapp     *IosApp
5596	urlParams_ gensupport.URLParams
5597	ctx_       context.Context
5598	header_    http.Header
5599}
5600
5601// Create: Requests that a new IosApp be created.
5602// <br>
5603// <br>The result of this call is an `Operation` which can be used to
5604// track
5605// the provisioning process. The `Operation` is automatically deleted
5606// after
5607// completion, so there is no need to call `DeleteOperation`.
5608func (r *ProjectsIosAppsService) Create(parent string, iosapp *IosApp) *ProjectsIosAppsCreateCall {
5609	c := &ProjectsIosAppsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5610	c.parent = parent
5611	c.iosapp = iosapp
5612	return c
5613}
5614
5615// Fields allows partial responses to be retrieved. See
5616// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5617// for more information.
5618func (c *ProjectsIosAppsCreateCall) Fields(s ...googleapi.Field) *ProjectsIosAppsCreateCall {
5619	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5620	return c
5621}
5622
5623// Context sets the context to be used in this call's Do method. Any
5624// pending HTTP request will be aborted if the provided context is
5625// canceled.
5626func (c *ProjectsIosAppsCreateCall) Context(ctx context.Context) *ProjectsIosAppsCreateCall {
5627	c.ctx_ = ctx
5628	return c
5629}
5630
5631// Header returns an http.Header that can be modified by the caller to
5632// add HTTP headers to the request.
5633func (c *ProjectsIosAppsCreateCall) Header() http.Header {
5634	if c.header_ == nil {
5635		c.header_ = make(http.Header)
5636	}
5637	return c.header_
5638}
5639
5640func (c *ProjectsIosAppsCreateCall) doRequest(alt string) (*http.Response, error) {
5641	reqHeaders := make(http.Header)
5642	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20190926")
5643	for k, v := range c.header_ {
5644		reqHeaders[k] = v
5645	}
5646	reqHeaders.Set("User-Agent", c.s.userAgent())
5647	var body io.Reader = nil
5648	body, err := googleapi.WithoutDataWrapper.JSONReader(c.iosapp)
5649	if err != nil {
5650		return nil, err
5651	}
5652	reqHeaders.Set("Content-Type", "application/json")
5653	c.urlParams_.Set("alt", alt)
5654	c.urlParams_.Set("prettyPrint", "false")
5655	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+parent}/iosApps")
5656	urls += "?" + c.urlParams_.Encode()
5657	req, err := http.NewRequest("POST", urls, body)
5658	if err != nil {
5659		return nil, err
5660	}
5661	req.Header = reqHeaders
5662	googleapi.Expand(req.URL, map[string]string{
5663		"parent": c.parent,
5664	})
5665	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5666}
5667
5668// Do executes the "firebase.projects.iosApps.create" call.
5669// Exactly one of *Operation or error will be non-nil. Any non-2xx
5670// status code is an error. Response headers are in either
5671// *Operation.ServerResponse.Header or (if a response was returned at
5672// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
5673// to check whether the returned error was because
5674// http.StatusNotModified was returned.
5675func (c *ProjectsIosAppsCreateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
5676	gensupport.SetOptions(c.urlParams_, opts...)
5677	res, err := c.doRequest("json")
5678	if res != nil && res.StatusCode == http.StatusNotModified {
5679		if res.Body != nil {
5680			res.Body.Close()
5681		}
5682		return nil, &googleapi.Error{
5683			Code:   res.StatusCode,
5684			Header: res.Header,
5685		}
5686	}
5687	if err != nil {
5688		return nil, err
5689	}
5690	defer googleapi.CloseBody(res)
5691	if err := googleapi.CheckResponse(res); err != nil {
5692		return nil, err
5693	}
5694	ret := &Operation{
5695		ServerResponse: googleapi.ServerResponse{
5696			Header:         res.Header,
5697			HTTPStatusCode: res.StatusCode,
5698		},
5699	}
5700	target := &ret
5701	if err := gensupport.DecodeResponse(target, res); err != nil {
5702		return nil, err
5703	}
5704	return ret, nil
5705	// {
5706	//   "description": "Requests that a new IosApp be created.\n\u003cbr\u003e\n\u003cbr\u003eThe result of this call is an `Operation` which can be used to track\nthe provisioning process. The `Operation` is automatically deleted after\ncompletion, so there is no need to call `DeleteOperation`.",
5707	//   "flatPath": "v1beta1/projects/{projectsId}/iosApps",
5708	//   "httpMethod": "POST",
5709	//   "id": "firebase.projects.iosApps.create",
5710	//   "parameterOrder": [
5711	//     "parent"
5712	//   ],
5713	//   "parameters": {
5714	//     "parent": {
5715	//       "description": "The parent Project for which to list Apps, in the format:\n\u003cbr\u003e\u003ccode\u003eprojects/\u003cvar\u003eprojectId\u003c/var\u003e\u003c/code\u003e",
5716	//       "location": "path",
5717	//       "pattern": "^projects/[^/]+$",
5718	//       "required": true,
5719	//       "type": "string"
5720	//     }
5721	//   },
5722	//   "path": "v1beta1/{+parent}/iosApps",
5723	//   "request": {
5724	//     "$ref": "IosApp"
5725	//   },
5726	//   "response": {
5727	//     "$ref": "Operation"
5728	//   },
5729	//   "scopes": [
5730	//     "https://www.googleapis.com/auth/cloud-platform",
5731	//     "https://www.googleapis.com/auth/firebase"
5732	//   ]
5733	// }
5734
5735}
5736
5737// method id "firebase.projects.iosApps.get":
5738
5739type ProjectsIosAppsGetCall struct {
5740	s            *Service
5741	nameid       string
5742	urlParams_   gensupport.URLParams
5743	ifNoneMatch_ string
5744	ctx_         context.Context
5745	header_      http.Header
5746}
5747
5748// Get: Gets the IosApp identified by the specified resource name.
5749func (r *ProjectsIosAppsService) Get(nameid string) *ProjectsIosAppsGetCall {
5750	c := &ProjectsIosAppsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5751	c.nameid = nameid
5752	return c
5753}
5754
5755// Fields allows partial responses to be retrieved. See
5756// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5757// for more information.
5758func (c *ProjectsIosAppsGetCall) Fields(s ...googleapi.Field) *ProjectsIosAppsGetCall {
5759	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5760	return c
5761}
5762
5763// IfNoneMatch sets the optional parameter which makes the operation
5764// fail if the object's ETag matches the given value. This is useful for
5765// getting updates only after the object has changed since the last
5766// request. Use googleapi.IsNotModified to check whether the response
5767// error from Do is the result of In-None-Match.
5768func (c *ProjectsIosAppsGetCall) IfNoneMatch(entityTag string) *ProjectsIosAppsGetCall {
5769	c.ifNoneMatch_ = entityTag
5770	return c
5771}
5772
5773// Context sets the context to be used in this call's Do method. Any
5774// pending HTTP request will be aborted if the provided context is
5775// canceled.
5776func (c *ProjectsIosAppsGetCall) Context(ctx context.Context) *ProjectsIosAppsGetCall {
5777	c.ctx_ = ctx
5778	return c
5779}
5780
5781// Header returns an http.Header that can be modified by the caller to
5782// add HTTP headers to the request.
5783func (c *ProjectsIosAppsGetCall) Header() http.Header {
5784	if c.header_ == nil {
5785		c.header_ = make(http.Header)
5786	}
5787	return c.header_
5788}
5789
5790func (c *ProjectsIosAppsGetCall) doRequest(alt string) (*http.Response, error) {
5791	reqHeaders := make(http.Header)
5792	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20190926")
5793	for k, v := range c.header_ {
5794		reqHeaders[k] = v
5795	}
5796	reqHeaders.Set("User-Agent", c.s.userAgent())
5797	if c.ifNoneMatch_ != "" {
5798		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
5799	}
5800	var body io.Reader = nil
5801	c.urlParams_.Set("alt", alt)
5802	c.urlParams_.Set("prettyPrint", "false")
5803	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+name}")
5804	urls += "?" + c.urlParams_.Encode()
5805	req, err := http.NewRequest("GET", urls, body)
5806	if err != nil {
5807		return nil, err
5808	}
5809	req.Header = reqHeaders
5810	googleapi.Expand(req.URL, map[string]string{
5811		"name": c.nameid,
5812	})
5813	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5814}
5815
5816// Do executes the "firebase.projects.iosApps.get" call.
5817// Exactly one of *IosApp or error will be non-nil. Any non-2xx status
5818// code is an error. Response headers are in either
5819// *IosApp.ServerResponse.Header or (if a response was returned at all)
5820// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
5821// check whether the returned error was because http.StatusNotModified
5822// was returned.
5823func (c *ProjectsIosAppsGetCall) Do(opts ...googleapi.CallOption) (*IosApp, error) {
5824	gensupport.SetOptions(c.urlParams_, opts...)
5825	res, err := c.doRequest("json")
5826	if res != nil && res.StatusCode == http.StatusNotModified {
5827		if res.Body != nil {
5828			res.Body.Close()
5829		}
5830		return nil, &googleapi.Error{
5831			Code:   res.StatusCode,
5832			Header: res.Header,
5833		}
5834	}
5835	if err != nil {
5836		return nil, err
5837	}
5838	defer googleapi.CloseBody(res)
5839	if err := googleapi.CheckResponse(res); err != nil {
5840		return nil, err
5841	}
5842	ret := &IosApp{
5843		ServerResponse: googleapi.ServerResponse{
5844			Header:         res.Header,
5845			HTTPStatusCode: res.StatusCode,
5846		},
5847	}
5848	target := &ret
5849	if err := gensupport.DecodeResponse(target, res); err != nil {
5850		return nil, err
5851	}
5852	return ret, nil
5853	// {
5854	//   "description": "Gets the IosApp identified by the specified resource name.",
5855	//   "flatPath": "v1beta1/projects/{projectsId}/iosApps/{iosAppsId}",
5856	//   "httpMethod": "GET",
5857	//   "id": "firebase.projects.iosApps.get",
5858	//   "parameterOrder": [
5859	//     "name"
5860	//   ],
5861	//   "parameters": {
5862	//     "name": {
5863	//       "description": "The fully qualified resource name of the App, in the format:\n\u003ccode\u003eprojects/\u003cvar\u003eprojectId\u003c/var\u003e/iosApps/\u003cvar\u003eappId\u003c/var\u003e\u003c/code\u003e\n\u003cbr\u003eAs an \u003cvar\u003eappId\u003c/var\u003e is a unique identifier, the Unique Resource\nfrom Sub-Collection access pattern may be used here, in the format:\n\u003cbr\u003e\u003ccode\u003eprojects/-/iosApps/\u003cvar\u003eappId\u003c/var\u003e\u003c/code\u003e",
5864	//       "location": "path",
5865	//       "pattern": "^projects/[^/]+/iosApps/[^/]+$",
5866	//       "required": true,
5867	//       "type": "string"
5868	//     }
5869	//   },
5870	//   "path": "v1beta1/{+name}",
5871	//   "response": {
5872	//     "$ref": "IosApp"
5873	//   },
5874	//   "scopes": [
5875	//     "https://www.googleapis.com/auth/cloud-platform",
5876	//     "https://www.googleapis.com/auth/cloud-platform.read-only",
5877	//     "https://www.googleapis.com/auth/firebase",
5878	//     "https://www.googleapis.com/auth/firebase.readonly"
5879	//   ]
5880	// }
5881
5882}
5883
5884// method id "firebase.projects.iosApps.getConfig":
5885
5886type ProjectsIosAppsGetConfigCall struct {
5887	s            *Service
5888	nameid       string
5889	urlParams_   gensupport.URLParams
5890	ifNoneMatch_ string
5891	ctx_         context.Context
5892	header_      http.Header
5893}
5894
5895// GetConfig: Gets the configuration artifact associated with the
5896// specified IosApp.
5897func (r *ProjectsIosAppsService) GetConfig(nameid string) *ProjectsIosAppsGetConfigCall {
5898	c := &ProjectsIosAppsGetConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
5899	c.nameid = nameid
5900	return c
5901}
5902
5903// Fields allows partial responses to be retrieved. See
5904// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
5905// for more information.
5906func (c *ProjectsIosAppsGetConfigCall) Fields(s ...googleapi.Field) *ProjectsIosAppsGetConfigCall {
5907	c.urlParams_.Set("fields", googleapi.CombineFields(s))
5908	return c
5909}
5910
5911// IfNoneMatch sets the optional parameter which makes the operation
5912// fail if the object's ETag matches the given value. This is useful for
5913// getting updates only after the object has changed since the last
5914// request. Use googleapi.IsNotModified to check whether the response
5915// error from Do is the result of In-None-Match.
5916func (c *ProjectsIosAppsGetConfigCall) IfNoneMatch(entityTag string) *ProjectsIosAppsGetConfigCall {
5917	c.ifNoneMatch_ = entityTag
5918	return c
5919}
5920
5921// Context sets the context to be used in this call's Do method. Any
5922// pending HTTP request will be aborted if the provided context is
5923// canceled.
5924func (c *ProjectsIosAppsGetConfigCall) Context(ctx context.Context) *ProjectsIosAppsGetConfigCall {
5925	c.ctx_ = ctx
5926	return c
5927}
5928
5929// Header returns an http.Header that can be modified by the caller to
5930// add HTTP headers to the request.
5931func (c *ProjectsIosAppsGetConfigCall) Header() http.Header {
5932	if c.header_ == nil {
5933		c.header_ = make(http.Header)
5934	}
5935	return c.header_
5936}
5937
5938func (c *ProjectsIosAppsGetConfigCall) doRequest(alt string) (*http.Response, error) {
5939	reqHeaders := make(http.Header)
5940	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20190926")
5941	for k, v := range c.header_ {
5942		reqHeaders[k] = v
5943	}
5944	reqHeaders.Set("User-Agent", c.s.userAgent())
5945	if c.ifNoneMatch_ != "" {
5946		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
5947	}
5948	var body io.Reader = nil
5949	c.urlParams_.Set("alt", alt)
5950	c.urlParams_.Set("prettyPrint", "false")
5951	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+name}")
5952	urls += "?" + c.urlParams_.Encode()
5953	req, err := http.NewRequest("GET", urls, body)
5954	if err != nil {
5955		return nil, err
5956	}
5957	req.Header = reqHeaders
5958	googleapi.Expand(req.URL, map[string]string{
5959		"name": c.nameid,
5960	})
5961	return gensupport.SendRequest(c.ctx_, c.s.client, req)
5962}
5963
5964// Do executes the "firebase.projects.iosApps.getConfig" call.
5965// Exactly one of *IosAppConfig or error will be non-nil. Any non-2xx
5966// status code is an error. Response headers are in either
5967// *IosAppConfig.ServerResponse.Header or (if a response was returned at
5968// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
5969// to check whether the returned error was because
5970// http.StatusNotModified was returned.
5971func (c *ProjectsIosAppsGetConfigCall) Do(opts ...googleapi.CallOption) (*IosAppConfig, error) {
5972	gensupport.SetOptions(c.urlParams_, opts...)
5973	res, err := c.doRequest("json")
5974	if res != nil && res.StatusCode == http.StatusNotModified {
5975		if res.Body != nil {
5976			res.Body.Close()
5977		}
5978		return nil, &googleapi.Error{
5979			Code:   res.StatusCode,
5980			Header: res.Header,
5981		}
5982	}
5983	if err != nil {
5984		return nil, err
5985	}
5986	defer googleapi.CloseBody(res)
5987	if err := googleapi.CheckResponse(res); err != nil {
5988		return nil, err
5989	}
5990	ret := &IosAppConfig{
5991		ServerResponse: googleapi.ServerResponse{
5992			Header:         res.Header,
5993			HTTPStatusCode: res.StatusCode,
5994		},
5995	}
5996	target := &ret
5997	if err := gensupport.DecodeResponse(target, res); err != nil {
5998		return nil, err
5999	}
6000	return ret, nil
6001	// {
6002	//   "description": "Gets the configuration artifact associated with the specified IosApp.",
6003	//   "flatPath": "v1beta1/projects/{projectsId}/iosApps/{iosAppsId}/config",
6004	//   "httpMethod": "GET",
6005	//   "id": "firebase.projects.iosApps.getConfig",
6006	//   "parameterOrder": [
6007	//     "name"
6008	//   ],
6009	//   "parameters": {
6010	//     "name": {
6011	//       "description": "The resource name of the App configuration to download, in the format:\n\u003cbr\u003e\u003ccode\u003eprojects/\u003cvar\u003eprojectId\u003c/var\u003e/iosApps/\u003cvar\u003eappId\u003c/var\u003e/config\u003c/code\u003e\n\u003cbr\u003eAs an \u003cvar\u003eappId\u003c/var\u003e is a unique identifier, the Unique Resource\nfrom Sub-Collection access pattern may be used here, in the format:\n\u003cbr\u003e\u003ccode\u003eprojects/-/iosApps/\u003cvar\u003eappId\u003c/var\u003e\u003c/code\u003e",
6012	//       "location": "path",
6013	//       "pattern": "^projects/[^/]+/iosApps/[^/]+/config$",
6014	//       "required": true,
6015	//       "type": "string"
6016	//     }
6017	//   },
6018	//   "path": "v1beta1/{+name}",
6019	//   "response": {
6020	//     "$ref": "IosAppConfig"
6021	//   },
6022	//   "scopes": [
6023	//     "https://www.googleapis.com/auth/cloud-platform"
6024	//   ]
6025	// }
6026
6027}
6028
6029// method id "firebase.projects.iosApps.list":
6030
6031type ProjectsIosAppsListCall struct {
6032	s            *Service
6033	parent       string
6034	urlParams_   gensupport.URLParams
6035	ifNoneMatch_ string
6036	ctx_         context.Context
6037	header_      http.Header
6038}
6039
6040// List: Lists each IosApp associated with the specified parent
6041// Project.
6042// <br>
6043// <br>The elements are returned in no particular order, but will be
6044// a
6045// consistent view of the Apps when additional requests are made with
6046// a
6047// `pageToken`.
6048func (r *ProjectsIosAppsService) List(parent string) *ProjectsIosAppsListCall {
6049	c := &ProjectsIosAppsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6050	c.parent = parent
6051	return c
6052}
6053
6054// PageSize sets the optional parameter "pageSize": The maximum number
6055// of Apps to return in the response.
6056// <br>
6057// <br>The server may return fewer than this at its discretion.
6058// If no value is specified (or too large a value is specified), the
6059// server
6060// will impose its own limit.
6061func (c *ProjectsIosAppsListCall) PageSize(pageSize int64) *ProjectsIosAppsListCall {
6062	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
6063	return c
6064}
6065
6066// PageToken sets the optional parameter "pageToken": Token returned
6067// from a previous call to `ListIosApps` indicating where in
6068// the set of Apps to resume listing.
6069func (c *ProjectsIosAppsListCall) PageToken(pageToken string) *ProjectsIosAppsListCall {
6070	c.urlParams_.Set("pageToken", pageToken)
6071	return c
6072}
6073
6074// Fields allows partial responses to be retrieved. See
6075// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6076// for more information.
6077func (c *ProjectsIosAppsListCall) Fields(s ...googleapi.Field) *ProjectsIosAppsListCall {
6078	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6079	return c
6080}
6081
6082// IfNoneMatch sets the optional parameter which makes the operation
6083// fail if the object's ETag matches the given value. This is useful for
6084// getting updates only after the object has changed since the last
6085// request. Use googleapi.IsNotModified to check whether the response
6086// error from Do is the result of In-None-Match.
6087func (c *ProjectsIosAppsListCall) IfNoneMatch(entityTag string) *ProjectsIosAppsListCall {
6088	c.ifNoneMatch_ = entityTag
6089	return c
6090}
6091
6092// Context sets the context to be used in this call's Do method. Any
6093// pending HTTP request will be aborted if the provided context is
6094// canceled.
6095func (c *ProjectsIosAppsListCall) Context(ctx context.Context) *ProjectsIosAppsListCall {
6096	c.ctx_ = ctx
6097	return c
6098}
6099
6100// Header returns an http.Header that can be modified by the caller to
6101// add HTTP headers to the request.
6102func (c *ProjectsIosAppsListCall) Header() http.Header {
6103	if c.header_ == nil {
6104		c.header_ = make(http.Header)
6105	}
6106	return c.header_
6107}
6108
6109func (c *ProjectsIosAppsListCall) doRequest(alt string) (*http.Response, error) {
6110	reqHeaders := make(http.Header)
6111	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20190926")
6112	for k, v := range c.header_ {
6113		reqHeaders[k] = v
6114	}
6115	reqHeaders.Set("User-Agent", c.s.userAgent())
6116	if c.ifNoneMatch_ != "" {
6117		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
6118	}
6119	var body io.Reader = nil
6120	c.urlParams_.Set("alt", alt)
6121	c.urlParams_.Set("prettyPrint", "false")
6122	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+parent}/iosApps")
6123	urls += "?" + c.urlParams_.Encode()
6124	req, err := http.NewRequest("GET", urls, body)
6125	if err != nil {
6126		return nil, err
6127	}
6128	req.Header = reqHeaders
6129	googleapi.Expand(req.URL, map[string]string{
6130		"parent": c.parent,
6131	})
6132	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6133}
6134
6135// Do executes the "firebase.projects.iosApps.list" call.
6136// Exactly one of *ListIosAppsResponse or error will be non-nil. Any
6137// non-2xx status code is an error. Response headers are in either
6138// *ListIosAppsResponse.ServerResponse.Header or (if a response was
6139// returned at all) in error.(*googleapi.Error).Header. Use
6140// googleapi.IsNotModified to check whether the returned error was
6141// because http.StatusNotModified was returned.
6142func (c *ProjectsIosAppsListCall) Do(opts ...googleapi.CallOption) (*ListIosAppsResponse, error) {
6143	gensupport.SetOptions(c.urlParams_, opts...)
6144	res, err := c.doRequest("json")
6145	if res != nil && res.StatusCode == http.StatusNotModified {
6146		if res.Body != nil {
6147			res.Body.Close()
6148		}
6149		return nil, &googleapi.Error{
6150			Code:   res.StatusCode,
6151			Header: res.Header,
6152		}
6153	}
6154	if err != nil {
6155		return nil, err
6156	}
6157	defer googleapi.CloseBody(res)
6158	if err := googleapi.CheckResponse(res); err != nil {
6159		return nil, err
6160	}
6161	ret := &ListIosAppsResponse{
6162		ServerResponse: googleapi.ServerResponse{
6163			Header:         res.Header,
6164			HTTPStatusCode: res.StatusCode,
6165		},
6166	}
6167	target := &ret
6168	if err := gensupport.DecodeResponse(target, res); err != nil {
6169		return nil, err
6170	}
6171	return ret, nil
6172	// {
6173	//   "description": "Lists each IosApp associated with the specified parent Project.\n\u003cbr\u003e\n\u003cbr\u003eThe elements are returned in no particular order, but will be a\nconsistent view of the Apps when additional requests are made with a\n`pageToken`.",
6174	//   "flatPath": "v1beta1/projects/{projectsId}/iosApps",
6175	//   "httpMethod": "GET",
6176	//   "id": "firebase.projects.iosApps.list",
6177	//   "parameterOrder": [
6178	//     "parent"
6179	//   ],
6180	//   "parameters": {
6181	//     "pageSize": {
6182	//       "description": "The maximum number of Apps to return in the response.\n\u003cbr\u003e\n\u003cbr\u003eThe server may return fewer than this at its discretion.\nIf no value is specified (or too large a value is specified), the server\nwill impose its own limit.",
6183	//       "format": "int32",
6184	//       "location": "query",
6185	//       "type": "integer"
6186	//     },
6187	//     "pageToken": {
6188	//       "description": "Token returned from a previous call to `ListIosApps` indicating where in\nthe set of Apps to resume listing.",
6189	//       "location": "query",
6190	//       "type": "string"
6191	//     },
6192	//     "parent": {
6193	//       "description": "The parent Project for which to list Apps, in the format:\n\u003cbr\u003e\u003ccode\u003eprojects/\u003cvar\u003eprojectId\u003c/var\u003e\u003c/code\u003e",
6194	//       "location": "path",
6195	//       "pattern": "^projects/[^/]+$",
6196	//       "required": true,
6197	//       "type": "string"
6198	//     }
6199	//   },
6200	//   "path": "v1beta1/{+parent}/iosApps",
6201	//   "response": {
6202	//     "$ref": "ListIosAppsResponse"
6203	//   },
6204	//   "scopes": [
6205	//     "https://www.googleapis.com/auth/cloud-platform",
6206	//     "https://www.googleapis.com/auth/cloud-platform.read-only",
6207	//     "https://www.googleapis.com/auth/firebase",
6208	//     "https://www.googleapis.com/auth/firebase.readonly"
6209	//   ]
6210	// }
6211
6212}
6213
6214// Pages invokes f for each page of results.
6215// A non-nil error returned from f will halt the iteration.
6216// The provided context supersedes any context provided to the Context method.
6217func (c *ProjectsIosAppsListCall) Pages(ctx context.Context, f func(*ListIosAppsResponse) error) error {
6218	c.ctx_ = ctx
6219	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
6220	for {
6221		x, err := c.Do()
6222		if err != nil {
6223			return err
6224		}
6225		if err := f(x); err != nil {
6226			return err
6227		}
6228		if x.NextPageToken == "" {
6229			return nil
6230		}
6231		c.PageToken(x.NextPageToken)
6232	}
6233}
6234
6235// method id "firebase.projects.iosApps.patch":
6236
6237type ProjectsIosAppsPatchCall struct {
6238	s          *Service
6239	name       string
6240	iosapp     *IosApp
6241	urlParams_ gensupport.URLParams
6242	ctx_       context.Context
6243	header_    http.Header
6244}
6245
6246// Patch: Updates the attributes of the IosApp identified by the
6247// specified
6248// resource name.
6249func (r *ProjectsIosAppsService) Patch(name string, iosapp *IosApp) *ProjectsIosAppsPatchCall {
6250	c := &ProjectsIosAppsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6251	c.name = name
6252	c.iosapp = iosapp
6253	return c
6254}
6255
6256// UpdateMask sets the optional parameter "updateMask": Specifies which
6257// fields to update.
6258// <br>Note that the fields `name`, `appId`, `projectId`, and
6259// `bundleId`
6260// are all immutable.
6261func (c *ProjectsIosAppsPatchCall) UpdateMask(updateMask string) *ProjectsIosAppsPatchCall {
6262	c.urlParams_.Set("updateMask", updateMask)
6263	return c
6264}
6265
6266// Fields allows partial responses to be retrieved. See
6267// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6268// for more information.
6269func (c *ProjectsIosAppsPatchCall) Fields(s ...googleapi.Field) *ProjectsIosAppsPatchCall {
6270	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6271	return c
6272}
6273
6274// Context sets the context to be used in this call's Do method. Any
6275// pending HTTP request will be aborted if the provided context is
6276// canceled.
6277func (c *ProjectsIosAppsPatchCall) Context(ctx context.Context) *ProjectsIosAppsPatchCall {
6278	c.ctx_ = ctx
6279	return c
6280}
6281
6282// Header returns an http.Header that can be modified by the caller to
6283// add HTTP headers to the request.
6284func (c *ProjectsIosAppsPatchCall) Header() http.Header {
6285	if c.header_ == nil {
6286		c.header_ = make(http.Header)
6287	}
6288	return c.header_
6289}
6290
6291func (c *ProjectsIosAppsPatchCall) doRequest(alt string) (*http.Response, error) {
6292	reqHeaders := make(http.Header)
6293	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20190926")
6294	for k, v := range c.header_ {
6295		reqHeaders[k] = v
6296	}
6297	reqHeaders.Set("User-Agent", c.s.userAgent())
6298	var body io.Reader = nil
6299	body, err := googleapi.WithoutDataWrapper.JSONReader(c.iosapp)
6300	if err != nil {
6301		return nil, err
6302	}
6303	reqHeaders.Set("Content-Type", "application/json")
6304	c.urlParams_.Set("alt", alt)
6305	c.urlParams_.Set("prettyPrint", "false")
6306	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+name}")
6307	urls += "?" + c.urlParams_.Encode()
6308	req, err := http.NewRequest("PATCH", urls, body)
6309	if err != nil {
6310		return nil, err
6311	}
6312	req.Header = reqHeaders
6313	googleapi.Expand(req.URL, map[string]string{
6314		"name": c.name,
6315	})
6316	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6317}
6318
6319// Do executes the "firebase.projects.iosApps.patch" call.
6320// Exactly one of *IosApp or error will be non-nil. Any non-2xx status
6321// code is an error. Response headers are in either
6322// *IosApp.ServerResponse.Header or (if a response was returned at all)
6323// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
6324// check whether the returned error was because http.StatusNotModified
6325// was returned.
6326func (c *ProjectsIosAppsPatchCall) Do(opts ...googleapi.CallOption) (*IosApp, error) {
6327	gensupport.SetOptions(c.urlParams_, opts...)
6328	res, err := c.doRequest("json")
6329	if res != nil && res.StatusCode == http.StatusNotModified {
6330		if res.Body != nil {
6331			res.Body.Close()
6332		}
6333		return nil, &googleapi.Error{
6334			Code:   res.StatusCode,
6335			Header: res.Header,
6336		}
6337	}
6338	if err != nil {
6339		return nil, err
6340	}
6341	defer googleapi.CloseBody(res)
6342	if err := googleapi.CheckResponse(res); err != nil {
6343		return nil, err
6344	}
6345	ret := &IosApp{
6346		ServerResponse: googleapi.ServerResponse{
6347			Header:         res.Header,
6348			HTTPStatusCode: res.StatusCode,
6349		},
6350	}
6351	target := &ret
6352	if err := gensupport.DecodeResponse(target, res); err != nil {
6353		return nil, err
6354	}
6355	return ret, nil
6356	// {
6357	//   "description": "Updates the attributes of the IosApp identified by the specified\nresource name.",
6358	//   "flatPath": "v1beta1/projects/{projectsId}/iosApps/{iosAppsId}",
6359	//   "httpMethod": "PATCH",
6360	//   "id": "firebase.projects.iosApps.patch",
6361	//   "parameterOrder": [
6362	//     "name"
6363	//   ],
6364	//   "parameters": {
6365	//     "name": {
6366	//       "description": "The fully qualified resource name of the App, in the format:\n\u003cbr\u003e\u003ccode\u003eprojects/\u003cvar\u003eprojectId\u003c/var\u003e/iosApps/\u003cvar\u003eappId\u003c/var\u003e\u003c/code\u003e",
6367	//       "location": "path",
6368	//       "pattern": "^projects/[^/]+/iosApps/[^/]+$",
6369	//       "required": true,
6370	//       "type": "string"
6371	//     },
6372	//     "updateMask": {
6373	//       "description": "Specifies which fields to update.\n\u003cbr\u003eNote that the fields `name`, `appId`, `projectId`, and `bundleId`\nare all immutable.",
6374	//       "format": "google-fieldmask",
6375	//       "location": "query",
6376	//       "type": "string"
6377	//     }
6378	//   },
6379	//   "path": "v1beta1/{+name}",
6380	//   "request": {
6381	//     "$ref": "IosApp"
6382	//   },
6383	//   "response": {
6384	//     "$ref": "IosApp"
6385	//   },
6386	//   "scopes": [
6387	//     "https://www.googleapis.com/auth/cloud-platform",
6388	//     "https://www.googleapis.com/auth/firebase"
6389	//   ]
6390	// }
6391
6392}
6393
6394// method id "firebase.projects.webApps.create":
6395
6396type ProjectsWebAppsCreateCall struct {
6397	s          *Service
6398	parent     string
6399	webapp     *WebApp
6400	urlParams_ gensupport.URLParams
6401	ctx_       context.Context
6402	header_    http.Header
6403}
6404
6405// Create: Requests that a new WebApp be created.
6406// <br>
6407// <br>The result of this call is an `Operation` which can be used to
6408// track
6409// the provisioning process. The `Operation` is automatically deleted
6410// after
6411// completion, so there is no need to call `DeleteOperation`.
6412func (r *ProjectsWebAppsService) Create(parent string, webapp *WebApp) *ProjectsWebAppsCreateCall {
6413	c := &ProjectsWebAppsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6414	c.parent = parent
6415	c.webapp = webapp
6416	return c
6417}
6418
6419// Fields allows partial responses to be retrieved. See
6420// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6421// for more information.
6422func (c *ProjectsWebAppsCreateCall) Fields(s ...googleapi.Field) *ProjectsWebAppsCreateCall {
6423	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6424	return c
6425}
6426
6427// Context sets the context to be used in this call's Do method. Any
6428// pending HTTP request will be aborted if the provided context is
6429// canceled.
6430func (c *ProjectsWebAppsCreateCall) Context(ctx context.Context) *ProjectsWebAppsCreateCall {
6431	c.ctx_ = ctx
6432	return c
6433}
6434
6435// Header returns an http.Header that can be modified by the caller to
6436// add HTTP headers to the request.
6437func (c *ProjectsWebAppsCreateCall) Header() http.Header {
6438	if c.header_ == nil {
6439		c.header_ = make(http.Header)
6440	}
6441	return c.header_
6442}
6443
6444func (c *ProjectsWebAppsCreateCall) doRequest(alt string) (*http.Response, error) {
6445	reqHeaders := make(http.Header)
6446	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20190926")
6447	for k, v := range c.header_ {
6448		reqHeaders[k] = v
6449	}
6450	reqHeaders.Set("User-Agent", c.s.userAgent())
6451	var body io.Reader = nil
6452	body, err := googleapi.WithoutDataWrapper.JSONReader(c.webapp)
6453	if err != nil {
6454		return nil, err
6455	}
6456	reqHeaders.Set("Content-Type", "application/json")
6457	c.urlParams_.Set("alt", alt)
6458	c.urlParams_.Set("prettyPrint", "false")
6459	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+parent}/webApps")
6460	urls += "?" + c.urlParams_.Encode()
6461	req, err := http.NewRequest("POST", urls, body)
6462	if err != nil {
6463		return nil, err
6464	}
6465	req.Header = reqHeaders
6466	googleapi.Expand(req.URL, map[string]string{
6467		"parent": c.parent,
6468	})
6469	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6470}
6471
6472// Do executes the "firebase.projects.webApps.create" call.
6473// Exactly one of *Operation or error will be non-nil. Any non-2xx
6474// status code is an error. Response headers are in either
6475// *Operation.ServerResponse.Header or (if a response was returned at
6476// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
6477// to check whether the returned error was because
6478// http.StatusNotModified was returned.
6479func (c *ProjectsWebAppsCreateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
6480	gensupport.SetOptions(c.urlParams_, opts...)
6481	res, err := c.doRequest("json")
6482	if res != nil && res.StatusCode == http.StatusNotModified {
6483		if res.Body != nil {
6484			res.Body.Close()
6485		}
6486		return nil, &googleapi.Error{
6487			Code:   res.StatusCode,
6488			Header: res.Header,
6489		}
6490	}
6491	if err != nil {
6492		return nil, err
6493	}
6494	defer googleapi.CloseBody(res)
6495	if err := googleapi.CheckResponse(res); err != nil {
6496		return nil, err
6497	}
6498	ret := &Operation{
6499		ServerResponse: googleapi.ServerResponse{
6500			Header:         res.Header,
6501			HTTPStatusCode: res.StatusCode,
6502		},
6503	}
6504	target := &ret
6505	if err := gensupport.DecodeResponse(target, res); err != nil {
6506		return nil, err
6507	}
6508	return ret, nil
6509	// {
6510	//   "description": "Requests that a new WebApp be created.\n\u003cbr\u003e\n\u003cbr\u003eThe result of this call is an `Operation` which can be used to track\nthe provisioning process. The `Operation` is automatically deleted after\ncompletion, so there is no need to call `DeleteOperation`.",
6511	//   "flatPath": "v1beta1/projects/{projectsId}/webApps",
6512	//   "httpMethod": "POST",
6513	//   "id": "firebase.projects.webApps.create",
6514	//   "parameterOrder": [
6515	//     "parent"
6516	//   ],
6517	//   "parameters": {
6518	//     "parent": {
6519	//       "description": "The parent Project for which to list Apps, in the format:\n\u003cbr\u003e\u003ccode\u003eprojects/\u003cvar\u003eprojectId\u003c/var\u003e\u003c/code\u003e",
6520	//       "location": "path",
6521	//       "pattern": "^projects/[^/]+$",
6522	//       "required": true,
6523	//       "type": "string"
6524	//     }
6525	//   },
6526	//   "path": "v1beta1/{+parent}/webApps",
6527	//   "request": {
6528	//     "$ref": "WebApp"
6529	//   },
6530	//   "response": {
6531	//     "$ref": "Operation"
6532	//   },
6533	//   "scopes": [
6534	//     "https://www.googleapis.com/auth/cloud-platform",
6535	//     "https://www.googleapis.com/auth/firebase"
6536	//   ]
6537	// }
6538
6539}
6540
6541// method id "firebase.projects.webApps.get":
6542
6543type ProjectsWebAppsGetCall struct {
6544	s            *Service
6545	nameid       string
6546	urlParams_   gensupport.URLParams
6547	ifNoneMatch_ string
6548	ctx_         context.Context
6549	header_      http.Header
6550}
6551
6552// Get: Gets the WebApp identified by the specified resource name.
6553func (r *ProjectsWebAppsService) Get(nameid string) *ProjectsWebAppsGetCall {
6554	c := &ProjectsWebAppsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6555	c.nameid = nameid
6556	return c
6557}
6558
6559// Fields allows partial responses to be retrieved. See
6560// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6561// for more information.
6562func (c *ProjectsWebAppsGetCall) Fields(s ...googleapi.Field) *ProjectsWebAppsGetCall {
6563	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6564	return c
6565}
6566
6567// IfNoneMatch sets the optional parameter which makes the operation
6568// fail if the object's ETag matches the given value. This is useful for
6569// getting updates only after the object has changed since the last
6570// request. Use googleapi.IsNotModified to check whether the response
6571// error from Do is the result of In-None-Match.
6572func (c *ProjectsWebAppsGetCall) IfNoneMatch(entityTag string) *ProjectsWebAppsGetCall {
6573	c.ifNoneMatch_ = entityTag
6574	return c
6575}
6576
6577// Context sets the context to be used in this call's Do method. Any
6578// pending HTTP request will be aborted if the provided context is
6579// canceled.
6580func (c *ProjectsWebAppsGetCall) Context(ctx context.Context) *ProjectsWebAppsGetCall {
6581	c.ctx_ = ctx
6582	return c
6583}
6584
6585// Header returns an http.Header that can be modified by the caller to
6586// add HTTP headers to the request.
6587func (c *ProjectsWebAppsGetCall) Header() http.Header {
6588	if c.header_ == nil {
6589		c.header_ = make(http.Header)
6590	}
6591	return c.header_
6592}
6593
6594func (c *ProjectsWebAppsGetCall) doRequest(alt string) (*http.Response, error) {
6595	reqHeaders := make(http.Header)
6596	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20190926")
6597	for k, v := range c.header_ {
6598		reqHeaders[k] = v
6599	}
6600	reqHeaders.Set("User-Agent", c.s.userAgent())
6601	if c.ifNoneMatch_ != "" {
6602		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
6603	}
6604	var body io.Reader = nil
6605	c.urlParams_.Set("alt", alt)
6606	c.urlParams_.Set("prettyPrint", "false")
6607	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+name}")
6608	urls += "?" + c.urlParams_.Encode()
6609	req, err := http.NewRequest("GET", urls, body)
6610	if err != nil {
6611		return nil, err
6612	}
6613	req.Header = reqHeaders
6614	googleapi.Expand(req.URL, map[string]string{
6615		"name": c.nameid,
6616	})
6617	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6618}
6619
6620// Do executes the "firebase.projects.webApps.get" call.
6621// Exactly one of *WebApp or error will be non-nil. Any non-2xx status
6622// code is an error. Response headers are in either
6623// *WebApp.ServerResponse.Header or (if a response was returned at all)
6624// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
6625// check whether the returned error was because http.StatusNotModified
6626// was returned.
6627func (c *ProjectsWebAppsGetCall) Do(opts ...googleapi.CallOption) (*WebApp, error) {
6628	gensupport.SetOptions(c.urlParams_, opts...)
6629	res, err := c.doRequest("json")
6630	if res != nil && res.StatusCode == http.StatusNotModified {
6631		if res.Body != nil {
6632			res.Body.Close()
6633		}
6634		return nil, &googleapi.Error{
6635			Code:   res.StatusCode,
6636			Header: res.Header,
6637		}
6638	}
6639	if err != nil {
6640		return nil, err
6641	}
6642	defer googleapi.CloseBody(res)
6643	if err := googleapi.CheckResponse(res); err != nil {
6644		return nil, err
6645	}
6646	ret := &WebApp{
6647		ServerResponse: googleapi.ServerResponse{
6648			Header:         res.Header,
6649			HTTPStatusCode: res.StatusCode,
6650		},
6651	}
6652	target := &ret
6653	if err := gensupport.DecodeResponse(target, res); err != nil {
6654		return nil, err
6655	}
6656	return ret, nil
6657	// {
6658	//   "description": "Gets the WebApp identified by the specified resource name.",
6659	//   "flatPath": "v1beta1/projects/{projectsId}/webApps/{webAppsId}",
6660	//   "httpMethod": "GET",
6661	//   "id": "firebase.projects.webApps.get",
6662	//   "parameterOrder": [
6663	//     "name"
6664	//   ],
6665	//   "parameters": {
6666	//     "name": {
6667	//       "description": "The fully qualified resource name of the App, in the format:\n\u003cbr\u003e\u003ccode\u003eprojects/\u003cvar\u003eprojectId\u003c/var\u003e/webApps/\u003cvar\u003eappId\u003c/var\u003e\u003c/code\u003e\n\u003cbr\u003eAs an \u003cvar\u003eappId\u003c/var\u003e is a unique identifier, the Unique Resource\nfrom Sub-Collection access pattern may be used here, in the format:\n\u003cbr\u003e\u003ccode\u003eprojects/-/webApps/\u003cvar\u003eappId\u003c/var\u003e\u003c/code\u003e",
6668	//       "location": "path",
6669	//       "pattern": "^projects/[^/]+/webApps/[^/]+$",
6670	//       "required": true,
6671	//       "type": "string"
6672	//     }
6673	//   },
6674	//   "path": "v1beta1/{+name}",
6675	//   "response": {
6676	//     "$ref": "WebApp"
6677	//   },
6678	//   "scopes": [
6679	//     "https://www.googleapis.com/auth/cloud-platform",
6680	//     "https://www.googleapis.com/auth/cloud-platform.read-only",
6681	//     "https://www.googleapis.com/auth/firebase",
6682	//     "https://www.googleapis.com/auth/firebase.readonly"
6683	//   ]
6684	// }
6685
6686}
6687
6688// method id "firebase.projects.webApps.getConfig":
6689
6690type ProjectsWebAppsGetConfigCall struct {
6691	s            *Service
6692	nameid       string
6693	urlParams_   gensupport.URLParams
6694	ifNoneMatch_ string
6695	ctx_         context.Context
6696	header_      http.Header
6697}
6698
6699// GetConfig: Gets the configuration artifact associated with the
6700// specified WebApp.
6701func (r *ProjectsWebAppsService) GetConfig(nameid string) *ProjectsWebAppsGetConfigCall {
6702	c := &ProjectsWebAppsGetConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6703	c.nameid = nameid
6704	return c
6705}
6706
6707// Fields allows partial responses to be retrieved. See
6708// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6709// for more information.
6710func (c *ProjectsWebAppsGetConfigCall) Fields(s ...googleapi.Field) *ProjectsWebAppsGetConfigCall {
6711	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6712	return c
6713}
6714
6715// IfNoneMatch sets the optional parameter which makes the operation
6716// fail if the object's ETag matches the given value. This is useful for
6717// getting updates only after the object has changed since the last
6718// request. Use googleapi.IsNotModified to check whether the response
6719// error from Do is the result of In-None-Match.
6720func (c *ProjectsWebAppsGetConfigCall) IfNoneMatch(entityTag string) *ProjectsWebAppsGetConfigCall {
6721	c.ifNoneMatch_ = entityTag
6722	return c
6723}
6724
6725// Context sets the context to be used in this call's Do method. Any
6726// pending HTTP request will be aborted if the provided context is
6727// canceled.
6728func (c *ProjectsWebAppsGetConfigCall) Context(ctx context.Context) *ProjectsWebAppsGetConfigCall {
6729	c.ctx_ = ctx
6730	return c
6731}
6732
6733// Header returns an http.Header that can be modified by the caller to
6734// add HTTP headers to the request.
6735func (c *ProjectsWebAppsGetConfigCall) Header() http.Header {
6736	if c.header_ == nil {
6737		c.header_ = make(http.Header)
6738	}
6739	return c.header_
6740}
6741
6742func (c *ProjectsWebAppsGetConfigCall) doRequest(alt string) (*http.Response, error) {
6743	reqHeaders := make(http.Header)
6744	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20190926")
6745	for k, v := range c.header_ {
6746		reqHeaders[k] = v
6747	}
6748	reqHeaders.Set("User-Agent", c.s.userAgent())
6749	if c.ifNoneMatch_ != "" {
6750		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
6751	}
6752	var body io.Reader = nil
6753	c.urlParams_.Set("alt", alt)
6754	c.urlParams_.Set("prettyPrint", "false")
6755	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+name}")
6756	urls += "?" + c.urlParams_.Encode()
6757	req, err := http.NewRequest("GET", urls, body)
6758	if err != nil {
6759		return nil, err
6760	}
6761	req.Header = reqHeaders
6762	googleapi.Expand(req.URL, map[string]string{
6763		"name": c.nameid,
6764	})
6765	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6766}
6767
6768// Do executes the "firebase.projects.webApps.getConfig" call.
6769// Exactly one of *WebAppConfig or error will be non-nil. Any non-2xx
6770// status code is an error. Response headers are in either
6771// *WebAppConfig.ServerResponse.Header or (if a response was returned at
6772// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
6773// to check whether the returned error was because
6774// http.StatusNotModified was returned.
6775func (c *ProjectsWebAppsGetConfigCall) Do(opts ...googleapi.CallOption) (*WebAppConfig, error) {
6776	gensupport.SetOptions(c.urlParams_, opts...)
6777	res, err := c.doRequest("json")
6778	if res != nil && res.StatusCode == http.StatusNotModified {
6779		if res.Body != nil {
6780			res.Body.Close()
6781		}
6782		return nil, &googleapi.Error{
6783			Code:   res.StatusCode,
6784			Header: res.Header,
6785		}
6786	}
6787	if err != nil {
6788		return nil, err
6789	}
6790	defer googleapi.CloseBody(res)
6791	if err := googleapi.CheckResponse(res); err != nil {
6792		return nil, err
6793	}
6794	ret := &WebAppConfig{
6795		ServerResponse: googleapi.ServerResponse{
6796			Header:         res.Header,
6797			HTTPStatusCode: res.StatusCode,
6798		},
6799	}
6800	target := &ret
6801	if err := gensupport.DecodeResponse(target, res); err != nil {
6802		return nil, err
6803	}
6804	return ret, nil
6805	// {
6806	//   "description": "Gets the configuration artifact associated with the specified WebApp.",
6807	//   "flatPath": "v1beta1/projects/{projectsId}/webApps/{webAppsId}/config",
6808	//   "httpMethod": "GET",
6809	//   "id": "firebase.projects.webApps.getConfig",
6810	//   "parameterOrder": [
6811	//     "name"
6812	//   ],
6813	//   "parameters": {
6814	//     "name": {
6815	//       "description": "The resource name of the App configuration to download, in the format:\n\u003cbr\u003e\u003ccode\u003eprojects/\u003cvar\u003eprojectId\u003c/var\u003e/webApps/\u003cvar\u003eappId\u003c/var\u003e/config\u003c/code\u003e\n\u003cbr\u003eAs an \u003cvar\u003eappId\u003c/var\u003e is a unique identifier, the Unique Resource\nfrom Sub-Collection access pattern may be used here, in the format:\n\u003cbr\u003e\u003ccode\u003eprojects/-/webApps/\u003cvar\u003eappId\u003c/var\u003e\u003c/code\u003e",
6816	//       "location": "path",
6817	//       "pattern": "^projects/[^/]+/webApps/[^/]+/config$",
6818	//       "required": true,
6819	//       "type": "string"
6820	//     }
6821	//   },
6822	//   "path": "v1beta1/{+name}",
6823	//   "response": {
6824	//     "$ref": "WebAppConfig"
6825	//   },
6826	//   "scopes": [
6827	//     "https://www.googleapis.com/auth/cloud-platform"
6828	//   ]
6829	// }
6830
6831}
6832
6833// method id "firebase.projects.webApps.list":
6834
6835type ProjectsWebAppsListCall struct {
6836	s            *Service
6837	parent       string
6838	urlParams_   gensupport.URLParams
6839	ifNoneMatch_ string
6840	ctx_         context.Context
6841	header_      http.Header
6842}
6843
6844// List: Lists each WebApp associated with the specified parent
6845// Project.
6846// <br>
6847// <br>The elements are returned in no particular order, but will be
6848// a
6849// consistent view of the Apps when additional requests are made with
6850// a
6851// `pageToken`.
6852func (r *ProjectsWebAppsService) List(parent string) *ProjectsWebAppsListCall {
6853	c := &ProjectsWebAppsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
6854	c.parent = parent
6855	return c
6856}
6857
6858// PageSize sets the optional parameter "pageSize": The maximum number
6859// of Apps to return in the response.
6860// <br>
6861// <br>The server may return fewer than this value at its discretion.
6862// If no value is specified (or too large a value is specified), then
6863// the
6864// server will impose its own limit.
6865func (c *ProjectsWebAppsListCall) PageSize(pageSize int64) *ProjectsWebAppsListCall {
6866	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
6867	return c
6868}
6869
6870// PageToken sets the optional parameter "pageToken": Token returned
6871// from a previous call to `ListWebApps` indicating where in
6872// the set of Apps to resume listing.
6873func (c *ProjectsWebAppsListCall) PageToken(pageToken string) *ProjectsWebAppsListCall {
6874	c.urlParams_.Set("pageToken", pageToken)
6875	return c
6876}
6877
6878// Fields allows partial responses to be retrieved. See
6879// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
6880// for more information.
6881func (c *ProjectsWebAppsListCall) Fields(s ...googleapi.Field) *ProjectsWebAppsListCall {
6882	c.urlParams_.Set("fields", googleapi.CombineFields(s))
6883	return c
6884}
6885
6886// IfNoneMatch sets the optional parameter which makes the operation
6887// fail if the object's ETag matches the given value. This is useful for
6888// getting updates only after the object has changed since the last
6889// request. Use googleapi.IsNotModified to check whether the response
6890// error from Do is the result of In-None-Match.
6891func (c *ProjectsWebAppsListCall) IfNoneMatch(entityTag string) *ProjectsWebAppsListCall {
6892	c.ifNoneMatch_ = entityTag
6893	return c
6894}
6895
6896// Context sets the context to be used in this call's Do method. Any
6897// pending HTTP request will be aborted if the provided context is
6898// canceled.
6899func (c *ProjectsWebAppsListCall) Context(ctx context.Context) *ProjectsWebAppsListCall {
6900	c.ctx_ = ctx
6901	return c
6902}
6903
6904// Header returns an http.Header that can be modified by the caller to
6905// add HTTP headers to the request.
6906func (c *ProjectsWebAppsListCall) Header() http.Header {
6907	if c.header_ == nil {
6908		c.header_ = make(http.Header)
6909	}
6910	return c.header_
6911}
6912
6913func (c *ProjectsWebAppsListCall) doRequest(alt string) (*http.Response, error) {
6914	reqHeaders := make(http.Header)
6915	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20190926")
6916	for k, v := range c.header_ {
6917		reqHeaders[k] = v
6918	}
6919	reqHeaders.Set("User-Agent", c.s.userAgent())
6920	if c.ifNoneMatch_ != "" {
6921		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
6922	}
6923	var body io.Reader = nil
6924	c.urlParams_.Set("alt", alt)
6925	c.urlParams_.Set("prettyPrint", "false")
6926	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+parent}/webApps")
6927	urls += "?" + c.urlParams_.Encode()
6928	req, err := http.NewRequest("GET", urls, body)
6929	if err != nil {
6930		return nil, err
6931	}
6932	req.Header = reqHeaders
6933	googleapi.Expand(req.URL, map[string]string{
6934		"parent": c.parent,
6935	})
6936	return gensupport.SendRequest(c.ctx_, c.s.client, req)
6937}
6938
6939// Do executes the "firebase.projects.webApps.list" call.
6940// Exactly one of *ListWebAppsResponse or error will be non-nil. Any
6941// non-2xx status code is an error. Response headers are in either
6942// *ListWebAppsResponse.ServerResponse.Header or (if a response was
6943// returned at all) in error.(*googleapi.Error).Header. Use
6944// googleapi.IsNotModified to check whether the returned error was
6945// because http.StatusNotModified was returned.
6946func (c *ProjectsWebAppsListCall) Do(opts ...googleapi.CallOption) (*ListWebAppsResponse, error) {
6947	gensupport.SetOptions(c.urlParams_, opts...)
6948	res, err := c.doRequest("json")
6949	if res != nil && res.StatusCode == http.StatusNotModified {
6950		if res.Body != nil {
6951			res.Body.Close()
6952		}
6953		return nil, &googleapi.Error{
6954			Code:   res.StatusCode,
6955			Header: res.Header,
6956		}
6957	}
6958	if err != nil {
6959		return nil, err
6960	}
6961	defer googleapi.CloseBody(res)
6962	if err := googleapi.CheckResponse(res); err != nil {
6963		return nil, err
6964	}
6965	ret := &ListWebAppsResponse{
6966		ServerResponse: googleapi.ServerResponse{
6967			Header:         res.Header,
6968			HTTPStatusCode: res.StatusCode,
6969		},
6970	}
6971	target := &ret
6972	if err := gensupport.DecodeResponse(target, res); err != nil {
6973		return nil, err
6974	}
6975	return ret, nil
6976	// {
6977	//   "description": "Lists each WebApp associated with the specified parent Project.\n\u003cbr\u003e\n\u003cbr\u003eThe elements are returned in no particular order, but will be a\nconsistent view of the Apps when additional requests are made with a\n`pageToken`.",
6978	//   "flatPath": "v1beta1/projects/{projectsId}/webApps",
6979	//   "httpMethod": "GET",
6980	//   "id": "firebase.projects.webApps.list",
6981	//   "parameterOrder": [
6982	//     "parent"
6983	//   ],
6984	//   "parameters": {
6985	//     "pageSize": {
6986	//       "description": "The maximum number of Apps to return in the response.\n\u003cbr\u003e\n\u003cbr\u003eThe server may return fewer than this value at its discretion.\nIf no value is specified (or too large a value is specified), then the\nserver will impose its own limit.",
6987	//       "format": "int32",
6988	//       "location": "query",
6989	//       "type": "integer"
6990	//     },
6991	//     "pageToken": {
6992	//       "description": "Token returned from a previous call to `ListWebApps` indicating where in\nthe set of Apps to resume listing.",
6993	//       "location": "query",
6994	//       "type": "string"
6995	//     },
6996	//     "parent": {
6997	//       "description": "The parent Project for which to list Apps, in the format:\n\u003cbr\u003e\u003ccode\u003eprojects/\u003cvar\u003eprojectId\u003c/var\u003e\u003c/code\u003e",
6998	//       "location": "path",
6999	//       "pattern": "^projects/[^/]+$",
7000	//       "required": true,
7001	//       "type": "string"
7002	//     }
7003	//   },
7004	//   "path": "v1beta1/{+parent}/webApps",
7005	//   "response": {
7006	//     "$ref": "ListWebAppsResponse"
7007	//   },
7008	//   "scopes": [
7009	//     "https://www.googleapis.com/auth/cloud-platform",
7010	//     "https://www.googleapis.com/auth/cloud-platform.read-only",
7011	//     "https://www.googleapis.com/auth/firebase",
7012	//     "https://www.googleapis.com/auth/firebase.readonly"
7013	//   ]
7014	// }
7015
7016}
7017
7018// Pages invokes f for each page of results.
7019// A non-nil error returned from f will halt the iteration.
7020// The provided context supersedes any context provided to the Context method.
7021func (c *ProjectsWebAppsListCall) Pages(ctx context.Context, f func(*ListWebAppsResponse) error) error {
7022	c.ctx_ = ctx
7023	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
7024	for {
7025		x, err := c.Do()
7026		if err != nil {
7027			return err
7028		}
7029		if err := f(x); err != nil {
7030			return err
7031		}
7032		if x.NextPageToken == "" {
7033			return nil
7034		}
7035		c.PageToken(x.NextPageToken)
7036	}
7037}
7038
7039// method id "firebase.projects.webApps.patch":
7040
7041type ProjectsWebAppsPatchCall struct {
7042	s          *Service
7043	name       string
7044	webapp     *WebApp
7045	urlParams_ gensupport.URLParams
7046	ctx_       context.Context
7047	header_    http.Header
7048}
7049
7050// Patch: Updates the attributes of the WebApp identified by the
7051// specified
7052// resource name.
7053func (r *ProjectsWebAppsService) Patch(name string, webapp *WebApp) *ProjectsWebAppsPatchCall {
7054	c := &ProjectsWebAppsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
7055	c.name = name
7056	c.webapp = webapp
7057	return c
7058}
7059
7060// UpdateMask sets the optional parameter "updateMask": Specifies which
7061// fields to update.
7062// <br>Note that the fields `name`, `appId`, and `projectId` are
7063// all
7064// immutable.
7065func (c *ProjectsWebAppsPatchCall) UpdateMask(updateMask string) *ProjectsWebAppsPatchCall {
7066	c.urlParams_.Set("updateMask", updateMask)
7067	return c
7068}
7069
7070// Fields allows partial responses to be retrieved. See
7071// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
7072// for more information.
7073func (c *ProjectsWebAppsPatchCall) Fields(s ...googleapi.Field) *ProjectsWebAppsPatchCall {
7074	c.urlParams_.Set("fields", googleapi.CombineFields(s))
7075	return c
7076}
7077
7078// Context sets the context to be used in this call's Do method. Any
7079// pending HTTP request will be aborted if the provided context is
7080// canceled.
7081func (c *ProjectsWebAppsPatchCall) Context(ctx context.Context) *ProjectsWebAppsPatchCall {
7082	c.ctx_ = ctx
7083	return c
7084}
7085
7086// Header returns an http.Header that can be modified by the caller to
7087// add HTTP headers to the request.
7088func (c *ProjectsWebAppsPatchCall) Header() http.Header {
7089	if c.header_ == nil {
7090		c.header_ = make(http.Header)
7091	}
7092	return c.header_
7093}
7094
7095func (c *ProjectsWebAppsPatchCall) doRequest(alt string) (*http.Response, error) {
7096	reqHeaders := make(http.Header)
7097	reqHeaders.Set("x-goog-api-client", "gl-go/1.11.0 gdcl/20190926")
7098	for k, v := range c.header_ {
7099		reqHeaders[k] = v
7100	}
7101	reqHeaders.Set("User-Agent", c.s.userAgent())
7102	var body io.Reader = nil
7103	body, err := googleapi.WithoutDataWrapper.JSONReader(c.webapp)
7104	if err != nil {
7105		return nil, err
7106	}
7107	reqHeaders.Set("Content-Type", "application/json")
7108	c.urlParams_.Set("alt", alt)
7109	c.urlParams_.Set("prettyPrint", "false")
7110	urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+name}")
7111	urls += "?" + c.urlParams_.Encode()
7112	req, err := http.NewRequest("PATCH", urls, body)
7113	if err != nil {
7114		return nil, err
7115	}
7116	req.Header = reqHeaders
7117	googleapi.Expand(req.URL, map[string]string{
7118		"name": c.name,
7119	})
7120	return gensupport.SendRequest(c.ctx_, c.s.client, req)
7121}
7122
7123// Do executes the "firebase.projects.webApps.patch" call.
7124// Exactly one of *WebApp or error will be non-nil. Any non-2xx status
7125// code is an error. Response headers are in either
7126// *WebApp.ServerResponse.Header or (if a response was returned at all)
7127// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
7128// check whether the returned error was because http.StatusNotModified
7129// was returned.
7130func (c *ProjectsWebAppsPatchCall) Do(opts ...googleapi.CallOption) (*WebApp, error) {
7131	gensupport.SetOptions(c.urlParams_, opts...)
7132	res, err := c.doRequest("json")
7133	if res != nil && res.StatusCode == http.StatusNotModified {
7134		if res.Body != nil {
7135			res.Body.Close()
7136		}
7137		return nil, &googleapi.Error{
7138			Code:   res.StatusCode,
7139			Header: res.Header,
7140		}
7141	}
7142	if err != nil {
7143		return nil, err
7144	}
7145	defer googleapi.CloseBody(res)
7146	if err := googleapi.CheckResponse(res); err != nil {
7147		return nil, err
7148	}
7149	ret := &WebApp{
7150		ServerResponse: googleapi.ServerResponse{
7151			Header:         res.Header,
7152			HTTPStatusCode: res.StatusCode,
7153		},
7154	}
7155	target := &ret
7156	if err := gensupport.DecodeResponse(target, res); err != nil {
7157		return nil, err
7158	}
7159	return ret, nil
7160	// {
7161	//   "description": "Updates the attributes of the WebApp identified by the specified\nresource name.",
7162	//   "flatPath": "v1beta1/projects/{projectsId}/webApps/{webAppsId}",
7163	//   "httpMethod": "PATCH",
7164	//   "id": "firebase.projects.webApps.patch",
7165	//   "parameterOrder": [
7166	//     "name"
7167	//   ],
7168	//   "parameters": {
7169	//     "name": {
7170	//       "description": "The fully qualified resource name of the App, for example:\n\u003cbr\u003e\u003ccode\u003eprojects/\u003cvar\u003eprojectId\u003c/var\u003e/webApps/\u003cvar\u003eappId\u003c/var\u003e\u003c/code\u003e",
7171	//       "location": "path",
7172	//       "pattern": "^projects/[^/]+/webApps/[^/]+$",
7173	//       "required": true,
7174	//       "type": "string"
7175	//     },
7176	//     "updateMask": {
7177	//       "description": "Specifies which fields to update.\n\u003cbr\u003eNote that the fields `name`, `appId`, and `projectId` are all\nimmutable.",
7178	//       "format": "google-fieldmask",
7179	//       "location": "query",
7180	//       "type": "string"
7181	//     }
7182	//   },
7183	//   "path": "v1beta1/{+name}",
7184	//   "request": {
7185	//     "$ref": "WebApp"
7186	//   },
7187	//   "response": {
7188	//     "$ref": "WebApp"
7189	//   },
7190	//   "scopes": [
7191	//     "https://www.googleapis.com/auth/cloud-platform",
7192	//     "https://www.googleapis.com/auth/firebase"
7193	//   ]
7194	// }
7195
7196}
7197