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