...

Source file src/google.golang.org/api/firebase/v1beta1/firebase-gen.go

Documentation: google.golang.org/api/firebase/v1beta1

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

View as plain text