|  | // Copyright 2020 Google LLC. | 
|  | // Use of this source code is governed by a BSD-style | 
|  | // license that can be found in the LICENSE file. | 
|  |  | 
|  | // Code generated file. DO NOT EDIT. | 
|  |  | 
|  | // Package firebasehosting provides access to the Firebase Hosting API. | 
|  | // | 
|  | // For product documentation, see: https://firebase.google.com/docs/hosting/ | 
|  | // | 
|  | // Creating a client | 
|  | // | 
|  | // Usage example: | 
|  | // | 
|  | //   import "google.golang.org/api/firebasehosting/v1beta1" | 
|  | //   ... | 
|  | //   ctx := context.Background() | 
|  | //   firebasehostingService, err := firebasehosting.NewService(ctx) | 
|  | // | 
|  | // In this example, Google Application Default Credentials are used for authentication. | 
|  | // | 
|  | // For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials. | 
|  | // | 
|  | // Other authentication options | 
|  | // | 
|  | // By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes: | 
|  | // | 
|  | //   firebasehostingService, err := firebasehosting.NewService(ctx, option.WithScopes(firebasehosting.FirebaseReadonlyScope)) | 
|  | // | 
|  | // To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey: | 
|  | // | 
|  | //   firebasehostingService, err := firebasehosting.NewService(ctx, option.WithAPIKey("AIza...")) | 
|  | // | 
|  | // To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource: | 
|  | // | 
|  | //   config := &oauth2.Config{...} | 
|  | //   // ... | 
|  | //   token, err := config.Exchange(ctx, ...) | 
|  | //   firebasehostingService, err := firebasehosting.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token))) | 
|  | // | 
|  | // See https://godoc.org/google.golang.org/api/option/ for details on options. | 
|  | package firebasehosting // import "google.golang.org/api/firebasehosting/v1beta1" | 
|  |  | 
|  | import ( | 
|  | "bytes" | 
|  | "context" | 
|  | "encoding/json" | 
|  | "errors" | 
|  | "fmt" | 
|  | "io" | 
|  | "net/http" | 
|  | "net/url" | 
|  | "strconv" | 
|  | "strings" | 
|  |  | 
|  | googleapi "google.golang.org/api/googleapi" | 
|  | gensupport "google.golang.org/api/internal/gensupport" | 
|  | option "google.golang.org/api/option" | 
|  | internaloption "google.golang.org/api/option/internaloption" | 
|  | htransport "google.golang.org/api/transport/http" | 
|  | ) | 
|  |  | 
|  | // Always reference these packages, just in case the auto-generated code | 
|  | // below doesn't. | 
|  | var _ = bytes.NewBuffer | 
|  | var _ = strconv.Itoa | 
|  | var _ = fmt.Sprintf | 
|  | var _ = json.NewDecoder | 
|  | var _ = io.Copy | 
|  | var _ = url.Parse | 
|  | var _ = gensupport.MarshalJSON | 
|  | var _ = googleapi.Version | 
|  | var _ = errors.New | 
|  | var _ = strings.Replace | 
|  | var _ = context.Canceled | 
|  | var _ = internaloption.WithDefaultEndpoint | 
|  |  | 
|  | const apiId = "firebasehosting:v1beta1" | 
|  | const apiName = "firebasehosting" | 
|  | const apiVersion = "v1beta1" | 
|  | const basePath = "https://firebasehosting.googleapis.com/" | 
|  | const mtlsBasePath = "https://firebasehosting.mtls.googleapis.com/" | 
|  |  | 
|  | // OAuth2 scopes used by this API. | 
|  | const ( | 
|  | // View and manage your data across Google Cloud Platform services | 
|  | CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform" | 
|  |  | 
|  | // View your data across Google Cloud Platform services | 
|  | CloudPlatformReadOnlyScope = "https://www.googleapis.com/auth/cloud-platform.read-only" | 
|  |  | 
|  | // View and administer all your Firebase data and settings | 
|  | FirebaseScope = "https://www.googleapis.com/auth/firebase" | 
|  |  | 
|  | // View all your Firebase data and settings | 
|  | FirebaseReadonlyScope = "https://www.googleapis.com/auth/firebase.readonly" | 
|  | ) | 
|  |  | 
|  | // NewService creates a new Service. | 
|  | func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) { | 
|  | scopesOption := option.WithScopes( | 
|  | "https://www.googleapis.com/auth/cloud-platform", | 
|  | "https://www.googleapis.com/auth/cloud-platform.read-only", | 
|  | "https://www.googleapis.com/auth/firebase", | 
|  | "https://www.googleapis.com/auth/firebase.readonly", | 
|  | ) | 
|  | // NOTE: prepend, so we don't override user-specified scopes. | 
|  | opts = append([]option.ClientOption{scopesOption}, opts...) | 
|  | opts = append(opts, internaloption.WithDefaultEndpoint(basePath)) | 
|  | opts = append(opts, internaloption.WithDefaultMTLSEndpoint(mtlsBasePath)) | 
|  | client, endpoint, err := htransport.NewClient(ctx, opts...) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | s, err := New(client) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | if endpoint != "" { | 
|  | s.BasePath = endpoint | 
|  | } | 
|  | return s, nil | 
|  | } | 
|  |  | 
|  | // New creates a new Service. It uses the provided http.Client for requests. | 
|  | // | 
|  | // Deprecated: please use NewService instead. | 
|  | // To provide a custom HTTP client, use option.WithHTTPClient. | 
|  | // If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead. | 
|  | func New(client *http.Client) (*Service, error) { | 
|  | if client == nil { | 
|  | return nil, errors.New("client is nil") | 
|  | } | 
|  | s := &Service{client: client, BasePath: basePath} | 
|  | s.Projects = NewProjectsService(s) | 
|  | s.Sites = NewSitesService(s) | 
|  | return s, nil | 
|  | } | 
|  |  | 
|  | type Service struct { | 
|  | client    *http.Client | 
|  | BasePath  string // API endpoint base URL | 
|  | UserAgent string // optional additional User-Agent fragment | 
|  |  | 
|  | Projects *ProjectsService | 
|  |  | 
|  | Sites *SitesService | 
|  | } | 
|  |  | 
|  | func (s *Service) userAgent() string { | 
|  | if s.UserAgent == "" { | 
|  | return googleapi.UserAgent | 
|  | } | 
|  | return googleapi.UserAgent + " " + s.UserAgent | 
|  | } | 
|  |  | 
|  | func NewProjectsService(s *Service) *ProjectsService { | 
|  | rs := &ProjectsService{s: s} | 
|  | rs.Operations = NewProjectsOperationsService(s) | 
|  | rs.Sites = NewProjectsSitesService(s) | 
|  | return rs | 
|  | } | 
|  |  | 
|  | type ProjectsService struct { | 
|  | s *Service | 
|  |  | 
|  | Operations *ProjectsOperationsService | 
|  |  | 
|  | Sites *ProjectsSitesService | 
|  | } | 
|  |  | 
|  | func NewProjectsOperationsService(s *Service) *ProjectsOperationsService { | 
|  | rs := &ProjectsOperationsService{s: s} | 
|  | return rs | 
|  | } | 
|  |  | 
|  | type ProjectsOperationsService struct { | 
|  | s *Service | 
|  | } | 
|  |  | 
|  | func NewProjectsSitesService(s *Service) *ProjectsSitesService { | 
|  | rs := &ProjectsSitesService{s: s} | 
|  | rs.Channels = NewProjectsSitesChannelsService(s) | 
|  | rs.Domains = NewProjectsSitesDomainsService(s) | 
|  | rs.Releases = NewProjectsSitesReleasesService(s) | 
|  | rs.Versions = NewProjectsSitesVersionsService(s) | 
|  | return rs | 
|  | } | 
|  |  | 
|  | type ProjectsSitesService struct { | 
|  | s *Service | 
|  |  | 
|  | Channels *ProjectsSitesChannelsService | 
|  |  | 
|  | Domains *ProjectsSitesDomainsService | 
|  |  | 
|  | Releases *ProjectsSitesReleasesService | 
|  |  | 
|  | Versions *ProjectsSitesVersionsService | 
|  | } | 
|  |  | 
|  | func NewProjectsSitesChannelsService(s *Service) *ProjectsSitesChannelsService { | 
|  | rs := &ProjectsSitesChannelsService{s: s} | 
|  | rs.Releases = NewProjectsSitesChannelsReleasesService(s) | 
|  | return rs | 
|  | } | 
|  |  | 
|  | type ProjectsSitesChannelsService struct { | 
|  | s *Service | 
|  |  | 
|  | Releases *ProjectsSitesChannelsReleasesService | 
|  | } | 
|  |  | 
|  | func NewProjectsSitesChannelsReleasesService(s *Service) *ProjectsSitesChannelsReleasesService { | 
|  | rs := &ProjectsSitesChannelsReleasesService{s: s} | 
|  | return rs | 
|  | } | 
|  |  | 
|  | type ProjectsSitesChannelsReleasesService struct { | 
|  | s *Service | 
|  | } | 
|  |  | 
|  | func NewProjectsSitesDomainsService(s *Service) *ProjectsSitesDomainsService { | 
|  | rs := &ProjectsSitesDomainsService{s: s} | 
|  | return rs | 
|  | } | 
|  |  | 
|  | type ProjectsSitesDomainsService struct { | 
|  | s *Service | 
|  | } | 
|  |  | 
|  | func NewProjectsSitesReleasesService(s *Service) *ProjectsSitesReleasesService { | 
|  | rs := &ProjectsSitesReleasesService{s: s} | 
|  | return rs | 
|  | } | 
|  |  | 
|  | type ProjectsSitesReleasesService struct { | 
|  | s *Service | 
|  | } | 
|  |  | 
|  | func NewProjectsSitesVersionsService(s *Service) *ProjectsSitesVersionsService { | 
|  | rs := &ProjectsSitesVersionsService{s: s} | 
|  | rs.Files = NewProjectsSitesVersionsFilesService(s) | 
|  | return rs | 
|  | } | 
|  |  | 
|  | type ProjectsSitesVersionsService struct { | 
|  | s *Service | 
|  |  | 
|  | Files *ProjectsSitesVersionsFilesService | 
|  | } | 
|  |  | 
|  | func NewProjectsSitesVersionsFilesService(s *Service) *ProjectsSitesVersionsFilesService { | 
|  | rs := &ProjectsSitesVersionsFilesService{s: s} | 
|  | return rs | 
|  | } | 
|  |  | 
|  | type ProjectsSitesVersionsFilesService struct { | 
|  | s *Service | 
|  | } | 
|  |  | 
|  | func NewSitesService(s *Service) *SitesService { | 
|  | rs := &SitesService{s: s} | 
|  | rs.Channels = NewSitesChannelsService(s) | 
|  | rs.Domains = NewSitesDomainsService(s) | 
|  | rs.Releases = NewSitesReleasesService(s) | 
|  | rs.Versions = NewSitesVersionsService(s) | 
|  | return rs | 
|  | } | 
|  |  | 
|  | type SitesService struct { | 
|  | s *Service | 
|  |  | 
|  | Channels *SitesChannelsService | 
|  |  | 
|  | Domains *SitesDomainsService | 
|  |  | 
|  | Releases *SitesReleasesService | 
|  |  | 
|  | Versions *SitesVersionsService | 
|  | } | 
|  |  | 
|  | func NewSitesChannelsService(s *Service) *SitesChannelsService { | 
|  | rs := &SitesChannelsService{s: s} | 
|  | rs.Releases = NewSitesChannelsReleasesService(s) | 
|  | return rs | 
|  | } | 
|  |  | 
|  | type SitesChannelsService struct { | 
|  | s *Service | 
|  |  | 
|  | Releases *SitesChannelsReleasesService | 
|  | } | 
|  |  | 
|  | func NewSitesChannelsReleasesService(s *Service) *SitesChannelsReleasesService { | 
|  | rs := &SitesChannelsReleasesService{s: s} | 
|  | return rs | 
|  | } | 
|  |  | 
|  | type SitesChannelsReleasesService struct { | 
|  | s *Service | 
|  | } | 
|  |  | 
|  | func NewSitesDomainsService(s *Service) *SitesDomainsService { | 
|  | rs := &SitesDomainsService{s: s} | 
|  | return rs | 
|  | } | 
|  |  | 
|  | type SitesDomainsService struct { | 
|  | s *Service | 
|  | } | 
|  |  | 
|  | func NewSitesReleasesService(s *Service) *SitesReleasesService { | 
|  | rs := &SitesReleasesService{s: s} | 
|  | return rs | 
|  | } | 
|  |  | 
|  | type SitesReleasesService struct { | 
|  | s *Service | 
|  | } | 
|  |  | 
|  | func NewSitesVersionsService(s *Service) *SitesVersionsService { | 
|  | rs := &SitesVersionsService{s: s} | 
|  | rs.Files = NewSitesVersionsFilesService(s) | 
|  | return rs | 
|  | } | 
|  |  | 
|  | type SitesVersionsService struct { | 
|  | s *Service | 
|  |  | 
|  | Files *SitesVersionsFilesService | 
|  | } | 
|  |  | 
|  | func NewSitesVersionsFilesService(s *Service) *SitesVersionsFilesService { | 
|  | rs := &SitesVersionsFilesService{s: s} | 
|  | return rs | 
|  | } | 
|  |  | 
|  | type SitesVersionsFilesService struct { | 
|  | s *Service | 
|  | } | 
|  |  | 
|  | // ActingUser: Contains metadata about the user who performed an action, | 
|  | // such as creating | 
|  | // a release or finalizing a version. | 
|  | type ActingUser struct { | 
|  | // Email: The email address of the user when the user performed the | 
|  | // action. | 
|  | Email string `json:"email,omitempty"` | 
|  |  | 
|  | // ImageUrl: A profile image URL for the user. May not be present if the | 
|  | // user has | 
|  | // changed their email address or deleted their account. | 
|  | ImageUrl string `json:"imageUrl,omitempty"` | 
|  |  | 
|  | // ForceSendFields is a list of field names (e.g. "Email") to | 
|  | // unconditionally include in API requests. By default, fields with | 
|  | // empty values are omitted from API requests. However, any non-pointer, | 
|  | // non-interface field appearing in ForceSendFields will be sent to the | 
|  | // server regardless of whether the field is empty or not. This may be | 
|  | // used to include empty fields in Patch requests. | 
|  | ForceSendFields []string `json:"-"` | 
|  |  | 
|  | // NullFields is a list of field names (e.g. "Email") to include in API | 
|  | // requests with the JSON null value. By default, fields with empty | 
|  | // values are omitted from API requests. However, any field with an | 
|  | // empty value appearing in NullFields will be sent to the server as | 
|  | // null. It is an error if a field in this list has a non-empty value. | 
|  | // This may be used to include null fields in Patch requests. | 
|  | NullFields []string `json:"-"` | 
|  | } | 
|  |  | 
|  | func (s *ActingUser) MarshalJSON() ([]byte, error) { | 
|  | type NoMethod ActingUser | 
|  | raw := NoMethod(*s) | 
|  | return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) | 
|  | } | 
|  |  | 
|  | // CertDnsChallenge: Represents a DNS certificate challenge. | 
|  | type CertDnsChallenge struct { | 
|  | // DomainName: The domain name upon which the DNS challenge must be | 
|  | // satisfied. | 
|  | DomainName string `json:"domainName,omitempty"` | 
|  |  | 
|  | // Token: The value that must be present as a TXT record on the domain | 
|  | // name to | 
|  | // satisfy the challenge. | 
|  | Token string `json:"token,omitempty"` | 
|  |  | 
|  | // ForceSendFields is a list of field names (e.g. "DomainName") to | 
|  | // unconditionally include in API requests. By default, fields with | 
|  | // empty values are omitted from API requests. However, any non-pointer, | 
|  | // non-interface field appearing in ForceSendFields will be sent to the | 
|  | // server regardless of whether the field is empty or not. This may be | 
|  | // used to include empty fields in Patch requests. | 
|  | ForceSendFields []string `json:"-"` | 
|  |  | 
|  | // NullFields is a list of field names (e.g. "DomainName") to include in | 
|  | // API requests with the JSON null value. By default, fields with empty | 
|  | // values are omitted from API requests. However, any field with an | 
|  | // empty value appearing in NullFields will be sent to the server as | 
|  | // null. It is an error if a field in this list has a non-empty value. | 
|  | // This may be used to include null fields in Patch requests. | 
|  | NullFields []string `json:"-"` | 
|  | } | 
|  |  | 
|  | func (s *CertDnsChallenge) MarshalJSON() ([]byte, error) { | 
|  | type NoMethod CertDnsChallenge | 
|  | raw := NoMethod(*s) | 
|  | return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) | 
|  | } | 
|  |  | 
|  | // CertHttpChallenge: Represents an HTTP certificate challenge. | 
|  | type CertHttpChallenge struct { | 
|  | // Path: The URL path on which to serve the specified token to satisfy | 
|  | // the | 
|  | // certificate challenge. | 
|  | Path string `json:"path,omitempty"` | 
|  |  | 
|  | // Token: The token to serve at the specified URL path to satisfy the | 
|  | // certificate | 
|  | // challenge. | 
|  | Token string `json:"token,omitempty"` | 
|  |  | 
|  | // ForceSendFields is a list of field names (e.g. "Path") to | 
|  | // unconditionally include in API requests. By default, fields with | 
|  | // empty values are omitted from API requests. However, any non-pointer, | 
|  | // non-interface field appearing in ForceSendFields will be sent to the | 
|  | // server regardless of whether the field is empty or not. This may be | 
|  | // used to include empty fields in Patch requests. | 
|  | ForceSendFields []string `json:"-"` | 
|  |  | 
|  | // NullFields is a list of field names (e.g. "Path") to include in API | 
|  | // requests with the JSON null value. By default, fields with empty | 
|  | // values are omitted from API requests. However, any field with an | 
|  | // empty value appearing in NullFields will be sent to the server as | 
|  | // null. It is an error if a field in this list has a non-empty value. | 
|  | // This may be used to include null fields in Patch requests. | 
|  | NullFields []string `json:"-"` | 
|  | } | 
|  |  | 
|  | func (s *CertHttpChallenge) MarshalJSON() ([]byte, error) { | 
|  | type NoMethod CertHttpChallenge | 
|  | raw := NoMethod(*s) | 
|  | return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) | 
|  | } | 
|  |  | 
|  | // CloudRunRewrite: A configured rewrite that directs requests to a | 
|  | // Cloud Run service. If the | 
|  | // Cloud Run service does not exist when setting or updating your | 
|  | // Firebase | 
|  | // Hosting configuration, then the request fails. Any errors from the | 
|  | // Cloud Run | 
|  | // service are passed to the end user (for example, if you delete a | 
|  | // service, any | 
|  | // requests directed to that service receive a `404` error). | 
|  | type CloudRunRewrite struct { | 
|  | // Region: Optional. User-provided region where the Cloud Run service is | 
|  | // hosted.<br> | 
|  | // Defaults to `us-central1` if not supplied. | 
|  | Region string `json:"region,omitempty"` | 
|  |  | 
|  | // ServiceId: Required. User-defined ID of the Cloud Run service. | 
|  | ServiceId string `json:"serviceId,omitempty"` | 
|  |  | 
|  | // ForceSendFields is a list of field names (e.g. "Region") to | 
|  | // unconditionally include in API requests. By default, fields with | 
|  | // empty values are omitted from API requests. However, any non-pointer, | 
|  | // non-interface field appearing in ForceSendFields will be sent to the | 
|  | // server regardless of whether the field is empty or not. This may be | 
|  | // used to include empty fields in Patch requests. | 
|  | ForceSendFields []string `json:"-"` | 
|  |  | 
|  | // NullFields is a list of field names (e.g. "Region") to include in API | 
|  | // requests with the JSON null value. By default, fields with empty | 
|  | // values are omitted from API requests. However, any field with an | 
|  | // empty value appearing in NullFields will be sent to the server as | 
|  | // null. It is an error if a field in this list has a non-empty value. | 
|  | // This may be used to include null fields in Patch requests. | 
|  | NullFields []string `json:"-"` | 
|  | } | 
|  |  | 
|  | func (s *CloudRunRewrite) MarshalJSON() ([]byte, error) { | 
|  | type NoMethod CloudRunRewrite | 
|  | raw := NoMethod(*s) | 
|  | return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) | 
|  | } | 
|  |  | 
|  | // Domain: The intended behavior and status information of a domain. | 
|  | type Domain struct { | 
|  | // DomainName: Required. The domain name of the association. | 
|  | DomainName string `json:"domainName,omitempty"` | 
|  |  | 
|  | // DomainRedirect: If set, the domain should redirect with the provided | 
|  | // parameters. | 
|  | DomainRedirect *DomainRedirect `json:"domainRedirect,omitempty"` | 
|  |  | 
|  | // Provisioning: Output only. Information about the provisioning of | 
|  | // certificates and the | 
|  | // health of the DNS resolution for the domain. | 
|  | Provisioning *DomainProvisioning `json:"provisioning,omitempty"` | 
|  |  | 
|  | // Site: Required. The site name of the association. | 
|  | Site string `json:"site,omitempty"` | 
|  |  | 
|  | // Status: Output only. Additional status of the domain association. | 
|  | // | 
|  | // Possible values: | 
|  | //   "DOMAIN_STATUS_UNSPECIFIED" - Unspecified domain association | 
|  | // status. | 
|  | //   "DOMAIN_CHANGE_PENDING" - An external operation is in progress on | 
|  | // the domain association and no | 
|  | // further operations can be performed until it is complete. Formerly | 
|  | // used for | 
|  | // metabase updates.  Not currently used | 
|  | //   "DOMAIN_ACTIVE" - The domain association is active and no | 
|  | // additional action is required. | 
|  | //   "DOMAIN_VERIFICATION_REQUIRED" - The domain was previously verified | 
|  | // in the legacy system. User must | 
|  | // reverify the domain through the ownership service. | 
|  | //   "DOMAIN_VERIFICATION_LOST" - The domain verification has been lost | 
|  | // and the domain is in the grace period | 
|  | // before being removed from the Firebase Hosting site. | 
|  | Status string `json:"status,omitempty"` | 
|  |  | 
|  | // UpdateTime: Output only. The time at which the domain was last | 
|  | // updated. | 
|  | UpdateTime string `json:"updateTime,omitempty"` | 
|  |  | 
|  | // ServerResponse contains the HTTP response code and headers from the | 
|  | // server. | 
|  | googleapi.ServerResponse `json:"-"` | 
|  |  | 
|  | // ForceSendFields is a list of field names (e.g. "DomainName") to | 
|  | // unconditionally include in API requests. By default, fields with | 
|  | // empty values are omitted from API requests. However, any non-pointer, | 
|  | // non-interface field appearing in ForceSendFields will be sent to the | 
|  | // server regardless of whether the field is empty or not. This may be | 
|  | // used to include empty fields in Patch requests. | 
|  | ForceSendFields []string `json:"-"` | 
|  |  | 
|  | // NullFields is a list of field names (e.g. "DomainName") to include in | 
|  | // API requests with the JSON null value. By default, fields with empty | 
|  | // values are omitted from API requests. However, any field with an | 
|  | // empty value appearing in NullFields will be sent to the server as | 
|  | // null. It is an error if a field in this list has a non-empty value. | 
|  | // This may be used to include null fields in Patch requests. | 
|  | NullFields []string `json:"-"` | 
|  | } | 
|  |  | 
|  | func (s *Domain) MarshalJSON() ([]byte, error) { | 
|  | type NoMethod Domain | 
|  | raw := NoMethod(*s) | 
|  | return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) | 
|  | } | 
|  |  | 
|  | // DomainProvisioning: The current certificate provisioning status | 
|  | // information for a domain. | 
|  | type DomainProvisioning struct { | 
|  | // CertChallengeDiscoveredTxt: The TXT records (for the certificate | 
|  | // challenge) that were found at the last | 
|  | // DNS fetch. | 
|  | CertChallengeDiscoveredTxt []string `json:"certChallengeDiscoveredTxt,omitempty"` | 
|  |  | 
|  | // CertChallengeDns: The DNS challenge for generating a certificate. | 
|  | CertChallengeDns *CertDnsChallenge `json:"certChallengeDns,omitempty"` | 
|  |  | 
|  | // CertChallengeHttp: The HTTP challenge for generating a certificate. | 
|  | CertChallengeHttp *CertHttpChallenge `json:"certChallengeHttp,omitempty"` | 
|  |  | 
|  | // CertStatus: The certificate provisioning status; updated when | 
|  | // Firebase Hosting | 
|  | // provisions an SSL certificate for the domain. | 
|  | // | 
|  | // Possible values: | 
|  | //   "CERT_STATUS_UNSPECIFIED" - Unspecified certificate provisioning | 
|  | // status. | 
|  | //   "CERT_PENDING" - Waiting for certificate challenge to be created. | 
|  | //   "CERT_MISSING" - Waiting for certificate challenge to be met. | 
|  | //   "CERT_PROCESSING" - Certificate challenge met; attempting to | 
|  | // acquire/propagate certificate. | 
|  | //   "CERT_PROPAGATING" - Certificate obtained; propagating to the CDN. | 
|  | //   "CERT_ACTIVE" - Certificate provisioned and deployed across the | 
|  | // CDN. | 
|  | //   "CERT_ERROR" - Certificate provisioning failed in a non-recoverable | 
|  | // manner. | 
|  | CertStatus string `json:"certStatus,omitempty"` | 
|  |  | 
|  | // DiscoveredIps: The IPs found at the last DNS fetch. | 
|  | DiscoveredIps []string `json:"discoveredIps,omitempty"` | 
|  |  | 
|  | // DnsFetchTime: The time at which the last DNS fetch occurred. | 
|  | DnsFetchTime string `json:"dnsFetchTime,omitempty"` | 
|  |  | 
|  | // DnsStatus: The DNS record match status as of the last DNS fetch. | 
|  | // | 
|  | // Possible values: | 
|  | //   "DNS_STATUS_UNSPECIFIED" - Unspecified DNS status. | 
|  | //   "DNS_PENDING" - No DNS records have been specified for this domain | 
|  | // yet. | 
|  | //   "DNS_MISSING" - None of the required DNS records have been detected | 
|  | // on the domain. | 
|  | //   "DNS_PARTIAL_MATCH" - Some of the required DNS records were | 
|  | // detected, but not all of them. No | 
|  | // extra (non-required) DNS records were detected. | 
|  | //   "DNS_MATCH" - All required DNS records were detected. No extra | 
|  | // (non-required) DNS records | 
|  | // were detected. | 
|  | //   "DNS_EXTRANEOUS_MATCH" - The domain has at least one of the | 
|  | // required DNS records, and it has at | 
|  | // least one extra (non-required) DNS record. | 
|  | DnsStatus string `json:"dnsStatus,omitempty"` | 
|  |  | 
|  | // ExpectedIps: The list of IPs to which the domain is expected to | 
|  | // resolve. | 
|  | ExpectedIps []string `json:"expectedIps,omitempty"` | 
|  |  | 
|  | // ForceSendFields is a list of field names (e.g. | 
|  | // "CertChallengeDiscoveredTxt") to unconditionally include in API | 
|  | // requests. By default, fields with empty values are omitted from API | 
|  | // requests. However, any non-pointer, non-interface field appearing in | 
|  | // ForceSendFields will be sent to the server regardless of whether the | 
|  | // field is empty or not. This may be used to include empty fields in | 
|  | // Patch requests. | 
|  | ForceSendFields []string `json:"-"` | 
|  |  | 
|  | // NullFields is a list of field names (e.g. | 
|  | // "CertChallengeDiscoveredTxt") to include in API requests with the | 
|  | // JSON null value. By default, fields with empty values are omitted | 
|  | // from API requests. However, any field with an empty value appearing | 
|  | // in NullFields will be sent to the server as null. It is an error if a | 
|  | // field in this list has a non-empty value. This may be used to include | 
|  | // null fields in Patch requests. | 
|  | NullFields []string `json:"-"` | 
|  | } | 
|  |  | 
|  | func (s *DomainProvisioning) MarshalJSON() ([]byte, error) { | 
|  | type NoMethod DomainProvisioning | 
|  | raw := NoMethod(*s) | 
|  | return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) | 
|  | } | 
|  |  | 
|  | // DomainRedirect: Defines the behavior of a domain-level redirect. | 
|  | // Domain redirects preserve | 
|  | // the path of the redirect but replace the requested domain with the | 
|  | // one | 
|  | // specified in the redirect configuration. | 
|  | type DomainRedirect struct { | 
|  | // DomainName: Required. The domain name to redirect to. | 
|  | DomainName string `json:"domainName,omitempty"` | 
|  |  | 
|  | // Type: Required. The redirect status code. | 
|  | // | 
|  | // Possible values: | 
|  | //   "REDIRECT_TYPE_UNSPECIFIED" - The default redirect type; should not | 
|  | // be intentionlly used. | 
|  | //   "MOVED_PERMANENTLY" - The redirect will respond with an HTTP status | 
|  | // code of | 
|  | // `301 Moved Permanently`. | 
|  | Type string `json:"type,omitempty"` | 
|  |  | 
|  | // ForceSendFields is a list of field names (e.g. "DomainName") to | 
|  | // unconditionally include in API requests. By default, fields with | 
|  | // empty values are omitted from API requests. However, any non-pointer, | 
|  | // non-interface field appearing in ForceSendFields will be sent to the | 
|  | // server regardless of whether the field is empty or not. This may be | 
|  | // used to include empty fields in Patch requests. | 
|  | ForceSendFields []string `json:"-"` | 
|  |  | 
|  | // NullFields is a list of field names (e.g. "DomainName") to include in | 
|  | // API requests with the JSON null value. By default, fields with empty | 
|  | // values are omitted from API requests. However, any field with an | 
|  | // empty value appearing in NullFields will be sent to the server as | 
|  | // null. It is an error if a field in this list has a non-empty value. | 
|  | // This may be used to include null fields in Patch requests. | 
|  | NullFields []string `json:"-"` | 
|  | } | 
|  |  | 
|  | func (s *DomainRedirect) MarshalJSON() ([]byte, error) { | 
|  | type NoMethod DomainRedirect | 
|  | raw := NoMethod(*s) | 
|  | return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) | 
|  | } | 
|  |  | 
|  | // Empty: A generic empty message that you can re-use to avoid defining | 
|  | // duplicated | 
|  | // empty messages in your APIs. A typical example is to use it as the | 
|  | // request | 
|  | // or the response type of an API method. For instance: | 
|  | // | 
|  | //     service Foo { | 
|  | //       rpc Bar(google.protobuf.Empty) returns | 
|  | // (google.protobuf.Empty); | 
|  | //     } | 
|  | // | 
|  | // The JSON representation for `Empty` is empty JSON object `{}`. | 
|  | type Empty struct { | 
|  | // ServerResponse contains the HTTP response code and headers from the | 
|  | // server. | 
|  | googleapi.ServerResponse `json:"-"` | 
|  | } | 
|  |  | 
|  | // Header: A [`header`](/docs/hosting/full-config#headers) is an object | 
|  | // that specifies | 
|  | // a URL pattern that, if matched to the request URL path, triggers | 
|  | // Hosting to | 
|  | // apply the specified custom response headers. | 
|  | type Header struct { | 
|  | // Glob: The | 
|  | // user-supplied | 
|  | // [glob](/docs/hosting/full-config#glob_pattern_matching) to | 
|  | // match | 
|  | // against the request URL path. | 
|  | Glob string `json:"glob,omitempty"` | 
|  |  | 
|  | // Headers: Required. The additional headers to add to the response. | 
|  | Headers map[string]string `json:"headers,omitempty"` | 
|  |  | 
|  | // Regex: The user-supplied RE2 regular expression to match against the | 
|  | // request | 
|  | // URL path. | 
|  | Regex string `json:"regex,omitempty"` | 
|  |  | 
|  | // ForceSendFields is a list of field names (e.g. "Glob") to | 
|  | // unconditionally include in API requests. By default, fields with | 
|  | // empty values are omitted from API requests. However, any non-pointer, | 
|  | // non-interface field appearing in ForceSendFields will be sent to the | 
|  | // server regardless of whether the field is empty or not. This may be | 
|  | // used to include empty fields in Patch requests. | 
|  | ForceSendFields []string `json:"-"` | 
|  |  | 
|  | // NullFields is a list of field names (e.g. "Glob") to include in API | 
|  | // requests with the JSON null value. By default, fields with empty | 
|  | // values are omitted from API requests. However, any field with an | 
|  | // empty value appearing in NullFields will be sent to the server as | 
|  | // null. It is an error if a field in this list has a non-empty value. | 
|  | // This may be used to include null fields in Patch requests. | 
|  | NullFields []string `json:"-"` | 
|  | } | 
|  |  | 
|  | func (s *Header) MarshalJSON() ([]byte, error) { | 
|  | type NoMethod Header | 
|  | raw := NoMethod(*s) | 
|  | return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) | 
|  | } | 
|  |  | 
|  | // ListDomainsResponse: The response to listing Domains. | 
|  | type ListDomainsResponse struct { | 
|  | // Domains: The list of domains, if any exist. | 
|  | Domains []*Domain `json:"domains,omitempty"` | 
|  |  | 
|  | // NextPageToken: The pagination token, if more results exist. | 
|  | NextPageToken string `json:"nextPageToken,omitempty"` | 
|  |  | 
|  | // ServerResponse contains the HTTP response code and headers from the | 
|  | // server. | 
|  | googleapi.ServerResponse `json:"-"` | 
|  |  | 
|  | // ForceSendFields is a list of field names (e.g. "Domains") to | 
|  | // unconditionally include in API requests. By default, fields with | 
|  | // empty values are omitted from API requests. However, any non-pointer, | 
|  | // non-interface field appearing in ForceSendFields will be sent to the | 
|  | // server regardless of whether the field is empty or not. This may be | 
|  | // used to include empty fields in Patch requests. | 
|  | ForceSendFields []string `json:"-"` | 
|  |  | 
|  | // NullFields is a list of field names (e.g. "Domains") to include in | 
|  | // API requests with the JSON null value. By default, fields with empty | 
|  | // values are omitted from API requests. However, any field with an | 
|  | // empty value appearing in NullFields will be sent to the server as | 
|  | // null. It is an error if a field in this list has a non-empty value. | 
|  | // This may be used to include null fields in Patch requests. | 
|  | NullFields []string `json:"-"` | 
|  | } | 
|  |  | 
|  | func (s *ListDomainsResponse) MarshalJSON() ([]byte, error) { | 
|  | type NoMethod ListDomainsResponse | 
|  | raw := NoMethod(*s) | 
|  | return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) | 
|  | } | 
|  |  | 
|  | type ListReleasesResponse struct { | 
|  | // NextPageToken: If there are additional releases remaining beyond the | 
|  | // ones in this | 
|  | // response, then supply this token in the | 
|  | // next | 
|  | // [`list`](../sites.versions.files/list) call to continue with the next | 
|  | // set | 
|  | // of releases. | 
|  | NextPageToken string `json:"nextPageToken,omitempty"` | 
|  |  | 
|  | // Releases: The list of hashes of files that still need to be uploaded, | 
|  | // if any exist. | 
|  | Releases []*Release `json:"releases,omitempty"` | 
|  |  | 
|  | // ServerResponse contains the HTTP response code and headers from the | 
|  | // server. | 
|  | googleapi.ServerResponse `json:"-"` | 
|  |  | 
|  | // ForceSendFields is a list of field names (e.g. "NextPageToken") to | 
|  | // unconditionally include in API requests. By default, fields with | 
|  | // empty values are omitted from API requests. However, any non-pointer, | 
|  | // non-interface field appearing in ForceSendFields will be sent to the | 
|  | // server regardless of whether the field is empty or not. This may be | 
|  | // used to include empty fields in Patch requests. | 
|  | ForceSendFields []string `json:"-"` | 
|  |  | 
|  | // NullFields is a list of field names (e.g. "NextPageToken") to include | 
|  | // in API requests with the JSON null value. By default, fields with | 
|  | // empty values are omitted from API requests. However, any field with | 
|  | // an empty value appearing in NullFields will be sent to the server as | 
|  | // null. It is an error if a field in this list has a non-empty value. | 
|  | // This may be used to include null fields in Patch requests. | 
|  | NullFields []string `json:"-"` | 
|  | } | 
|  |  | 
|  | func (s *ListReleasesResponse) MarshalJSON() ([]byte, error) { | 
|  | type NoMethod ListReleasesResponse | 
|  | raw := NoMethod(*s) | 
|  | return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) | 
|  | } | 
|  |  | 
|  | type ListVersionFilesResponse struct { | 
|  | // Files: The list path/hashes in the specified version. | 
|  | Files []*VersionFile `json:"files,omitempty"` | 
|  |  | 
|  | // NextPageToken: The pagination token, if more results exist. | 
|  | NextPageToken string `json:"nextPageToken,omitempty"` | 
|  |  | 
|  | // ServerResponse contains the HTTP response code and headers from the | 
|  | // server. | 
|  | googleapi.ServerResponse `json:"-"` | 
|  |  | 
|  | // ForceSendFields is a list of field names (e.g. "Files") to | 
|  | // unconditionally include in API requests. By default, fields with | 
|  | // empty values are omitted from API requests. However, any non-pointer, | 
|  | // non-interface field appearing in ForceSendFields will be sent to the | 
|  | // server regardless of whether the field is empty or not. This may be | 
|  | // used to include empty fields in Patch requests. | 
|  | ForceSendFields []string `json:"-"` | 
|  |  | 
|  | // NullFields is a list of field names (e.g. "Files") to include in API | 
|  | // requests with the JSON null value. By default, fields with empty | 
|  | // values are omitted from API requests. However, any field with an | 
|  | // empty value appearing in NullFields will be sent to the server as | 
|  | // null. It is an error if a field in this list has a non-empty value. | 
|  | // This may be used to include null fields in Patch requests. | 
|  | NullFields []string `json:"-"` | 
|  | } | 
|  |  | 
|  | func (s *ListVersionFilesResponse) MarshalJSON() ([]byte, error) { | 
|  | type NoMethod ListVersionFilesResponse | 
|  | raw := NoMethod(*s) | 
|  | return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) | 
|  | } | 
|  |  | 
|  | type ListVersionsResponse struct { | 
|  | // NextPageToken: The pagination token, if more results exist | 
|  | NextPageToken string `json:"nextPageToken,omitempty"` | 
|  |  | 
|  | // Versions: The list of versions, if any exist. | 
|  | Versions []*Version `json:"versions,omitempty"` | 
|  |  | 
|  | // ServerResponse contains the HTTP response code and headers from the | 
|  | // server. | 
|  | googleapi.ServerResponse `json:"-"` | 
|  |  | 
|  | // ForceSendFields is a list of field names (e.g. "NextPageToken") to | 
|  | // unconditionally include in API requests. By default, fields with | 
|  | // empty values are omitted from API requests. However, any non-pointer, | 
|  | // non-interface field appearing in ForceSendFields will be sent to the | 
|  | // server regardless of whether the field is empty or not. This may be | 
|  | // used to include empty fields in Patch requests. | 
|  | ForceSendFields []string `json:"-"` | 
|  |  | 
|  | // NullFields is a list of field names (e.g. "NextPageToken") to include | 
|  | // in API requests with the JSON null value. By default, fields with | 
|  | // empty values are omitted from API requests. However, any field with | 
|  | // an empty value appearing in NullFields will be sent to the server as | 
|  | // null. It is an error if a field in this list has a non-empty value. | 
|  | // This may be used to include null fields in Patch requests. | 
|  | NullFields []string `json:"-"` | 
|  | } | 
|  |  | 
|  | func (s *ListVersionsResponse) MarshalJSON() ([]byte, error) { | 
|  | type NoMethod ListVersionsResponse | 
|  | raw := NoMethod(*s) | 
|  | return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) | 
|  | } | 
|  |  | 
|  | // Operation: This resource represents a long-running operation that is | 
|  | // the result of a | 
|  | // network API call. | 
|  | type Operation struct { | 
|  | // Done: If the value is `false`, it means the operation is still in | 
|  | // progress. | 
|  | // If `true`, the operation is completed, and either `error` or | 
|  | // `response` is | 
|  | // available. | 
|  | Done bool `json:"done,omitempty"` | 
|  |  | 
|  | // Error: The error result of the operation in case of failure or | 
|  | // cancellation. | 
|  | Error *Status `json:"error,omitempty"` | 
|  |  | 
|  | // Metadata: Service-specific metadata associated with the operation. | 
|  | // It typically | 
|  | // contains progress information and common metadata such as create | 
|  | // time. | 
|  | // Some services might not provide such metadata.  Any method that | 
|  | // returns a | 
|  | // long-running operation should document the metadata type, if any. | 
|  | Metadata googleapi.RawMessage `json:"metadata,omitempty"` | 
|  |  | 
|  | // Name: The server-assigned name, which is only unique within the same | 
|  | // service that | 
|  | // originally returns it. If you use the default HTTP mapping, | 
|  | // the | 
|  | // `name` should be a resource name ending with | 
|  | // `operations/{unique_id}`. | 
|  | Name string `json:"name,omitempty"` | 
|  |  | 
|  | // Response: The normal response of the operation in case of success. | 
|  | // If the original | 
|  | // method returns no data on success, such as `Delete`, the response | 
|  | // is | 
|  | // `google.protobuf.Empty`.  If the original method is | 
|  | // standard | 
|  | // `Get`/`Create`/`Update`, the response should be the resource.  For | 
|  | // other | 
|  | // methods, the response should have the type `XxxResponse`, where | 
|  | // `Xxx` | 
|  | // is the original method name.  For example, if the original method | 
|  | // name | 
|  | // is `TakeSnapshot()`, the inferred response type | 
|  | // is | 
|  | // `TakeSnapshotResponse`. | 
|  | Response googleapi.RawMessage `json:"response,omitempty"` | 
|  |  | 
|  | // ServerResponse contains the HTTP response code and headers from the | 
|  | // server. | 
|  | googleapi.ServerResponse `json:"-"` | 
|  |  | 
|  | // ForceSendFields is a list of field names (e.g. "Done") to | 
|  | // unconditionally include in API requests. By default, fields with | 
|  | // empty values are omitted from API requests. However, any non-pointer, | 
|  | // non-interface field appearing in ForceSendFields will be sent to the | 
|  | // server regardless of whether the field is empty or not. This may be | 
|  | // used to include empty fields in Patch requests. | 
|  | ForceSendFields []string `json:"-"` | 
|  |  | 
|  | // NullFields is a list of field names (e.g. "Done") to include in API | 
|  | // requests with the JSON null value. By default, fields with empty | 
|  | // values are omitted from API requests. However, any field with an | 
|  | // empty value appearing in NullFields will be sent to the server as | 
|  | // null. It is an error if a field in this list has a non-empty value. | 
|  | // This may be used to include null fields in Patch requests. | 
|  | NullFields []string `json:"-"` | 
|  | } | 
|  |  | 
|  | func (s *Operation) MarshalJSON() ([]byte, error) { | 
|  | type NoMethod Operation | 
|  | raw := NoMethod(*s) | 
|  | return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) | 
|  | } | 
|  |  | 
|  | // PopulateVersionFilesRequest: The request to populate a Version's | 
|  | // Files. | 
|  | type PopulateVersionFilesRequest struct { | 
|  | // Files: A set of file paths to the hashes corresponding to assets that | 
|  | // should be | 
|  | // added to the version. Note that a file path to an empty hash will | 
|  | // remove | 
|  | // the path from the version. Calculate a hash by Gzipping the file | 
|  | // then | 
|  | // taking the SHA256 hash of the newly compressed file. | 
|  | Files map[string]string `json:"files,omitempty"` | 
|  |  | 
|  | // ForceSendFields is a list of field names (e.g. "Files") to | 
|  | // unconditionally include in API requests. By default, fields with | 
|  | // empty values are omitted from API requests. However, any non-pointer, | 
|  | // non-interface field appearing in ForceSendFields will be sent to the | 
|  | // server regardless of whether the field is empty or not. This may be | 
|  | // used to include empty fields in Patch requests. | 
|  | ForceSendFields []string `json:"-"` | 
|  |  | 
|  | // NullFields is a list of field names (e.g. "Files") to include in API | 
|  | // requests with the JSON null value. By default, fields with empty | 
|  | // values are omitted from API requests. However, any field with an | 
|  | // empty value appearing in NullFields will be sent to the server as | 
|  | // null. It is an error if a field in this list has a non-empty value. | 
|  | // This may be used to include null fields in Patch requests. | 
|  | NullFields []string `json:"-"` | 
|  | } | 
|  |  | 
|  | func (s *PopulateVersionFilesRequest) MarshalJSON() ([]byte, error) { | 
|  | type NoMethod PopulateVersionFilesRequest | 
|  | raw := NoMethod(*s) | 
|  | return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) | 
|  | } | 
|  |  | 
|  | type PopulateVersionFilesResponse struct { | 
|  | // UploadRequiredHashes: The content hashes of the specified files that | 
|  | // need to be uploaded to the | 
|  | // specified endpoint. | 
|  | UploadRequiredHashes []string `json:"uploadRequiredHashes,omitempty"` | 
|  |  | 
|  | // UploadUrl: The URL to which the files should be uploaded, in the | 
|  | // format: | 
|  | // <br>"https://upload-firebasehosting.googleapis.com/upload/site | 
|  | // s/<var>site-name</var>/versions/<var>versionID</var>/files". | 
|  | // <br>Perfo | 
|  | // rm a multipart `POST` of the Gzipped file contents to the URL | 
|  | // using a forward slash and the hash of the file appended to the end. | 
|  | UploadUrl string `json:"uploadUrl,omitempty"` | 
|  |  | 
|  | // ServerResponse contains the HTTP response code and headers from the | 
|  | // server. | 
|  | googleapi.ServerResponse `json:"-"` | 
|  |  | 
|  | // ForceSendFields is a list of field names (e.g. | 
|  | // "UploadRequiredHashes") to unconditionally include in API requests. | 
|  | // By default, fields with empty values are omitted from API requests. | 
|  | // However, any non-pointer, non-interface field appearing in | 
|  | // ForceSendFields will be sent to the server regardless of whether the | 
|  | // field is empty or not. This may be used to include empty fields in | 
|  | // Patch requests. | 
|  | ForceSendFields []string `json:"-"` | 
|  |  | 
|  | // NullFields is a list of field names (e.g. "UploadRequiredHashes") to | 
|  | // include in API requests with the JSON null value. By default, fields | 
|  | // with empty values are omitted from API requests. However, any field | 
|  | // with an empty value appearing in NullFields will be sent to the | 
|  | // server as null. It is an error if a field in this list has a | 
|  | // non-empty value. This may be used to include null fields in Patch | 
|  | // requests. | 
|  | NullFields []string `json:"-"` | 
|  | } | 
|  |  | 
|  | func (s *PopulateVersionFilesResponse) MarshalJSON() ([]byte, error) { | 
|  | type NoMethod PopulateVersionFilesResponse | 
|  | raw := NoMethod(*s) | 
|  | return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) | 
|  | } | 
|  |  | 
|  | // PreviewConfig: Version preview configuration. If active and | 
|  | // unexpired, | 
|  | // this version will be accessible via a custom URL even | 
|  | // if it is not the currently released version. | 
|  | type PreviewConfig struct { | 
|  | // Active: If true, preview URLs are enabled for this version. | 
|  | Active bool `json:"active,omitempty"` | 
|  |  | 
|  | // ExpireTime: Indicates the expiration time for previewing | 
|  | // this | 
|  | // version; preview URL requests received after this time will 404. | 
|  | ExpireTime string `json:"expireTime,omitempty"` | 
|  |  | 
|  | // ForceSendFields is a list of field names (e.g. "Active") to | 
|  | // unconditionally include in API requests. By default, fields with | 
|  | // empty values are omitted from API requests. However, any non-pointer, | 
|  | // non-interface field appearing in ForceSendFields will be sent to the | 
|  | // server regardless of whether the field is empty or not. This may be | 
|  | // used to include empty fields in Patch requests. | 
|  | ForceSendFields []string `json:"-"` | 
|  |  | 
|  | // NullFields is a list of field names (e.g. "Active") to include in API | 
|  | // requests with the JSON null value. By default, fields with empty | 
|  | // values are omitted from API requests. However, any field with an | 
|  | // empty value appearing in NullFields will be sent to the server as | 
|  | // null. It is an error if a field in this list has a non-empty value. | 
|  | // This may be used to include null fields in Patch requests. | 
|  | NullFields []string `json:"-"` | 
|  | } | 
|  |  | 
|  | func (s *PreviewConfig) MarshalJSON() ([]byte, error) { | 
|  | type NoMethod PreviewConfig | 
|  | raw := NoMethod(*s) | 
|  | return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) | 
|  | } | 
|  |  | 
|  | // Redirect: A [`redirect`](/docs/hosting/full-config#redirects) object | 
|  | // specifies a URL | 
|  | // pattern that, if matched to the request URL path, triggers Hosting | 
|  | // to | 
|  | // respond with a redirect to the specified destination path. | 
|  | type Redirect struct { | 
|  | // Glob: The | 
|  | // user-supplied | 
|  | // [glob](/docs/hosting/full-config#glob_pattern_matching) to | 
|  | // match | 
|  | // against the request URL path. | 
|  | Glob string `json:"glob,omitempty"` | 
|  |  | 
|  | // Location: Required. The value to put in the HTTP location header of | 
|  | // the response. | 
|  | // <br>The location can contain capture group values from the pattern | 
|  | // using | 
|  | // a `:` prefix to identify the segment and an optional `*` to capture | 
|  | // the | 
|  | // rest of the URL. | 
|  | // For example: | 
|  | // <code>"glob": "/:capture*", | 
|  | // <br>"statusCode": 301, | 
|  | // <br>"location": "https://example.com/foo/:capture"</code> | 
|  | Location string `json:"location,omitempty"` | 
|  |  | 
|  | // Regex: The user-supplied RE2 regular expression to match against the | 
|  | // request | 
|  | // URL path. | 
|  | Regex string `json:"regex,omitempty"` | 
|  |  | 
|  | // StatusCode: Required. The status HTTP code to return in the response. | 
|  | // It must be a | 
|  | // valid 3xx status code. | 
|  | StatusCode int64 `json:"statusCode,omitempty"` | 
|  |  | 
|  | // ForceSendFields is a list of field names (e.g. "Glob") to | 
|  | // unconditionally include in API requests. By default, fields with | 
|  | // empty values are omitted from API requests. However, any non-pointer, | 
|  | // non-interface field appearing in ForceSendFields will be sent to the | 
|  | // server regardless of whether the field is empty or not. This may be | 
|  | // used to include empty fields in Patch requests. | 
|  | ForceSendFields []string `json:"-"` | 
|  |  | 
|  | // NullFields is a list of field names (e.g. "Glob") to include in API | 
|  | // requests with the JSON null value. By default, fields with empty | 
|  | // values are omitted from API requests. However, any field with an | 
|  | // empty value appearing in NullFields will be sent to the server as | 
|  | // null. It is an error if a field in this list has a non-empty value. | 
|  | // This may be used to include null fields in Patch requests. | 
|  | NullFields []string `json:"-"` | 
|  | } | 
|  |  | 
|  | func (s *Redirect) MarshalJSON() ([]byte, error) { | 
|  | type NoMethod Redirect | 
|  | raw := NoMethod(*s) | 
|  | return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) | 
|  | } | 
|  |  | 
|  | // Release: A `Release` is a particular | 
|  | // [collection of configurations and files](sites.versions) | 
|  | // that is set to be public at a particular time. | 
|  | type Release struct { | 
|  | // Message: The deploy description when the release was created. The | 
|  | // value can be up to | 
|  | // 512 characters. | 
|  | Message string `json:"message,omitempty"` | 
|  |  | 
|  | // Name: Output only. The unique identifier for the release, in the | 
|  | // format: | 
|  | // <code>sites/<var>site-name</var>/releases/<var>releaseID</var> | 
|  | // </code> | 
|  | // This name is provided in the response body when you call | 
|  | // the | 
|  | // [`CreateRelease`](sites.releases/create) endpoint. | 
|  | Name string `json:"name,omitempty"` | 
|  |  | 
|  | // ReleaseTime: Output only. The time at which the version is set to be | 
|  | // public. | 
|  | ReleaseTime string `json:"releaseTime,omitempty"` | 
|  |  | 
|  | // ReleaseUser: Output only. Identifies the user who created the | 
|  | // release. | 
|  | ReleaseUser *ActingUser `json:"releaseUser,omitempty"` | 
|  |  | 
|  | // Type: Explains the reason for the release. | 
|  | // <br>Specify a value for this field only when creating a | 
|  | // `SITE_DISABLE` | 
|  | // type release. | 
|  | // | 
|  | // Possible values: | 
|  | //   "TYPE_UNSPECIFIED" - An unspecified type. Indicates that a version | 
|  | // was released. | 
|  | // <br>This is the default value when no other `type` is | 
|  | // explicitly | 
|  | // specified. | 
|  | //   "DEPLOY" - A version was uploaded to Firebase Hosting and released. | 
|  | //   "ROLLBACK" - The release points back to a previously deployed | 
|  | // version. | 
|  | //   "SITE_DISABLE" - The release prevents the site from serving | 
|  | // content. Firebase Hosting acts | 
|  | // as if the site never existed. | 
|  | Type string `json:"type,omitempty"` | 
|  |  | 
|  | // Version: Output only. The configuration and content that was | 
|  | // released. | 
|  | Version *Version `json:"version,omitempty"` | 
|  |  | 
|  | // ServerResponse contains the HTTP response code and headers from the | 
|  | // server. | 
|  | googleapi.ServerResponse `json:"-"` | 
|  |  | 
|  | // ForceSendFields is a list of field names (e.g. "Message") to | 
|  | // unconditionally include in API requests. By default, fields with | 
|  | // empty values are omitted from API requests. However, any non-pointer, | 
|  | // non-interface field appearing in ForceSendFields will be sent to the | 
|  | // server regardless of whether the field is empty or not. This may be | 
|  | // used to include empty fields in Patch requests. | 
|  | ForceSendFields []string `json:"-"` | 
|  |  | 
|  | // NullFields is a list of field names (e.g. "Message") to include in | 
|  | // API requests with the JSON null value. By default, fields with empty | 
|  | // values are omitted from API requests. However, any field with an | 
|  | // empty value appearing in NullFields will be sent to the server as | 
|  | // null. It is an error if a field in this list has a non-empty value. | 
|  | // This may be used to include null fields in Patch requests. | 
|  | NullFields []string `json:"-"` | 
|  | } | 
|  |  | 
|  | func (s *Release) MarshalJSON() ([]byte, error) { | 
|  | type NoMethod Release | 
|  | raw := NoMethod(*s) | 
|  | return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) | 
|  | } | 
|  |  | 
|  | // Rewrite: A [`rewrite`](/docs/hosting/full-config#rewrites) object | 
|  | // specifies a URL | 
|  | // pattern that, if matched to the request URL path, triggers Hosting | 
|  | // to | 
|  | // respond as if the service were given the specified destination URL. | 
|  | type Rewrite struct { | 
|  | // DynamicLinks: The request will be forwarded to Firebase Dynamic | 
|  | // Links. | 
|  | DynamicLinks bool `json:"dynamicLinks,omitempty"` | 
|  |  | 
|  | // Function: The function to proxy requests to. Must match the exported | 
|  | // function | 
|  | // name exactly. | 
|  | Function string `json:"function,omitempty"` | 
|  |  | 
|  | // Glob: The | 
|  | // user-supplied | 
|  | // [glob](/docs/hosting/full-config#glob_pattern_matching) to | 
|  | // match | 
|  | // against the request URL path. | 
|  | Glob string `json:"glob,omitempty"` | 
|  |  | 
|  | // Path: The URL path to rewrite the request to. | 
|  | Path string `json:"path,omitempty"` | 
|  |  | 
|  | // Regex: The user-supplied RE2 regular expression to match against the | 
|  | // request | 
|  | // URL path. | 
|  | Regex string `json:"regex,omitempty"` | 
|  |  | 
|  | // Run: The request will be forwarded to Cloud Run. | 
|  | Run *CloudRunRewrite `json:"run,omitempty"` | 
|  |  | 
|  | // ForceSendFields is a list of field names (e.g. "DynamicLinks") to | 
|  | // unconditionally include in API requests. By default, fields with | 
|  | // empty values are omitted from API requests. However, any non-pointer, | 
|  | // non-interface field appearing in ForceSendFields will be sent to the | 
|  | // server regardless of whether the field is empty or not. This may be | 
|  | // used to include empty fields in Patch requests. | 
|  | ForceSendFields []string `json:"-"` | 
|  |  | 
|  | // NullFields is a list of field names (e.g. "DynamicLinks") to include | 
|  | // in API requests with the JSON null value. By default, fields with | 
|  | // empty values are omitted from API requests. However, any field with | 
|  | // an empty value appearing in NullFields will be sent to the server as | 
|  | // null. It is an error if a field in this list has a non-empty value. | 
|  | // This may be used to include null fields in Patch requests. | 
|  | NullFields []string `json:"-"` | 
|  | } | 
|  |  | 
|  | func (s *Rewrite) MarshalJSON() ([]byte, error) { | 
|  | type NoMethod Rewrite | 
|  | raw := NoMethod(*s) | 
|  | return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) | 
|  | } | 
|  |  | 
|  | // ServingConfig: The configuration for how incoming requests to a site | 
|  | // should be routed and | 
|  | // processed before serving content. The URL request paths are matched | 
|  | // against | 
|  | // the specified URL patterns in the configuration, then Hosting applies | 
|  | // the | 
|  | // applicable configuration according to a specific | 
|  | // [priority order](/docs/hosting/full-config#hosting_priority_order). | 
|  | type ServingConfig struct { | 
|  | // AppAssociation: How to handle well known App Association files. | 
|  | // | 
|  | // Possible values: | 
|  | //   "AUTO" - The app association files will be automattically created | 
|  | // from the apps | 
|  | // that exist in the Firebase project. | 
|  | //   "NONE" - No special handling of the app association files will | 
|  | // occur, these paths | 
|  | // will result in a 404 unless caught with a Rewrite. | 
|  | AppAssociation string `json:"appAssociation,omitempty"` | 
|  |  | 
|  | // CleanUrls: Defines whether to drop the file extension from uploaded | 
|  | // files. | 
|  | CleanUrls bool `json:"cleanUrls,omitempty"` | 
|  |  | 
|  | // Headers: An array of objects, where each object specifies a URL | 
|  | // pattern that, if | 
|  | // matched to the request URL path, triggers Hosting to apply the | 
|  | // specified | 
|  | // custom response headers. | 
|  | Headers []*Header `json:"headers,omitempty"` | 
|  |  | 
|  | // Redirects: An array of objects (called redirect rules), where each | 
|  | // rule specifies a | 
|  | // URL pattern that, if matched to the request URL path, triggers | 
|  | // Hosting to | 
|  | // respond with a redirect to the specified destination path. | 
|  | Redirects []*Redirect `json:"redirects,omitempty"` | 
|  |  | 
|  | // Rewrites: An array of objects (called rewrite rules), where each rule | 
|  | // specifies a URL | 
|  | // pattern that, if matched to the request URL path, triggers Hosting | 
|  | // to | 
|  | // respond as if the service were given the specified destination URL. | 
|  | Rewrites []*Rewrite `json:"rewrites,omitempty"` | 
|  |  | 
|  | // TrailingSlashBehavior: Defines how to handle a trailing slash in the | 
|  | // URL path. | 
|  | // | 
|  | // Possible values: | 
|  | //   "TRAILING_SLASH_BEHAVIOR_UNSPECIFIED" - No behavior is | 
|  | // specified. | 
|  | // <br>Files are served at their exact location only, and trailing | 
|  | // slashes | 
|  | // are only added to directory indexes. | 
|  | //   "ADD" - Trailing slashes are _added_ to directory indexes as well | 
|  | // as to any URL | 
|  | // path not ending in a file extension. | 
|  | //   "REMOVE" - Trailing slashes are _removed_ from directory indexes as | 
|  | // well as from any | 
|  | // URL path not ending in a file extension. | 
|  | TrailingSlashBehavior string `json:"trailingSlashBehavior,omitempty"` | 
|  |  | 
|  | // ForceSendFields is a list of field names (e.g. "AppAssociation") to | 
|  | // unconditionally include in API requests. By default, fields with | 
|  | // empty values are omitted from API requests. However, any non-pointer, | 
|  | // non-interface field appearing in ForceSendFields will be sent to the | 
|  | // server regardless of whether the field is empty or not. This may be | 
|  | // used to include empty fields in Patch requests. | 
|  | ForceSendFields []string `json:"-"` | 
|  |  | 
|  | // NullFields is a list of field names (e.g. "AppAssociation") to | 
|  | // include in API requests with the JSON null value. By default, fields | 
|  | // with empty values are omitted from API requests. However, any field | 
|  | // with an empty value appearing in NullFields will be sent to the | 
|  | // server as null. It is an error if a field in this list has a | 
|  | // non-empty value. This may be used to include null fields in Patch | 
|  | // requests. | 
|  | NullFields []string `json:"-"` | 
|  | } | 
|  |  | 
|  | func (s *ServingConfig) MarshalJSON() ([]byte, error) { | 
|  | type NoMethod ServingConfig | 
|  | raw := NoMethod(*s) | 
|  | return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) | 
|  | } | 
|  |  | 
|  | // SiteConfig: A `SiteConfig` contains metadata associated with a | 
|  | // specific site that | 
|  | // controls Firebase Hosting serving behavior | 
|  | type SiteConfig struct { | 
|  | // CloudLoggingEnabled: Whether or not web requests made by site | 
|  | // visitors are logged via Cloud | 
|  | // Logging. | 
|  | CloudLoggingEnabled bool `json:"cloudLoggingEnabled,omitempty"` | 
|  |  | 
|  | // MaxVersions: The number of FINALIZED versions that will be held for a | 
|  | // site before | 
|  | // automatic deletion. When a new version is deployed, content for | 
|  | // versions | 
|  | // in storage in excess of this number will be deleted, and will no | 
|  | // longer be | 
|  | // billed for storage usage. Oldest versions will be deleted first; | 
|  | // sites are | 
|  | // created with an unlimited number of max_versions by default. | 
|  | MaxVersions int64 `json:"maxVersions,omitempty,string"` | 
|  |  | 
|  | // ServerResponse contains the HTTP response code and headers from the | 
|  | // server. | 
|  | googleapi.ServerResponse `json:"-"` | 
|  |  | 
|  | // ForceSendFields is a list of field names (e.g. "CloudLoggingEnabled") | 
|  | // to unconditionally include in API requests. By default, fields with | 
|  | // empty values are omitted from API requests. However, any non-pointer, | 
|  | // non-interface field appearing in ForceSendFields will be sent to the | 
|  | // server regardless of whether the field is empty or not. This may be | 
|  | // used to include empty fields in Patch requests. | 
|  | ForceSendFields []string `json:"-"` | 
|  |  | 
|  | // NullFields is a list of field names (e.g. "CloudLoggingEnabled") to | 
|  | // include in API requests with the JSON null value. By default, fields | 
|  | // with empty values are omitted from API requests. However, any field | 
|  | // with an empty value appearing in NullFields will be sent to the | 
|  | // server as null. It is an error if a field in this list has a | 
|  | // non-empty value. This may be used to include null fields in Patch | 
|  | // requests. | 
|  | NullFields []string `json:"-"` | 
|  | } | 
|  |  | 
|  | func (s *SiteConfig) MarshalJSON() ([]byte, error) { | 
|  | type NoMethod SiteConfig | 
|  | raw := NoMethod(*s) | 
|  | return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) | 
|  | } | 
|  |  | 
|  | // Status: The `Status` type defines a logical error model that is | 
|  | // suitable for | 
|  | // different programming environments, including REST APIs and RPC APIs. | 
|  | // It is | 
|  | // used by [gRPC](https://github.com/grpc). Each `Status` message | 
|  | // contains | 
|  | // three pieces of data: error code, error message, and error | 
|  | // details. | 
|  | // | 
|  | // You can find out more about this error model and how to work with it | 
|  | // in the | 
|  | // [API Design Guide](https://cloud.google.com/apis/design/errors). | 
|  | type Status struct { | 
|  | // Code: The status code, which should be an enum value of | 
|  | // google.rpc.Code. | 
|  | Code int64 `json:"code,omitempty"` | 
|  |  | 
|  | // Details: A list of messages that carry the error details.  There is a | 
|  | // common set of | 
|  | // message types for APIs to use. | 
|  | Details []googleapi.RawMessage `json:"details,omitempty"` | 
|  |  | 
|  | // Message: A developer-facing error message, which should be in | 
|  | // English. Any | 
|  | // user-facing error message should be localized and sent in | 
|  | // the | 
|  | // google.rpc.Status.details field, or localized by the client. | 
|  | Message string `json:"message,omitempty"` | 
|  |  | 
|  | // ForceSendFields is a list of field names (e.g. "Code") to | 
|  | // unconditionally include in API requests. By default, fields with | 
|  | // empty values are omitted from API requests. However, any non-pointer, | 
|  | // non-interface field appearing in ForceSendFields will be sent to the | 
|  | // server regardless of whether the field is empty or not. This may be | 
|  | // used to include empty fields in Patch requests. | 
|  | ForceSendFields []string `json:"-"` | 
|  |  | 
|  | // NullFields is a list of field names (e.g. "Code") to include in API | 
|  | // requests with the JSON null value. By default, fields with empty | 
|  | // values are omitted from API requests. However, any field with an | 
|  | // empty value appearing in NullFields will be sent to the server as | 
|  | // null. It is an error if a field in this list has a non-empty value. | 
|  | // This may be used to include null fields in Patch requests. | 
|  | NullFields []string `json:"-"` | 
|  | } | 
|  |  | 
|  | func (s *Status) MarshalJSON() ([]byte, error) { | 
|  | type NoMethod Status | 
|  | raw := NoMethod(*s) | 
|  | return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) | 
|  | } | 
|  |  | 
|  | // Version: A `Version` is the collection of configuration and | 
|  | // [static files](sites.versions.files) that determine how a site is | 
|  | // displayed. | 
|  | type Version struct { | 
|  | // Config: The configuration for the behavior of the site. This | 
|  | // configuration exists | 
|  | // in the [`firebase.json`](/docs/cli/#the_firebasejson_file) file. | 
|  | Config *ServingConfig `json:"config,omitempty"` | 
|  |  | 
|  | // CreateTime: Output only. The time at which the version was created. | 
|  | CreateTime string `json:"createTime,omitempty"` | 
|  |  | 
|  | // CreateUser: Output only. Identifies the user who created the version. | 
|  | CreateUser *ActingUser `json:"createUser,omitempty"` | 
|  |  | 
|  | // DeleteTime: Output only. The time at which the version was `DELETED`. | 
|  | DeleteTime string `json:"deleteTime,omitempty"` | 
|  |  | 
|  | // DeleteUser: Output only. Identifies the user who `DELETED` the | 
|  | // version. | 
|  | DeleteUser *ActingUser `json:"deleteUser,omitempty"` | 
|  |  | 
|  | // FileCount: Output only. The total number of files associated with the | 
|  | // version. | 
|  | // <br>This value is calculated after a version is `FINALIZED`. | 
|  | FileCount int64 `json:"fileCount,omitempty,string"` | 
|  |  | 
|  | // FinalizeTime: Output only. The time at which the version was | 
|  | // `FINALIZED`. | 
|  | FinalizeTime string `json:"finalizeTime,omitempty"` | 
|  |  | 
|  | // FinalizeUser: Output only. Identifies the user who `FINALIZED` the | 
|  | // version. | 
|  | FinalizeUser *ActingUser `json:"finalizeUser,omitempty"` | 
|  |  | 
|  | // Labels: The labels used for extra metadata and/or filtering. | 
|  | Labels map[string]string `json:"labels,omitempty"` | 
|  |  | 
|  | // Name: The unique identifier for a version, in the | 
|  | // format: | 
|  | // <code>sites/<var>site-name</var>/versions/<var>versionID</var> | 
|  | // </code> | 
|  | // This name is provided in the response body when you call | 
|  | // the | 
|  | // [`CreateVersion`](../sites.versions/create) endpoint. | 
|  | Name string `json:"name,omitempty"` | 
|  |  | 
|  | // Preview: Version preview configuration for the site version. This | 
|  | // configuration | 
|  | // specfies whether previewing is enabled for this site version. | 
|  | // Version | 
|  | // previews allow you to preview your site at a custom URL | 
|  | // before | 
|  | // releasing it as the live version. | 
|  | Preview *PreviewConfig `json:"preview,omitempty"` | 
|  |  | 
|  | // Status: The deploy status of a version. | 
|  | // <br> | 
|  | // <br>For a successful deploy, call | 
|  | // the | 
|  | // [`CreateVersion`](sites.versions/create) endpoint to make a new | 
|  | // version | 
|  | // (`CREATED` status), | 
|  | // [upload all desired files](sites.versions/populateFiles) to the | 
|  | // version, | 
|  | // then [update](sites.versions/patch) the version to the `FINALIZED` | 
|  | // status. | 
|  | // <br> | 
|  | // <br>Note that if you leave the version in the `CREATED` state for | 
|  | // more | 
|  | // than 12 hours, the system will automatically mark the version | 
|  | // as | 
|  | // `ABANDONED`. | 
|  | // <br> | 
|  | // <br>You can also change the status of a version to `DELETED` by | 
|  | // calling the | 
|  | // [`DeleteVersion`](sites.versions/delete) endpoint. | 
|  | // | 
|  | // Possible values: | 
|  | //   "VERSION_STATUS_UNSPECIFIED" - The default status; should not be | 
|  | // intentionally used. | 
|  | //   "CREATED" - The version has been created, and content is currently | 
|  | // being added to the | 
|  | // version. | 
|  | //   "FINALIZED" - All content has been added to the version, and the | 
|  | // version can no longer be | 
|  | // changed. | 
|  | //   "DELETED" - The version has been deleted. | 
|  | //   "ABANDONED" - The version was not updated to `FINALIZED` within | 
|  | // 12 hours and was | 
|  | // automatically deleted. | 
|  | //   "EXPIRED" - The version is outside the site-configured limit for | 
|  | // the number of | 
|  | // retained versions, so the version's content is scheduled for | 
|  | // deletion. | 
|  | Status string `json:"status,omitempty"` | 
|  |  | 
|  | // VersionBytes: Output only. The total stored bytesize of the | 
|  | // version. | 
|  | // <br>This value is calculated after a version is `FINALIZED`. | 
|  | VersionBytes int64 `json:"versionBytes,omitempty,string"` | 
|  |  | 
|  | // ServerResponse contains the HTTP response code and headers from the | 
|  | // server. | 
|  | googleapi.ServerResponse `json:"-"` | 
|  |  | 
|  | // ForceSendFields is a list of field names (e.g. "Config") to | 
|  | // unconditionally include in API requests. By default, fields with | 
|  | // empty values are omitted from API requests. However, any non-pointer, | 
|  | // non-interface field appearing in ForceSendFields will be sent to the | 
|  | // server regardless of whether the field is empty or not. This may be | 
|  | // used to include empty fields in Patch requests. | 
|  | ForceSendFields []string `json:"-"` | 
|  |  | 
|  | // NullFields is a list of field names (e.g. "Config") to include in API | 
|  | // requests with the JSON null value. By default, fields with empty | 
|  | // values are omitted from API requests. However, any field with an | 
|  | // empty value appearing in NullFields will be sent to the server as | 
|  | // null. It is an error if a field in this list has a non-empty value. | 
|  | // This may be used to include null fields in Patch requests. | 
|  | NullFields []string `json:"-"` | 
|  | } | 
|  |  | 
|  | func (s *Version) MarshalJSON() ([]byte, error) { | 
|  | type NoMethod Version | 
|  | raw := NoMethod(*s) | 
|  | return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) | 
|  | } | 
|  |  | 
|  | // VersionFile: A static content file that is part of a version. | 
|  | type VersionFile struct { | 
|  | // Hash: The SHA256 content hash of the file. | 
|  | Hash string `json:"hash,omitempty"` | 
|  |  | 
|  | // Path: The URI at which the file's content should display. | 
|  | Path string `json:"path,omitempty"` | 
|  |  | 
|  | // Status: Output only. The current status of a particular file in the | 
|  | // specified | 
|  | // version. | 
|  | // <br>The value will be either `pending upload` or `uploaded`. | 
|  | // | 
|  | // Possible values: | 
|  | //   "STATUS_UNSPECIFIED" - The default status; should not be | 
|  | // intentionally used. | 
|  | //   "EXPECTED" - The file has been included in the version and is | 
|  | // expected to be uploaded | 
|  | // in the near future. | 
|  | //   "ACTIVE" - The file has already been uploaded to Firebase Hosting. | 
|  | Status string `json:"status,omitempty"` | 
|  |  | 
|  | // ForceSendFields is a list of field names (e.g. "Hash") to | 
|  | // unconditionally include in API requests. By default, fields with | 
|  | // empty values are omitted from API requests. However, any non-pointer, | 
|  | // non-interface field appearing in ForceSendFields will be sent to the | 
|  | // server regardless of whether the field is empty or not. This may be | 
|  | // used to include empty fields in Patch requests. | 
|  | ForceSendFields []string `json:"-"` | 
|  |  | 
|  | // NullFields is a list of field names (e.g. "Hash") to include in API | 
|  | // requests with the JSON null value. By default, fields with empty | 
|  | // values are omitted from API requests. However, any field with an | 
|  | // empty value appearing in NullFields will be sent to the server as | 
|  | // null. It is an error if a field in this list has a non-empty value. | 
|  | // This may be used to include null fields in Patch requests. | 
|  | NullFields []string `json:"-"` | 
|  | } | 
|  |  | 
|  | func (s *VersionFile) MarshalJSON() ([]byte, error) { | 
|  | type NoMethod VersionFile | 
|  | raw := NoMethod(*s) | 
|  | return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) | 
|  | } | 
|  |  | 
|  | // method id "firebasehosting.projects.operations.get": | 
|  |  | 
|  | type ProjectsOperationsGetCall struct { | 
|  | s            *Service | 
|  | name         string | 
|  | urlParams_   gensupport.URLParams | 
|  | ifNoneMatch_ string | 
|  | ctx_         context.Context | 
|  | header_      http.Header | 
|  | } | 
|  |  | 
|  | // Get: Gets the latest state of a long-running operation.  Clients can | 
|  | // use this | 
|  | // method to poll the operation result at intervals as recommended by | 
|  | // the API | 
|  | // service. | 
|  | func (r *ProjectsOperationsService) Get(name string) *ProjectsOperationsGetCall { | 
|  | c := &ProjectsOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} | 
|  | c.name = name | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Fields allows partial responses to be retrieved. See | 
|  | // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse | 
|  | // for more information. | 
|  | func (c *ProjectsOperationsGetCall) Fields(s ...googleapi.Field) *ProjectsOperationsGetCall { | 
|  | c.urlParams_.Set("fields", googleapi.CombineFields(s)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // IfNoneMatch sets the optional parameter which makes the operation | 
|  | // fail if the object's ETag matches the given value. This is useful for | 
|  | // getting updates only after the object has changed since the last | 
|  | // request. Use googleapi.IsNotModified to check whether the response | 
|  | // error from Do is the result of In-None-Match. | 
|  | func (c *ProjectsOperationsGetCall) IfNoneMatch(entityTag string) *ProjectsOperationsGetCall { | 
|  | c.ifNoneMatch_ = entityTag | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Context sets the context to be used in this call's Do method. Any | 
|  | // pending HTTP request will be aborted if the provided context is | 
|  | // canceled. | 
|  | func (c *ProjectsOperationsGetCall) Context(ctx context.Context) *ProjectsOperationsGetCall { | 
|  | c.ctx_ = ctx | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Header returns an http.Header that can be modified by the caller to | 
|  | // add HTTP headers to the request. | 
|  | func (c *ProjectsOperationsGetCall) Header() http.Header { | 
|  | if c.header_ == nil { | 
|  | c.header_ = make(http.Header) | 
|  | } | 
|  | return c.header_ | 
|  | } | 
|  |  | 
|  | func (c *ProjectsOperationsGetCall) doRequest(alt string) (*http.Response, error) { | 
|  | reqHeaders := make(http.Header) | 
|  | reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200717") | 
|  | for k, v := range c.header_ { | 
|  | reqHeaders[k] = v | 
|  | } | 
|  | reqHeaders.Set("User-Agent", c.s.userAgent()) | 
|  | if c.ifNoneMatch_ != "" { | 
|  | reqHeaders.Set("If-None-Match", c.ifNoneMatch_) | 
|  | } | 
|  | var body io.Reader = nil | 
|  | c.urlParams_.Set("alt", alt) | 
|  | c.urlParams_.Set("prettyPrint", "false") | 
|  | urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+name}") | 
|  | urls += "?" + c.urlParams_.Encode() | 
|  | req, err := http.NewRequest("GET", urls, body) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | req.Header = reqHeaders | 
|  | googleapi.Expand(req.URL, map[string]string{ | 
|  | "name": c.name, | 
|  | }) | 
|  | return gensupport.SendRequest(c.ctx_, c.s.client, req) | 
|  | } | 
|  |  | 
|  | // Do executes the "firebasehosting.projects.operations.get" call. | 
|  | // Exactly one of *Operation or error will be non-nil. Any non-2xx | 
|  | // status code is an error. Response headers are in either | 
|  | // *Operation.ServerResponse.Header or (if a response was returned at | 
|  | // all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified | 
|  | // to check whether the returned error was because | 
|  | // http.StatusNotModified was returned. | 
|  | func (c *ProjectsOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) { | 
|  | gensupport.SetOptions(c.urlParams_, opts...) | 
|  | res, err := c.doRequest("json") | 
|  | if res != nil && res.StatusCode == http.StatusNotModified { | 
|  | if res.Body != nil { | 
|  | res.Body.Close() | 
|  | } | 
|  | return nil, &googleapi.Error{ | 
|  | Code:   res.StatusCode, | 
|  | Header: res.Header, | 
|  | } | 
|  | } | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | defer googleapi.CloseBody(res) | 
|  | if err := googleapi.CheckResponse(res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | ret := &Operation{ | 
|  | ServerResponse: googleapi.ServerResponse{ | 
|  | Header:         res.Header, | 
|  | HTTPStatusCode: res.StatusCode, | 
|  | }, | 
|  | } | 
|  | target := &ret | 
|  | if err := gensupport.DecodeResponse(target, res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | return ret, nil | 
|  | // { | 
|  | //   "description": "Gets the latest state of a long-running operation.  Clients can use this\nmethod to poll the operation result at intervals as recommended by the API\nservice.", | 
|  | //   "flatPath": "v1beta1/projects/{projectsId}/operations/{operationsId}", | 
|  | //   "httpMethod": "GET", | 
|  | //   "id": "firebasehosting.projects.operations.get", | 
|  | //   "parameterOrder": [ | 
|  | //     "name" | 
|  | //   ], | 
|  | //   "parameters": { | 
|  | //     "name": { | 
|  | //       "description": "The name of the operation resource.", | 
|  | //       "location": "path", | 
|  | //       "pattern": "^projects/[^/]+/operations/[^/]+$", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     } | 
|  | //   }, | 
|  | //   "path": "v1beta1/{+name}", | 
|  | //   "response": { | 
|  | //     "$ref": "Operation" | 
|  | //   }, | 
|  | //   "scopes": [ | 
|  | //     "https://www.googleapis.com/auth/cloud-platform", | 
|  | //     "https://www.googleapis.com/auth/cloud-platform.read-only", | 
|  | //     "https://www.googleapis.com/auth/firebase", | 
|  | //     "https://www.googleapis.com/auth/firebase.readonly" | 
|  | //   ] | 
|  | // } | 
|  |  | 
|  | } | 
|  |  | 
|  | // method id "firebasehosting.projects.sites.getConfig": | 
|  |  | 
|  | type ProjectsSitesGetConfigCall struct { | 
|  | s            *Service | 
|  | name         string | 
|  | urlParams_   gensupport.URLParams | 
|  | ifNoneMatch_ string | 
|  | ctx_         context.Context | 
|  | header_      http.Header | 
|  | } | 
|  |  | 
|  | // GetConfig: Gets the Hosting metadata for a specific site. | 
|  | func (r *ProjectsSitesService) GetConfig(name string) *ProjectsSitesGetConfigCall { | 
|  | c := &ProjectsSitesGetConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)} | 
|  | c.name = name | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Fields allows partial responses to be retrieved. See | 
|  | // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse | 
|  | // for more information. | 
|  | func (c *ProjectsSitesGetConfigCall) Fields(s ...googleapi.Field) *ProjectsSitesGetConfigCall { | 
|  | c.urlParams_.Set("fields", googleapi.CombineFields(s)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // IfNoneMatch sets the optional parameter which makes the operation | 
|  | // fail if the object's ETag matches the given value. This is useful for | 
|  | // getting updates only after the object has changed since the last | 
|  | // request. Use googleapi.IsNotModified to check whether the response | 
|  | // error from Do is the result of In-None-Match. | 
|  | func (c *ProjectsSitesGetConfigCall) IfNoneMatch(entityTag string) *ProjectsSitesGetConfigCall { | 
|  | c.ifNoneMatch_ = entityTag | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Context sets the context to be used in this call's Do method. Any | 
|  | // pending HTTP request will be aborted if the provided context is | 
|  | // canceled. | 
|  | func (c *ProjectsSitesGetConfigCall) Context(ctx context.Context) *ProjectsSitesGetConfigCall { | 
|  | c.ctx_ = ctx | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Header returns an http.Header that can be modified by the caller to | 
|  | // add HTTP headers to the request. | 
|  | func (c *ProjectsSitesGetConfigCall) Header() http.Header { | 
|  | if c.header_ == nil { | 
|  | c.header_ = make(http.Header) | 
|  | } | 
|  | return c.header_ | 
|  | } | 
|  |  | 
|  | func (c *ProjectsSitesGetConfigCall) doRequest(alt string) (*http.Response, error) { | 
|  | reqHeaders := make(http.Header) | 
|  | reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200717") | 
|  | for k, v := range c.header_ { | 
|  | reqHeaders[k] = v | 
|  | } | 
|  | reqHeaders.Set("User-Agent", c.s.userAgent()) | 
|  | if c.ifNoneMatch_ != "" { | 
|  | reqHeaders.Set("If-None-Match", c.ifNoneMatch_) | 
|  | } | 
|  | var body io.Reader = nil | 
|  | c.urlParams_.Set("alt", alt) | 
|  | c.urlParams_.Set("prettyPrint", "false") | 
|  | urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+name}") | 
|  | urls += "?" + c.urlParams_.Encode() | 
|  | req, err := http.NewRequest("GET", urls, body) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | req.Header = reqHeaders | 
|  | googleapi.Expand(req.URL, map[string]string{ | 
|  | "name": c.name, | 
|  | }) | 
|  | return gensupport.SendRequest(c.ctx_, c.s.client, req) | 
|  | } | 
|  |  | 
|  | // Do executes the "firebasehosting.projects.sites.getConfig" call. | 
|  | // Exactly one of *SiteConfig or error will be non-nil. Any non-2xx | 
|  | // status code is an error. Response headers are in either | 
|  | // *SiteConfig.ServerResponse.Header or (if a response was returned at | 
|  | // all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified | 
|  | // to check whether the returned error was because | 
|  | // http.StatusNotModified was returned. | 
|  | func (c *ProjectsSitesGetConfigCall) Do(opts ...googleapi.CallOption) (*SiteConfig, error) { | 
|  | gensupport.SetOptions(c.urlParams_, opts...) | 
|  | res, err := c.doRequest("json") | 
|  | if res != nil && res.StatusCode == http.StatusNotModified { | 
|  | if res.Body != nil { | 
|  | res.Body.Close() | 
|  | } | 
|  | return nil, &googleapi.Error{ | 
|  | Code:   res.StatusCode, | 
|  | Header: res.Header, | 
|  | } | 
|  | } | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | defer googleapi.CloseBody(res) | 
|  | if err := googleapi.CheckResponse(res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | ret := &SiteConfig{ | 
|  | ServerResponse: googleapi.ServerResponse{ | 
|  | Header:         res.Header, | 
|  | HTTPStatusCode: res.StatusCode, | 
|  | }, | 
|  | } | 
|  | target := &ret | 
|  | if err := gensupport.DecodeResponse(target, res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | return ret, nil | 
|  | // { | 
|  | //   "description": "Gets the Hosting metadata for a specific site.", | 
|  | //   "flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/config", | 
|  | //   "httpMethod": "GET", | 
|  | //   "id": "firebasehosting.projects.sites.getConfig", | 
|  | //   "parameterOrder": [ | 
|  | //     "name" | 
|  | //   ], | 
|  | //   "parameters": { | 
|  | //     "name": { | 
|  | //       "description": "Required. The site for which to get the SiteConfig, in the format:\n\u003ccode\u003esites/\u003cvar\u003esite-name\u003c/var\u003e/config\u003c/code\u003e", | 
|  | //       "location": "path", | 
|  | //       "pattern": "^projects/[^/]+/sites/[^/]+/config$", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     } | 
|  | //   }, | 
|  | //   "path": "v1beta1/{+name}", | 
|  | //   "response": { | 
|  | //     "$ref": "SiteConfig" | 
|  | //   }, | 
|  | //   "scopes": [ | 
|  | //     "https://www.googleapis.com/auth/cloud-platform", | 
|  | //     "https://www.googleapis.com/auth/cloud-platform.read-only", | 
|  | //     "https://www.googleapis.com/auth/firebase", | 
|  | //     "https://www.googleapis.com/auth/firebase.readonly" | 
|  | //   ] | 
|  | // } | 
|  |  | 
|  | } | 
|  |  | 
|  | // method id "firebasehosting.projects.sites.updateConfig": | 
|  |  | 
|  | type ProjectsSitesUpdateConfigCall struct { | 
|  | s          *Service | 
|  | name       string | 
|  | siteconfig *SiteConfig | 
|  | urlParams_ gensupport.URLParams | 
|  | ctx_       context.Context | 
|  | header_    http.Header | 
|  | } | 
|  |  | 
|  | // UpdateConfig: Sets the Hosting metadata for a specific site. | 
|  | func (r *ProjectsSitesService) UpdateConfig(name string, siteconfig *SiteConfig) *ProjectsSitesUpdateConfigCall { | 
|  | c := &ProjectsSitesUpdateConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)} | 
|  | c.name = name | 
|  | c.siteconfig = siteconfig | 
|  | return c | 
|  | } | 
|  |  | 
|  | // UpdateMask sets the optional parameter "updateMask": A set of field | 
|  | // names from your [site configuration](../sites.SiteConfig) | 
|  | // that you want to update. | 
|  | // <br>A field will be overwritten if, and only if, it's in the | 
|  | // mask. | 
|  | // <br>If a mask is not provided then a default mask of | 
|  | // only | 
|  | // [`max_versions`](../sites.SiteConfig.max_versions) will be used. | 
|  | func (c *ProjectsSitesUpdateConfigCall) UpdateMask(updateMask string) *ProjectsSitesUpdateConfigCall { | 
|  | c.urlParams_.Set("updateMask", updateMask) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Fields allows partial responses to be retrieved. See | 
|  | // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse | 
|  | // for more information. | 
|  | func (c *ProjectsSitesUpdateConfigCall) Fields(s ...googleapi.Field) *ProjectsSitesUpdateConfigCall { | 
|  | c.urlParams_.Set("fields", googleapi.CombineFields(s)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Context sets the context to be used in this call's Do method. Any | 
|  | // pending HTTP request will be aborted if the provided context is | 
|  | // canceled. | 
|  | func (c *ProjectsSitesUpdateConfigCall) Context(ctx context.Context) *ProjectsSitesUpdateConfigCall { | 
|  | c.ctx_ = ctx | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Header returns an http.Header that can be modified by the caller to | 
|  | // add HTTP headers to the request. | 
|  | func (c *ProjectsSitesUpdateConfigCall) Header() http.Header { | 
|  | if c.header_ == nil { | 
|  | c.header_ = make(http.Header) | 
|  | } | 
|  | return c.header_ | 
|  | } | 
|  |  | 
|  | func (c *ProjectsSitesUpdateConfigCall) doRequest(alt string) (*http.Response, error) { | 
|  | reqHeaders := make(http.Header) | 
|  | reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200717") | 
|  | for k, v := range c.header_ { | 
|  | reqHeaders[k] = v | 
|  | } | 
|  | reqHeaders.Set("User-Agent", c.s.userAgent()) | 
|  | var body io.Reader = nil | 
|  | body, err := googleapi.WithoutDataWrapper.JSONReader(c.siteconfig) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | reqHeaders.Set("Content-Type", "application/json") | 
|  | c.urlParams_.Set("alt", alt) | 
|  | c.urlParams_.Set("prettyPrint", "false") | 
|  | urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+name}") | 
|  | urls += "?" + c.urlParams_.Encode() | 
|  | req, err := http.NewRequest("PATCH", urls, body) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | req.Header = reqHeaders | 
|  | googleapi.Expand(req.URL, map[string]string{ | 
|  | "name": c.name, | 
|  | }) | 
|  | return gensupport.SendRequest(c.ctx_, c.s.client, req) | 
|  | } | 
|  |  | 
|  | // Do executes the "firebasehosting.projects.sites.updateConfig" call. | 
|  | // Exactly one of *SiteConfig or error will be non-nil. Any non-2xx | 
|  | // status code is an error. Response headers are in either | 
|  | // *SiteConfig.ServerResponse.Header or (if a response was returned at | 
|  | // all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified | 
|  | // to check whether the returned error was because | 
|  | // http.StatusNotModified was returned. | 
|  | func (c *ProjectsSitesUpdateConfigCall) Do(opts ...googleapi.CallOption) (*SiteConfig, error) { | 
|  | gensupport.SetOptions(c.urlParams_, opts...) | 
|  | res, err := c.doRequest("json") | 
|  | if res != nil && res.StatusCode == http.StatusNotModified { | 
|  | if res.Body != nil { | 
|  | res.Body.Close() | 
|  | } | 
|  | return nil, &googleapi.Error{ | 
|  | Code:   res.StatusCode, | 
|  | Header: res.Header, | 
|  | } | 
|  | } | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | defer googleapi.CloseBody(res) | 
|  | if err := googleapi.CheckResponse(res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | ret := &SiteConfig{ | 
|  | ServerResponse: googleapi.ServerResponse{ | 
|  | Header:         res.Header, | 
|  | HTTPStatusCode: res.StatusCode, | 
|  | }, | 
|  | } | 
|  | target := &ret | 
|  | if err := gensupport.DecodeResponse(target, res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | return ret, nil | 
|  | // { | 
|  | //   "description": "Sets the Hosting metadata for a specific site.", | 
|  | //   "flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/config", | 
|  | //   "httpMethod": "PATCH", | 
|  | //   "id": "firebasehosting.projects.sites.updateConfig", | 
|  | //   "parameterOrder": [ | 
|  | //     "name" | 
|  | //   ], | 
|  | //   "parameters": { | 
|  | //     "name": { | 
|  | //       "description": "Required. The site for which to update the SiteConfig, in the format:\n\u003ccode\u003esites/\u003cvar\u003esite-name\u003c/var\u003e/config\u003c/code\u003e", | 
|  | //       "location": "path", | 
|  | //       "pattern": "^projects/[^/]+/sites/[^/]+/config$", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "updateMask": { | 
|  | //       "description": "A set of field names from your [site configuration](../sites.SiteConfig)\nthat you want to update.\n\u003cbr\u003eA field will be overwritten if, and only if, it's in the mask.\n\u003cbr\u003eIf a mask is not provided then a default mask of only\n[`max_versions`](../sites.SiteConfig.max_versions) will be used.", | 
|  | //       "format": "google-fieldmask", | 
|  | //       "location": "query", | 
|  | //       "type": "string" | 
|  | //     } | 
|  | //   }, | 
|  | //   "path": "v1beta1/{+name}", | 
|  | //   "request": { | 
|  | //     "$ref": "SiteConfig" | 
|  | //   }, | 
|  | //   "response": { | 
|  | //     "$ref": "SiteConfig" | 
|  | //   }, | 
|  | //   "scopes": [ | 
|  | //     "https://www.googleapis.com/auth/cloud-platform", | 
|  | //     "https://www.googleapis.com/auth/firebase" | 
|  | //   ] | 
|  | // } | 
|  |  | 
|  | } | 
|  |  | 
|  | // method id "firebasehosting.projects.sites.channels.releases.create": | 
|  |  | 
|  | type ProjectsSitesChannelsReleasesCreateCall struct { | 
|  | s          *Service | 
|  | parent     string | 
|  | release    *Release | 
|  | urlParams_ gensupport.URLParams | 
|  | ctx_       context.Context | 
|  | header_    http.Header | 
|  | } | 
|  |  | 
|  | // Create: Creates a new release which makes the content of the | 
|  | // specified version | 
|  | // actively display on the appropriate URL(s). | 
|  | func (r *ProjectsSitesChannelsReleasesService) Create(parent string, release *Release) *ProjectsSitesChannelsReleasesCreateCall { | 
|  | c := &ProjectsSitesChannelsReleasesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)} | 
|  | c.parent = parent | 
|  | c.release = release | 
|  | return c | 
|  | } | 
|  |  | 
|  | // VersionName sets the optional parameter "versionName": The unique | 
|  | // identifier for a version, in the | 
|  | // format: | 
|  | // <code>/sites/<var>site-name</var>/versions/<var>versionID</var | 
|  | // ></code> | 
|  | // The <var>site-name</var> in this version identifier must match | 
|  | // the | 
|  | // <var>site-name</var> in the `parent` parameter. | 
|  | // <br> | 
|  | // <br>This query parameter must be empty if the `type` field in | 
|  | // the | 
|  | // request body is `SITE_DISABLE`. | 
|  | func (c *ProjectsSitesChannelsReleasesCreateCall) VersionName(versionName string) *ProjectsSitesChannelsReleasesCreateCall { | 
|  | c.urlParams_.Set("versionName", versionName) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Fields allows partial responses to be retrieved. See | 
|  | // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse | 
|  | // for more information. | 
|  | func (c *ProjectsSitesChannelsReleasesCreateCall) Fields(s ...googleapi.Field) *ProjectsSitesChannelsReleasesCreateCall { | 
|  | c.urlParams_.Set("fields", googleapi.CombineFields(s)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Context sets the context to be used in this call's Do method. Any | 
|  | // pending HTTP request will be aborted if the provided context is | 
|  | // canceled. | 
|  | func (c *ProjectsSitesChannelsReleasesCreateCall) Context(ctx context.Context) *ProjectsSitesChannelsReleasesCreateCall { | 
|  | c.ctx_ = ctx | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Header returns an http.Header that can be modified by the caller to | 
|  | // add HTTP headers to the request. | 
|  | func (c *ProjectsSitesChannelsReleasesCreateCall) Header() http.Header { | 
|  | if c.header_ == nil { | 
|  | c.header_ = make(http.Header) | 
|  | } | 
|  | return c.header_ | 
|  | } | 
|  |  | 
|  | func (c *ProjectsSitesChannelsReleasesCreateCall) doRequest(alt string) (*http.Response, error) { | 
|  | reqHeaders := make(http.Header) | 
|  | reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200717") | 
|  | for k, v := range c.header_ { | 
|  | reqHeaders[k] = v | 
|  | } | 
|  | reqHeaders.Set("User-Agent", c.s.userAgent()) | 
|  | var body io.Reader = nil | 
|  | body, err := googleapi.WithoutDataWrapper.JSONReader(c.release) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | reqHeaders.Set("Content-Type", "application/json") | 
|  | c.urlParams_.Set("alt", alt) | 
|  | c.urlParams_.Set("prettyPrint", "false") | 
|  | urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+parent}/releases") | 
|  | urls += "?" + c.urlParams_.Encode() | 
|  | req, err := http.NewRequest("POST", urls, body) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | req.Header = reqHeaders | 
|  | googleapi.Expand(req.URL, map[string]string{ | 
|  | "parent": c.parent, | 
|  | }) | 
|  | return gensupport.SendRequest(c.ctx_, c.s.client, req) | 
|  | } | 
|  |  | 
|  | // Do executes the "firebasehosting.projects.sites.channels.releases.create" call. | 
|  | // Exactly one of *Release or error will be non-nil. Any non-2xx status | 
|  | // code is an error. Response headers are in either | 
|  | // *Release.ServerResponse.Header or (if a response was returned at all) | 
|  | // in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to | 
|  | // check whether the returned error was because http.StatusNotModified | 
|  | // was returned. | 
|  | func (c *ProjectsSitesChannelsReleasesCreateCall) Do(opts ...googleapi.CallOption) (*Release, error) { | 
|  | gensupport.SetOptions(c.urlParams_, opts...) | 
|  | res, err := c.doRequest("json") | 
|  | if res != nil && res.StatusCode == http.StatusNotModified { | 
|  | if res.Body != nil { | 
|  | res.Body.Close() | 
|  | } | 
|  | return nil, &googleapi.Error{ | 
|  | Code:   res.StatusCode, | 
|  | Header: res.Header, | 
|  | } | 
|  | } | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | defer googleapi.CloseBody(res) | 
|  | if err := googleapi.CheckResponse(res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | ret := &Release{ | 
|  | ServerResponse: googleapi.ServerResponse{ | 
|  | Header:         res.Header, | 
|  | HTTPStatusCode: res.StatusCode, | 
|  | }, | 
|  | } | 
|  | target := &ret | 
|  | if err := gensupport.DecodeResponse(target, res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | return ret, nil | 
|  | // { | 
|  | //   "description": "Creates a new release which makes the content of the specified version\nactively display on the appropriate URL(s).", | 
|  | //   "flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/channels/{channelsId}/releases", | 
|  | //   "httpMethod": "POST", | 
|  | //   "id": "firebasehosting.projects.sites.channels.releases.create", | 
|  | //   "parameterOrder": [ | 
|  | //     "parent" | 
|  | //   ], | 
|  | //   "parameters": { | 
|  | //     "parent": { | 
|  | //       "description": "Required. The site that the release belongs to, in the format:\n\u003ccode\u003esites/\u003cvar\u003esite-name\u003c/var\u003e\u003c/code\u003e", | 
|  | //       "location": "path", | 
|  | //       "pattern": "^projects/[^/]+/sites/[^/]+/channels/[^/]+$", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "versionName": { | 
|  | //       "description": "The unique identifier for a version, in the format:\n\u003ccode\u003e/sites/\u003cvar\u003esite-name\u003c/var\u003e/versions/\u003cvar\u003eversionID\u003c/var\u003e\u003c/code\u003e\nThe \u003cvar\u003esite-name\u003c/var\u003e in this version identifier must match the\n\u003cvar\u003esite-name\u003c/var\u003e in the `parent` parameter.\n\u003cbr\u003e\n\u003cbr\u003eThis query parameter must be empty if the `type` field in the\nrequest body is `SITE_DISABLE`.", | 
|  | //       "location": "query", | 
|  | //       "type": "string" | 
|  | //     } | 
|  | //   }, | 
|  | //   "path": "v1beta1/{+parent}/releases", | 
|  | //   "request": { | 
|  | //     "$ref": "Release" | 
|  | //   }, | 
|  | //   "response": { | 
|  | //     "$ref": "Release" | 
|  | //   }, | 
|  | //   "scopes": [ | 
|  | //     "https://www.googleapis.com/auth/cloud-platform", | 
|  | //     "https://www.googleapis.com/auth/firebase" | 
|  | //   ] | 
|  | // } | 
|  |  | 
|  | } | 
|  |  | 
|  | // method id "firebasehosting.projects.sites.channels.releases.list": | 
|  |  | 
|  | type ProjectsSitesChannelsReleasesListCall struct { | 
|  | s            *Service | 
|  | parent       string | 
|  | urlParams_   gensupport.URLParams | 
|  | ifNoneMatch_ string | 
|  | ctx_         context.Context | 
|  | header_      http.Header | 
|  | } | 
|  |  | 
|  | // List: Lists the releases that have been created on the specified | 
|  | // site. | 
|  | func (r *ProjectsSitesChannelsReleasesService) List(parent string) *ProjectsSitesChannelsReleasesListCall { | 
|  | c := &ProjectsSitesChannelsReleasesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} | 
|  | c.parent = parent | 
|  | return c | 
|  | } | 
|  |  | 
|  | // PageSize sets the optional parameter "pageSize": The page size to | 
|  | // return. Defaults to 100. | 
|  | func (c *ProjectsSitesChannelsReleasesListCall) PageSize(pageSize int64) *ProjectsSitesChannelsReleasesListCall { | 
|  | c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // PageToken sets the optional parameter "pageToken": The | 
|  | // next_page_token from a previous request, if provided. | 
|  | func (c *ProjectsSitesChannelsReleasesListCall) PageToken(pageToken string) *ProjectsSitesChannelsReleasesListCall { | 
|  | c.urlParams_.Set("pageToken", pageToken) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Fields allows partial responses to be retrieved. See | 
|  | // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse | 
|  | // for more information. | 
|  | func (c *ProjectsSitesChannelsReleasesListCall) Fields(s ...googleapi.Field) *ProjectsSitesChannelsReleasesListCall { | 
|  | c.urlParams_.Set("fields", googleapi.CombineFields(s)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // IfNoneMatch sets the optional parameter which makes the operation | 
|  | // fail if the object's ETag matches the given value. This is useful for | 
|  | // getting updates only after the object has changed since the last | 
|  | // request. Use googleapi.IsNotModified to check whether the response | 
|  | // error from Do is the result of In-None-Match. | 
|  | func (c *ProjectsSitesChannelsReleasesListCall) IfNoneMatch(entityTag string) *ProjectsSitesChannelsReleasesListCall { | 
|  | c.ifNoneMatch_ = entityTag | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Context sets the context to be used in this call's Do method. Any | 
|  | // pending HTTP request will be aborted if the provided context is | 
|  | // canceled. | 
|  | func (c *ProjectsSitesChannelsReleasesListCall) Context(ctx context.Context) *ProjectsSitesChannelsReleasesListCall { | 
|  | c.ctx_ = ctx | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Header returns an http.Header that can be modified by the caller to | 
|  | // add HTTP headers to the request. | 
|  | func (c *ProjectsSitesChannelsReleasesListCall) Header() http.Header { | 
|  | if c.header_ == nil { | 
|  | c.header_ = make(http.Header) | 
|  | } | 
|  | return c.header_ | 
|  | } | 
|  |  | 
|  | func (c *ProjectsSitesChannelsReleasesListCall) doRequest(alt string) (*http.Response, error) { | 
|  | reqHeaders := make(http.Header) | 
|  | reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200717") | 
|  | for k, v := range c.header_ { | 
|  | reqHeaders[k] = v | 
|  | } | 
|  | reqHeaders.Set("User-Agent", c.s.userAgent()) | 
|  | if c.ifNoneMatch_ != "" { | 
|  | reqHeaders.Set("If-None-Match", c.ifNoneMatch_) | 
|  | } | 
|  | var body io.Reader = nil | 
|  | c.urlParams_.Set("alt", alt) | 
|  | c.urlParams_.Set("prettyPrint", "false") | 
|  | urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+parent}/releases") | 
|  | urls += "?" + c.urlParams_.Encode() | 
|  | req, err := http.NewRequest("GET", urls, body) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | req.Header = reqHeaders | 
|  | googleapi.Expand(req.URL, map[string]string{ | 
|  | "parent": c.parent, | 
|  | }) | 
|  | return gensupport.SendRequest(c.ctx_, c.s.client, req) | 
|  | } | 
|  |  | 
|  | // Do executes the "firebasehosting.projects.sites.channels.releases.list" call. | 
|  | // Exactly one of *ListReleasesResponse or error will be non-nil. Any | 
|  | // non-2xx status code is an error. Response headers are in either | 
|  | // *ListReleasesResponse.ServerResponse.Header or (if a response was | 
|  | // returned at all) in error.(*googleapi.Error).Header. Use | 
|  | // googleapi.IsNotModified to check whether the returned error was | 
|  | // because http.StatusNotModified was returned. | 
|  | func (c *ProjectsSitesChannelsReleasesListCall) Do(opts ...googleapi.CallOption) (*ListReleasesResponse, error) { | 
|  | gensupport.SetOptions(c.urlParams_, opts...) | 
|  | res, err := c.doRequest("json") | 
|  | if res != nil && res.StatusCode == http.StatusNotModified { | 
|  | if res.Body != nil { | 
|  | res.Body.Close() | 
|  | } | 
|  | return nil, &googleapi.Error{ | 
|  | Code:   res.StatusCode, | 
|  | Header: res.Header, | 
|  | } | 
|  | } | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | defer googleapi.CloseBody(res) | 
|  | if err := googleapi.CheckResponse(res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | ret := &ListReleasesResponse{ | 
|  | ServerResponse: googleapi.ServerResponse{ | 
|  | Header:         res.Header, | 
|  | HTTPStatusCode: res.StatusCode, | 
|  | }, | 
|  | } | 
|  | target := &ret | 
|  | if err := gensupport.DecodeResponse(target, res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | return ret, nil | 
|  | // { | 
|  | //   "description": "Lists the releases that have been created on the specified site.", | 
|  | //   "flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/channels/{channelsId}/releases", | 
|  | //   "httpMethod": "GET", | 
|  | //   "id": "firebasehosting.projects.sites.channels.releases.list", | 
|  | //   "parameterOrder": [ | 
|  | //     "parent" | 
|  | //   ], | 
|  | //   "parameters": { | 
|  | //     "pageSize": { | 
|  | //       "description": "The page size to return. Defaults to 100.", | 
|  | //       "format": "int32", | 
|  | //       "location": "query", | 
|  | //       "type": "integer" | 
|  | //     }, | 
|  | //     "pageToken": { | 
|  | //       "description": "The next_page_token from a previous request, if provided.", | 
|  | //       "location": "query", | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "parent": { | 
|  | //       "description": "Required. The parent for which to list files, in the format:\n\u003ccode\u003esites/\u003cvar\u003esite-name\u003c/var\u003e\u003c/code\u003e", | 
|  | //       "location": "path", | 
|  | //       "pattern": "^projects/[^/]+/sites/[^/]+/channels/[^/]+$", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     } | 
|  | //   }, | 
|  | //   "path": "v1beta1/{+parent}/releases", | 
|  | //   "response": { | 
|  | //     "$ref": "ListReleasesResponse" | 
|  | //   }, | 
|  | //   "scopes": [ | 
|  | //     "https://www.googleapis.com/auth/cloud-platform", | 
|  | //     "https://www.googleapis.com/auth/cloud-platform.read-only", | 
|  | //     "https://www.googleapis.com/auth/firebase", | 
|  | //     "https://www.googleapis.com/auth/firebase.readonly" | 
|  | //   ] | 
|  | // } | 
|  |  | 
|  | } | 
|  |  | 
|  | // Pages invokes f for each page of results. | 
|  | // A non-nil error returned from f will halt the iteration. | 
|  | // The provided context supersedes any context provided to the Context method. | 
|  | func (c *ProjectsSitesChannelsReleasesListCall) Pages(ctx context.Context, f func(*ListReleasesResponse) error) error { | 
|  | c.ctx_ = ctx | 
|  | defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point | 
|  | for { | 
|  | x, err := c.Do() | 
|  | if err != nil { | 
|  | return err | 
|  | } | 
|  | if err := f(x); err != nil { | 
|  | return err | 
|  | } | 
|  | if x.NextPageToken == "" { | 
|  | return nil | 
|  | } | 
|  | c.PageToken(x.NextPageToken) | 
|  | } | 
|  | } | 
|  |  | 
|  | // method id "firebasehosting.projects.sites.domains.create": | 
|  |  | 
|  | type ProjectsSitesDomainsCreateCall struct { | 
|  | s          *Service | 
|  | parent     string | 
|  | domain     *Domain | 
|  | urlParams_ gensupport.URLParams | 
|  | ctx_       context.Context | 
|  | header_    http.Header | 
|  | } | 
|  |  | 
|  | // Create: Creates a domain mapping on the specified site. | 
|  | func (r *ProjectsSitesDomainsService) Create(parent string, domain *Domain) *ProjectsSitesDomainsCreateCall { | 
|  | c := &ProjectsSitesDomainsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)} | 
|  | c.parent = parent | 
|  | c.domain = domain | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Fields allows partial responses to be retrieved. See | 
|  | // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse | 
|  | // for more information. | 
|  | func (c *ProjectsSitesDomainsCreateCall) Fields(s ...googleapi.Field) *ProjectsSitesDomainsCreateCall { | 
|  | c.urlParams_.Set("fields", googleapi.CombineFields(s)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Context sets the context to be used in this call's Do method. Any | 
|  | // pending HTTP request will be aborted if the provided context is | 
|  | // canceled. | 
|  | func (c *ProjectsSitesDomainsCreateCall) Context(ctx context.Context) *ProjectsSitesDomainsCreateCall { | 
|  | c.ctx_ = ctx | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Header returns an http.Header that can be modified by the caller to | 
|  | // add HTTP headers to the request. | 
|  | func (c *ProjectsSitesDomainsCreateCall) Header() http.Header { | 
|  | if c.header_ == nil { | 
|  | c.header_ = make(http.Header) | 
|  | } | 
|  | return c.header_ | 
|  | } | 
|  |  | 
|  | func (c *ProjectsSitesDomainsCreateCall) doRequest(alt string) (*http.Response, error) { | 
|  | reqHeaders := make(http.Header) | 
|  | reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200717") | 
|  | for k, v := range c.header_ { | 
|  | reqHeaders[k] = v | 
|  | } | 
|  | reqHeaders.Set("User-Agent", c.s.userAgent()) | 
|  | var body io.Reader = nil | 
|  | body, err := googleapi.WithoutDataWrapper.JSONReader(c.domain) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | reqHeaders.Set("Content-Type", "application/json") | 
|  | c.urlParams_.Set("alt", alt) | 
|  | c.urlParams_.Set("prettyPrint", "false") | 
|  | urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+parent}/domains") | 
|  | urls += "?" + c.urlParams_.Encode() | 
|  | req, err := http.NewRequest("POST", urls, body) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | req.Header = reqHeaders | 
|  | googleapi.Expand(req.URL, map[string]string{ | 
|  | "parent": c.parent, | 
|  | }) | 
|  | return gensupport.SendRequest(c.ctx_, c.s.client, req) | 
|  | } | 
|  |  | 
|  | // Do executes the "firebasehosting.projects.sites.domains.create" call. | 
|  | // Exactly one of *Domain or error will be non-nil. Any non-2xx status | 
|  | // code is an error. Response headers are in either | 
|  | // *Domain.ServerResponse.Header or (if a response was returned at all) | 
|  | // in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to | 
|  | // check whether the returned error was because http.StatusNotModified | 
|  | // was returned. | 
|  | func (c *ProjectsSitesDomainsCreateCall) Do(opts ...googleapi.CallOption) (*Domain, error) { | 
|  | gensupport.SetOptions(c.urlParams_, opts...) | 
|  | res, err := c.doRequest("json") | 
|  | if res != nil && res.StatusCode == http.StatusNotModified { | 
|  | if res.Body != nil { | 
|  | res.Body.Close() | 
|  | } | 
|  | return nil, &googleapi.Error{ | 
|  | Code:   res.StatusCode, | 
|  | Header: res.Header, | 
|  | } | 
|  | } | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | defer googleapi.CloseBody(res) | 
|  | if err := googleapi.CheckResponse(res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | ret := &Domain{ | 
|  | ServerResponse: googleapi.ServerResponse{ | 
|  | Header:         res.Header, | 
|  | HTTPStatusCode: res.StatusCode, | 
|  | }, | 
|  | } | 
|  | target := &ret | 
|  | if err := gensupport.DecodeResponse(target, res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | return ret, nil | 
|  | // { | 
|  | //   "description": "Creates a domain mapping on the specified site.", | 
|  | //   "flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/domains", | 
|  | //   "httpMethod": "POST", | 
|  | //   "id": "firebasehosting.projects.sites.domains.create", | 
|  | //   "parameterOrder": [ | 
|  | //     "parent" | 
|  | //   ], | 
|  | //   "parameters": { | 
|  | //     "parent": { | 
|  | //       "description": "Required. The parent to create the domain association for, in the format:\n\u003ccode\u003esites/\u003cvar\u003esite-name\u003c/var\u003e\u003c/code\u003e", | 
|  | //       "location": "path", | 
|  | //       "pattern": "^projects/[^/]+/sites/[^/]+$", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     } | 
|  | //   }, | 
|  | //   "path": "v1beta1/{+parent}/domains", | 
|  | //   "request": { | 
|  | //     "$ref": "Domain" | 
|  | //   }, | 
|  | //   "response": { | 
|  | //     "$ref": "Domain" | 
|  | //   }, | 
|  | //   "scopes": [ | 
|  | //     "https://www.googleapis.com/auth/cloud-platform", | 
|  | //     "https://www.googleapis.com/auth/firebase" | 
|  | //   ] | 
|  | // } | 
|  |  | 
|  | } | 
|  |  | 
|  | // method id "firebasehosting.projects.sites.domains.delete": | 
|  |  | 
|  | type ProjectsSitesDomainsDeleteCall struct { | 
|  | s          *Service | 
|  | name       string | 
|  | urlParams_ gensupport.URLParams | 
|  | ctx_       context.Context | 
|  | header_    http.Header | 
|  | } | 
|  |  | 
|  | // Delete: Deletes the existing domain mapping on the specified site. | 
|  | func (r *ProjectsSitesDomainsService) Delete(name string) *ProjectsSitesDomainsDeleteCall { | 
|  | c := &ProjectsSitesDomainsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} | 
|  | c.name = name | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Fields allows partial responses to be retrieved. See | 
|  | // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse | 
|  | // for more information. | 
|  | func (c *ProjectsSitesDomainsDeleteCall) Fields(s ...googleapi.Field) *ProjectsSitesDomainsDeleteCall { | 
|  | c.urlParams_.Set("fields", googleapi.CombineFields(s)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Context sets the context to be used in this call's Do method. Any | 
|  | // pending HTTP request will be aborted if the provided context is | 
|  | // canceled. | 
|  | func (c *ProjectsSitesDomainsDeleteCall) Context(ctx context.Context) *ProjectsSitesDomainsDeleteCall { | 
|  | c.ctx_ = ctx | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Header returns an http.Header that can be modified by the caller to | 
|  | // add HTTP headers to the request. | 
|  | func (c *ProjectsSitesDomainsDeleteCall) Header() http.Header { | 
|  | if c.header_ == nil { | 
|  | c.header_ = make(http.Header) | 
|  | } | 
|  | return c.header_ | 
|  | } | 
|  |  | 
|  | func (c *ProjectsSitesDomainsDeleteCall) doRequest(alt string) (*http.Response, error) { | 
|  | reqHeaders := make(http.Header) | 
|  | reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200717") | 
|  | for k, v := range c.header_ { | 
|  | reqHeaders[k] = v | 
|  | } | 
|  | reqHeaders.Set("User-Agent", c.s.userAgent()) | 
|  | var body io.Reader = nil | 
|  | c.urlParams_.Set("alt", alt) | 
|  | c.urlParams_.Set("prettyPrint", "false") | 
|  | urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+name}") | 
|  | urls += "?" + c.urlParams_.Encode() | 
|  | req, err := http.NewRequest("DELETE", urls, body) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | req.Header = reqHeaders | 
|  | googleapi.Expand(req.URL, map[string]string{ | 
|  | "name": c.name, | 
|  | }) | 
|  | return gensupport.SendRequest(c.ctx_, c.s.client, req) | 
|  | } | 
|  |  | 
|  | // Do executes the "firebasehosting.projects.sites.domains.delete" call. | 
|  | // Exactly one of *Empty or error will be non-nil. Any non-2xx status | 
|  | // code is an error. Response headers are in either | 
|  | // *Empty.ServerResponse.Header or (if a response was returned at all) | 
|  | // in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to | 
|  | // check whether the returned error was because http.StatusNotModified | 
|  | // was returned. | 
|  | func (c *ProjectsSitesDomainsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) { | 
|  | gensupport.SetOptions(c.urlParams_, opts...) | 
|  | res, err := c.doRequest("json") | 
|  | if res != nil && res.StatusCode == http.StatusNotModified { | 
|  | if res.Body != nil { | 
|  | res.Body.Close() | 
|  | } | 
|  | return nil, &googleapi.Error{ | 
|  | Code:   res.StatusCode, | 
|  | Header: res.Header, | 
|  | } | 
|  | } | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | defer googleapi.CloseBody(res) | 
|  | if err := googleapi.CheckResponse(res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | ret := &Empty{ | 
|  | ServerResponse: googleapi.ServerResponse{ | 
|  | Header:         res.Header, | 
|  | HTTPStatusCode: res.StatusCode, | 
|  | }, | 
|  | } | 
|  | target := &ret | 
|  | if err := gensupport.DecodeResponse(target, res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | return ret, nil | 
|  | // { | 
|  | //   "description": "Deletes the existing domain mapping on the specified site.", | 
|  | //   "flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/domains/{domainsId}", | 
|  | //   "httpMethod": "DELETE", | 
|  | //   "id": "firebasehosting.projects.sites.domains.delete", | 
|  | //   "parameterOrder": [ | 
|  | //     "name" | 
|  | //   ], | 
|  | //   "parameters": { | 
|  | //     "name": { | 
|  | //       "description": "Required. The name of the domain association to delete.", | 
|  | //       "location": "path", | 
|  | //       "pattern": "^projects/[^/]+/sites/[^/]+/domains/[^/]+$", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     } | 
|  | //   }, | 
|  | //   "path": "v1beta1/{+name}", | 
|  | //   "response": { | 
|  | //     "$ref": "Empty" | 
|  | //   }, | 
|  | //   "scopes": [ | 
|  | //     "https://www.googleapis.com/auth/cloud-platform", | 
|  | //     "https://www.googleapis.com/auth/firebase" | 
|  | //   ] | 
|  | // } | 
|  |  | 
|  | } | 
|  |  | 
|  | // method id "firebasehosting.projects.sites.domains.get": | 
|  |  | 
|  | type ProjectsSitesDomainsGetCall struct { | 
|  | s            *Service | 
|  | name         string | 
|  | urlParams_   gensupport.URLParams | 
|  | ifNoneMatch_ string | 
|  | ctx_         context.Context | 
|  | header_      http.Header | 
|  | } | 
|  |  | 
|  | // Get: Gets a domain mapping on the specified site. | 
|  | func (r *ProjectsSitesDomainsService) Get(name string) *ProjectsSitesDomainsGetCall { | 
|  | c := &ProjectsSitesDomainsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} | 
|  | c.name = name | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Fields allows partial responses to be retrieved. See | 
|  | // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse | 
|  | // for more information. | 
|  | func (c *ProjectsSitesDomainsGetCall) Fields(s ...googleapi.Field) *ProjectsSitesDomainsGetCall { | 
|  | c.urlParams_.Set("fields", googleapi.CombineFields(s)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // IfNoneMatch sets the optional parameter which makes the operation | 
|  | // fail if the object's ETag matches the given value. This is useful for | 
|  | // getting updates only after the object has changed since the last | 
|  | // request. Use googleapi.IsNotModified to check whether the response | 
|  | // error from Do is the result of In-None-Match. | 
|  | func (c *ProjectsSitesDomainsGetCall) IfNoneMatch(entityTag string) *ProjectsSitesDomainsGetCall { | 
|  | c.ifNoneMatch_ = entityTag | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Context sets the context to be used in this call's Do method. Any | 
|  | // pending HTTP request will be aborted if the provided context is | 
|  | // canceled. | 
|  | func (c *ProjectsSitesDomainsGetCall) Context(ctx context.Context) *ProjectsSitesDomainsGetCall { | 
|  | c.ctx_ = ctx | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Header returns an http.Header that can be modified by the caller to | 
|  | // add HTTP headers to the request. | 
|  | func (c *ProjectsSitesDomainsGetCall) Header() http.Header { | 
|  | if c.header_ == nil { | 
|  | c.header_ = make(http.Header) | 
|  | } | 
|  | return c.header_ | 
|  | } | 
|  |  | 
|  | func (c *ProjectsSitesDomainsGetCall) doRequest(alt string) (*http.Response, error) { | 
|  | reqHeaders := make(http.Header) | 
|  | reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200717") | 
|  | for k, v := range c.header_ { | 
|  | reqHeaders[k] = v | 
|  | } | 
|  | reqHeaders.Set("User-Agent", c.s.userAgent()) | 
|  | if c.ifNoneMatch_ != "" { | 
|  | reqHeaders.Set("If-None-Match", c.ifNoneMatch_) | 
|  | } | 
|  | var body io.Reader = nil | 
|  | c.urlParams_.Set("alt", alt) | 
|  | c.urlParams_.Set("prettyPrint", "false") | 
|  | urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+name}") | 
|  | urls += "?" + c.urlParams_.Encode() | 
|  | req, err := http.NewRequest("GET", urls, body) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | req.Header = reqHeaders | 
|  | googleapi.Expand(req.URL, map[string]string{ | 
|  | "name": c.name, | 
|  | }) | 
|  | return gensupport.SendRequest(c.ctx_, c.s.client, req) | 
|  | } | 
|  |  | 
|  | // Do executes the "firebasehosting.projects.sites.domains.get" call. | 
|  | // Exactly one of *Domain or error will be non-nil. Any non-2xx status | 
|  | // code is an error. Response headers are in either | 
|  | // *Domain.ServerResponse.Header or (if a response was returned at all) | 
|  | // in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to | 
|  | // check whether the returned error was because http.StatusNotModified | 
|  | // was returned. | 
|  | func (c *ProjectsSitesDomainsGetCall) Do(opts ...googleapi.CallOption) (*Domain, error) { | 
|  | gensupport.SetOptions(c.urlParams_, opts...) | 
|  | res, err := c.doRequest("json") | 
|  | if res != nil && res.StatusCode == http.StatusNotModified { | 
|  | if res.Body != nil { | 
|  | res.Body.Close() | 
|  | } | 
|  | return nil, &googleapi.Error{ | 
|  | Code:   res.StatusCode, | 
|  | Header: res.Header, | 
|  | } | 
|  | } | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | defer googleapi.CloseBody(res) | 
|  | if err := googleapi.CheckResponse(res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | ret := &Domain{ | 
|  | ServerResponse: googleapi.ServerResponse{ | 
|  | Header:         res.Header, | 
|  | HTTPStatusCode: res.StatusCode, | 
|  | }, | 
|  | } | 
|  | target := &ret | 
|  | if err := gensupport.DecodeResponse(target, res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | return ret, nil | 
|  | // { | 
|  | //   "description": "Gets a domain mapping on the specified site.", | 
|  | //   "flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/domains/{domainsId}", | 
|  | //   "httpMethod": "GET", | 
|  | //   "id": "firebasehosting.projects.sites.domains.get", | 
|  | //   "parameterOrder": [ | 
|  | //     "name" | 
|  | //   ], | 
|  | //   "parameters": { | 
|  | //     "name": { | 
|  | //       "description": "Required. The name of the domain configuration to get.", | 
|  | //       "location": "path", | 
|  | //       "pattern": "^projects/[^/]+/sites/[^/]+/domains/[^/]+$", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     } | 
|  | //   }, | 
|  | //   "path": "v1beta1/{+name}", | 
|  | //   "response": { | 
|  | //     "$ref": "Domain" | 
|  | //   }, | 
|  | //   "scopes": [ | 
|  | //     "https://www.googleapis.com/auth/cloud-platform", | 
|  | //     "https://www.googleapis.com/auth/cloud-platform.read-only", | 
|  | //     "https://www.googleapis.com/auth/firebase", | 
|  | //     "https://www.googleapis.com/auth/firebase.readonly" | 
|  | //   ] | 
|  | // } | 
|  |  | 
|  | } | 
|  |  | 
|  | // method id "firebasehosting.projects.sites.domains.list": | 
|  |  | 
|  | type ProjectsSitesDomainsListCall struct { | 
|  | s            *Service | 
|  | parent       string | 
|  | urlParams_   gensupport.URLParams | 
|  | ifNoneMatch_ string | 
|  | ctx_         context.Context | 
|  | header_      http.Header | 
|  | } | 
|  |  | 
|  | // List: Lists the domains for the specified site. | 
|  | func (r *ProjectsSitesDomainsService) List(parent string) *ProjectsSitesDomainsListCall { | 
|  | c := &ProjectsSitesDomainsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} | 
|  | c.parent = parent | 
|  | return c | 
|  | } | 
|  |  | 
|  | // PageSize sets the optional parameter "pageSize": The page size to | 
|  | // return. Defaults to 50. | 
|  | func (c *ProjectsSitesDomainsListCall) PageSize(pageSize int64) *ProjectsSitesDomainsListCall { | 
|  | c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // PageToken sets the optional parameter "pageToken": The | 
|  | // next_page_token from a previous request, if provided. | 
|  | func (c *ProjectsSitesDomainsListCall) PageToken(pageToken string) *ProjectsSitesDomainsListCall { | 
|  | c.urlParams_.Set("pageToken", pageToken) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Fields allows partial responses to be retrieved. See | 
|  | // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse | 
|  | // for more information. | 
|  | func (c *ProjectsSitesDomainsListCall) Fields(s ...googleapi.Field) *ProjectsSitesDomainsListCall { | 
|  | c.urlParams_.Set("fields", googleapi.CombineFields(s)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // IfNoneMatch sets the optional parameter which makes the operation | 
|  | // fail if the object's ETag matches the given value. This is useful for | 
|  | // getting updates only after the object has changed since the last | 
|  | // request. Use googleapi.IsNotModified to check whether the response | 
|  | // error from Do is the result of In-None-Match. | 
|  | func (c *ProjectsSitesDomainsListCall) IfNoneMatch(entityTag string) *ProjectsSitesDomainsListCall { | 
|  | c.ifNoneMatch_ = entityTag | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Context sets the context to be used in this call's Do method. Any | 
|  | // pending HTTP request will be aborted if the provided context is | 
|  | // canceled. | 
|  | func (c *ProjectsSitesDomainsListCall) Context(ctx context.Context) *ProjectsSitesDomainsListCall { | 
|  | c.ctx_ = ctx | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Header returns an http.Header that can be modified by the caller to | 
|  | // add HTTP headers to the request. | 
|  | func (c *ProjectsSitesDomainsListCall) Header() http.Header { | 
|  | if c.header_ == nil { | 
|  | c.header_ = make(http.Header) | 
|  | } | 
|  | return c.header_ | 
|  | } | 
|  |  | 
|  | func (c *ProjectsSitesDomainsListCall) doRequest(alt string) (*http.Response, error) { | 
|  | reqHeaders := make(http.Header) | 
|  | reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200717") | 
|  | for k, v := range c.header_ { | 
|  | reqHeaders[k] = v | 
|  | } | 
|  | reqHeaders.Set("User-Agent", c.s.userAgent()) | 
|  | if c.ifNoneMatch_ != "" { | 
|  | reqHeaders.Set("If-None-Match", c.ifNoneMatch_) | 
|  | } | 
|  | var body io.Reader = nil | 
|  | c.urlParams_.Set("alt", alt) | 
|  | c.urlParams_.Set("prettyPrint", "false") | 
|  | urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+parent}/domains") | 
|  | urls += "?" + c.urlParams_.Encode() | 
|  | req, err := http.NewRequest("GET", urls, body) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | req.Header = reqHeaders | 
|  | googleapi.Expand(req.URL, map[string]string{ | 
|  | "parent": c.parent, | 
|  | }) | 
|  | return gensupport.SendRequest(c.ctx_, c.s.client, req) | 
|  | } | 
|  |  | 
|  | // Do executes the "firebasehosting.projects.sites.domains.list" call. | 
|  | // Exactly one of *ListDomainsResponse or error will be non-nil. Any | 
|  | // non-2xx status code is an error. Response headers are in either | 
|  | // *ListDomainsResponse.ServerResponse.Header or (if a response was | 
|  | // returned at all) in error.(*googleapi.Error).Header. Use | 
|  | // googleapi.IsNotModified to check whether the returned error was | 
|  | // because http.StatusNotModified was returned. | 
|  | func (c *ProjectsSitesDomainsListCall) Do(opts ...googleapi.CallOption) (*ListDomainsResponse, error) { | 
|  | gensupport.SetOptions(c.urlParams_, opts...) | 
|  | res, err := c.doRequest("json") | 
|  | if res != nil && res.StatusCode == http.StatusNotModified { | 
|  | if res.Body != nil { | 
|  | res.Body.Close() | 
|  | } | 
|  | return nil, &googleapi.Error{ | 
|  | Code:   res.StatusCode, | 
|  | Header: res.Header, | 
|  | } | 
|  | } | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | defer googleapi.CloseBody(res) | 
|  | if err := googleapi.CheckResponse(res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | ret := &ListDomainsResponse{ | 
|  | ServerResponse: googleapi.ServerResponse{ | 
|  | Header:         res.Header, | 
|  | HTTPStatusCode: res.StatusCode, | 
|  | }, | 
|  | } | 
|  | target := &ret | 
|  | if err := gensupport.DecodeResponse(target, res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | return ret, nil | 
|  | // { | 
|  | //   "description": "Lists the domains for the specified site.", | 
|  | //   "flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/domains", | 
|  | //   "httpMethod": "GET", | 
|  | //   "id": "firebasehosting.projects.sites.domains.list", | 
|  | //   "parameterOrder": [ | 
|  | //     "parent" | 
|  | //   ], | 
|  | //   "parameters": { | 
|  | //     "pageSize": { | 
|  | //       "description": "The page size to return. Defaults to 50.", | 
|  | //       "format": "int32", | 
|  | //       "location": "query", | 
|  | //       "type": "integer" | 
|  | //     }, | 
|  | //     "pageToken": { | 
|  | //       "description": "The next_page_token from a previous request, if provided.", | 
|  | //       "location": "query", | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "parent": { | 
|  | //       "description": "Required. The parent for which to list domains, in the format:\n\u003ccode\u003esites/\u003cvar\u003esite-name\u003c/var\u003e\u003c/code\u003e", | 
|  | //       "location": "path", | 
|  | //       "pattern": "^projects/[^/]+/sites/[^/]+$", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     } | 
|  | //   }, | 
|  | //   "path": "v1beta1/{+parent}/domains", | 
|  | //   "response": { | 
|  | //     "$ref": "ListDomainsResponse" | 
|  | //   }, | 
|  | //   "scopes": [ | 
|  | //     "https://www.googleapis.com/auth/cloud-platform", | 
|  | //     "https://www.googleapis.com/auth/cloud-platform.read-only", | 
|  | //     "https://www.googleapis.com/auth/firebase", | 
|  | //     "https://www.googleapis.com/auth/firebase.readonly" | 
|  | //   ] | 
|  | // } | 
|  |  | 
|  | } | 
|  |  | 
|  | // Pages invokes f for each page of results. | 
|  | // A non-nil error returned from f will halt the iteration. | 
|  | // The provided context supersedes any context provided to the Context method. | 
|  | func (c *ProjectsSitesDomainsListCall) Pages(ctx context.Context, f func(*ListDomainsResponse) error) error { | 
|  | c.ctx_ = ctx | 
|  | defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point | 
|  | for { | 
|  | x, err := c.Do() | 
|  | if err != nil { | 
|  | return err | 
|  | } | 
|  | if err := f(x); err != nil { | 
|  | return err | 
|  | } | 
|  | if x.NextPageToken == "" { | 
|  | return nil | 
|  | } | 
|  | c.PageToken(x.NextPageToken) | 
|  | } | 
|  | } | 
|  |  | 
|  | // method id "firebasehosting.projects.sites.domains.update": | 
|  |  | 
|  | type ProjectsSitesDomainsUpdateCall struct { | 
|  | s          *Service | 
|  | name       string | 
|  | domain     *Domain | 
|  | urlParams_ gensupport.URLParams | 
|  | ctx_       context.Context | 
|  | header_    http.Header | 
|  | } | 
|  |  | 
|  | // Update: Updates the specified domain mapping, creating the mapping as | 
|  | // if it does | 
|  | // not exist. | 
|  | func (r *ProjectsSitesDomainsService) Update(name string, domain *Domain) *ProjectsSitesDomainsUpdateCall { | 
|  | c := &ProjectsSitesDomainsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)} | 
|  | c.name = name | 
|  | c.domain = domain | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Fields allows partial responses to be retrieved. See | 
|  | // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse | 
|  | // for more information. | 
|  | func (c *ProjectsSitesDomainsUpdateCall) Fields(s ...googleapi.Field) *ProjectsSitesDomainsUpdateCall { | 
|  | c.urlParams_.Set("fields", googleapi.CombineFields(s)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Context sets the context to be used in this call's Do method. Any | 
|  | // pending HTTP request will be aborted if the provided context is | 
|  | // canceled. | 
|  | func (c *ProjectsSitesDomainsUpdateCall) Context(ctx context.Context) *ProjectsSitesDomainsUpdateCall { | 
|  | c.ctx_ = ctx | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Header returns an http.Header that can be modified by the caller to | 
|  | // add HTTP headers to the request. | 
|  | func (c *ProjectsSitesDomainsUpdateCall) Header() http.Header { | 
|  | if c.header_ == nil { | 
|  | c.header_ = make(http.Header) | 
|  | } | 
|  | return c.header_ | 
|  | } | 
|  |  | 
|  | func (c *ProjectsSitesDomainsUpdateCall) doRequest(alt string) (*http.Response, error) { | 
|  | reqHeaders := make(http.Header) | 
|  | reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200717") | 
|  | for k, v := range c.header_ { | 
|  | reqHeaders[k] = v | 
|  | } | 
|  | reqHeaders.Set("User-Agent", c.s.userAgent()) | 
|  | var body io.Reader = nil | 
|  | body, err := googleapi.WithoutDataWrapper.JSONReader(c.domain) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | reqHeaders.Set("Content-Type", "application/json") | 
|  | c.urlParams_.Set("alt", alt) | 
|  | c.urlParams_.Set("prettyPrint", "false") | 
|  | urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+name}") | 
|  | urls += "?" + c.urlParams_.Encode() | 
|  | req, err := http.NewRequest("PUT", urls, body) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | req.Header = reqHeaders | 
|  | googleapi.Expand(req.URL, map[string]string{ | 
|  | "name": c.name, | 
|  | }) | 
|  | return gensupport.SendRequest(c.ctx_, c.s.client, req) | 
|  | } | 
|  |  | 
|  | // Do executes the "firebasehosting.projects.sites.domains.update" call. | 
|  | // Exactly one of *Domain or error will be non-nil. Any non-2xx status | 
|  | // code is an error. Response headers are in either | 
|  | // *Domain.ServerResponse.Header or (if a response was returned at all) | 
|  | // in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to | 
|  | // check whether the returned error was because http.StatusNotModified | 
|  | // was returned. | 
|  | func (c *ProjectsSitesDomainsUpdateCall) Do(opts ...googleapi.CallOption) (*Domain, error) { | 
|  | gensupport.SetOptions(c.urlParams_, opts...) | 
|  | res, err := c.doRequest("json") | 
|  | if res != nil && res.StatusCode == http.StatusNotModified { | 
|  | if res.Body != nil { | 
|  | res.Body.Close() | 
|  | } | 
|  | return nil, &googleapi.Error{ | 
|  | Code:   res.StatusCode, | 
|  | Header: res.Header, | 
|  | } | 
|  | } | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | defer googleapi.CloseBody(res) | 
|  | if err := googleapi.CheckResponse(res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | ret := &Domain{ | 
|  | ServerResponse: googleapi.ServerResponse{ | 
|  | Header:         res.Header, | 
|  | HTTPStatusCode: res.StatusCode, | 
|  | }, | 
|  | } | 
|  | target := &ret | 
|  | if err := gensupport.DecodeResponse(target, res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | return ret, nil | 
|  | // { | 
|  | //   "description": "Updates the specified domain mapping, creating the mapping as if it does\nnot exist.", | 
|  | //   "flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/domains/{domainsId}", | 
|  | //   "httpMethod": "PUT", | 
|  | //   "id": "firebasehosting.projects.sites.domains.update", | 
|  | //   "parameterOrder": [ | 
|  | //     "name" | 
|  | //   ], | 
|  | //   "parameters": { | 
|  | //     "name": { | 
|  | //       "description": "Required. The name of the domain association to update or create, if an\nassociation doesn't already exist.", | 
|  | //       "location": "path", | 
|  | //       "pattern": "^projects/[^/]+/sites/[^/]+/domains/[^/]+$", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     } | 
|  | //   }, | 
|  | //   "path": "v1beta1/{+name}", | 
|  | //   "request": { | 
|  | //     "$ref": "Domain" | 
|  | //   }, | 
|  | //   "response": { | 
|  | //     "$ref": "Domain" | 
|  | //   }, | 
|  | //   "scopes": [ | 
|  | //     "https://www.googleapis.com/auth/cloud-platform", | 
|  | //     "https://www.googleapis.com/auth/firebase" | 
|  | //   ] | 
|  | // } | 
|  |  | 
|  | } | 
|  |  | 
|  | // method id "firebasehosting.projects.sites.releases.create": | 
|  |  | 
|  | type ProjectsSitesReleasesCreateCall struct { | 
|  | s          *Service | 
|  | parent     string | 
|  | release    *Release | 
|  | urlParams_ gensupport.URLParams | 
|  | ctx_       context.Context | 
|  | header_    http.Header | 
|  | } | 
|  |  | 
|  | // Create: Creates a new release which makes the content of the | 
|  | // specified version | 
|  | // actively display on the appropriate URL(s). | 
|  | func (r *ProjectsSitesReleasesService) Create(parent string, release *Release) *ProjectsSitesReleasesCreateCall { | 
|  | c := &ProjectsSitesReleasesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)} | 
|  | c.parent = parent | 
|  | c.release = release | 
|  | return c | 
|  | } | 
|  |  | 
|  | // VersionName sets the optional parameter "versionName": The unique | 
|  | // identifier for a version, in the | 
|  | // format: | 
|  | // <code>/sites/<var>site-name</var>/versions/<var>versionID</var | 
|  | // ></code> | 
|  | // The <var>site-name</var> in this version identifier must match | 
|  | // the | 
|  | // <var>site-name</var> in the `parent` parameter. | 
|  | // <br> | 
|  | // <br>This query parameter must be empty if the `type` field in | 
|  | // the | 
|  | // request body is `SITE_DISABLE`. | 
|  | func (c *ProjectsSitesReleasesCreateCall) VersionName(versionName string) *ProjectsSitesReleasesCreateCall { | 
|  | c.urlParams_.Set("versionName", versionName) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Fields allows partial responses to be retrieved. See | 
|  | // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse | 
|  | // for more information. | 
|  | func (c *ProjectsSitesReleasesCreateCall) Fields(s ...googleapi.Field) *ProjectsSitesReleasesCreateCall { | 
|  | c.urlParams_.Set("fields", googleapi.CombineFields(s)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Context sets the context to be used in this call's Do method. Any | 
|  | // pending HTTP request will be aborted if the provided context is | 
|  | // canceled. | 
|  | func (c *ProjectsSitesReleasesCreateCall) Context(ctx context.Context) *ProjectsSitesReleasesCreateCall { | 
|  | c.ctx_ = ctx | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Header returns an http.Header that can be modified by the caller to | 
|  | // add HTTP headers to the request. | 
|  | func (c *ProjectsSitesReleasesCreateCall) Header() http.Header { | 
|  | if c.header_ == nil { | 
|  | c.header_ = make(http.Header) | 
|  | } | 
|  | return c.header_ | 
|  | } | 
|  |  | 
|  | func (c *ProjectsSitesReleasesCreateCall) doRequest(alt string) (*http.Response, error) { | 
|  | reqHeaders := make(http.Header) | 
|  | reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200717") | 
|  | for k, v := range c.header_ { | 
|  | reqHeaders[k] = v | 
|  | } | 
|  | reqHeaders.Set("User-Agent", c.s.userAgent()) | 
|  | var body io.Reader = nil | 
|  | body, err := googleapi.WithoutDataWrapper.JSONReader(c.release) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | reqHeaders.Set("Content-Type", "application/json") | 
|  | c.urlParams_.Set("alt", alt) | 
|  | c.urlParams_.Set("prettyPrint", "false") | 
|  | urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+parent}/releases") | 
|  | urls += "?" + c.urlParams_.Encode() | 
|  | req, err := http.NewRequest("POST", urls, body) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | req.Header = reqHeaders | 
|  | googleapi.Expand(req.URL, map[string]string{ | 
|  | "parent": c.parent, | 
|  | }) | 
|  | return gensupport.SendRequest(c.ctx_, c.s.client, req) | 
|  | } | 
|  |  | 
|  | // Do executes the "firebasehosting.projects.sites.releases.create" call. | 
|  | // Exactly one of *Release or error will be non-nil. Any non-2xx status | 
|  | // code is an error. Response headers are in either | 
|  | // *Release.ServerResponse.Header or (if a response was returned at all) | 
|  | // in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to | 
|  | // check whether the returned error was because http.StatusNotModified | 
|  | // was returned. | 
|  | func (c *ProjectsSitesReleasesCreateCall) Do(opts ...googleapi.CallOption) (*Release, error) { | 
|  | gensupport.SetOptions(c.urlParams_, opts...) | 
|  | res, err := c.doRequest("json") | 
|  | if res != nil && res.StatusCode == http.StatusNotModified { | 
|  | if res.Body != nil { | 
|  | res.Body.Close() | 
|  | } | 
|  | return nil, &googleapi.Error{ | 
|  | Code:   res.StatusCode, | 
|  | Header: res.Header, | 
|  | } | 
|  | } | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | defer googleapi.CloseBody(res) | 
|  | if err := googleapi.CheckResponse(res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | ret := &Release{ | 
|  | ServerResponse: googleapi.ServerResponse{ | 
|  | Header:         res.Header, | 
|  | HTTPStatusCode: res.StatusCode, | 
|  | }, | 
|  | } | 
|  | target := &ret | 
|  | if err := gensupport.DecodeResponse(target, res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | return ret, nil | 
|  | // { | 
|  | //   "description": "Creates a new release which makes the content of the specified version\nactively display on the appropriate URL(s).", | 
|  | //   "flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/releases", | 
|  | //   "httpMethod": "POST", | 
|  | //   "id": "firebasehosting.projects.sites.releases.create", | 
|  | //   "parameterOrder": [ | 
|  | //     "parent" | 
|  | //   ], | 
|  | //   "parameters": { | 
|  | //     "parent": { | 
|  | //       "description": "Required. The site that the release belongs to, in the format:\n\u003ccode\u003esites/\u003cvar\u003esite-name\u003c/var\u003e\u003c/code\u003e", | 
|  | //       "location": "path", | 
|  | //       "pattern": "^projects/[^/]+/sites/[^/]+$", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "versionName": { | 
|  | //       "description": "The unique identifier for a version, in the format:\n\u003ccode\u003e/sites/\u003cvar\u003esite-name\u003c/var\u003e/versions/\u003cvar\u003eversionID\u003c/var\u003e\u003c/code\u003e\nThe \u003cvar\u003esite-name\u003c/var\u003e in this version identifier must match the\n\u003cvar\u003esite-name\u003c/var\u003e in the `parent` parameter.\n\u003cbr\u003e\n\u003cbr\u003eThis query parameter must be empty if the `type` field in the\nrequest body is `SITE_DISABLE`.", | 
|  | //       "location": "query", | 
|  | //       "type": "string" | 
|  | //     } | 
|  | //   }, | 
|  | //   "path": "v1beta1/{+parent}/releases", | 
|  | //   "request": { | 
|  | //     "$ref": "Release" | 
|  | //   }, | 
|  | //   "response": { | 
|  | //     "$ref": "Release" | 
|  | //   }, | 
|  | //   "scopes": [ | 
|  | //     "https://www.googleapis.com/auth/cloud-platform", | 
|  | //     "https://www.googleapis.com/auth/firebase" | 
|  | //   ] | 
|  | // } | 
|  |  | 
|  | } | 
|  |  | 
|  | // method id "firebasehosting.projects.sites.releases.list": | 
|  |  | 
|  | type ProjectsSitesReleasesListCall struct { | 
|  | s            *Service | 
|  | parent       string | 
|  | urlParams_   gensupport.URLParams | 
|  | ifNoneMatch_ string | 
|  | ctx_         context.Context | 
|  | header_      http.Header | 
|  | } | 
|  |  | 
|  | // List: Lists the releases that have been created on the specified | 
|  | // site. | 
|  | func (r *ProjectsSitesReleasesService) List(parent string) *ProjectsSitesReleasesListCall { | 
|  | c := &ProjectsSitesReleasesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} | 
|  | c.parent = parent | 
|  | return c | 
|  | } | 
|  |  | 
|  | // PageSize sets the optional parameter "pageSize": The page size to | 
|  | // return. Defaults to 100. | 
|  | func (c *ProjectsSitesReleasesListCall) PageSize(pageSize int64) *ProjectsSitesReleasesListCall { | 
|  | c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // PageToken sets the optional parameter "pageToken": The | 
|  | // next_page_token from a previous request, if provided. | 
|  | func (c *ProjectsSitesReleasesListCall) PageToken(pageToken string) *ProjectsSitesReleasesListCall { | 
|  | c.urlParams_.Set("pageToken", pageToken) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Fields allows partial responses to be retrieved. See | 
|  | // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse | 
|  | // for more information. | 
|  | func (c *ProjectsSitesReleasesListCall) Fields(s ...googleapi.Field) *ProjectsSitesReleasesListCall { | 
|  | c.urlParams_.Set("fields", googleapi.CombineFields(s)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // IfNoneMatch sets the optional parameter which makes the operation | 
|  | // fail if the object's ETag matches the given value. This is useful for | 
|  | // getting updates only after the object has changed since the last | 
|  | // request. Use googleapi.IsNotModified to check whether the response | 
|  | // error from Do is the result of In-None-Match. | 
|  | func (c *ProjectsSitesReleasesListCall) IfNoneMatch(entityTag string) *ProjectsSitesReleasesListCall { | 
|  | c.ifNoneMatch_ = entityTag | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Context sets the context to be used in this call's Do method. Any | 
|  | // pending HTTP request will be aborted if the provided context is | 
|  | // canceled. | 
|  | func (c *ProjectsSitesReleasesListCall) Context(ctx context.Context) *ProjectsSitesReleasesListCall { | 
|  | c.ctx_ = ctx | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Header returns an http.Header that can be modified by the caller to | 
|  | // add HTTP headers to the request. | 
|  | func (c *ProjectsSitesReleasesListCall) Header() http.Header { | 
|  | if c.header_ == nil { | 
|  | c.header_ = make(http.Header) | 
|  | } | 
|  | return c.header_ | 
|  | } | 
|  |  | 
|  | func (c *ProjectsSitesReleasesListCall) doRequest(alt string) (*http.Response, error) { | 
|  | reqHeaders := make(http.Header) | 
|  | reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200717") | 
|  | for k, v := range c.header_ { | 
|  | reqHeaders[k] = v | 
|  | } | 
|  | reqHeaders.Set("User-Agent", c.s.userAgent()) | 
|  | if c.ifNoneMatch_ != "" { | 
|  | reqHeaders.Set("If-None-Match", c.ifNoneMatch_) | 
|  | } | 
|  | var body io.Reader = nil | 
|  | c.urlParams_.Set("alt", alt) | 
|  | c.urlParams_.Set("prettyPrint", "false") | 
|  | urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+parent}/releases") | 
|  | urls += "?" + c.urlParams_.Encode() | 
|  | req, err := http.NewRequest("GET", urls, body) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | req.Header = reqHeaders | 
|  | googleapi.Expand(req.URL, map[string]string{ | 
|  | "parent": c.parent, | 
|  | }) | 
|  | return gensupport.SendRequest(c.ctx_, c.s.client, req) | 
|  | } | 
|  |  | 
|  | // Do executes the "firebasehosting.projects.sites.releases.list" call. | 
|  | // Exactly one of *ListReleasesResponse or error will be non-nil. Any | 
|  | // non-2xx status code is an error. Response headers are in either | 
|  | // *ListReleasesResponse.ServerResponse.Header or (if a response was | 
|  | // returned at all) in error.(*googleapi.Error).Header. Use | 
|  | // googleapi.IsNotModified to check whether the returned error was | 
|  | // because http.StatusNotModified was returned. | 
|  | func (c *ProjectsSitesReleasesListCall) Do(opts ...googleapi.CallOption) (*ListReleasesResponse, error) { | 
|  | gensupport.SetOptions(c.urlParams_, opts...) | 
|  | res, err := c.doRequest("json") | 
|  | if res != nil && res.StatusCode == http.StatusNotModified { | 
|  | if res.Body != nil { | 
|  | res.Body.Close() | 
|  | } | 
|  | return nil, &googleapi.Error{ | 
|  | Code:   res.StatusCode, | 
|  | Header: res.Header, | 
|  | } | 
|  | } | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | defer googleapi.CloseBody(res) | 
|  | if err := googleapi.CheckResponse(res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | ret := &ListReleasesResponse{ | 
|  | ServerResponse: googleapi.ServerResponse{ | 
|  | Header:         res.Header, | 
|  | HTTPStatusCode: res.StatusCode, | 
|  | }, | 
|  | } | 
|  | target := &ret | 
|  | if err := gensupport.DecodeResponse(target, res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | return ret, nil | 
|  | // { | 
|  | //   "description": "Lists the releases that have been created on the specified site.", | 
|  | //   "flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/releases", | 
|  | //   "httpMethod": "GET", | 
|  | //   "id": "firebasehosting.projects.sites.releases.list", | 
|  | //   "parameterOrder": [ | 
|  | //     "parent" | 
|  | //   ], | 
|  | //   "parameters": { | 
|  | //     "pageSize": { | 
|  | //       "description": "The page size to return. Defaults to 100.", | 
|  | //       "format": "int32", | 
|  | //       "location": "query", | 
|  | //       "type": "integer" | 
|  | //     }, | 
|  | //     "pageToken": { | 
|  | //       "description": "The next_page_token from a previous request, if provided.", | 
|  | //       "location": "query", | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "parent": { | 
|  | //       "description": "Required. The parent for which to list files, in the format:\n\u003ccode\u003esites/\u003cvar\u003esite-name\u003c/var\u003e\u003c/code\u003e", | 
|  | //       "location": "path", | 
|  | //       "pattern": "^projects/[^/]+/sites/[^/]+$", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     } | 
|  | //   }, | 
|  | //   "path": "v1beta1/{+parent}/releases", | 
|  | //   "response": { | 
|  | //     "$ref": "ListReleasesResponse" | 
|  | //   }, | 
|  | //   "scopes": [ | 
|  | //     "https://www.googleapis.com/auth/cloud-platform", | 
|  | //     "https://www.googleapis.com/auth/cloud-platform.read-only", | 
|  | //     "https://www.googleapis.com/auth/firebase", | 
|  | //     "https://www.googleapis.com/auth/firebase.readonly" | 
|  | //   ] | 
|  | // } | 
|  |  | 
|  | } | 
|  |  | 
|  | // Pages invokes f for each page of results. | 
|  | // A non-nil error returned from f will halt the iteration. | 
|  | // The provided context supersedes any context provided to the Context method. | 
|  | func (c *ProjectsSitesReleasesListCall) Pages(ctx context.Context, f func(*ListReleasesResponse) error) error { | 
|  | c.ctx_ = ctx | 
|  | defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point | 
|  | for { | 
|  | x, err := c.Do() | 
|  | if err != nil { | 
|  | return err | 
|  | } | 
|  | if err := f(x); err != nil { | 
|  | return err | 
|  | } | 
|  | if x.NextPageToken == "" { | 
|  | return nil | 
|  | } | 
|  | c.PageToken(x.NextPageToken) | 
|  | } | 
|  | } | 
|  |  | 
|  | // method id "firebasehosting.projects.sites.versions.create": | 
|  |  | 
|  | type ProjectsSitesVersionsCreateCall struct { | 
|  | s          *Service | 
|  | parent     string | 
|  | version    *Version | 
|  | urlParams_ gensupport.URLParams | 
|  | ctx_       context.Context | 
|  | header_    http.Header | 
|  | } | 
|  |  | 
|  | // Create: Creates a new version for a site. | 
|  | func (r *ProjectsSitesVersionsService) Create(parent string, version *Version) *ProjectsSitesVersionsCreateCall { | 
|  | c := &ProjectsSitesVersionsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)} | 
|  | c.parent = parent | 
|  | c.version = version | 
|  | return c | 
|  | } | 
|  |  | 
|  | // SizeBytes sets the optional parameter "sizeBytes": The self-reported | 
|  | // size of the version. This value is used for a pre-emptive | 
|  | // quota check for legacy version uploads. | 
|  | func (c *ProjectsSitesVersionsCreateCall) SizeBytes(sizeBytes int64) *ProjectsSitesVersionsCreateCall { | 
|  | c.urlParams_.Set("sizeBytes", fmt.Sprint(sizeBytes)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // VersionId sets the optional parameter "versionId": A unique id for | 
|  | // the new version. This is only specified for legacy version | 
|  | // creations. | 
|  | func (c *ProjectsSitesVersionsCreateCall) VersionId(versionId string) *ProjectsSitesVersionsCreateCall { | 
|  | c.urlParams_.Set("versionId", versionId) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Fields allows partial responses to be retrieved. See | 
|  | // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse | 
|  | // for more information. | 
|  | func (c *ProjectsSitesVersionsCreateCall) Fields(s ...googleapi.Field) *ProjectsSitesVersionsCreateCall { | 
|  | c.urlParams_.Set("fields", googleapi.CombineFields(s)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Context sets the context to be used in this call's Do method. Any | 
|  | // pending HTTP request will be aborted if the provided context is | 
|  | // canceled. | 
|  | func (c *ProjectsSitesVersionsCreateCall) Context(ctx context.Context) *ProjectsSitesVersionsCreateCall { | 
|  | c.ctx_ = ctx | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Header returns an http.Header that can be modified by the caller to | 
|  | // add HTTP headers to the request. | 
|  | func (c *ProjectsSitesVersionsCreateCall) Header() http.Header { | 
|  | if c.header_ == nil { | 
|  | c.header_ = make(http.Header) | 
|  | } | 
|  | return c.header_ | 
|  | } | 
|  |  | 
|  | func (c *ProjectsSitesVersionsCreateCall) doRequest(alt string) (*http.Response, error) { | 
|  | reqHeaders := make(http.Header) | 
|  | reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200717") | 
|  | for k, v := range c.header_ { | 
|  | reqHeaders[k] = v | 
|  | } | 
|  | reqHeaders.Set("User-Agent", c.s.userAgent()) | 
|  | var body io.Reader = nil | 
|  | body, err := googleapi.WithoutDataWrapper.JSONReader(c.version) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | reqHeaders.Set("Content-Type", "application/json") | 
|  | c.urlParams_.Set("alt", alt) | 
|  | c.urlParams_.Set("prettyPrint", "false") | 
|  | urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+parent}/versions") | 
|  | urls += "?" + c.urlParams_.Encode() | 
|  | req, err := http.NewRequest("POST", urls, body) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | req.Header = reqHeaders | 
|  | googleapi.Expand(req.URL, map[string]string{ | 
|  | "parent": c.parent, | 
|  | }) | 
|  | return gensupport.SendRequest(c.ctx_, c.s.client, req) | 
|  | } | 
|  |  | 
|  | // Do executes the "firebasehosting.projects.sites.versions.create" call. | 
|  | // Exactly one of *Version or error will be non-nil. Any non-2xx status | 
|  | // code is an error. Response headers are in either | 
|  | // *Version.ServerResponse.Header or (if a response was returned at all) | 
|  | // in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to | 
|  | // check whether the returned error was because http.StatusNotModified | 
|  | // was returned. | 
|  | func (c *ProjectsSitesVersionsCreateCall) Do(opts ...googleapi.CallOption) (*Version, error) { | 
|  | gensupport.SetOptions(c.urlParams_, opts...) | 
|  | res, err := c.doRequest("json") | 
|  | if res != nil && res.StatusCode == http.StatusNotModified { | 
|  | if res.Body != nil { | 
|  | res.Body.Close() | 
|  | } | 
|  | return nil, &googleapi.Error{ | 
|  | Code:   res.StatusCode, | 
|  | Header: res.Header, | 
|  | } | 
|  | } | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | defer googleapi.CloseBody(res) | 
|  | if err := googleapi.CheckResponse(res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | ret := &Version{ | 
|  | ServerResponse: googleapi.ServerResponse{ | 
|  | Header:         res.Header, | 
|  | HTTPStatusCode: res.StatusCode, | 
|  | }, | 
|  | } | 
|  | target := &ret | 
|  | if err := gensupport.DecodeResponse(target, res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | return ret, nil | 
|  | // { | 
|  | //   "description": "Creates a new version for a site.", | 
|  | //   "flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/versions", | 
|  | //   "httpMethod": "POST", | 
|  | //   "id": "firebasehosting.projects.sites.versions.create", | 
|  | //   "parameterOrder": [ | 
|  | //     "parent" | 
|  | //   ], | 
|  | //   "parameters": { | 
|  | //     "parent": { | 
|  | //       "description": "Required. The parent to create the version for, in the format:\n\u003ccode\u003esites/\u003cvar\u003esite-name\u003c/var\u003e\u003c/code\u003e", | 
|  | //       "location": "path", | 
|  | //       "pattern": "^projects/[^/]+/sites/[^/]+$", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "sizeBytes": { | 
|  | //       "description": "The self-reported size of the version. This value is used for a pre-emptive\nquota check for legacy version uploads.", | 
|  | //       "format": "int64", | 
|  | //       "location": "query", | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "versionId": { | 
|  | //       "description": "A unique id for the new version. This is only specified for legacy version\ncreations.", | 
|  | //       "location": "query", | 
|  | //       "type": "string" | 
|  | //     } | 
|  | //   }, | 
|  | //   "path": "v1beta1/{+parent}/versions", | 
|  | //   "request": { | 
|  | //     "$ref": "Version" | 
|  | //   }, | 
|  | //   "response": { | 
|  | //     "$ref": "Version" | 
|  | //   }, | 
|  | //   "scopes": [ | 
|  | //     "https://www.googleapis.com/auth/cloud-platform", | 
|  | //     "https://www.googleapis.com/auth/firebase" | 
|  | //   ] | 
|  | // } | 
|  |  | 
|  | } | 
|  |  | 
|  | // method id "firebasehosting.projects.sites.versions.delete": | 
|  |  | 
|  | type ProjectsSitesVersionsDeleteCall struct { | 
|  | s          *Service | 
|  | name       string | 
|  | urlParams_ gensupport.URLParams | 
|  | ctx_       context.Context | 
|  | header_    http.Header | 
|  | } | 
|  |  | 
|  | // Delete: Deletes the specified version. | 
|  | func (r *ProjectsSitesVersionsService) Delete(name string) *ProjectsSitesVersionsDeleteCall { | 
|  | c := &ProjectsSitesVersionsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} | 
|  | c.name = name | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Fields allows partial responses to be retrieved. See | 
|  | // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse | 
|  | // for more information. | 
|  | func (c *ProjectsSitesVersionsDeleteCall) Fields(s ...googleapi.Field) *ProjectsSitesVersionsDeleteCall { | 
|  | c.urlParams_.Set("fields", googleapi.CombineFields(s)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Context sets the context to be used in this call's Do method. Any | 
|  | // pending HTTP request will be aborted if the provided context is | 
|  | // canceled. | 
|  | func (c *ProjectsSitesVersionsDeleteCall) Context(ctx context.Context) *ProjectsSitesVersionsDeleteCall { | 
|  | c.ctx_ = ctx | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Header returns an http.Header that can be modified by the caller to | 
|  | // add HTTP headers to the request. | 
|  | func (c *ProjectsSitesVersionsDeleteCall) Header() http.Header { | 
|  | if c.header_ == nil { | 
|  | c.header_ = make(http.Header) | 
|  | } | 
|  | return c.header_ | 
|  | } | 
|  |  | 
|  | func (c *ProjectsSitesVersionsDeleteCall) doRequest(alt string) (*http.Response, error) { | 
|  | reqHeaders := make(http.Header) | 
|  | reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200717") | 
|  | for k, v := range c.header_ { | 
|  | reqHeaders[k] = v | 
|  | } | 
|  | reqHeaders.Set("User-Agent", c.s.userAgent()) | 
|  | var body io.Reader = nil | 
|  | c.urlParams_.Set("alt", alt) | 
|  | c.urlParams_.Set("prettyPrint", "false") | 
|  | urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+name}") | 
|  | urls += "?" + c.urlParams_.Encode() | 
|  | req, err := http.NewRequest("DELETE", urls, body) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | req.Header = reqHeaders | 
|  | googleapi.Expand(req.URL, map[string]string{ | 
|  | "name": c.name, | 
|  | }) | 
|  | return gensupport.SendRequest(c.ctx_, c.s.client, req) | 
|  | } | 
|  |  | 
|  | // Do executes the "firebasehosting.projects.sites.versions.delete" call. | 
|  | // Exactly one of *Empty or error will be non-nil. Any non-2xx status | 
|  | // code is an error. Response headers are in either | 
|  | // *Empty.ServerResponse.Header or (if a response was returned at all) | 
|  | // in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to | 
|  | // check whether the returned error was because http.StatusNotModified | 
|  | // was returned. | 
|  | func (c *ProjectsSitesVersionsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) { | 
|  | gensupport.SetOptions(c.urlParams_, opts...) | 
|  | res, err := c.doRequest("json") | 
|  | if res != nil && res.StatusCode == http.StatusNotModified { | 
|  | if res.Body != nil { | 
|  | res.Body.Close() | 
|  | } | 
|  | return nil, &googleapi.Error{ | 
|  | Code:   res.StatusCode, | 
|  | Header: res.Header, | 
|  | } | 
|  | } | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | defer googleapi.CloseBody(res) | 
|  | if err := googleapi.CheckResponse(res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | ret := &Empty{ | 
|  | ServerResponse: googleapi.ServerResponse{ | 
|  | Header:         res.Header, | 
|  | HTTPStatusCode: res.StatusCode, | 
|  | }, | 
|  | } | 
|  | target := &ret | 
|  | if err := gensupport.DecodeResponse(target, res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | return ret, nil | 
|  | // { | 
|  | //   "description": "Deletes the specified version.", | 
|  | //   "flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/versions/{versionsId}", | 
|  | //   "httpMethod": "DELETE", | 
|  | //   "id": "firebasehosting.projects.sites.versions.delete", | 
|  | //   "parameterOrder": [ | 
|  | //     "name" | 
|  | //   ], | 
|  | //   "parameters": { | 
|  | //     "name": { | 
|  | //       "description": "Required. The name of the version to be deleted, in the format:\n\u003ccode\u003esites/\u003cvar\u003esite-name\u003c/var\u003e/versions/\u003cvar\u003eversionID\u003c/var\u003e\u003c/code\u003e", | 
|  | //       "location": "path", | 
|  | //       "pattern": "^projects/[^/]+/sites/[^/]+/versions/[^/]+$", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     } | 
|  | //   }, | 
|  | //   "path": "v1beta1/{+name}", | 
|  | //   "response": { | 
|  | //     "$ref": "Empty" | 
|  | //   }, | 
|  | //   "scopes": [ | 
|  | //     "https://www.googleapis.com/auth/cloud-platform", | 
|  | //     "https://www.googleapis.com/auth/firebase" | 
|  | //   ] | 
|  | // } | 
|  |  | 
|  | } | 
|  |  | 
|  | // method id "firebasehosting.projects.sites.versions.list": | 
|  |  | 
|  | type ProjectsSitesVersionsListCall struct { | 
|  | s            *Service | 
|  | parent       string | 
|  | urlParams_   gensupport.URLParams | 
|  | ifNoneMatch_ string | 
|  | ctx_         context.Context | 
|  | header_      http.Header | 
|  | } | 
|  |  | 
|  | // List: Lists the versions that have been created on the specified | 
|  | // site. | 
|  | // Will include filtering in the future. | 
|  | func (r *ProjectsSitesVersionsService) List(parent string) *ProjectsSitesVersionsListCall { | 
|  | c := &ProjectsSitesVersionsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} | 
|  | c.parent = parent | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Filter sets the optional parameter "filter": The filter string used | 
|  | // to return a subset of versions in the response. | 
|  | // Currently supported fields for filtering are: name, status, | 
|  | // and create_time. Filter processing will be implemented in | 
|  | // accordance | 
|  | // with go/filtering. | 
|  | func (c *ProjectsSitesVersionsListCall) Filter(filter string) *ProjectsSitesVersionsListCall { | 
|  | c.urlParams_.Set("filter", filter) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // PageSize sets the optional parameter "pageSize": The maximum number | 
|  | // of versions to return. The service may return fewer than | 
|  | // this value. | 
|  | // If unspecified, at most 25 versions will be returned. | 
|  | // The maximum value is 100; values above 100 will be coerced to 100 | 
|  | func (c *ProjectsSitesVersionsListCall) PageSize(pageSize int64) *ProjectsSitesVersionsListCall { | 
|  | c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // PageToken sets the optional parameter "pageToken": The | 
|  | // next_page_token from a previous request, if provided. | 
|  | func (c *ProjectsSitesVersionsListCall) PageToken(pageToken string) *ProjectsSitesVersionsListCall { | 
|  | c.urlParams_.Set("pageToken", pageToken) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Fields allows partial responses to be retrieved. See | 
|  | // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse | 
|  | // for more information. | 
|  | func (c *ProjectsSitesVersionsListCall) Fields(s ...googleapi.Field) *ProjectsSitesVersionsListCall { | 
|  | c.urlParams_.Set("fields", googleapi.CombineFields(s)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // IfNoneMatch sets the optional parameter which makes the operation | 
|  | // fail if the object's ETag matches the given value. This is useful for | 
|  | // getting updates only after the object has changed since the last | 
|  | // request. Use googleapi.IsNotModified to check whether the response | 
|  | // error from Do is the result of In-None-Match. | 
|  | func (c *ProjectsSitesVersionsListCall) IfNoneMatch(entityTag string) *ProjectsSitesVersionsListCall { | 
|  | c.ifNoneMatch_ = entityTag | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Context sets the context to be used in this call's Do method. Any | 
|  | // pending HTTP request will be aborted if the provided context is | 
|  | // canceled. | 
|  | func (c *ProjectsSitesVersionsListCall) Context(ctx context.Context) *ProjectsSitesVersionsListCall { | 
|  | c.ctx_ = ctx | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Header returns an http.Header that can be modified by the caller to | 
|  | // add HTTP headers to the request. | 
|  | func (c *ProjectsSitesVersionsListCall) Header() http.Header { | 
|  | if c.header_ == nil { | 
|  | c.header_ = make(http.Header) | 
|  | } | 
|  | return c.header_ | 
|  | } | 
|  |  | 
|  | func (c *ProjectsSitesVersionsListCall) doRequest(alt string) (*http.Response, error) { | 
|  | reqHeaders := make(http.Header) | 
|  | reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200717") | 
|  | for k, v := range c.header_ { | 
|  | reqHeaders[k] = v | 
|  | } | 
|  | reqHeaders.Set("User-Agent", c.s.userAgent()) | 
|  | if c.ifNoneMatch_ != "" { | 
|  | reqHeaders.Set("If-None-Match", c.ifNoneMatch_) | 
|  | } | 
|  | var body io.Reader = nil | 
|  | c.urlParams_.Set("alt", alt) | 
|  | c.urlParams_.Set("prettyPrint", "false") | 
|  | urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+parent}/versions") | 
|  | urls += "?" + c.urlParams_.Encode() | 
|  | req, err := http.NewRequest("GET", urls, body) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | req.Header = reqHeaders | 
|  | googleapi.Expand(req.URL, map[string]string{ | 
|  | "parent": c.parent, | 
|  | }) | 
|  | return gensupport.SendRequest(c.ctx_, c.s.client, req) | 
|  | } | 
|  |  | 
|  | // Do executes the "firebasehosting.projects.sites.versions.list" call. | 
|  | // Exactly one of *ListVersionsResponse or error will be non-nil. Any | 
|  | // non-2xx status code is an error. Response headers are in either | 
|  | // *ListVersionsResponse.ServerResponse.Header or (if a response was | 
|  | // returned at all) in error.(*googleapi.Error).Header. Use | 
|  | // googleapi.IsNotModified to check whether the returned error was | 
|  | // because http.StatusNotModified was returned. | 
|  | func (c *ProjectsSitesVersionsListCall) Do(opts ...googleapi.CallOption) (*ListVersionsResponse, error) { | 
|  | gensupport.SetOptions(c.urlParams_, opts...) | 
|  | res, err := c.doRequest("json") | 
|  | if res != nil && res.StatusCode == http.StatusNotModified { | 
|  | if res.Body != nil { | 
|  | res.Body.Close() | 
|  | } | 
|  | return nil, &googleapi.Error{ | 
|  | Code:   res.StatusCode, | 
|  | Header: res.Header, | 
|  | } | 
|  | } | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | defer googleapi.CloseBody(res) | 
|  | if err := googleapi.CheckResponse(res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | ret := &ListVersionsResponse{ | 
|  | ServerResponse: googleapi.ServerResponse{ | 
|  | Header:         res.Header, | 
|  | HTTPStatusCode: res.StatusCode, | 
|  | }, | 
|  | } | 
|  | target := &ret | 
|  | if err := gensupport.DecodeResponse(target, res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | return ret, nil | 
|  | // { | 
|  | //   "description": "Lists the versions that have been created on the specified site.\nWill include filtering in the future.", | 
|  | //   "flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/versions", | 
|  | //   "httpMethod": "GET", | 
|  | //   "id": "firebasehosting.projects.sites.versions.list", | 
|  | //   "parameterOrder": [ | 
|  | //     "parent" | 
|  | //   ], | 
|  | //   "parameters": { | 
|  | //     "filter": { | 
|  | //       "description": "The filter string used to return a subset of versions in the response.\nCurrently supported fields for filtering are: name, status,\nand create_time. Filter processing will be implemented in accordance\nwith go/filtering.", | 
|  | //       "location": "query", | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "pageSize": { | 
|  | //       "description": "The maximum number of versions to return. The service may return fewer than\nthis value.\nIf unspecified, at most 25 versions will be returned.\nThe maximum value is 100; values above 100 will be coerced to 100", | 
|  | //       "format": "int32", | 
|  | //       "location": "query", | 
|  | //       "type": "integer" | 
|  | //     }, | 
|  | //     "pageToken": { | 
|  | //       "description": "The next_page_token from a previous request, if provided.", | 
|  | //       "location": "query", | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "parent": { | 
|  | //       "description": "Required. The parent for which to list files, in the format:\n\u003ccode\u003esites/\u003cvar\u003esite-name\u003c/var\u003e\u003c/code\u003e", | 
|  | //       "location": "path", | 
|  | //       "pattern": "^projects/[^/]+/sites/[^/]+$", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     } | 
|  | //   }, | 
|  | //   "path": "v1beta1/{+parent}/versions", | 
|  | //   "response": { | 
|  | //     "$ref": "ListVersionsResponse" | 
|  | //   }, | 
|  | //   "scopes": [ | 
|  | //     "https://www.googleapis.com/auth/cloud-platform", | 
|  | //     "https://www.googleapis.com/auth/cloud-platform.read-only", | 
|  | //     "https://www.googleapis.com/auth/firebase", | 
|  | //     "https://www.googleapis.com/auth/firebase.readonly" | 
|  | //   ] | 
|  | // } | 
|  |  | 
|  | } | 
|  |  | 
|  | // Pages invokes f for each page of results. | 
|  | // A non-nil error returned from f will halt the iteration. | 
|  | // The provided context supersedes any context provided to the Context method. | 
|  | func (c *ProjectsSitesVersionsListCall) Pages(ctx context.Context, f func(*ListVersionsResponse) error) error { | 
|  | c.ctx_ = ctx | 
|  | defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point | 
|  | for { | 
|  | x, err := c.Do() | 
|  | if err != nil { | 
|  | return err | 
|  | } | 
|  | if err := f(x); err != nil { | 
|  | return err | 
|  | } | 
|  | if x.NextPageToken == "" { | 
|  | return nil | 
|  | } | 
|  | c.PageToken(x.NextPageToken) | 
|  | } | 
|  | } | 
|  |  | 
|  | // method id "firebasehosting.projects.sites.versions.patch": | 
|  |  | 
|  | type ProjectsSitesVersionsPatchCall struct { | 
|  | s          *Service | 
|  | nameid     string | 
|  | version    *Version | 
|  | urlParams_ gensupport.URLParams | 
|  | ctx_       context.Context | 
|  | header_    http.Header | 
|  | } | 
|  |  | 
|  | // Patch: Updates the specified metadata for a version. Note that this | 
|  | // method will | 
|  | // fail with `FAILED_PRECONDITION` in the event of an invalid | 
|  | // state | 
|  | // transition. The only valid transition for a version is currently from | 
|  | // a | 
|  | // `CREATED` status to a `FINALIZED` status. | 
|  | // Use [`DeleteVersion`](../sites.versions/delete) to set the status of | 
|  | // a | 
|  | // version to `DELETED`. | 
|  | func (r *ProjectsSitesVersionsService) Patch(nameid string, version *Version) *ProjectsSitesVersionsPatchCall { | 
|  | c := &ProjectsSitesVersionsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} | 
|  | c.nameid = nameid | 
|  | c.version = version | 
|  | return c | 
|  | } | 
|  |  | 
|  | // UpdateMask sets the optional parameter "updateMask": A set of field | 
|  | // names from your [version](../sites.versions) that you want | 
|  | // to update. | 
|  | // <br>A field will be overwritten if, and only if, it's in the | 
|  | // mask. | 
|  | // <br>If a mask is not provided then a default mask of | 
|  | // only | 
|  | // [`status`](../sites.versions#Version.FIELDS.status) will be used. | 
|  | func (c *ProjectsSitesVersionsPatchCall) UpdateMask(updateMask string) *ProjectsSitesVersionsPatchCall { | 
|  | c.urlParams_.Set("updateMask", updateMask) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Fields allows partial responses to be retrieved. See | 
|  | // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse | 
|  | // for more information. | 
|  | func (c *ProjectsSitesVersionsPatchCall) Fields(s ...googleapi.Field) *ProjectsSitesVersionsPatchCall { | 
|  | c.urlParams_.Set("fields", googleapi.CombineFields(s)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Context sets the context to be used in this call's Do method. Any | 
|  | // pending HTTP request will be aborted if the provided context is | 
|  | // canceled. | 
|  | func (c *ProjectsSitesVersionsPatchCall) Context(ctx context.Context) *ProjectsSitesVersionsPatchCall { | 
|  | c.ctx_ = ctx | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Header returns an http.Header that can be modified by the caller to | 
|  | // add HTTP headers to the request. | 
|  | func (c *ProjectsSitesVersionsPatchCall) Header() http.Header { | 
|  | if c.header_ == nil { | 
|  | c.header_ = make(http.Header) | 
|  | } | 
|  | return c.header_ | 
|  | } | 
|  |  | 
|  | func (c *ProjectsSitesVersionsPatchCall) doRequest(alt string) (*http.Response, error) { | 
|  | reqHeaders := make(http.Header) | 
|  | reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200717") | 
|  | for k, v := range c.header_ { | 
|  | reqHeaders[k] = v | 
|  | } | 
|  | reqHeaders.Set("User-Agent", c.s.userAgent()) | 
|  | var body io.Reader = nil | 
|  | body, err := googleapi.WithoutDataWrapper.JSONReader(c.version) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | reqHeaders.Set("Content-Type", "application/json") | 
|  | c.urlParams_.Set("alt", alt) | 
|  | c.urlParams_.Set("prettyPrint", "false") | 
|  | urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+name}") | 
|  | urls += "?" + c.urlParams_.Encode() | 
|  | req, err := http.NewRequest("PATCH", urls, body) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | req.Header = reqHeaders | 
|  | googleapi.Expand(req.URL, map[string]string{ | 
|  | "name": c.nameid, | 
|  | }) | 
|  | return gensupport.SendRequest(c.ctx_, c.s.client, req) | 
|  | } | 
|  |  | 
|  | // Do executes the "firebasehosting.projects.sites.versions.patch" call. | 
|  | // Exactly one of *Version or error will be non-nil. Any non-2xx status | 
|  | // code is an error. Response headers are in either | 
|  | // *Version.ServerResponse.Header or (if a response was returned at all) | 
|  | // in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to | 
|  | // check whether the returned error was because http.StatusNotModified | 
|  | // was returned. | 
|  | func (c *ProjectsSitesVersionsPatchCall) Do(opts ...googleapi.CallOption) (*Version, error) { | 
|  | gensupport.SetOptions(c.urlParams_, opts...) | 
|  | res, err := c.doRequest("json") | 
|  | if res != nil && res.StatusCode == http.StatusNotModified { | 
|  | if res.Body != nil { | 
|  | res.Body.Close() | 
|  | } | 
|  | return nil, &googleapi.Error{ | 
|  | Code:   res.StatusCode, | 
|  | Header: res.Header, | 
|  | } | 
|  | } | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | defer googleapi.CloseBody(res) | 
|  | if err := googleapi.CheckResponse(res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | ret := &Version{ | 
|  | ServerResponse: googleapi.ServerResponse{ | 
|  | Header:         res.Header, | 
|  | HTTPStatusCode: res.StatusCode, | 
|  | }, | 
|  | } | 
|  | target := &ret | 
|  | if err := gensupport.DecodeResponse(target, res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | return ret, nil | 
|  | // { | 
|  | //   "description": "Updates the specified metadata for a version. Note that this method will\nfail with `FAILED_PRECONDITION` in the event of an invalid state\ntransition. The only valid transition for a version is currently from a\n`CREATED` status to a `FINALIZED` status.\nUse [`DeleteVersion`](../sites.versions/delete) to set the status of a\nversion to `DELETED`.", | 
|  | //   "flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/versions/{versionsId}", | 
|  | //   "httpMethod": "PATCH", | 
|  | //   "id": "firebasehosting.projects.sites.versions.patch", | 
|  | //   "parameterOrder": [ | 
|  | //     "name" | 
|  | //   ], | 
|  | //   "parameters": { | 
|  | //     "name": { | 
|  | //       "description": "The unique identifier for a version, in the format:\n\u003ccode\u003esites/\u003cvar\u003esite-name\u003c/var\u003e/versions/\u003cvar\u003eversionID\u003c/var\u003e\u003c/code\u003e\nThis name is provided in the response body when you call the\n[`CreateVersion`](../sites.versions/create) endpoint.", | 
|  | //       "location": "path", | 
|  | //       "pattern": "^projects/[^/]+/sites/[^/]+/versions/[^/]+$", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "updateMask": { | 
|  | //       "description": "A set of field names from your [version](../sites.versions) that you want\nto update.\n\u003cbr\u003eA field will be overwritten if, and only if, it's in the mask.\n\u003cbr\u003eIf a mask is not provided then a default mask of only\n[`status`](../sites.versions#Version.FIELDS.status) will be used.", | 
|  | //       "format": "google-fieldmask", | 
|  | //       "location": "query", | 
|  | //       "type": "string" | 
|  | //     } | 
|  | //   }, | 
|  | //   "path": "v1beta1/{+name}", | 
|  | //   "request": { | 
|  | //     "$ref": "Version" | 
|  | //   }, | 
|  | //   "response": { | 
|  | //     "$ref": "Version" | 
|  | //   }, | 
|  | //   "scopes": [ | 
|  | //     "https://www.googleapis.com/auth/cloud-platform", | 
|  | //     "https://www.googleapis.com/auth/firebase" | 
|  | //   ] | 
|  | // } | 
|  |  | 
|  | } | 
|  |  | 
|  | // method id "firebasehosting.projects.sites.versions.populateFiles": | 
|  |  | 
|  | type ProjectsSitesVersionsPopulateFilesCall struct { | 
|  | s                           *Service | 
|  | parent                      string | 
|  | populateversionfilesrequest *PopulateVersionFilesRequest | 
|  | urlParams_                  gensupport.URLParams | 
|  | ctx_                        context.Context | 
|  | header_                     http.Header | 
|  | } | 
|  |  | 
|  | // PopulateFiles: Adds content files to a version. | 
|  | // Each file must be under 2 GB. | 
|  | func (r *ProjectsSitesVersionsService) PopulateFiles(parent string, populateversionfilesrequest *PopulateVersionFilesRequest) *ProjectsSitesVersionsPopulateFilesCall { | 
|  | c := &ProjectsSitesVersionsPopulateFilesCall{s: r.s, urlParams_: make(gensupport.URLParams)} | 
|  | c.parent = parent | 
|  | c.populateversionfilesrequest = populateversionfilesrequest | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Fields allows partial responses to be retrieved. See | 
|  | // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse | 
|  | // for more information. | 
|  | func (c *ProjectsSitesVersionsPopulateFilesCall) Fields(s ...googleapi.Field) *ProjectsSitesVersionsPopulateFilesCall { | 
|  | c.urlParams_.Set("fields", googleapi.CombineFields(s)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Context sets the context to be used in this call's Do method. Any | 
|  | // pending HTTP request will be aborted if the provided context is | 
|  | // canceled. | 
|  | func (c *ProjectsSitesVersionsPopulateFilesCall) Context(ctx context.Context) *ProjectsSitesVersionsPopulateFilesCall { | 
|  | c.ctx_ = ctx | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Header returns an http.Header that can be modified by the caller to | 
|  | // add HTTP headers to the request. | 
|  | func (c *ProjectsSitesVersionsPopulateFilesCall) Header() http.Header { | 
|  | if c.header_ == nil { | 
|  | c.header_ = make(http.Header) | 
|  | } | 
|  | return c.header_ | 
|  | } | 
|  |  | 
|  | func (c *ProjectsSitesVersionsPopulateFilesCall) doRequest(alt string) (*http.Response, error) { | 
|  | reqHeaders := make(http.Header) | 
|  | reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200717") | 
|  | for k, v := range c.header_ { | 
|  | reqHeaders[k] = v | 
|  | } | 
|  | reqHeaders.Set("User-Agent", c.s.userAgent()) | 
|  | var body io.Reader = nil | 
|  | body, err := googleapi.WithoutDataWrapper.JSONReader(c.populateversionfilesrequest) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | reqHeaders.Set("Content-Type", "application/json") | 
|  | c.urlParams_.Set("alt", alt) | 
|  | c.urlParams_.Set("prettyPrint", "false") | 
|  | urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+parent}:populateFiles") | 
|  | urls += "?" + c.urlParams_.Encode() | 
|  | req, err := http.NewRequest("POST", urls, body) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | req.Header = reqHeaders | 
|  | googleapi.Expand(req.URL, map[string]string{ | 
|  | "parent": c.parent, | 
|  | }) | 
|  | return gensupport.SendRequest(c.ctx_, c.s.client, req) | 
|  | } | 
|  |  | 
|  | // Do executes the "firebasehosting.projects.sites.versions.populateFiles" call. | 
|  | // Exactly one of *PopulateVersionFilesResponse or error will be | 
|  | // non-nil. Any non-2xx status code is an error. Response headers are in | 
|  | // either *PopulateVersionFilesResponse.ServerResponse.Header or (if a | 
|  | // response was returned at all) in error.(*googleapi.Error).Header. Use | 
|  | // googleapi.IsNotModified to check whether the returned error was | 
|  | // because http.StatusNotModified was returned. | 
|  | func (c *ProjectsSitesVersionsPopulateFilesCall) Do(opts ...googleapi.CallOption) (*PopulateVersionFilesResponse, error) { | 
|  | gensupport.SetOptions(c.urlParams_, opts...) | 
|  | res, err := c.doRequest("json") | 
|  | if res != nil && res.StatusCode == http.StatusNotModified { | 
|  | if res.Body != nil { | 
|  | res.Body.Close() | 
|  | } | 
|  | return nil, &googleapi.Error{ | 
|  | Code:   res.StatusCode, | 
|  | Header: res.Header, | 
|  | } | 
|  | } | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | defer googleapi.CloseBody(res) | 
|  | if err := googleapi.CheckResponse(res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | ret := &PopulateVersionFilesResponse{ | 
|  | ServerResponse: googleapi.ServerResponse{ | 
|  | Header:         res.Header, | 
|  | HTTPStatusCode: res.StatusCode, | 
|  | }, | 
|  | } | 
|  | target := &ret | 
|  | if err := gensupport.DecodeResponse(target, res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | return ret, nil | 
|  | // { | 
|  | //   "description": "Adds content files to a version.\nEach file must be under 2 GB.", | 
|  | //   "flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/versions/{versionsId}:populateFiles", | 
|  | //   "httpMethod": "POST", | 
|  | //   "id": "firebasehosting.projects.sites.versions.populateFiles", | 
|  | //   "parameterOrder": [ | 
|  | //     "parent" | 
|  | //   ], | 
|  | //   "parameters": { | 
|  | //     "parent": { | 
|  | //       "description": "Required. The version to add files to, in the format:\n\u003ccode\u003esites/\u003cvar\u003esite-name\u003c/var\u003e/versions/\u003cvar\u003eversionID\u003c/var\u003e\u003c/code\u003e", | 
|  | //       "location": "path", | 
|  | //       "pattern": "^projects/[^/]+/sites/[^/]+/versions/[^/]+$", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     } | 
|  | //   }, | 
|  | //   "path": "v1beta1/{+parent}:populateFiles", | 
|  | //   "request": { | 
|  | //     "$ref": "PopulateVersionFilesRequest" | 
|  | //   }, | 
|  | //   "response": { | 
|  | //     "$ref": "PopulateVersionFilesResponse" | 
|  | //   }, | 
|  | //   "scopes": [ | 
|  | //     "https://www.googleapis.com/auth/cloud-platform", | 
|  | //     "https://www.googleapis.com/auth/firebase" | 
|  | //   ] | 
|  | // } | 
|  |  | 
|  | } | 
|  |  | 
|  | // method id "firebasehosting.projects.sites.versions.files.list": | 
|  |  | 
|  | type ProjectsSitesVersionsFilesListCall struct { | 
|  | s            *Service | 
|  | parent       string | 
|  | urlParams_   gensupport.URLParams | 
|  | ifNoneMatch_ string | 
|  | ctx_         context.Context | 
|  | header_      http.Header | 
|  | } | 
|  |  | 
|  | // List: Lists the remaining files to be uploaded for the specified | 
|  | // version. | 
|  | func (r *ProjectsSitesVersionsFilesService) List(parent string) *ProjectsSitesVersionsFilesListCall { | 
|  | c := &ProjectsSitesVersionsFilesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} | 
|  | c.parent = parent | 
|  | return c | 
|  | } | 
|  |  | 
|  | // PageSize sets the optional parameter "pageSize": The page size to | 
|  | // return. Defaults to 1000. | 
|  | func (c *ProjectsSitesVersionsFilesListCall) PageSize(pageSize int64) *ProjectsSitesVersionsFilesListCall { | 
|  | c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // PageToken sets the optional parameter "pageToken": The | 
|  | // next_page_token from a previous request, if provided. This will be | 
|  | // the | 
|  | // encoded version of a | 
|  | // firebase.hosting.proto.metadata.ListFilesPageToken. | 
|  | func (c *ProjectsSitesVersionsFilesListCall) PageToken(pageToken string) *ProjectsSitesVersionsFilesListCall { | 
|  | c.urlParams_.Set("pageToken", pageToken) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Status sets the optional parameter "status": The type of files in the | 
|  | // version that should be listed. | 
|  | // | 
|  | // Possible values: | 
|  | //   "STATUS_UNSPECIFIED" | 
|  | //   "EXPECTED" | 
|  | //   "ACTIVE" | 
|  | func (c *ProjectsSitesVersionsFilesListCall) Status(status string) *ProjectsSitesVersionsFilesListCall { | 
|  | c.urlParams_.Set("status", status) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Fields allows partial responses to be retrieved. See | 
|  | // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse | 
|  | // for more information. | 
|  | func (c *ProjectsSitesVersionsFilesListCall) Fields(s ...googleapi.Field) *ProjectsSitesVersionsFilesListCall { | 
|  | c.urlParams_.Set("fields", googleapi.CombineFields(s)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // IfNoneMatch sets the optional parameter which makes the operation | 
|  | // fail if the object's ETag matches the given value. This is useful for | 
|  | // getting updates only after the object has changed since the last | 
|  | // request. Use googleapi.IsNotModified to check whether the response | 
|  | // error from Do is the result of In-None-Match. | 
|  | func (c *ProjectsSitesVersionsFilesListCall) IfNoneMatch(entityTag string) *ProjectsSitesVersionsFilesListCall { | 
|  | c.ifNoneMatch_ = entityTag | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Context sets the context to be used in this call's Do method. Any | 
|  | // pending HTTP request will be aborted if the provided context is | 
|  | // canceled. | 
|  | func (c *ProjectsSitesVersionsFilesListCall) Context(ctx context.Context) *ProjectsSitesVersionsFilesListCall { | 
|  | c.ctx_ = ctx | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Header returns an http.Header that can be modified by the caller to | 
|  | // add HTTP headers to the request. | 
|  | func (c *ProjectsSitesVersionsFilesListCall) Header() http.Header { | 
|  | if c.header_ == nil { | 
|  | c.header_ = make(http.Header) | 
|  | } | 
|  | return c.header_ | 
|  | } | 
|  |  | 
|  | func (c *ProjectsSitesVersionsFilesListCall) doRequest(alt string) (*http.Response, error) { | 
|  | reqHeaders := make(http.Header) | 
|  | reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200717") | 
|  | for k, v := range c.header_ { | 
|  | reqHeaders[k] = v | 
|  | } | 
|  | reqHeaders.Set("User-Agent", c.s.userAgent()) | 
|  | if c.ifNoneMatch_ != "" { | 
|  | reqHeaders.Set("If-None-Match", c.ifNoneMatch_) | 
|  | } | 
|  | var body io.Reader = nil | 
|  | c.urlParams_.Set("alt", alt) | 
|  | c.urlParams_.Set("prettyPrint", "false") | 
|  | urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+parent}/files") | 
|  | urls += "?" + c.urlParams_.Encode() | 
|  | req, err := http.NewRequest("GET", urls, body) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | req.Header = reqHeaders | 
|  | googleapi.Expand(req.URL, map[string]string{ | 
|  | "parent": c.parent, | 
|  | }) | 
|  | return gensupport.SendRequest(c.ctx_, c.s.client, req) | 
|  | } | 
|  |  | 
|  | // Do executes the "firebasehosting.projects.sites.versions.files.list" call. | 
|  | // Exactly one of *ListVersionFilesResponse or error will be non-nil. | 
|  | // Any non-2xx status code is an error. Response headers are in either | 
|  | // *ListVersionFilesResponse.ServerResponse.Header or (if a response was | 
|  | // returned at all) in error.(*googleapi.Error).Header. Use | 
|  | // googleapi.IsNotModified to check whether the returned error was | 
|  | // because http.StatusNotModified was returned. | 
|  | func (c *ProjectsSitesVersionsFilesListCall) Do(opts ...googleapi.CallOption) (*ListVersionFilesResponse, error) { | 
|  | gensupport.SetOptions(c.urlParams_, opts...) | 
|  | res, err := c.doRequest("json") | 
|  | if res != nil && res.StatusCode == http.StatusNotModified { | 
|  | if res.Body != nil { | 
|  | res.Body.Close() | 
|  | } | 
|  | return nil, &googleapi.Error{ | 
|  | Code:   res.StatusCode, | 
|  | Header: res.Header, | 
|  | } | 
|  | } | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | defer googleapi.CloseBody(res) | 
|  | if err := googleapi.CheckResponse(res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | ret := &ListVersionFilesResponse{ | 
|  | ServerResponse: googleapi.ServerResponse{ | 
|  | Header:         res.Header, | 
|  | HTTPStatusCode: res.StatusCode, | 
|  | }, | 
|  | } | 
|  | target := &ret | 
|  | if err := gensupport.DecodeResponse(target, res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | return ret, nil | 
|  | // { | 
|  | //   "description": "Lists the remaining files to be uploaded for the specified version.", | 
|  | //   "flatPath": "v1beta1/projects/{projectsId}/sites/{sitesId}/versions/{versionsId}/files", | 
|  | //   "httpMethod": "GET", | 
|  | //   "id": "firebasehosting.projects.sites.versions.files.list", | 
|  | //   "parameterOrder": [ | 
|  | //     "parent" | 
|  | //   ], | 
|  | //   "parameters": { | 
|  | //     "pageSize": { | 
|  | //       "description": "The page size to return. Defaults to 1000.", | 
|  | //       "format": "int32", | 
|  | //       "location": "query", | 
|  | //       "type": "integer" | 
|  | //     }, | 
|  | //     "pageToken": { | 
|  | //       "description": "The next_page_token from a previous request, if provided. This will be the\nencoded version of a firebase.hosting.proto.metadata.ListFilesPageToken.", | 
|  | //       "location": "query", | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "parent": { | 
|  | //       "description": "Required. The parent to list files for, in the format:\n\u003ccode\u003esites/\u003cvar\u003esite-name\u003c/var\u003e/versions/\u003cvar\u003eversionID\u003c/var\u003e\u003c/code\u003e", | 
|  | //       "location": "path", | 
|  | //       "pattern": "^projects/[^/]+/sites/[^/]+/versions/[^/]+$", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "status": { | 
|  | //       "description": "The type of files in the version that should be listed.", | 
|  | //       "enum": [ | 
|  | //         "STATUS_UNSPECIFIED", | 
|  | //         "EXPECTED", | 
|  | //         "ACTIVE" | 
|  | //       ], | 
|  | //       "location": "query", | 
|  | //       "type": "string" | 
|  | //     } | 
|  | //   }, | 
|  | //   "path": "v1beta1/{+parent}/files", | 
|  | //   "response": { | 
|  | //     "$ref": "ListVersionFilesResponse" | 
|  | //   }, | 
|  | //   "scopes": [ | 
|  | //     "https://www.googleapis.com/auth/cloud-platform", | 
|  | //     "https://www.googleapis.com/auth/cloud-platform.read-only", | 
|  | //     "https://www.googleapis.com/auth/firebase", | 
|  | //     "https://www.googleapis.com/auth/firebase.readonly" | 
|  | //   ] | 
|  | // } | 
|  |  | 
|  | } | 
|  |  | 
|  | // Pages invokes f for each page of results. | 
|  | // A non-nil error returned from f will halt the iteration. | 
|  | // The provided context supersedes any context provided to the Context method. | 
|  | func (c *ProjectsSitesVersionsFilesListCall) Pages(ctx context.Context, f func(*ListVersionFilesResponse) error) error { | 
|  | c.ctx_ = ctx | 
|  | defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point | 
|  | for { | 
|  | x, err := c.Do() | 
|  | if err != nil { | 
|  | return err | 
|  | } | 
|  | if err := f(x); err != nil { | 
|  | return err | 
|  | } | 
|  | if x.NextPageToken == "" { | 
|  | return nil | 
|  | } | 
|  | c.PageToken(x.NextPageToken) | 
|  | } | 
|  | } | 
|  |  | 
|  | // method id "firebasehosting.sites.getConfig": | 
|  |  | 
|  | type SitesGetConfigCall struct { | 
|  | s            *Service | 
|  | name         string | 
|  | urlParams_   gensupport.URLParams | 
|  | ifNoneMatch_ string | 
|  | ctx_         context.Context | 
|  | header_      http.Header | 
|  | } | 
|  |  | 
|  | // GetConfig: Gets the Hosting metadata for a specific site. | 
|  | func (r *SitesService) GetConfig(name string) *SitesGetConfigCall { | 
|  | c := &SitesGetConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)} | 
|  | c.name = name | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Fields allows partial responses to be retrieved. See | 
|  | // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse | 
|  | // for more information. | 
|  | func (c *SitesGetConfigCall) Fields(s ...googleapi.Field) *SitesGetConfigCall { | 
|  | c.urlParams_.Set("fields", googleapi.CombineFields(s)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // IfNoneMatch sets the optional parameter which makes the operation | 
|  | // fail if the object's ETag matches the given value. This is useful for | 
|  | // getting updates only after the object has changed since the last | 
|  | // request. Use googleapi.IsNotModified to check whether the response | 
|  | // error from Do is the result of In-None-Match. | 
|  | func (c *SitesGetConfigCall) IfNoneMatch(entityTag string) *SitesGetConfigCall { | 
|  | c.ifNoneMatch_ = entityTag | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Context sets the context to be used in this call's Do method. Any | 
|  | // pending HTTP request will be aborted if the provided context is | 
|  | // canceled. | 
|  | func (c *SitesGetConfigCall) Context(ctx context.Context) *SitesGetConfigCall { | 
|  | c.ctx_ = ctx | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Header returns an http.Header that can be modified by the caller to | 
|  | // add HTTP headers to the request. | 
|  | func (c *SitesGetConfigCall) Header() http.Header { | 
|  | if c.header_ == nil { | 
|  | c.header_ = make(http.Header) | 
|  | } | 
|  | return c.header_ | 
|  | } | 
|  |  | 
|  | func (c *SitesGetConfigCall) doRequest(alt string) (*http.Response, error) { | 
|  | reqHeaders := make(http.Header) | 
|  | reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200717") | 
|  | for k, v := range c.header_ { | 
|  | reqHeaders[k] = v | 
|  | } | 
|  | reqHeaders.Set("User-Agent", c.s.userAgent()) | 
|  | if c.ifNoneMatch_ != "" { | 
|  | reqHeaders.Set("If-None-Match", c.ifNoneMatch_) | 
|  | } | 
|  | var body io.Reader = nil | 
|  | c.urlParams_.Set("alt", alt) | 
|  | c.urlParams_.Set("prettyPrint", "false") | 
|  | urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+name}") | 
|  | urls += "?" + c.urlParams_.Encode() | 
|  | req, err := http.NewRequest("GET", urls, body) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | req.Header = reqHeaders | 
|  | googleapi.Expand(req.URL, map[string]string{ | 
|  | "name": c.name, | 
|  | }) | 
|  | return gensupport.SendRequest(c.ctx_, c.s.client, req) | 
|  | } | 
|  |  | 
|  | // Do executes the "firebasehosting.sites.getConfig" call. | 
|  | // Exactly one of *SiteConfig or error will be non-nil. Any non-2xx | 
|  | // status code is an error. Response headers are in either | 
|  | // *SiteConfig.ServerResponse.Header or (if a response was returned at | 
|  | // all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified | 
|  | // to check whether the returned error was because | 
|  | // http.StatusNotModified was returned. | 
|  | func (c *SitesGetConfigCall) Do(opts ...googleapi.CallOption) (*SiteConfig, error) { | 
|  | gensupport.SetOptions(c.urlParams_, opts...) | 
|  | res, err := c.doRequest("json") | 
|  | if res != nil && res.StatusCode == http.StatusNotModified { | 
|  | if res.Body != nil { | 
|  | res.Body.Close() | 
|  | } | 
|  | return nil, &googleapi.Error{ | 
|  | Code:   res.StatusCode, | 
|  | Header: res.Header, | 
|  | } | 
|  | } | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | defer googleapi.CloseBody(res) | 
|  | if err := googleapi.CheckResponse(res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | ret := &SiteConfig{ | 
|  | ServerResponse: googleapi.ServerResponse{ | 
|  | Header:         res.Header, | 
|  | HTTPStatusCode: res.StatusCode, | 
|  | }, | 
|  | } | 
|  | target := &ret | 
|  | if err := gensupport.DecodeResponse(target, res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | return ret, nil | 
|  | // { | 
|  | //   "description": "Gets the Hosting metadata for a specific site.", | 
|  | //   "flatPath": "v1beta1/sites/{sitesId}/config", | 
|  | //   "httpMethod": "GET", | 
|  | //   "id": "firebasehosting.sites.getConfig", | 
|  | //   "parameterOrder": [ | 
|  | //     "name" | 
|  | //   ], | 
|  | //   "parameters": { | 
|  | //     "name": { | 
|  | //       "description": "Required. The site for which to get the SiteConfig, in the format:\n\u003ccode\u003esites/\u003cvar\u003esite-name\u003c/var\u003e/config\u003c/code\u003e", | 
|  | //       "location": "path", | 
|  | //       "pattern": "^sites/[^/]+/config$", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     } | 
|  | //   }, | 
|  | //   "path": "v1beta1/{+name}", | 
|  | //   "response": { | 
|  | //     "$ref": "SiteConfig" | 
|  | //   }, | 
|  | //   "scopes": [ | 
|  | //     "https://www.googleapis.com/auth/cloud-platform", | 
|  | //     "https://www.googleapis.com/auth/cloud-platform.read-only", | 
|  | //     "https://www.googleapis.com/auth/firebase", | 
|  | //     "https://www.googleapis.com/auth/firebase.readonly" | 
|  | //   ] | 
|  | // } | 
|  |  | 
|  | } | 
|  |  | 
|  | // method id "firebasehosting.sites.updateConfig": | 
|  |  | 
|  | type SitesUpdateConfigCall struct { | 
|  | s          *Service | 
|  | name       string | 
|  | siteconfig *SiteConfig | 
|  | urlParams_ gensupport.URLParams | 
|  | ctx_       context.Context | 
|  | header_    http.Header | 
|  | } | 
|  |  | 
|  | // UpdateConfig: Sets the Hosting metadata for a specific site. | 
|  | func (r *SitesService) UpdateConfig(name string, siteconfig *SiteConfig) *SitesUpdateConfigCall { | 
|  | c := &SitesUpdateConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)} | 
|  | c.name = name | 
|  | c.siteconfig = siteconfig | 
|  | return c | 
|  | } | 
|  |  | 
|  | // UpdateMask sets the optional parameter "updateMask": A set of field | 
|  | // names from your [site configuration](../sites.SiteConfig) | 
|  | // that you want to update. | 
|  | // <br>A field will be overwritten if, and only if, it's in the | 
|  | // mask. | 
|  | // <br>If a mask is not provided then a default mask of | 
|  | // only | 
|  | // [`max_versions`](../sites.SiteConfig.max_versions) will be used. | 
|  | func (c *SitesUpdateConfigCall) UpdateMask(updateMask string) *SitesUpdateConfigCall { | 
|  | c.urlParams_.Set("updateMask", updateMask) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Fields allows partial responses to be retrieved. See | 
|  | // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse | 
|  | // for more information. | 
|  | func (c *SitesUpdateConfigCall) Fields(s ...googleapi.Field) *SitesUpdateConfigCall { | 
|  | c.urlParams_.Set("fields", googleapi.CombineFields(s)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Context sets the context to be used in this call's Do method. Any | 
|  | // pending HTTP request will be aborted if the provided context is | 
|  | // canceled. | 
|  | func (c *SitesUpdateConfigCall) Context(ctx context.Context) *SitesUpdateConfigCall { | 
|  | c.ctx_ = ctx | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Header returns an http.Header that can be modified by the caller to | 
|  | // add HTTP headers to the request. | 
|  | func (c *SitesUpdateConfigCall) Header() http.Header { | 
|  | if c.header_ == nil { | 
|  | c.header_ = make(http.Header) | 
|  | } | 
|  | return c.header_ | 
|  | } | 
|  |  | 
|  | func (c *SitesUpdateConfigCall) doRequest(alt string) (*http.Response, error) { | 
|  | reqHeaders := make(http.Header) | 
|  | reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200717") | 
|  | for k, v := range c.header_ { | 
|  | reqHeaders[k] = v | 
|  | } | 
|  | reqHeaders.Set("User-Agent", c.s.userAgent()) | 
|  | var body io.Reader = nil | 
|  | body, err := googleapi.WithoutDataWrapper.JSONReader(c.siteconfig) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | reqHeaders.Set("Content-Type", "application/json") | 
|  | c.urlParams_.Set("alt", alt) | 
|  | c.urlParams_.Set("prettyPrint", "false") | 
|  | urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+name}") | 
|  | urls += "?" + c.urlParams_.Encode() | 
|  | req, err := http.NewRequest("PATCH", urls, body) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | req.Header = reqHeaders | 
|  | googleapi.Expand(req.URL, map[string]string{ | 
|  | "name": c.name, | 
|  | }) | 
|  | return gensupport.SendRequest(c.ctx_, c.s.client, req) | 
|  | } | 
|  |  | 
|  | // Do executes the "firebasehosting.sites.updateConfig" call. | 
|  | // Exactly one of *SiteConfig or error will be non-nil. Any non-2xx | 
|  | // status code is an error. Response headers are in either | 
|  | // *SiteConfig.ServerResponse.Header or (if a response was returned at | 
|  | // all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified | 
|  | // to check whether the returned error was because | 
|  | // http.StatusNotModified was returned. | 
|  | func (c *SitesUpdateConfigCall) Do(opts ...googleapi.CallOption) (*SiteConfig, error) { | 
|  | gensupport.SetOptions(c.urlParams_, opts...) | 
|  | res, err := c.doRequest("json") | 
|  | if res != nil && res.StatusCode == http.StatusNotModified { | 
|  | if res.Body != nil { | 
|  | res.Body.Close() | 
|  | } | 
|  | return nil, &googleapi.Error{ | 
|  | Code:   res.StatusCode, | 
|  | Header: res.Header, | 
|  | } | 
|  | } | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | defer googleapi.CloseBody(res) | 
|  | if err := googleapi.CheckResponse(res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | ret := &SiteConfig{ | 
|  | ServerResponse: googleapi.ServerResponse{ | 
|  | Header:         res.Header, | 
|  | HTTPStatusCode: res.StatusCode, | 
|  | }, | 
|  | } | 
|  | target := &ret | 
|  | if err := gensupport.DecodeResponse(target, res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | return ret, nil | 
|  | // { | 
|  | //   "description": "Sets the Hosting metadata for a specific site.", | 
|  | //   "flatPath": "v1beta1/sites/{sitesId}/config", | 
|  | //   "httpMethod": "PATCH", | 
|  | //   "id": "firebasehosting.sites.updateConfig", | 
|  | //   "parameterOrder": [ | 
|  | //     "name" | 
|  | //   ], | 
|  | //   "parameters": { | 
|  | //     "name": { | 
|  | //       "description": "Required. The site for which to update the SiteConfig, in the format:\n\u003ccode\u003esites/\u003cvar\u003esite-name\u003c/var\u003e/config\u003c/code\u003e", | 
|  | //       "location": "path", | 
|  | //       "pattern": "^sites/[^/]+/config$", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "updateMask": { | 
|  | //       "description": "A set of field names from your [site configuration](../sites.SiteConfig)\nthat you want to update.\n\u003cbr\u003eA field will be overwritten if, and only if, it's in the mask.\n\u003cbr\u003eIf a mask is not provided then a default mask of only\n[`max_versions`](../sites.SiteConfig.max_versions) will be used.", | 
|  | //       "format": "google-fieldmask", | 
|  | //       "location": "query", | 
|  | //       "type": "string" | 
|  | //     } | 
|  | //   }, | 
|  | //   "path": "v1beta1/{+name}", | 
|  | //   "request": { | 
|  | //     "$ref": "SiteConfig" | 
|  | //   }, | 
|  | //   "response": { | 
|  | //     "$ref": "SiteConfig" | 
|  | //   }, | 
|  | //   "scopes": [ | 
|  | //     "https://www.googleapis.com/auth/cloud-platform", | 
|  | //     "https://www.googleapis.com/auth/firebase" | 
|  | //   ] | 
|  | // } | 
|  |  | 
|  | } | 
|  |  | 
|  | // method id "firebasehosting.sites.channels.releases.create": | 
|  |  | 
|  | type SitesChannelsReleasesCreateCall struct { | 
|  | s          *Service | 
|  | parent     string | 
|  | release    *Release | 
|  | urlParams_ gensupport.URLParams | 
|  | ctx_       context.Context | 
|  | header_    http.Header | 
|  | } | 
|  |  | 
|  | // Create: Creates a new release which makes the content of the | 
|  | // specified version | 
|  | // actively display on the appropriate URL(s). | 
|  | func (r *SitesChannelsReleasesService) Create(parent string, release *Release) *SitesChannelsReleasesCreateCall { | 
|  | c := &SitesChannelsReleasesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)} | 
|  | c.parent = parent | 
|  | c.release = release | 
|  | return c | 
|  | } | 
|  |  | 
|  | // VersionName sets the optional parameter "versionName": The unique | 
|  | // identifier for a version, in the | 
|  | // format: | 
|  | // <code>/sites/<var>site-name</var>/versions/<var>versionID</var | 
|  | // ></code> | 
|  | // The <var>site-name</var> in this version identifier must match | 
|  | // the | 
|  | // <var>site-name</var> in the `parent` parameter. | 
|  | // <br> | 
|  | // <br>This query parameter must be empty if the `type` field in | 
|  | // the | 
|  | // request body is `SITE_DISABLE`. | 
|  | func (c *SitesChannelsReleasesCreateCall) VersionName(versionName string) *SitesChannelsReleasesCreateCall { | 
|  | c.urlParams_.Set("versionName", versionName) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Fields allows partial responses to be retrieved. See | 
|  | // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse | 
|  | // for more information. | 
|  | func (c *SitesChannelsReleasesCreateCall) Fields(s ...googleapi.Field) *SitesChannelsReleasesCreateCall { | 
|  | c.urlParams_.Set("fields", googleapi.CombineFields(s)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Context sets the context to be used in this call's Do method. Any | 
|  | // pending HTTP request will be aborted if the provided context is | 
|  | // canceled. | 
|  | func (c *SitesChannelsReleasesCreateCall) Context(ctx context.Context) *SitesChannelsReleasesCreateCall { | 
|  | c.ctx_ = ctx | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Header returns an http.Header that can be modified by the caller to | 
|  | // add HTTP headers to the request. | 
|  | func (c *SitesChannelsReleasesCreateCall) Header() http.Header { | 
|  | if c.header_ == nil { | 
|  | c.header_ = make(http.Header) | 
|  | } | 
|  | return c.header_ | 
|  | } | 
|  |  | 
|  | func (c *SitesChannelsReleasesCreateCall) doRequest(alt string) (*http.Response, error) { | 
|  | reqHeaders := make(http.Header) | 
|  | reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200717") | 
|  | for k, v := range c.header_ { | 
|  | reqHeaders[k] = v | 
|  | } | 
|  | reqHeaders.Set("User-Agent", c.s.userAgent()) | 
|  | var body io.Reader = nil | 
|  | body, err := googleapi.WithoutDataWrapper.JSONReader(c.release) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | reqHeaders.Set("Content-Type", "application/json") | 
|  | c.urlParams_.Set("alt", alt) | 
|  | c.urlParams_.Set("prettyPrint", "false") | 
|  | urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+parent}/releases") | 
|  | urls += "?" + c.urlParams_.Encode() | 
|  | req, err := http.NewRequest("POST", urls, body) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | req.Header = reqHeaders | 
|  | googleapi.Expand(req.URL, map[string]string{ | 
|  | "parent": c.parent, | 
|  | }) | 
|  | return gensupport.SendRequest(c.ctx_, c.s.client, req) | 
|  | } | 
|  |  | 
|  | // Do executes the "firebasehosting.sites.channels.releases.create" call. | 
|  | // Exactly one of *Release or error will be non-nil. Any non-2xx status | 
|  | // code is an error. Response headers are in either | 
|  | // *Release.ServerResponse.Header or (if a response was returned at all) | 
|  | // in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to | 
|  | // check whether the returned error was because http.StatusNotModified | 
|  | // was returned. | 
|  | func (c *SitesChannelsReleasesCreateCall) Do(opts ...googleapi.CallOption) (*Release, error) { | 
|  | gensupport.SetOptions(c.urlParams_, opts...) | 
|  | res, err := c.doRequest("json") | 
|  | if res != nil && res.StatusCode == http.StatusNotModified { | 
|  | if res.Body != nil { | 
|  | res.Body.Close() | 
|  | } | 
|  | return nil, &googleapi.Error{ | 
|  | Code:   res.StatusCode, | 
|  | Header: res.Header, | 
|  | } | 
|  | } | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | defer googleapi.CloseBody(res) | 
|  | if err := googleapi.CheckResponse(res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | ret := &Release{ | 
|  | ServerResponse: googleapi.ServerResponse{ | 
|  | Header:         res.Header, | 
|  | HTTPStatusCode: res.StatusCode, | 
|  | }, | 
|  | } | 
|  | target := &ret | 
|  | if err := gensupport.DecodeResponse(target, res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | return ret, nil | 
|  | // { | 
|  | //   "description": "Creates a new release which makes the content of the specified version\nactively display on the appropriate URL(s).", | 
|  | //   "flatPath": "v1beta1/sites/{sitesId}/channels/{channelsId}/releases", | 
|  | //   "httpMethod": "POST", | 
|  | //   "id": "firebasehosting.sites.channels.releases.create", | 
|  | //   "parameterOrder": [ | 
|  | //     "parent" | 
|  | //   ], | 
|  | //   "parameters": { | 
|  | //     "parent": { | 
|  | //       "description": "Required. The site that the release belongs to, in the format:\n\u003ccode\u003esites/\u003cvar\u003esite-name\u003c/var\u003e\u003c/code\u003e", | 
|  | //       "location": "path", | 
|  | //       "pattern": "^sites/[^/]+/channels/[^/]+$", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "versionName": { | 
|  | //       "description": "The unique identifier for a version, in the format:\n\u003ccode\u003e/sites/\u003cvar\u003esite-name\u003c/var\u003e/versions/\u003cvar\u003eversionID\u003c/var\u003e\u003c/code\u003e\nThe \u003cvar\u003esite-name\u003c/var\u003e in this version identifier must match the\n\u003cvar\u003esite-name\u003c/var\u003e in the `parent` parameter.\n\u003cbr\u003e\n\u003cbr\u003eThis query parameter must be empty if the `type` field in the\nrequest body is `SITE_DISABLE`.", | 
|  | //       "location": "query", | 
|  | //       "type": "string" | 
|  | //     } | 
|  | //   }, | 
|  | //   "path": "v1beta1/{+parent}/releases", | 
|  | //   "request": { | 
|  | //     "$ref": "Release" | 
|  | //   }, | 
|  | //   "response": { | 
|  | //     "$ref": "Release" | 
|  | //   }, | 
|  | //   "scopes": [ | 
|  | //     "https://www.googleapis.com/auth/cloud-platform", | 
|  | //     "https://www.googleapis.com/auth/firebase" | 
|  | //   ] | 
|  | // } | 
|  |  | 
|  | } | 
|  |  | 
|  | // method id "firebasehosting.sites.channels.releases.list": | 
|  |  | 
|  | type SitesChannelsReleasesListCall struct { | 
|  | s            *Service | 
|  | parent       string | 
|  | urlParams_   gensupport.URLParams | 
|  | ifNoneMatch_ string | 
|  | ctx_         context.Context | 
|  | header_      http.Header | 
|  | } | 
|  |  | 
|  | // List: Lists the releases that have been created on the specified | 
|  | // site. | 
|  | func (r *SitesChannelsReleasesService) List(parent string) *SitesChannelsReleasesListCall { | 
|  | c := &SitesChannelsReleasesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} | 
|  | c.parent = parent | 
|  | return c | 
|  | } | 
|  |  | 
|  | // PageSize sets the optional parameter "pageSize": The page size to | 
|  | // return. Defaults to 100. | 
|  | func (c *SitesChannelsReleasesListCall) PageSize(pageSize int64) *SitesChannelsReleasesListCall { | 
|  | c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // PageToken sets the optional parameter "pageToken": The | 
|  | // next_page_token from a previous request, if provided. | 
|  | func (c *SitesChannelsReleasesListCall) PageToken(pageToken string) *SitesChannelsReleasesListCall { | 
|  | c.urlParams_.Set("pageToken", pageToken) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Fields allows partial responses to be retrieved. See | 
|  | // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse | 
|  | // for more information. | 
|  | func (c *SitesChannelsReleasesListCall) Fields(s ...googleapi.Field) *SitesChannelsReleasesListCall { | 
|  | c.urlParams_.Set("fields", googleapi.CombineFields(s)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // IfNoneMatch sets the optional parameter which makes the operation | 
|  | // fail if the object's ETag matches the given value. This is useful for | 
|  | // getting updates only after the object has changed since the last | 
|  | // request. Use googleapi.IsNotModified to check whether the response | 
|  | // error from Do is the result of In-None-Match. | 
|  | func (c *SitesChannelsReleasesListCall) IfNoneMatch(entityTag string) *SitesChannelsReleasesListCall { | 
|  | c.ifNoneMatch_ = entityTag | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Context sets the context to be used in this call's Do method. Any | 
|  | // pending HTTP request will be aborted if the provided context is | 
|  | // canceled. | 
|  | func (c *SitesChannelsReleasesListCall) Context(ctx context.Context) *SitesChannelsReleasesListCall { | 
|  | c.ctx_ = ctx | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Header returns an http.Header that can be modified by the caller to | 
|  | // add HTTP headers to the request. | 
|  | func (c *SitesChannelsReleasesListCall) Header() http.Header { | 
|  | if c.header_ == nil { | 
|  | c.header_ = make(http.Header) | 
|  | } | 
|  | return c.header_ | 
|  | } | 
|  |  | 
|  | func (c *SitesChannelsReleasesListCall) doRequest(alt string) (*http.Response, error) { | 
|  | reqHeaders := make(http.Header) | 
|  | reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200717") | 
|  | for k, v := range c.header_ { | 
|  | reqHeaders[k] = v | 
|  | } | 
|  | reqHeaders.Set("User-Agent", c.s.userAgent()) | 
|  | if c.ifNoneMatch_ != "" { | 
|  | reqHeaders.Set("If-None-Match", c.ifNoneMatch_) | 
|  | } | 
|  | var body io.Reader = nil | 
|  | c.urlParams_.Set("alt", alt) | 
|  | c.urlParams_.Set("prettyPrint", "false") | 
|  | urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+parent}/releases") | 
|  | urls += "?" + c.urlParams_.Encode() | 
|  | req, err := http.NewRequest("GET", urls, body) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | req.Header = reqHeaders | 
|  | googleapi.Expand(req.URL, map[string]string{ | 
|  | "parent": c.parent, | 
|  | }) | 
|  | return gensupport.SendRequest(c.ctx_, c.s.client, req) | 
|  | } | 
|  |  | 
|  | // Do executes the "firebasehosting.sites.channels.releases.list" call. | 
|  | // Exactly one of *ListReleasesResponse or error will be non-nil. Any | 
|  | // non-2xx status code is an error. Response headers are in either | 
|  | // *ListReleasesResponse.ServerResponse.Header or (if a response was | 
|  | // returned at all) in error.(*googleapi.Error).Header. Use | 
|  | // googleapi.IsNotModified to check whether the returned error was | 
|  | // because http.StatusNotModified was returned. | 
|  | func (c *SitesChannelsReleasesListCall) Do(opts ...googleapi.CallOption) (*ListReleasesResponse, error) { | 
|  | gensupport.SetOptions(c.urlParams_, opts...) | 
|  | res, err := c.doRequest("json") | 
|  | if res != nil && res.StatusCode == http.StatusNotModified { | 
|  | if res.Body != nil { | 
|  | res.Body.Close() | 
|  | } | 
|  | return nil, &googleapi.Error{ | 
|  | Code:   res.StatusCode, | 
|  | Header: res.Header, | 
|  | } | 
|  | } | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | defer googleapi.CloseBody(res) | 
|  | if err := googleapi.CheckResponse(res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | ret := &ListReleasesResponse{ | 
|  | ServerResponse: googleapi.ServerResponse{ | 
|  | Header:         res.Header, | 
|  | HTTPStatusCode: res.StatusCode, | 
|  | }, | 
|  | } | 
|  | target := &ret | 
|  | if err := gensupport.DecodeResponse(target, res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | return ret, nil | 
|  | // { | 
|  | //   "description": "Lists the releases that have been created on the specified site.", | 
|  | //   "flatPath": "v1beta1/sites/{sitesId}/channels/{channelsId}/releases", | 
|  | //   "httpMethod": "GET", | 
|  | //   "id": "firebasehosting.sites.channels.releases.list", | 
|  | //   "parameterOrder": [ | 
|  | //     "parent" | 
|  | //   ], | 
|  | //   "parameters": { | 
|  | //     "pageSize": { | 
|  | //       "description": "The page size to return. Defaults to 100.", | 
|  | //       "format": "int32", | 
|  | //       "location": "query", | 
|  | //       "type": "integer" | 
|  | //     }, | 
|  | //     "pageToken": { | 
|  | //       "description": "The next_page_token from a previous request, if provided.", | 
|  | //       "location": "query", | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "parent": { | 
|  | //       "description": "Required. The parent for which to list files, in the format:\n\u003ccode\u003esites/\u003cvar\u003esite-name\u003c/var\u003e\u003c/code\u003e", | 
|  | //       "location": "path", | 
|  | //       "pattern": "^sites/[^/]+/channels/[^/]+$", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     } | 
|  | //   }, | 
|  | //   "path": "v1beta1/{+parent}/releases", | 
|  | //   "response": { | 
|  | //     "$ref": "ListReleasesResponse" | 
|  | //   }, | 
|  | //   "scopes": [ | 
|  | //     "https://www.googleapis.com/auth/cloud-platform", | 
|  | //     "https://www.googleapis.com/auth/cloud-platform.read-only", | 
|  | //     "https://www.googleapis.com/auth/firebase", | 
|  | //     "https://www.googleapis.com/auth/firebase.readonly" | 
|  | //   ] | 
|  | // } | 
|  |  | 
|  | } | 
|  |  | 
|  | // Pages invokes f for each page of results. | 
|  | // A non-nil error returned from f will halt the iteration. | 
|  | // The provided context supersedes any context provided to the Context method. | 
|  | func (c *SitesChannelsReleasesListCall) Pages(ctx context.Context, f func(*ListReleasesResponse) error) error { | 
|  | c.ctx_ = ctx | 
|  | defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point | 
|  | for { | 
|  | x, err := c.Do() | 
|  | if err != nil { | 
|  | return err | 
|  | } | 
|  | if err := f(x); err != nil { | 
|  | return err | 
|  | } | 
|  | if x.NextPageToken == "" { | 
|  | return nil | 
|  | } | 
|  | c.PageToken(x.NextPageToken) | 
|  | } | 
|  | } | 
|  |  | 
|  | // method id "firebasehosting.sites.domains.create": | 
|  |  | 
|  | type SitesDomainsCreateCall struct { | 
|  | s          *Service | 
|  | parent     string | 
|  | domain     *Domain | 
|  | urlParams_ gensupport.URLParams | 
|  | ctx_       context.Context | 
|  | header_    http.Header | 
|  | } | 
|  |  | 
|  | // Create: Creates a domain mapping on the specified site. | 
|  | func (r *SitesDomainsService) Create(parent string, domain *Domain) *SitesDomainsCreateCall { | 
|  | c := &SitesDomainsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)} | 
|  | c.parent = parent | 
|  | c.domain = domain | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Fields allows partial responses to be retrieved. See | 
|  | // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse | 
|  | // for more information. | 
|  | func (c *SitesDomainsCreateCall) Fields(s ...googleapi.Field) *SitesDomainsCreateCall { | 
|  | c.urlParams_.Set("fields", googleapi.CombineFields(s)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Context sets the context to be used in this call's Do method. Any | 
|  | // pending HTTP request will be aborted if the provided context is | 
|  | // canceled. | 
|  | func (c *SitesDomainsCreateCall) Context(ctx context.Context) *SitesDomainsCreateCall { | 
|  | c.ctx_ = ctx | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Header returns an http.Header that can be modified by the caller to | 
|  | // add HTTP headers to the request. | 
|  | func (c *SitesDomainsCreateCall) Header() http.Header { | 
|  | if c.header_ == nil { | 
|  | c.header_ = make(http.Header) | 
|  | } | 
|  | return c.header_ | 
|  | } | 
|  |  | 
|  | func (c *SitesDomainsCreateCall) doRequest(alt string) (*http.Response, error) { | 
|  | reqHeaders := make(http.Header) | 
|  | reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200717") | 
|  | for k, v := range c.header_ { | 
|  | reqHeaders[k] = v | 
|  | } | 
|  | reqHeaders.Set("User-Agent", c.s.userAgent()) | 
|  | var body io.Reader = nil | 
|  | body, err := googleapi.WithoutDataWrapper.JSONReader(c.domain) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | reqHeaders.Set("Content-Type", "application/json") | 
|  | c.urlParams_.Set("alt", alt) | 
|  | c.urlParams_.Set("prettyPrint", "false") | 
|  | urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+parent}/domains") | 
|  | urls += "?" + c.urlParams_.Encode() | 
|  | req, err := http.NewRequest("POST", urls, body) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | req.Header = reqHeaders | 
|  | googleapi.Expand(req.URL, map[string]string{ | 
|  | "parent": c.parent, | 
|  | }) | 
|  | return gensupport.SendRequest(c.ctx_, c.s.client, req) | 
|  | } | 
|  |  | 
|  | // Do executes the "firebasehosting.sites.domains.create" call. | 
|  | // Exactly one of *Domain or error will be non-nil. Any non-2xx status | 
|  | // code is an error. Response headers are in either | 
|  | // *Domain.ServerResponse.Header or (if a response was returned at all) | 
|  | // in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to | 
|  | // check whether the returned error was because http.StatusNotModified | 
|  | // was returned. | 
|  | func (c *SitesDomainsCreateCall) Do(opts ...googleapi.CallOption) (*Domain, error) { | 
|  | gensupport.SetOptions(c.urlParams_, opts...) | 
|  | res, err := c.doRequest("json") | 
|  | if res != nil && res.StatusCode == http.StatusNotModified { | 
|  | if res.Body != nil { | 
|  | res.Body.Close() | 
|  | } | 
|  | return nil, &googleapi.Error{ | 
|  | Code:   res.StatusCode, | 
|  | Header: res.Header, | 
|  | } | 
|  | } | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | defer googleapi.CloseBody(res) | 
|  | if err := googleapi.CheckResponse(res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | ret := &Domain{ | 
|  | ServerResponse: googleapi.ServerResponse{ | 
|  | Header:         res.Header, | 
|  | HTTPStatusCode: res.StatusCode, | 
|  | }, | 
|  | } | 
|  | target := &ret | 
|  | if err := gensupport.DecodeResponse(target, res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | return ret, nil | 
|  | // { | 
|  | //   "description": "Creates a domain mapping on the specified site.", | 
|  | //   "flatPath": "v1beta1/sites/{sitesId}/domains", | 
|  | //   "httpMethod": "POST", | 
|  | //   "id": "firebasehosting.sites.domains.create", | 
|  | //   "parameterOrder": [ | 
|  | //     "parent" | 
|  | //   ], | 
|  | //   "parameters": { | 
|  | //     "parent": { | 
|  | //       "description": "Required. The parent to create the domain association for, in the format:\n\u003ccode\u003esites/\u003cvar\u003esite-name\u003c/var\u003e\u003c/code\u003e", | 
|  | //       "location": "path", | 
|  | //       "pattern": "^sites/[^/]+$", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     } | 
|  | //   }, | 
|  | //   "path": "v1beta1/{+parent}/domains", | 
|  | //   "request": { | 
|  | //     "$ref": "Domain" | 
|  | //   }, | 
|  | //   "response": { | 
|  | //     "$ref": "Domain" | 
|  | //   }, | 
|  | //   "scopes": [ | 
|  | //     "https://www.googleapis.com/auth/cloud-platform", | 
|  | //     "https://www.googleapis.com/auth/firebase" | 
|  | //   ] | 
|  | // } | 
|  |  | 
|  | } | 
|  |  | 
|  | // method id "firebasehosting.sites.domains.delete": | 
|  |  | 
|  | type SitesDomainsDeleteCall struct { | 
|  | s          *Service | 
|  | name       string | 
|  | urlParams_ gensupport.URLParams | 
|  | ctx_       context.Context | 
|  | header_    http.Header | 
|  | } | 
|  |  | 
|  | // Delete: Deletes the existing domain mapping on the specified site. | 
|  | func (r *SitesDomainsService) Delete(name string) *SitesDomainsDeleteCall { | 
|  | c := &SitesDomainsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} | 
|  | c.name = name | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Fields allows partial responses to be retrieved. See | 
|  | // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse | 
|  | // for more information. | 
|  | func (c *SitesDomainsDeleteCall) Fields(s ...googleapi.Field) *SitesDomainsDeleteCall { | 
|  | c.urlParams_.Set("fields", googleapi.CombineFields(s)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Context sets the context to be used in this call's Do method. Any | 
|  | // pending HTTP request will be aborted if the provided context is | 
|  | // canceled. | 
|  | func (c *SitesDomainsDeleteCall) Context(ctx context.Context) *SitesDomainsDeleteCall { | 
|  | c.ctx_ = ctx | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Header returns an http.Header that can be modified by the caller to | 
|  | // add HTTP headers to the request. | 
|  | func (c *SitesDomainsDeleteCall) Header() http.Header { | 
|  | if c.header_ == nil { | 
|  | c.header_ = make(http.Header) | 
|  | } | 
|  | return c.header_ | 
|  | } | 
|  |  | 
|  | func (c *SitesDomainsDeleteCall) doRequest(alt string) (*http.Response, error) { | 
|  | reqHeaders := make(http.Header) | 
|  | reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200717") | 
|  | for k, v := range c.header_ { | 
|  | reqHeaders[k] = v | 
|  | } | 
|  | reqHeaders.Set("User-Agent", c.s.userAgent()) | 
|  | var body io.Reader = nil | 
|  | c.urlParams_.Set("alt", alt) | 
|  | c.urlParams_.Set("prettyPrint", "false") | 
|  | urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+name}") | 
|  | urls += "?" + c.urlParams_.Encode() | 
|  | req, err := http.NewRequest("DELETE", urls, body) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | req.Header = reqHeaders | 
|  | googleapi.Expand(req.URL, map[string]string{ | 
|  | "name": c.name, | 
|  | }) | 
|  | return gensupport.SendRequest(c.ctx_, c.s.client, req) | 
|  | } | 
|  |  | 
|  | // Do executes the "firebasehosting.sites.domains.delete" call. | 
|  | // Exactly one of *Empty or error will be non-nil. Any non-2xx status | 
|  | // code is an error. Response headers are in either | 
|  | // *Empty.ServerResponse.Header or (if a response was returned at all) | 
|  | // in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to | 
|  | // check whether the returned error was because http.StatusNotModified | 
|  | // was returned. | 
|  | func (c *SitesDomainsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) { | 
|  | gensupport.SetOptions(c.urlParams_, opts...) | 
|  | res, err := c.doRequest("json") | 
|  | if res != nil && res.StatusCode == http.StatusNotModified { | 
|  | if res.Body != nil { | 
|  | res.Body.Close() | 
|  | } | 
|  | return nil, &googleapi.Error{ | 
|  | Code:   res.StatusCode, | 
|  | Header: res.Header, | 
|  | } | 
|  | } | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | defer googleapi.CloseBody(res) | 
|  | if err := googleapi.CheckResponse(res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | ret := &Empty{ | 
|  | ServerResponse: googleapi.ServerResponse{ | 
|  | Header:         res.Header, | 
|  | HTTPStatusCode: res.StatusCode, | 
|  | }, | 
|  | } | 
|  | target := &ret | 
|  | if err := gensupport.DecodeResponse(target, res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | return ret, nil | 
|  | // { | 
|  | //   "description": "Deletes the existing domain mapping on the specified site.", | 
|  | //   "flatPath": "v1beta1/sites/{sitesId}/domains/{domainsId}", | 
|  | //   "httpMethod": "DELETE", | 
|  | //   "id": "firebasehosting.sites.domains.delete", | 
|  | //   "parameterOrder": [ | 
|  | //     "name" | 
|  | //   ], | 
|  | //   "parameters": { | 
|  | //     "name": { | 
|  | //       "description": "Required. The name of the domain association to delete.", | 
|  | //       "location": "path", | 
|  | //       "pattern": "^sites/[^/]+/domains/[^/]+$", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     } | 
|  | //   }, | 
|  | //   "path": "v1beta1/{+name}", | 
|  | //   "response": { | 
|  | //     "$ref": "Empty" | 
|  | //   }, | 
|  | //   "scopes": [ | 
|  | //     "https://www.googleapis.com/auth/cloud-platform", | 
|  | //     "https://www.googleapis.com/auth/firebase" | 
|  | //   ] | 
|  | // } | 
|  |  | 
|  | } | 
|  |  | 
|  | // method id "firebasehosting.sites.domains.get": | 
|  |  | 
|  | type SitesDomainsGetCall struct { | 
|  | s            *Service | 
|  | name         string | 
|  | urlParams_   gensupport.URLParams | 
|  | ifNoneMatch_ string | 
|  | ctx_         context.Context | 
|  | header_      http.Header | 
|  | } | 
|  |  | 
|  | // Get: Gets a domain mapping on the specified site. | 
|  | func (r *SitesDomainsService) Get(name string) *SitesDomainsGetCall { | 
|  | c := &SitesDomainsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} | 
|  | c.name = name | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Fields allows partial responses to be retrieved. See | 
|  | // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse | 
|  | // for more information. | 
|  | func (c *SitesDomainsGetCall) Fields(s ...googleapi.Field) *SitesDomainsGetCall { | 
|  | c.urlParams_.Set("fields", googleapi.CombineFields(s)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // IfNoneMatch sets the optional parameter which makes the operation | 
|  | // fail if the object's ETag matches the given value. This is useful for | 
|  | // getting updates only after the object has changed since the last | 
|  | // request. Use googleapi.IsNotModified to check whether the response | 
|  | // error from Do is the result of In-None-Match. | 
|  | func (c *SitesDomainsGetCall) IfNoneMatch(entityTag string) *SitesDomainsGetCall { | 
|  | c.ifNoneMatch_ = entityTag | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Context sets the context to be used in this call's Do method. Any | 
|  | // pending HTTP request will be aborted if the provided context is | 
|  | // canceled. | 
|  | func (c *SitesDomainsGetCall) Context(ctx context.Context) *SitesDomainsGetCall { | 
|  | c.ctx_ = ctx | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Header returns an http.Header that can be modified by the caller to | 
|  | // add HTTP headers to the request. | 
|  | func (c *SitesDomainsGetCall) Header() http.Header { | 
|  | if c.header_ == nil { | 
|  | c.header_ = make(http.Header) | 
|  | } | 
|  | return c.header_ | 
|  | } | 
|  |  | 
|  | func (c *SitesDomainsGetCall) doRequest(alt string) (*http.Response, error) { | 
|  | reqHeaders := make(http.Header) | 
|  | reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200717") | 
|  | for k, v := range c.header_ { | 
|  | reqHeaders[k] = v | 
|  | } | 
|  | reqHeaders.Set("User-Agent", c.s.userAgent()) | 
|  | if c.ifNoneMatch_ != "" { | 
|  | reqHeaders.Set("If-None-Match", c.ifNoneMatch_) | 
|  | } | 
|  | var body io.Reader = nil | 
|  | c.urlParams_.Set("alt", alt) | 
|  | c.urlParams_.Set("prettyPrint", "false") | 
|  | urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+name}") | 
|  | urls += "?" + c.urlParams_.Encode() | 
|  | req, err := http.NewRequest("GET", urls, body) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | req.Header = reqHeaders | 
|  | googleapi.Expand(req.URL, map[string]string{ | 
|  | "name": c.name, | 
|  | }) | 
|  | return gensupport.SendRequest(c.ctx_, c.s.client, req) | 
|  | } | 
|  |  | 
|  | // Do executes the "firebasehosting.sites.domains.get" call. | 
|  | // Exactly one of *Domain or error will be non-nil. Any non-2xx status | 
|  | // code is an error. Response headers are in either | 
|  | // *Domain.ServerResponse.Header or (if a response was returned at all) | 
|  | // in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to | 
|  | // check whether the returned error was because http.StatusNotModified | 
|  | // was returned. | 
|  | func (c *SitesDomainsGetCall) Do(opts ...googleapi.CallOption) (*Domain, error) { | 
|  | gensupport.SetOptions(c.urlParams_, opts...) | 
|  | res, err := c.doRequest("json") | 
|  | if res != nil && res.StatusCode == http.StatusNotModified { | 
|  | if res.Body != nil { | 
|  | res.Body.Close() | 
|  | } | 
|  | return nil, &googleapi.Error{ | 
|  | Code:   res.StatusCode, | 
|  | Header: res.Header, | 
|  | } | 
|  | } | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | defer googleapi.CloseBody(res) | 
|  | if err := googleapi.CheckResponse(res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | ret := &Domain{ | 
|  | ServerResponse: googleapi.ServerResponse{ | 
|  | Header:         res.Header, | 
|  | HTTPStatusCode: res.StatusCode, | 
|  | }, | 
|  | } | 
|  | target := &ret | 
|  | if err := gensupport.DecodeResponse(target, res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | return ret, nil | 
|  | // { | 
|  | //   "description": "Gets a domain mapping on the specified site.", | 
|  | //   "flatPath": "v1beta1/sites/{sitesId}/domains/{domainsId}", | 
|  | //   "httpMethod": "GET", | 
|  | //   "id": "firebasehosting.sites.domains.get", | 
|  | //   "parameterOrder": [ | 
|  | //     "name" | 
|  | //   ], | 
|  | //   "parameters": { | 
|  | //     "name": { | 
|  | //       "description": "Required. The name of the domain configuration to get.", | 
|  | //       "location": "path", | 
|  | //       "pattern": "^sites/[^/]+/domains/[^/]+$", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     } | 
|  | //   }, | 
|  | //   "path": "v1beta1/{+name}", | 
|  | //   "response": { | 
|  | //     "$ref": "Domain" | 
|  | //   }, | 
|  | //   "scopes": [ | 
|  | //     "https://www.googleapis.com/auth/cloud-platform", | 
|  | //     "https://www.googleapis.com/auth/cloud-platform.read-only", | 
|  | //     "https://www.googleapis.com/auth/firebase", | 
|  | //     "https://www.googleapis.com/auth/firebase.readonly" | 
|  | //   ] | 
|  | // } | 
|  |  | 
|  | } | 
|  |  | 
|  | // method id "firebasehosting.sites.domains.list": | 
|  |  | 
|  | type SitesDomainsListCall struct { | 
|  | s            *Service | 
|  | parent       string | 
|  | urlParams_   gensupport.URLParams | 
|  | ifNoneMatch_ string | 
|  | ctx_         context.Context | 
|  | header_      http.Header | 
|  | } | 
|  |  | 
|  | // List: Lists the domains for the specified site. | 
|  | func (r *SitesDomainsService) List(parent string) *SitesDomainsListCall { | 
|  | c := &SitesDomainsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} | 
|  | c.parent = parent | 
|  | return c | 
|  | } | 
|  |  | 
|  | // PageSize sets the optional parameter "pageSize": The page size to | 
|  | // return. Defaults to 50. | 
|  | func (c *SitesDomainsListCall) PageSize(pageSize int64) *SitesDomainsListCall { | 
|  | c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // PageToken sets the optional parameter "pageToken": The | 
|  | // next_page_token from a previous request, if provided. | 
|  | func (c *SitesDomainsListCall) PageToken(pageToken string) *SitesDomainsListCall { | 
|  | c.urlParams_.Set("pageToken", pageToken) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Fields allows partial responses to be retrieved. See | 
|  | // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse | 
|  | // for more information. | 
|  | func (c *SitesDomainsListCall) Fields(s ...googleapi.Field) *SitesDomainsListCall { | 
|  | c.urlParams_.Set("fields", googleapi.CombineFields(s)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // IfNoneMatch sets the optional parameter which makes the operation | 
|  | // fail if the object's ETag matches the given value. This is useful for | 
|  | // getting updates only after the object has changed since the last | 
|  | // request. Use googleapi.IsNotModified to check whether the response | 
|  | // error from Do is the result of In-None-Match. | 
|  | func (c *SitesDomainsListCall) IfNoneMatch(entityTag string) *SitesDomainsListCall { | 
|  | c.ifNoneMatch_ = entityTag | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Context sets the context to be used in this call's Do method. Any | 
|  | // pending HTTP request will be aborted if the provided context is | 
|  | // canceled. | 
|  | func (c *SitesDomainsListCall) Context(ctx context.Context) *SitesDomainsListCall { | 
|  | c.ctx_ = ctx | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Header returns an http.Header that can be modified by the caller to | 
|  | // add HTTP headers to the request. | 
|  | func (c *SitesDomainsListCall) Header() http.Header { | 
|  | if c.header_ == nil { | 
|  | c.header_ = make(http.Header) | 
|  | } | 
|  | return c.header_ | 
|  | } | 
|  |  | 
|  | func (c *SitesDomainsListCall) doRequest(alt string) (*http.Response, error) { | 
|  | reqHeaders := make(http.Header) | 
|  | reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200717") | 
|  | for k, v := range c.header_ { | 
|  | reqHeaders[k] = v | 
|  | } | 
|  | reqHeaders.Set("User-Agent", c.s.userAgent()) | 
|  | if c.ifNoneMatch_ != "" { | 
|  | reqHeaders.Set("If-None-Match", c.ifNoneMatch_) | 
|  | } | 
|  | var body io.Reader = nil | 
|  | c.urlParams_.Set("alt", alt) | 
|  | c.urlParams_.Set("prettyPrint", "false") | 
|  | urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+parent}/domains") | 
|  | urls += "?" + c.urlParams_.Encode() | 
|  | req, err := http.NewRequest("GET", urls, body) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | req.Header = reqHeaders | 
|  | googleapi.Expand(req.URL, map[string]string{ | 
|  | "parent": c.parent, | 
|  | }) | 
|  | return gensupport.SendRequest(c.ctx_, c.s.client, req) | 
|  | } | 
|  |  | 
|  | // Do executes the "firebasehosting.sites.domains.list" call. | 
|  | // Exactly one of *ListDomainsResponse or error will be non-nil. Any | 
|  | // non-2xx status code is an error. Response headers are in either | 
|  | // *ListDomainsResponse.ServerResponse.Header or (if a response was | 
|  | // returned at all) in error.(*googleapi.Error).Header. Use | 
|  | // googleapi.IsNotModified to check whether the returned error was | 
|  | // because http.StatusNotModified was returned. | 
|  | func (c *SitesDomainsListCall) Do(opts ...googleapi.CallOption) (*ListDomainsResponse, error) { | 
|  | gensupport.SetOptions(c.urlParams_, opts...) | 
|  | res, err := c.doRequest("json") | 
|  | if res != nil && res.StatusCode == http.StatusNotModified { | 
|  | if res.Body != nil { | 
|  | res.Body.Close() | 
|  | } | 
|  | return nil, &googleapi.Error{ | 
|  | Code:   res.StatusCode, | 
|  | Header: res.Header, | 
|  | } | 
|  | } | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | defer googleapi.CloseBody(res) | 
|  | if err := googleapi.CheckResponse(res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | ret := &ListDomainsResponse{ | 
|  | ServerResponse: googleapi.ServerResponse{ | 
|  | Header:         res.Header, | 
|  | HTTPStatusCode: res.StatusCode, | 
|  | }, | 
|  | } | 
|  | target := &ret | 
|  | if err := gensupport.DecodeResponse(target, res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | return ret, nil | 
|  | // { | 
|  | //   "description": "Lists the domains for the specified site.", | 
|  | //   "flatPath": "v1beta1/sites/{sitesId}/domains", | 
|  | //   "httpMethod": "GET", | 
|  | //   "id": "firebasehosting.sites.domains.list", | 
|  | //   "parameterOrder": [ | 
|  | //     "parent" | 
|  | //   ], | 
|  | //   "parameters": { | 
|  | //     "pageSize": { | 
|  | //       "description": "The page size to return. Defaults to 50.", | 
|  | //       "format": "int32", | 
|  | //       "location": "query", | 
|  | //       "type": "integer" | 
|  | //     }, | 
|  | //     "pageToken": { | 
|  | //       "description": "The next_page_token from a previous request, if provided.", | 
|  | //       "location": "query", | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "parent": { | 
|  | //       "description": "Required. The parent for which to list domains, in the format:\n\u003ccode\u003esites/\u003cvar\u003esite-name\u003c/var\u003e\u003c/code\u003e", | 
|  | //       "location": "path", | 
|  | //       "pattern": "^sites/[^/]+$", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     } | 
|  | //   }, | 
|  | //   "path": "v1beta1/{+parent}/domains", | 
|  | //   "response": { | 
|  | //     "$ref": "ListDomainsResponse" | 
|  | //   }, | 
|  | //   "scopes": [ | 
|  | //     "https://www.googleapis.com/auth/cloud-platform", | 
|  | //     "https://www.googleapis.com/auth/cloud-platform.read-only", | 
|  | //     "https://www.googleapis.com/auth/firebase", | 
|  | //     "https://www.googleapis.com/auth/firebase.readonly" | 
|  | //   ] | 
|  | // } | 
|  |  | 
|  | } | 
|  |  | 
|  | // Pages invokes f for each page of results. | 
|  | // A non-nil error returned from f will halt the iteration. | 
|  | // The provided context supersedes any context provided to the Context method. | 
|  | func (c *SitesDomainsListCall) Pages(ctx context.Context, f func(*ListDomainsResponse) error) error { | 
|  | c.ctx_ = ctx | 
|  | defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point | 
|  | for { | 
|  | x, err := c.Do() | 
|  | if err != nil { | 
|  | return err | 
|  | } | 
|  | if err := f(x); err != nil { | 
|  | return err | 
|  | } | 
|  | if x.NextPageToken == "" { | 
|  | return nil | 
|  | } | 
|  | c.PageToken(x.NextPageToken) | 
|  | } | 
|  | } | 
|  |  | 
|  | // method id "firebasehosting.sites.domains.update": | 
|  |  | 
|  | type SitesDomainsUpdateCall struct { | 
|  | s          *Service | 
|  | name       string | 
|  | domain     *Domain | 
|  | urlParams_ gensupport.URLParams | 
|  | ctx_       context.Context | 
|  | header_    http.Header | 
|  | } | 
|  |  | 
|  | // Update: Updates the specified domain mapping, creating the mapping as | 
|  | // if it does | 
|  | // not exist. | 
|  | func (r *SitesDomainsService) Update(name string, domain *Domain) *SitesDomainsUpdateCall { | 
|  | c := &SitesDomainsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)} | 
|  | c.name = name | 
|  | c.domain = domain | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Fields allows partial responses to be retrieved. See | 
|  | // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse | 
|  | // for more information. | 
|  | func (c *SitesDomainsUpdateCall) Fields(s ...googleapi.Field) *SitesDomainsUpdateCall { | 
|  | c.urlParams_.Set("fields", googleapi.CombineFields(s)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Context sets the context to be used in this call's Do method. Any | 
|  | // pending HTTP request will be aborted if the provided context is | 
|  | // canceled. | 
|  | func (c *SitesDomainsUpdateCall) Context(ctx context.Context) *SitesDomainsUpdateCall { | 
|  | c.ctx_ = ctx | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Header returns an http.Header that can be modified by the caller to | 
|  | // add HTTP headers to the request. | 
|  | func (c *SitesDomainsUpdateCall) Header() http.Header { | 
|  | if c.header_ == nil { | 
|  | c.header_ = make(http.Header) | 
|  | } | 
|  | return c.header_ | 
|  | } | 
|  |  | 
|  | func (c *SitesDomainsUpdateCall) doRequest(alt string) (*http.Response, error) { | 
|  | reqHeaders := make(http.Header) | 
|  | reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200717") | 
|  | for k, v := range c.header_ { | 
|  | reqHeaders[k] = v | 
|  | } | 
|  | reqHeaders.Set("User-Agent", c.s.userAgent()) | 
|  | var body io.Reader = nil | 
|  | body, err := googleapi.WithoutDataWrapper.JSONReader(c.domain) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | reqHeaders.Set("Content-Type", "application/json") | 
|  | c.urlParams_.Set("alt", alt) | 
|  | c.urlParams_.Set("prettyPrint", "false") | 
|  | urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+name}") | 
|  | urls += "?" + c.urlParams_.Encode() | 
|  | req, err := http.NewRequest("PUT", urls, body) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | req.Header = reqHeaders | 
|  | googleapi.Expand(req.URL, map[string]string{ | 
|  | "name": c.name, | 
|  | }) | 
|  | return gensupport.SendRequest(c.ctx_, c.s.client, req) | 
|  | } | 
|  |  | 
|  | // Do executes the "firebasehosting.sites.domains.update" call. | 
|  | // Exactly one of *Domain or error will be non-nil. Any non-2xx status | 
|  | // code is an error. Response headers are in either | 
|  | // *Domain.ServerResponse.Header or (if a response was returned at all) | 
|  | // in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to | 
|  | // check whether the returned error was because http.StatusNotModified | 
|  | // was returned. | 
|  | func (c *SitesDomainsUpdateCall) Do(opts ...googleapi.CallOption) (*Domain, error) { | 
|  | gensupport.SetOptions(c.urlParams_, opts...) | 
|  | res, err := c.doRequest("json") | 
|  | if res != nil && res.StatusCode == http.StatusNotModified { | 
|  | if res.Body != nil { | 
|  | res.Body.Close() | 
|  | } | 
|  | return nil, &googleapi.Error{ | 
|  | Code:   res.StatusCode, | 
|  | Header: res.Header, | 
|  | } | 
|  | } | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | defer googleapi.CloseBody(res) | 
|  | if err := googleapi.CheckResponse(res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | ret := &Domain{ | 
|  | ServerResponse: googleapi.ServerResponse{ | 
|  | Header:         res.Header, | 
|  | HTTPStatusCode: res.StatusCode, | 
|  | }, | 
|  | } | 
|  | target := &ret | 
|  | if err := gensupport.DecodeResponse(target, res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | return ret, nil | 
|  | // { | 
|  | //   "description": "Updates the specified domain mapping, creating the mapping as if it does\nnot exist.", | 
|  | //   "flatPath": "v1beta1/sites/{sitesId}/domains/{domainsId}", | 
|  | //   "httpMethod": "PUT", | 
|  | //   "id": "firebasehosting.sites.domains.update", | 
|  | //   "parameterOrder": [ | 
|  | //     "name" | 
|  | //   ], | 
|  | //   "parameters": { | 
|  | //     "name": { | 
|  | //       "description": "Required. The name of the domain association to update or create, if an\nassociation doesn't already exist.", | 
|  | //       "location": "path", | 
|  | //       "pattern": "^sites/[^/]+/domains/[^/]+$", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     } | 
|  | //   }, | 
|  | //   "path": "v1beta1/{+name}", | 
|  | //   "request": { | 
|  | //     "$ref": "Domain" | 
|  | //   }, | 
|  | //   "response": { | 
|  | //     "$ref": "Domain" | 
|  | //   }, | 
|  | //   "scopes": [ | 
|  | //     "https://www.googleapis.com/auth/cloud-platform", | 
|  | //     "https://www.googleapis.com/auth/firebase" | 
|  | //   ] | 
|  | // } | 
|  |  | 
|  | } | 
|  |  | 
|  | // method id "firebasehosting.sites.releases.create": | 
|  |  | 
|  | type SitesReleasesCreateCall struct { | 
|  | s          *Service | 
|  | parent     string | 
|  | release    *Release | 
|  | urlParams_ gensupport.URLParams | 
|  | ctx_       context.Context | 
|  | header_    http.Header | 
|  | } | 
|  |  | 
|  | // Create: Creates a new release which makes the content of the | 
|  | // specified version | 
|  | // actively display on the appropriate URL(s). | 
|  | func (r *SitesReleasesService) Create(parent string, release *Release) *SitesReleasesCreateCall { | 
|  | c := &SitesReleasesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)} | 
|  | c.parent = parent | 
|  | c.release = release | 
|  | return c | 
|  | } | 
|  |  | 
|  | // VersionName sets the optional parameter "versionName": The unique | 
|  | // identifier for a version, in the | 
|  | // format: | 
|  | // <code>/sites/<var>site-name</var>/versions/<var>versionID</var | 
|  | // ></code> | 
|  | // The <var>site-name</var> in this version identifier must match | 
|  | // the | 
|  | // <var>site-name</var> in the `parent` parameter. | 
|  | // <br> | 
|  | // <br>This query parameter must be empty if the `type` field in | 
|  | // the | 
|  | // request body is `SITE_DISABLE`. | 
|  | func (c *SitesReleasesCreateCall) VersionName(versionName string) *SitesReleasesCreateCall { | 
|  | c.urlParams_.Set("versionName", versionName) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Fields allows partial responses to be retrieved. See | 
|  | // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse | 
|  | // for more information. | 
|  | func (c *SitesReleasesCreateCall) Fields(s ...googleapi.Field) *SitesReleasesCreateCall { | 
|  | c.urlParams_.Set("fields", googleapi.CombineFields(s)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Context sets the context to be used in this call's Do method. Any | 
|  | // pending HTTP request will be aborted if the provided context is | 
|  | // canceled. | 
|  | func (c *SitesReleasesCreateCall) Context(ctx context.Context) *SitesReleasesCreateCall { | 
|  | c.ctx_ = ctx | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Header returns an http.Header that can be modified by the caller to | 
|  | // add HTTP headers to the request. | 
|  | func (c *SitesReleasesCreateCall) Header() http.Header { | 
|  | if c.header_ == nil { | 
|  | c.header_ = make(http.Header) | 
|  | } | 
|  | return c.header_ | 
|  | } | 
|  |  | 
|  | func (c *SitesReleasesCreateCall) doRequest(alt string) (*http.Response, error) { | 
|  | reqHeaders := make(http.Header) | 
|  | reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200717") | 
|  | for k, v := range c.header_ { | 
|  | reqHeaders[k] = v | 
|  | } | 
|  | reqHeaders.Set("User-Agent", c.s.userAgent()) | 
|  | var body io.Reader = nil | 
|  | body, err := googleapi.WithoutDataWrapper.JSONReader(c.release) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | reqHeaders.Set("Content-Type", "application/json") | 
|  | c.urlParams_.Set("alt", alt) | 
|  | c.urlParams_.Set("prettyPrint", "false") | 
|  | urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+parent}/releases") | 
|  | urls += "?" + c.urlParams_.Encode() | 
|  | req, err := http.NewRequest("POST", urls, body) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | req.Header = reqHeaders | 
|  | googleapi.Expand(req.URL, map[string]string{ | 
|  | "parent": c.parent, | 
|  | }) | 
|  | return gensupport.SendRequest(c.ctx_, c.s.client, req) | 
|  | } | 
|  |  | 
|  | // Do executes the "firebasehosting.sites.releases.create" call. | 
|  | // Exactly one of *Release or error will be non-nil. Any non-2xx status | 
|  | // code is an error. Response headers are in either | 
|  | // *Release.ServerResponse.Header or (if a response was returned at all) | 
|  | // in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to | 
|  | // check whether the returned error was because http.StatusNotModified | 
|  | // was returned. | 
|  | func (c *SitesReleasesCreateCall) Do(opts ...googleapi.CallOption) (*Release, error) { | 
|  | gensupport.SetOptions(c.urlParams_, opts...) | 
|  | res, err := c.doRequest("json") | 
|  | if res != nil && res.StatusCode == http.StatusNotModified { | 
|  | if res.Body != nil { | 
|  | res.Body.Close() | 
|  | } | 
|  | return nil, &googleapi.Error{ | 
|  | Code:   res.StatusCode, | 
|  | Header: res.Header, | 
|  | } | 
|  | } | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | defer googleapi.CloseBody(res) | 
|  | if err := googleapi.CheckResponse(res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | ret := &Release{ | 
|  | ServerResponse: googleapi.ServerResponse{ | 
|  | Header:         res.Header, | 
|  | HTTPStatusCode: res.StatusCode, | 
|  | }, | 
|  | } | 
|  | target := &ret | 
|  | if err := gensupport.DecodeResponse(target, res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | return ret, nil | 
|  | // { | 
|  | //   "description": "Creates a new release which makes the content of the specified version\nactively display on the appropriate URL(s).", | 
|  | //   "flatPath": "v1beta1/sites/{sitesId}/releases", | 
|  | //   "httpMethod": "POST", | 
|  | //   "id": "firebasehosting.sites.releases.create", | 
|  | //   "parameterOrder": [ | 
|  | //     "parent" | 
|  | //   ], | 
|  | //   "parameters": { | 
|  | //     "parent": { | 
|  | //       "description": "Required. The site that the release belongs to, in the format:\n\u003ccode\u003esites/\u003cvar\u003esite-name\u003c/var\u003e\u003c/code\u003e", | 
|  | //       "location": "path", | 
|  | //       "pattern": "^sites/[^/]+$", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "versionName": { | 
|  | //       "description": "The unique identifier for a version, in the format:\n\u003ccode\u003e/sites/\u003cvar\u003esite-name\u003c/var\u003e/versions/\u003cvar\u003eversionID\u003c/var\u003e\u003c/code\u003e\nThe \u003cvar\u003esite-name\u003c/var\u003e in this version identifier must match the\n\u003cvar\u003esite-name\u003c/var\u003e in the `parent` parameter.\n\u003cbr\u003e\n\u003cbr\u003eThis query parameter must be empty if the `type` field in the\nrequest body is `SITE_DISABLE`.", | 
|  | //       "location": "query", | 
|  | //       "type": "string" | 
|  | //     } | 
|  | //   }, | 
|  | //   "path": "v1beta1/{+parent}/releases", | 
|  | //   "request": { | 
|  | //     "$ref": "Release" | 
|  | //   }, | 
|  | //   "response": { | 
|  | //     "$ref": "Release" | 
|  | //   }, | 
|  | //   "scopes": [ | 
|  | //     "https://www.googleapis.com/auth/cloud-platform", | 
|  | //     "https://www.googleapis.com/auth/firebase" | 
|  | //   ] | 
|  | // } | 
|  |  | 
|  | } | 
|  |  | 
|  | // method id "firebasehosting.sites.releases.list": | 
|  |  | 
|  | type SitesReleasesListCall struct { | 
|  | s            *Service | 
|  | parent       string | 
|  | urlParams_   gensupport.URLParams | 
|  | ifNoneMatch_ string | 
|  | ctx_         context.Context | 
|  | header_      http.Header | 
|  | } | 
|  |  | 
|  | // List: Lists the releases that have been created on the specified | 
|  | // site. | 
|  | func (r *SitesReleasesService) List(parent string) *SitesReleasesListCall { | 
|  | c := &SitesReleasesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} | 
|  | c.parent = parent | 
|  | return c | 
|  | } | 
|  |  | 
|  | // PageSize sets the optional parameter "pageSize": The page size to | 
|  | // return. Defaults to 100. | 
|  | func (c *SitesReleasesListCall) PageSize(pageSize int64) *SitesReleasesListCall { | 
|  | c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // PageToken sets the optional parameter "pageToken": The | 
|  | // next_page_token from a previous request, if provided. | 
|  | func (c *SitesReleasesListCall) PageToken(pageToken string) *SitesReleasesListCall { | 
|  | c.urlParams_.Set("pageToken", pageToken) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Fields allows partial responses to be retrieved. See | 
|  | // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse | 
|  | // for more information. | 
|  | func (c *SitesReleasesListCall) Fields(s ...googleapi.Field) *SitesReleasesListCall { | 
|  | c.urlParams_.Set("fields", googleapi.CombineFields(s)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // IfNoneMatch sets the optional parameter which makes the operation | 
|  | // fail if the object's ETag matches the given value. This is useful for | 
|  | // getting updates only after the object has changed since the last | 
|  | // request. Use googleapi.IsNotModified to check whether the response | 
|  | // error from Do is the result of In-None-Match. | 
|  | func (c *SitesReleasesListCall) IfNoneMatch(entityTag string) *SitesReleasesListCall { | 
|  | c.ifNoneMatch_ = entityTag | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Context sets the context to be used in this call's Do method. Any | 
|  | // pending HTTP request will be aborted if the provided context is | 
|  | // canceled. | 
|  | func (c *SitesReleasesListCall) Context(ctx context.Context) *SitesReleasesListCall { | 
|  | c.ctx_ = ctx | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Header returns an http.Header that can be modified by the caller to | 
|  | // add HTTP headers to the request. | 
|  | func (c *SitesReleasesListCall) Header() http.Header { | 
|  | if c.header_ == nil { | 
|  | c.header_ = make(http.Header) | 
|  | } | 
|  | return c.header_ | 
|  | } | 
|  |  | 
|  | func (c *SitesReleasesListCall) doRequest(alt string) (*http.Response, error) { | 
|  | reqHeaders := make(http.Header) | 
|  | reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200717") | 
|  | for k, v := range c.header_ { | 
|  | reqHeaders[k] = v | 
|  | } | 
|  | reqHeaders.Set("User-Agent", c.s.userAgent()) | 
|  | if c.ifNoneMatch_ != "" { | 
|  | reqHeaders.Set("If-None-Match", c.ifNoneMatch_) | 
|  | } | 
|  | var body io.Reader = nil | 
|  | c.urlParams_.Set("alt", alt) | 
|  | c.urlParams_.Set("prettyPrint", "false") | 
|  | urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+parent}/releases") | 
|  | urls += "?" + c.urlParams_.Encode() | 
|  | req, err := http.NewRequest("GET", urls, body) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | req.Header = reqHeaders | 
|  | googleapi.Expand(req.URL, map[string]string{ | 
|  | "parent": c.parent, | 
|  | }) | 
|  | return gensupport.SendRequest(c.ctx_, c.s.client, req) | 
|  | } | 
|  |  | 
|  | // Do executes the "firebasehosting.sites.releases.list" call. | 
|  | // Exactly one of *ListReleasesResponse or error will be non-nil. Any | 
|  | // non-2xx status code is an error. Response headers are in either | 
|  | // *ListReleasesResponse.ServerResponse.Header or (if a response was | 
|  | // returned at all) in error.(*googleapi.Error).Header. Use | 
|  | // googleapi.IsNotModified to check whether the returned error was | 
|  | // because http.StatusNotModified was returned. | 
|  | func (c *SitesReleasesListCall) Do(opts ...googleapi.CallOption) (*ListReleasesResponse, error) { | 
|  | gensupport.SetOptions(c.urlParams_, opts...) | 
|  | res, err := c.doRequest("json") | 
|  | if res != nil && res.StatusCode == http.StatusNotModified { | 
|  | if res.Body != nil { | 
|  | res.Body.Close() | 
|  | } | 
|  | return nil, &googleapi.Error{ | 
|  | Code:   res.StatusCode, | 
|  | Header: res.Header, | 
|  | } | 
|  | } | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | defer googleapi.CloseBody(res) | 
|  | if err := googleapi.CheckResponse(res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | ret := &ListReleasesResponse{ | 
|  | ServerResponse: googleapi.ServerResponse{ | 
|  | Header:         res.Header, | 
|  | HTTPStatusCode: res.StatusCode, | 
|  | }, | 
|  | } | 
|  | target := &ret | 
|  | if err := gensupport.DecodeResponse(target, res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | return ret, nil | 
|  | // { | 
|  | //   "description": "Lists the releases that have been created on the specified site.", | 
|  | //   "flatPath": "v1beta1/sites/{sitesId}/releases", | 
|  | //   "httpMethod": "GET", | 
|  | //   "id": "firebasehosting.sites.releases.list", | 
|  | //   "parameterOrder": [ | 
|  | //     "parent" | 
|  | //   ], | 
|  | //   "parameters": { | 
|  | //     "pageSize": { | 
|  | //       "description": "The page size to return. Defaults to 100.", | 
|  | //       "format": "int32", | 
|  | //       "location": "query", | 
|  | //       "type": "integer" | 
|  | //     }, | 
|  | //     "pageToken": { | 
|  | //       "description": "The next_page_token from a previous request, if provided.", | 
|  | //       "location": "query", | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "parent": { | 
|  | //       "description": "Required. The parent for which to list files, in the format:\n\u003ccode\u003esites/\u003cvar\u003esite-name\u003c/var\u003e\u003c/code\u003e", | 
|  | //       "location": "path", | 
|  | //       "pattern": "^sites/[^/]+$", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     } | 
|  | //   }, | 
|  | //   "path": "v1beta1/{+parent}/releases", | 
|  | //   "response": { | 
|  | //     "$ref": "ListReleasesResponse" | 
|  | //   }, | 
|  | //   "scopes": [ | 
|  | //     "https://www.googleapis.com/auth/cloud-platform", | 
|  | //     "https://www.googleapis.com/auth/cloud-platform.read-only", | 
|  | //     "https://www.googleapis.com/auth/firebase", | 
|  | //     "https://www.googleapis.com/auth/firebase.readonly" | 
|  | //   ] | 
|  | // } | 
|  |  | 
|  | } | 
|  |  | 
|  | // Pages invokes f for each page of results. | 
|  | // A non-nil error returned from f will halt the iteration. | 
|  | // The provided context supersedes any context provided to the Context method. | 
|  | func (c *SitesReleasesListCall) Pages(ctx context.Context, f func(*ListReleasesResponse) error) error { | 
|  | c.ctx_ = ctx | 
|  | defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point | 
|  | for { | 
|  | x, err := c.Do() | 
|  | if err != nil { | 
|  | return err | 
|  | } | 
|  | if err := f(x); err != nil { | 
|  | return err | 
|  | } | 
|  | if x.NextPageToken == "" { | 
|  | return nil | 
|  | } | 
|  | c.PageToken(x.NextPageToken) | 
|  | } | 
|  | } | 
|  |  | 
|  | // method id "firebasehosting.sites.versions.create": | 
|  |  | 
|  | type SitesVersionsCreateCall struct { | 
|  | s          *Service | 
|  | parent     string | 
|  | version    *Version | 
|  | urlParams_ gensupport.URLParams | 
|  | ctx_       context.Context | 
|  | header_    http.Header | 
|  | } | 
|  |  | 
|  | // Create: Creates a new version for a site. | 
|  | func (r *SitesVersionsService) Create(parent string, version *Version) *SitesVersionsCreateCall { | 
|  | c := &SitesVersionsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)} | 
|  | c.parent = parent | 
|  | c.version = version | 
|  | return c | 
|  | } | 
|  |  | 
|  | // SizeBytes sets the optional parameter "sizeBytes": The self-reported | 
|  | // size of the version. This value is used for a pre-emptive | 
|  | // quota check for legacy version uploads. | 
|  | func (c *SitesVersionsCreateCall) SizeBytes(sizeBytes int64) *SitesVersionsCreateCall { | 
|  | c.urlParams_.Set("sizeBytes", fmt.Sprint(sizeBytes)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // VersionId sets the optional parameter "versionId": A unique id for | 
|  | // the new version. This is only specified for legacy version | 
|  | // creations. | 
|  | func (c *SitesVersionsCreateCall) VersionId(versionId string) *SitesVersionsCreateCall { | 
|  | c.urlParams_.Set("versionId", versionId) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Fields allows partial responses to be retrieved. See | 
|  | // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse | 
|  | // for more information. | 
|  | func (c *SitesVersionsCreateCall) Fields(s ...googleapi.Field) *SitesVersionsCreateCall { | 
|  | c.urlParams_.Set("fields", googleapi.CombineFields(s)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Context sets the context to be used in this call's Do method. Any | 
|  | // pending HTTP request will be aborted if the provided context is | 
|  | // canceled. | 
|  | func (c *SitesVersionsCreateCall) Context(ctx context.Context) *SitesVersionsCreateCall { | 
|  | c.ctx_ = ctx | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Header returns an http.Header that can be modified by the caller to | 
|  | // add HTTP headers to the request. | 
|  | func (c *SitesVersionsCreateCall) Header() http.Header { | 
|  | if c.header_ == nil { | 
|  | c.header_ = make(http.Header) | 
|  | } | 
|  | return c.header_ | 
|  | } | 
|  |  | 
|  | func (c *SitesVersionsCreateCall) doRequest(alt string) (*http.Response, error) { | 
|  | reqHeaders := make(http.Header) | 
|  | reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200717") | 
|  | for k, v := range c.header_ { | 
|  | reqHeaders[k] = v | 
|  | } | 
|  | reqHeaders.Set("User-Agent", c.s.userAgent()) | 
|  | var body io.Reader = nil | 
|  | body, err := googleapi.WithoutDataWrapper.JSONReader(c.version) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | reqHeaders.Set("Content-Type", "application/json") | 
|  | c.urlParams_.Set("alt", alt) | 
|  | c.urlParams_.Set("prettyPrint", "false") | 
|  | urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+parent}/versions") | 
|  | urls += "?" + c.urlParams_.Encode() | 
|  | req, err := http.NewRequest("POST", urls, body) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | req.Header = reqHeaders | 
|  | googleapi.Expand(req.URL, map[string]string{ | 
|  | "parent": c.parent, | 
|  | }) | 
|  | return gensupport.SendRequest(c.ctx_, c.s.client, req) | 
|  | } | 
|  |  | 
|  | // Do executes the "firebasehosting.sites.versions.create" call. | 
|  | // Exactly one of *Version or error will be non-nil. Any non-2xx status | 
|  | // code is an error. Response headers are in either | 
|  | // *Version.ServerResponse.Header or (if a response was returned at all) | 
|  | // in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to | 
|  | // check whether the returned error was because http.StatusNotModified | 
|  | // was returned. | 
|  | func (c *SitesVersionsCreateCall) Do(opts ...googleapi.CallOption) (*Version, error) { | 
|  | gensupport.SetOptions(c.urlParams_, opts...) | 
|  | res, err := c.doRequest("json") | 
|  | if res != nil && res.StatusCode == http.StatusNotModified { | 
|  | if res.Body != nil { | 
|  | res.Body.Close() | 
|  | } | 
|  | return nil, &googleapi.Error{ | 
|  | Code:   res.StatusCode, | 
|  | Header: res.Header, | 
|  | } | 
|  | } | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | defer googleapi.CloseBody(res) | 
|  | if err := googleapi.CheckResponse(res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | ret := &Version{ | 
|  | ServerResponse: googleapi.ServerResponse{ | 
|  | Header:         res.Header, | 
|  | HTTPStatusCode: res.StatusCode, | 
|  | }, | 
|  | } | 
|  | target := &ret | 
|  | if err := gensupport.DecodeResponse(target, res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | return ret, nil | 
|  | // { | 
|  | //   "description": "Creates a new version for a site.", | 
|  | //   "flatPath": "v1beta1/sites/{sitesId}/versions", | 
|  | //   "httpMethod": "POST", | 
|  | //   "id": "firebasehosting.sites.versions.create", | 
|  | //   "parameterOrder": [ | 
|  | //     "parent" | 
|  | //   ], | 
|  | //   "parameters": { | 
|  | //     "parent": { | 
|  | //       "description": "Required. The parent to create the version for, in the format:\n\u003ccode\u003esites/\u003cvar\u003esite-name\u003c/var\u003e\u003c/code\u003e", | 
|  | //       "location": "path", | 
|  | //       "pattern": "^sites/[^/]+$", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "sizeBytes": { | 
|  | //       "description": "The self-reported size of the version. This value is used for a pre-emptive\nquota check for legacy version uploads.", | 
|  | //       "format": "int64", | 
|  | //       "location": "query", | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "versionId": { | 
|  | //       "description": "A unique id for the new version. This is only specified for legacy version\ncreations.", | 
|  | //       "location": "query", | 
|  | //       "type": "string" | 
|  | //     } | 
|  | //   }, | 
|  | //   "path": "v1beta1/{+parent}/versions", | 
|  | //   "request": { | 
|  | //     "$ref": "Version" | 
|  | //   }, | 
|  | //   "response": { | 
|  | //     "$ref": "Version" | 
|  | //   }, | 
|  | //   "scopes": [ | 
|  | //     "https://www.googleapis.com/auth/cloud-platform", | 
|  | //     "https://www.googleapis.com/auth/firebase" | 
|  | //   ] | 
|  | // } | 
|  |  | 
|  | } | 
|  |  | 
|  | // method id "firebasehosting.sites.versions.delete": | 
|  |  | 
|  | type SitesVersionsDeleteCall struct { | 
|  | s          *Service | 
|  | name       string | 
|  | urlParams_ gensupport.URLParams | 
|  | ctx_       context.Context | 
|  | header_    http.Header | 
|  | } | 
|  |  | 
|  | // Delete: Deletes the specified version. | 
|  | func (r *SitesVersionsService) Delete(name string) *SitesVersionsDeleteCall { | 
|  | c := &SitesVersionsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} | 
|  | c.name = name | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Fields allows partial responses to be retrieved. See | 
|  | // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse | 
|  | // for more information. | 
|  | func (c *SitesVersionsDeleteCall) Fields(s ...googleapi.Field) *SitesVersionsDeleteCall { | 
|  | c.urlParams_.Set("fields", googleapi.CombineFields(s)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Context sets the context to be used in this call's Do method. Any | 
|  | // pending HTTP request will be aborted if the provided context is | 
|  | // canceled. | 
|  | func (c *SitesVersionsDeleteCall) Context(ctx context.Context) *SitesVersionsDeleteCall { | 
|  | c.ctx_ = ctx | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Header returns an http.Header that can be modified by the caller to | 
|  | // add HTTP headers to the request. | 
|  | func (c *SitesVersionsDeleteCall) Header() http.Header { | 
|  | if c.header_ == nil { | 
|  | c.header_ = make(http.Header) | 
|  | } | 
|  | return c.header_ | 
|  | } | 
|  |  | 
|  | func (c *SitesVersionsDeleteCall) doRequest(alt string) (*http.Response, error) { | 
|  | reqHeaders := make(http.Header) | 
|  | reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200717") | 
|  | for k, v := range c.header_ { | 
|  | reqHeaders[k] = v | 
|  | } | 
|  | reqHeaders.Set("User-Agent", c.s.userAgent()) | 
|  | var body io.Reader = nil | 
|  | c.urlParams_.Set("alt", alt) | 
|  | c.urlParams_.Set("prettyPrint", "false") | 
|  | urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+name}") | 
|  | urls += "?" + c.urlParams_.Encode() | 
|  | req, err := http.NewRequest("DELETE", urls, body) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | req.Header = reqHeaders | 
|  | googleapi.Expand(req.URL, map[string]string{ | 
|  | "name": c.name, | 
|  | }) | 
|  | return gensupport.SendRequest(c.ctx_, c.s.client, req) | 
|  | } | 
|  |  | 
|  | // Do executes the "firebasehosting.sites.versions.delete" call. | 
|  | // Exactly one of *Empty or error will be non-nil. Any non-2xx status | 
|  | // code is an error. Response headers are in either | 
|  | // *Empty.ServerResponse.Header or (if a response was returned at all) | 
|  | // in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to | 
|  | // check whether the returned error was because http.StatusNotModified | 
|  | // was returned. | 
|  | func (c *SitesVersionsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) { | 
|  | gensupport.SetOptions(c.urlParams_, opts...) | 
|  | res, err := c.doRequest("json") | 
|  | if res != nil && res.StatusCode == http.StatusNotModified { | 
|  | if res.Body != nil { | 
|  | res.Body.Close() | 
|  | } | 
|  | return nil, &googleapi.Error{ | 
|  | Code:   res.StatusCode, | 
|  | Header: res.Header, | 
|  | } | 
|  | } | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | defer googleapi.CloseBody(res) | 
|  | if err := googleapi.CheckResponse(res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | ret := &Empty{ | 
|  | ServerResponse: googleapi.ServerResponse{ | 
|  | Header:         res.Header, | 
|  | HTTPStatusCode: res.StatusCode, | 
|  | }, | 
|  | } | 
|  | target := &ret | 
|  | if err := gensupport.DecodeResponse(target, res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | return ret, nil | 
|  | // { | 
|  | //   "description": "Deletes the specified version.", | 
|  | //   "flatPath": "v1beta1/sites/{sitesId}/versions/{versionsId}", | 
|  | //   "httpMethod": "DELETE", | 
|  | //   "id": "firebasehosting.sites.versions.delete", | 
|  | //   "parameterOrder": [ | 
|  | //     "name" | 
|  | //   ], | 
|  | //   "parameters": { | 
|  | //     "name": { | 
|  | //       "description": "Required. The name of the version to be deleted, in the format:\n\u003ccode\u003esites/\u003cvar\u003esite-name\u003c/var\u003e/versions/\u003cvar\u003eversionID\u003c/var\u003e\u003c/code\u003e", | 
|  | //       "location": "path", | 
|  | //       "pattern": "^sites/[^/]+/versions/[^/]+$", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     } | 
|  | //   }, | 
|  | //   "path": "v1beta1/{+name}", | 
|  | //   "response": { | 
|  | //     "$ref": "Empty" | 
|  | //   }, | 
|  | //   "scopes": [ | 
|  | //     "https://www.googleapis.com/auth/cloud-platform", | 
|  | //     "https://www.googleapis.com/auth/firebase" | 
|  | //   ] | 
|  | // } | 
|  |  | 
|  | } | 
|  |  | 
|  | // method id "firebasehosting.sites.versions.list": | 
|  |  | 
|  | type SitesVersionsListCall struct { | 
|  | s            *Service | 
|  | parent       string | 
|  | urlParams_   gensupport.URLParams | 
|  | ifNoneMatch_ string | 
|  | ctx_         context.Context | 
|  | header_      http.Header | 
|  | } | 
|  |  | 
|  | // List: Lists the versions that have been created on the specified | 
|  | // site. | 
|  | // Will include filtering in the future. | 
|  | func (r *SitesVersionsService) List(parent string) *SitesVersionsListCall { | 
|  | c := &SitesVersionsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} | 
|  | c.parent = parent | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Filter sets the optional parameter "filter": The filter string used | 
|  | // to return a subset of versions in the response. | 
|  | // Currently supported fields for filtering are: name, status, | 
|  | // and create_time. Filter processing will be implemented in | 
|  | // accordance | 
|  | // with go/filtering. | 
|  | func (c *SitesVersionsListCall) Filter(filter string) *SitesVersionsListCall { | 
|  | c.urlParams_.Set("filter", filter) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // PageSize sets the optional parameter "pageSize": The maximum number | 
|  | // of versions to return. The service may return fewer than | 
|  | // this value. | 
|  | // If unspecified, at most 25 versions will be returned. | 
|  | // The maximum value is 100; values above 100 will be coerced to 100 | 
|  | func (c *SitesVersionsListCall) PageSize(pageSize int64) *SitesVersionsListCall { | 
|  | c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // PageToken sets the optional parameter "pageToken": The | 
|  | // next_page_token from a previous request, if provided. | 
|  | func (c *SitesVersionsListCall) PageToken(pageToken string) *SitesVersionsListCall { | 
|  | c.urlParams_.Set("pageToken", pageToken) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Fields allows partial responses to be retrieved. See | 
|  | // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse | 
|  | // for more information. | 
|  | func (c *SitesVersionsListCall) Fields(s ...googleapi.Field) *SitesVersionsListCall { | 
|  | c.urlParams_.Set("fields", googleapi.CombineFields(s)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // IfNoneMatch sets the optional parameter which makes the operation | 
|  | // fail if the object's ETag matches the given value. This is useful for | 
|  | // getting updates only after the object has changed since the last | 
|  | // request. Use googleapi.IsNotModified to check whether the response | 
|  | // error from Do is the result of In-None-Match. | 
|  | func (c *SitesVersionsListCall) IfNoneMatch(entityTag string) *SitesVersionsListCall { | 
|  | c.ifNoneMatch_ = entityTag | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Context sets the context to be used in this call's Do method. Any | 
|  | // pending HTTP request will be aborted if the provided context is | 
|  | // canceled. | 
|  | func (c *SitesVersionsListCall) Context(ctx context.Context) *SitesVersionsListCall { | 
|  | c.ctx_ = ctx | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Header returns an http.Header that can be modified by the caller to | 
|  | // add HTTP headers to the request. | 
|  | func (c *SitesVersionsListCall) Header() http.Header { | 
|  | if c.header_ == nil { | 
|  | c.header_ = make(http.Header) | 
|  | } | 
|  | return c.header_ | 
|  | } | 
|  |  | 
|  | func (c *SitesVersionsListCall) doRequest(alt string) (*http.Response, error) { | 
|  | reqHeaders := make(http.Header) | 
|  | reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200717") | 
|  | for k, v := range c.header_ { | 
|  | reqHeaders[k] = v | 
|  | } | 
|  | reqHeaders.Set("User-Agent", c.s.userAgent()) | 
|  | if c.ifNoneMatch_ != "" { | 
|  | reqHeaders.Set("If-None-Match", c.ifNoneMatch_) | 
|  | } | 
|  | var body io.Reader = nil | 
|  | c.urlParams_.Set("alt", alt) | 
|  | c.urlParams_.Set("prettyPrint", "false") | 
|  | urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+parent}/versions") | 
|  | urls += "?" + c.urlParams_.Encode() | 
|  | req, err := http.NewRequest("GET", urls, body) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | req.Header = reqHeaders | 
|  | googleapi.Expand(req.URL, map[string]string{ | 
|  | "parent": c.parent, | 
|  | }) | 
|  | return gensupport.SendRequest(c.ctx_, c.s.client, req) | 
|  | } | 
|  |  | 
|  | // Do executes the "firebasehosting.sites.versions.list" call. | 
|  | // Exactly one of *ListVersionsResponse or error will be non-nil. Any | 
|  | // non-2xx status code is an error. Response headers are in either | 
|  | // *ListVersionsResponse.ServerResponse.Header or (if a response was | 
|  | // returned at all) in error.(*googleapi.Error).Header. Use | 
|  | // googleapi.IsNotModified to check whether the returned error was | 
|  | // because http.StatusNotModified was returned. | 
|  | func (c *SitesVersionsListCall) Do(opts ...googleapi.CallOption) (*ListVersionsResponse, error) { | 
|  | gensupport.SetOptions(c.urlParams_, opts...) | 
|  | res, err := c.doRequest("json") | 
|  | if res != nil && res.StatusCode == http.StatusNotModified { | 
|  | if res.Body != nil { | 
|  | res.Body.Close() | 
|  | } | 
|  | return nil, &googleapi.Error{ | 
|  | Code:   res.StatusCode, | 
|  | Header: res.Header, | 
|  | } | 
|  | } | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | defer googleapi.CloseBody(res) | 
|  | if err := googleapi.CheckResponse(res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | ret := &ListVersionsResponse{ | 
|  | ServerResponse: googleapi.ServerResponse{ | 
|  | Header:         res.Header, | 
|  | HTTPStatusCode: res.StatusCode, | 
|  | }, | 
|  | } | 
|  | target := &ret | 
|  | if err := gensupport.DecodeResponse(target, res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | return ret, nil | 
|  | // { | 
|  | //   "description": "Lists the versions that have been created on the specified site.\nWill include filtering in the future.", | 
|  | //   "flatPath": "v1beta1/sites/{sitesId}/versions", | 
|  | //   "httpMethod": "GET", | 
|  | //   "id": "firebasehosting.sites.versions.list", | 
|  | //   "parameterOrder": [ | 
|  | //     "parent" | 
|  | //   ], | 
|  | //   "parameters": { | 
|  | //     "filter": { | 
|  | //       "description": "The filter string used to return a subset of versions in the response.\nCurrently supported fields for filtering are: name, status,\nand create_time. Filter processing will be implemented in accordance\nwith go/filtering.", | 
|  | //       "location": "query", | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "pageSize": { | 
|  | //       "description": "The maximum number of versions to return. The service may return fewer than\nthis value.\nIf unspecified, at most 25 versions will be returned.\nThe maximum value is 100; values above 100 will be coerced to 100", | 
|  | //       "format": "int32", | 
|  | //       "location": "query", | 
|  | //       "type": "integer" | 
|  | //     }, | 
|  | //     "pageToken": { | 
|  | //       "description": "The next_page_token from a previous request, if provided.", | 
|  | //       "location": "query", | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "parent": { | 
|  | //       "description": "Required. The parent for which to list files, in the format:\n\u003ccode\u003esites/\u003cvar\u003esite-name\u003c/var\u003e\u003c/code\u003e", | 
|  | //       "location": "path", | 
|  | //       "pattern": "^sites/[^/]+$", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     } | 
|  | //   }, | 
|  | //   "path": "v1beta1/{+parent}/versions", | 
|  | //   "response": { | 
|  | //     "$ref": "ListVersionsResponse" | 
|  | //   }, | 
|  | //   "scopes": [ | 
|  | //     "https://www.googleapis.com/auth/cloud-platform", | 
|  | //     "https://www.googleapis.com/auth/cloud-platform.read-only", | 
|  | //     "https://www.googleapis.com/auth/firebase", | 
|  | //     "https://www.googleapis.com/auth/firebase.readonly" | 
|  | //   ] | 
|  | // } | 
|  |  | 
|  | } | 
|  |  | 
|  | // Pages invokes f for each page of results. | 
|  | // A non-nil error returned from f will halt the iteration. | 
|  | // The provided context supersedes any context provided to the Context method. | 
|  | func (c *SitesVersionsListCall) Pages(ctx context.Context, f func(*ListVersionsResponse) error) error { | 
|  | c.ctx_ = ctx | 
|  | defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point | 
|  | for { | 
|  | x, err := c.Do() | 
|  | if err != nil { | 
|  | return err | 
|  | } | 
|  | if err := f(x); err != nil { | 
|  | return err | 
|  | } | 
|  | if x.NextPageToken == "" { | 
|  | return nil | 
|  | } | 
|  | c.PageToken(x.NextPageToken) | 
|  | } | 
|  | } | 
|  |  | 
|  | // method id "firebasehosting.sites.versions.patch": | 
|  |  | 
|  | type SitesVersionsPatchCall struct { | 
|  | s          *Service | 
|  | nameid     string | 
|  | version    *Version | 
|  | urlParams_ gensupport.URLParams | 
|  | ctx_       context.Context | 
|  | header_    http.Header | 
|  | } | 
|  |  | 
|  | // Patch: Updates the specified metadata for a version. Note that this | 
|  | // method will | 
|  | // fail with `FAILED_PRECONDITION` in the event of an invalid | 
|  | // state | 
|  | // transition. The only valid transition for a version is currently from | 
|  | // a | 
|  | // `CREATED` status to a `FINALIZED` status. | 
|  | // Use [`DeleteVersion`](../sites.versions/delete) to set the status of | 
|  | // a | 
|  | // version to `DELETED`. | 
|  | func (r *SitesVersionsService) Patch(nameid string, version *Version) *SitesVersionsPatchCall { | 
|  | c := &SitesVersionsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} | 
|  | c.nameid = nameid | 
|  | c.version = version | 
|  | return c | 
|  | } | 
|  |  | 
|  | // UpdateMask sets the optional parameter "updateMask": A set of field | 
|  | // names from your [version](../sites.versions) that you want | 
|  | // to update. | 
|  | // <br>A field will be overwritten if, and only if, it's in the | 
|  | // mask. | 
|  | // <br>If a mask is not provided then a default mask of | 
|  | // only | 
|  | // [`status`](../sites.versions#Version.FIELDS.status) will be used. | 
|  | func (c *SitesVersionsPatchCall) UpdateMask(updateMask string) *SitesVersionsPatchCall { | 
|  | c.urlParams_.Set("updateMask", updateMask) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Fields allows partial responses to be retrieved. See | 
|  | // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse | 
|  | // for more information. | 
|  | func (c *SitesVersionsPatchCall) Fields(s ...googleapi.Field) *SitesVersionsPatchCall { | 
|  | c.urlParams_.Set("fields", googleapi.CombineFields(s)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Context sets the context to be used in this call's Do method. Any | 
|  | // pending HTTP request will be aborted if the provided context is | 
|  | // canceled. | 
|  | func (c *SitesVersionsPatchCall) Context(ctx context.Context) *SitesVersionsPatchCall { | 
|  | c.ctx_ = ctx | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Header returns an http.Header that can be modified by the caller to | 
|  | // add HTTP headers to the request. | 
|  | func (c *SitesVersionsPatchCall) Header() http.Header { | 
|  | if c.header_ == nil { | 
|  | c.header_ = make(http.Header) | 
|  | } | 
|  | return c.header_ | 
|  | } | 
|  |  | 
|  | func (c *SitesVersionsPatchCall) doRequest(alt string) (*http.Response, error) { | 
|  | reqHeaders := make(http.Header) | 
|  | reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200717") | 
|  | for k, v := range c.header_ { | 
|  | reqHeaders[k] = v | 
|  | } | 
|  | reqHeaders.Set("User-Agent", c.s.userAgent()) | 
|  | var body io.Reader = nil | 
|  | body, err := googleapi.WithoutDataWrapper.JSONReader(c.version) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | reqHeaders.Set("Content-Type", "application/json") | 
|  | c.urlParams_.Set("alt", alt) | 
|  | c.urlParams_.Set("prettyPrint", "false") | 
|  | urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+name}") | 
|  | urls += "?" + c.urlParams_.Encode() | 
|  | req, err := http.NewRequest("PATCH", urls, body) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | req.Header = reqHeaders | 
|  | googleapi.Expand(req.URL, map[string]string{ | 
|  | "name": c.nameid, | 
|  | }) | 
|  | return gensupport.SendRequest(c.ctx_, c.s.client, req) | 
|  | } | 
|  |  | 
|  | // Do executes the "firebasehosting.sites.versions.patch" call. | 
|  | // Exactly one of *Version or error will be non-nil. Any non-2xx status | 
|  | // code is an error. Response headers are in either | 
|  | // *Version.ServerResponse.Header or (if a response was returned at all) | 
|  | // in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to | 
|  | // check whether the returned error was because http.StatusNotModified | 
|  | // was returned. | 
|  | func (c *SitesVersionsPatchCall) Do(opts ...googleapi.CallOption) (*Version, error) { | 
|  | gensupport.SetOptions(c.urlParams_, opts...) | 
|  | res, err := c.doRequest("json") | 
|  | if res != nil && res.StatusCode == http.StatusNotModified { | 
|  | if res.Body != nil { | 
|  | res.Body.Close() | 
|  | } | 
|  | return nil, &googleapi.Error{ | 
|  | Code:   res.StatusCode, | 
|  | Header: res.Header, | 
|  | } | 
|  | } | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | defer googleapi.CloseBody(res) | 
|  | if err := googleapi.CheckResponse(res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | ret := &Version{ | 
|  | ServerResponse: googleapi.ServerResponse{ | 
|  | Header:         res.Header, | 
|  | HTTPStatusCode: res.StatusCode, | 
|  | }, | 
|  | } | 
|  | target := &ret | 
|  | if err := gensupport.DecodeResponse(target, res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | return ret, nil | 
|  | // { | 
|  | //   "description": "Updates the specified metadata for a version. Note that this method will\nfail with `FAILED_PRECONDITION` in the event of an invalid state\ntransition. The only valid transition for a version is currently from a\n`CREATED` status to a `FINALIZED` status.\nUse [`DeleteVersion`](../sites.versions/delete) to set the status of a\nversion to `DELETED`.", | 
|  | //   "flatPath": "v1beta1/sites/{sitesId}/versions/{versionsId}", | 
|  | //   "httpMethod": "PATCH", | 
|  | //   "id": "firebasehosting.sites.versions.patch", | 
|  | //   "parameterOrder": [ | 
|  | //     "name" | 
|  | //   ], | 
|  | //   "parameters": { | 
|  | //     "name": { | 
|  | //       "description": "The unique identifier for a version, in the format:\n\u003ccode\u003esites/\u003cvar\u003esite-name\u003c/var\u003e/versions/\u003cvar\u003eversionID\u003c/var\u003e\u003c/code\u003e\nThis name is provided in the response body when you call the\n[`CreateVersion`](../sites.versions/create) endpoint.", | 
|  | //       "location": "path", | 
|  | //       "pattern": "^sites/[^/]+/versions/[^/]+$", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "updateMask": { | 
|  | //       "description": "A set of field names from your [version](../sites.versions) that you want\nto update.\n\u003cbr\u003eA field will be overwritten if, and only if, it's in the mask.\n\u003cbr\u003eIf a mask is not provided then a default mask of only\n[`status`](../sites.versions#Version.FIELDS.status) will be used.", | 
|  | //       "format": "google-fieldmask", | 
|  | //       "location": "query", | 
|  | //       "type": "string" | 
|  | //     } | 
|  | //   }, | 
|  | //   "path": "v1beta1/{+name}", | 
|  | //   "request": { | 
|  | //     "$ref": "Version" | 
|  | //   }, | 
|  | //   "response": { | 
|  | //     "$ref": "Version" | 
|  | //   }, | 
|  | //   "scopes": [ | 
|  | //     "https://www.googleapis.com/auth/cloud-platform", | 
|  | //     "https://www.googleapis.com/auth/firebase" | 
|  | //   ] | 
|  | // } | 
|  |  | 
|  | } | 
|  |  | 
|  | // method id "firebasehosting.sites.versions.populateFiles": | 
|  |  | 
|  | type SitesVersionsPopulateFilesCall struct { | 
|  | s                           *Service | 
|  | parent                      string | 
|  | populateversionfilesrequest *PopulateVersionFilesRequest | 
|  | urlParams_                  gensupport.URLParams | 
|  | ctx_                        context.Context | 
|  | header_                     http.Header | 
|  | } | 
|  |  | 
|  | // PopulateFiles: Adds content files to a version. | 
|  | // Each file must be under 2 GB. | 
|  | func (r *SitesVersionsService) PopulateFiles(parent string, populateversionfilesrequest *PopulateVersionFilesRequest) *SitesVersionsPopulateFilesCall { | 
|  | c := &SitesVersionsPopulateFilesCall{s: r.s, urlParams_: make(gensupport.URLParams)} | 
|  | c.parent = parent | 
|  | c.populateversionfilesrequest = populateversionfilesrequest | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Fields allows partial responses to be retrieved. See | 
|  | // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse | 
|  | // for more information. | 
|  | func (c *SitesVersionsPopulateFilesCall) Fields(s ...googleapi.Field) *SitesVersionsPopulateFilesCall { | 
|  | c.urlParams_.Set("fields", googleapi.CombineFields(s)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Context sets the context to be used in this call's Do method. Any | 
|  | // pending HTTP request will be aborted if the provided context is | 
|  | // canceled. | 
|  | func (c *SitesVersionsPopulateFilesCall) Context(ctx context.Context) *SitesVersionsPopulateFilesCall { | 
|  | c.ctx_ = ctx | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Header returns an http.Header that can be modified by the caller to | 
|  | // add HTTP headers to the request. | 
|  | func (c *SitesVersionsPopulateFilesCall) Header() http.Header { | 
|  | if c.header_ == nil { | 
|  | c.header_ = make(http.Header) | 
|  | } | 
|  | return c.header_ | 
|  | } | 
|  |  | 
|  | func (c *SitesVersionsPopulateFilesCall) doRequest(alt string) (*http.Response, error) { | 
|  | reqHeaders := make(http.Header) | 
|  | reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200717") | 
|  | for k, v := range c.header_ { | 
|  | reqHeaders[k] = v | 
|  | } | 
|  | reqHeaders.Set("User-Agent", c.s.userAgent()) | 
|  | var body io.Reader = nil | 
|  | body, err := googleapi.WithoutDataWrapper.JSONReader(c.populateversionfilesrequest) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | reqHeaders.Set("Content-Type", "application/json") | 
|  | c.urlParams_.Set("alt", alt) | 
|  | c.urlParams_.Set("prettyPrint", "false") | 
|  | urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+parent}:populateFiles") | 
|  | urls += "?" + c.urlParams_.Encode() | 
|  | req, err := http.NewRequest("POST", urls, body) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | req.Header = reqHeaders | 
|  | googleapi.Expand(req.URL, map[string]string{ | 
|  | "parent": c.parent, | 
|  | }) | 
|  | return gensupport.SendRequest(c.ctx_, c.s.client, req) | 
|  | } | 
|  |  | 
|  | // Do executes the "firebasehosting.sites.versions.populateFiles" call. | 
|  | // Exactly one of *PopulateVersionFilesResponse or error will be | 
|  | // non-nil. Any non-2xx status code is an error. Response headers are in | 
|  | // either *PopulateVersionFilesResponse.ServerResponse.Header or (if a | 
|  | // response was returned at all) in error.(*googleapi.Error).Header. Use | 
|  | // googleapi.IsNotModified to check whether the returned error was | 
|  | // because http.StatusNotModified was returned. | 
|  | func (c *SitesVersionsPopulateFilesCall) Do(opts ...googleapi.CallOption) (*PopulateVersionFilesResponse, error) { | 
|  | gensupport.SetOptions(c.urlParams_, opts...) | 
|  | res, err := c.doRequest("json") | 
|  | if res != nil && res.StatusCode == http.StatusNotModified { | 
|  | if res.Body != nil { | 
|  | res.Body.Close() | 
|  | } | 
|  | return nil, &googleapi.Error{ | 
|  | Code:   res.StatusCode, | 
|  | Header: res.Header, | 
|  | } | 
|  | } | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | defer googleapi.CloseBody(res) | 
|  | if err := googleapi.CheckResponse(res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | ret := &PopulateVersionFilesResponse{ | 
|  | ServerResponse: googleapi.ServerResponse{ | 
|  | Header:         res.Header, | 
|  | HTTPStatusCode: res.StatusCode, | 
|  | }, | 
|  | } | 
|  | target := &ret | 
|  | if err := gensupport.DecodeResponse(target, res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | return ret, nil | 
|  | // { | 
|  | //   "description": "Adds content files to a version.\nEach file must be under 2 GB.", | 
|  | //   "flatPath": "v1beta1/sites/{sitesId}/versions/{versionsId}:populateFiles", | 
|  | //   "httpMethod": "POST", | 
|  | //   "id": "firebasehosting.sites.versions.populateFiles", | 
|  | //   "parameterOrder": [ | 
|  | //     "parent" | 
|  | //   ], | 
|  | //   "parameters": { | 
|  | //     "parent": { | 
|  | //       "description": "Required. The version to add files to, in the format:\n\u003ccode\u003esites/\u003cvar\u003esite-name\u003c/var\u003e/versions/\u003cvar\u003eversionID\u003c/var\u003e\u003c/code\u003e", | 
|  | //       "location": "path", | 
|  | //       "pattern": "^sites/[^/]+/versions/[^/]+$", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     } | 
|  | //   }, | 
|  | //   "path": "v1beta1/{+parent}:populateFiles", | 
|  | //   "request": { | 
|  | //     "$ref": "PopulateVersionFilesRequest" | 
|  | //   }, | 
|  | //   "response": { | 
|  | //     "$ref": "PopulateVersionFilesResponse" | 
|  | //   }, | 
|  | //   "scopes": [ | 
|  | //     "https://www.googleapis.com/auth/cloud-platform", | 
|  | //     "https://www.googleapis.com/auth/firebase" | 
|  | //   ] | 
|  | // } | 
|  |  | 
|  | } | 
|  |  | 
|  | // method id "firebasehosting.sites.versions.files.list": | 
|  |  | 
|  | type SitesVersionsFilesListCall struct { | 
|  | s            *Service | 
|  | parent       string | 
|  | urlParams_   gensupport.URLParams | 
|  | ifNoneMatch_ string | 
|  | ctx_         context.Context | 
|  | header_      http.Header | 
|  | } | 
|  |  | 
|  | // List: Lists the remaining files to be uploaded for the specified | 
|  | // version. | 
|  | func (r *SitesVersionsFilesService) List(parent string) *SitesVersionsFilesListCall { | 
|  | c := &SitesVersionsFilesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} | 
|  | c.parent = parent | 
|  | return c | 
|  | } | 
|  |  | 
|  | // PageSize sets the optional parameter "pageSize": The page size to | 
|  | // return. Defaults to 1000. | 
|  | func (c *SitesVersionsFilesListCall) PageSize(pageSize int64) *SitesVersionsFilesListCall { | 
|  | c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // PageToken sets the optional parameter "pageToken": The | 
|  | // next_page_token from a previous request, if provided. This will be | 
|  | // the | 
|  | // encoded version of a | 
|  | // firebase.hosting.proto.metadata.ListFilesPageToken. | 
|  | func (c *SitesVersionsFilesListCall) PageToken(pageToken string) *SitesVersionsFilesListCall { | 
|  | c.urlParams_.Set("pageToken", pageToken) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Status sets the optional parameter "status": The type of files in the | 
|  | // version that should be listed. | 
|  | // | 
|  | // Possible values: | 
|  | //   "STATUS_UNSPECIFIED" | 
|  | //   "EXPECTED" | 
|  | //   "ACTIVE" | 
|  | func (c *SitesVersionsFilesListCall) Status(status string) *SitesVersionsFilesListCall { | 
|  | c.urlParams_.Set("status", status) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Fields allows partial responses to be retrieved. See | 
|  | // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse | 
|  | // for more information. | 
|  | func (c *SitesVersionsFilesListCall) Fields(s ...googleapi.Field) *SitesVersionsFilesListCall { | 
|  | c.urlParams_.Set("fields", googleapi.CombineFields(s)) | 
|  | return c | 
|  | } | 
|  |  | 
|  | // IfNoneMatch sets the optional parameter which makes the operation | 
|  | // fail if the object's ETag matches the given value. This is useful for | 
|  | // getting updates only after the object has changed since the last | 
|  | // request. Use googleapi.IsNotModified to check whether the response | 
|  | // error from Do is the result of In-None-Match. | 
|  | func (c *SitesVersionsFilesListCall) IfNoneMatch(entityTag string) *SitesVersionsFilesListCall { | 
|  | c.ifNoneMatch_ = entityTag | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Context sets the context to be used in this call's Do method. Any | 
|  | // pending HTTP request will be aborted if the provided context is | 
|  | // canceled. | 
|  | func (c *SitesVersionsFilesListCall) Context(ctx context.Context) *SitesVersionsFilesListCall { | 
|  | c.ctx_ = ctx | 
|  | return c | 
|  | } | 
|  |  | 
|  | // Header returns an http.Header that can be modified by the caller to | 
|  | // add HTTP headers to the request. | 
|  | func (c *SitesVersionsFilesListCall) Header() http.Header { | 
|  | if c.header_ == nil { | 
|  | c.header_ = make(http.Header) | 
|  | } | 
|  | return c.header_ | 
|  | } | 
|  |  | 
|  | func (c *SitesVersionsFilesListCall) doRequest(alt string) (*http.Response, error) { | 
|  | reqHeaders := make(http.Header) | 
|  | reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200717") | 
|  | for k, v := range c.header_ { | 
|  | reqHeaders[k] = v | 
|  | } | 
|  | reqHeaders.Set("User-Agent", c.s.userAgent()) | 
|  | if c.ifNoneMatch_ != "" { | 
|  | reqHeaders.Set("If-None-Match", c.ifNoneMatch_) | 
|  | } | 
|  | var body io.Reader = nil | 
|  | c.urlParams_.Set("alt", alt) | 
|  | c.urlParams_.Set("prettyPrint", "false") | 
|  | urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+parent}/files") | 
|  | urls += "?" + c.urlParams_.Encode() | 
|  | req, err := http.NewRequest("GET", urls, body) | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | req.Header = reqHeaders | 
|  | googleapi.Expand(req.URL, map[string]string{ | 
|  | "parent": c.parent, | 
|  | }) | 
|  | return gensupport.SendRequest(c.ctx_, c.s.client, req) | 
|  | } | 
|  |  | 
|  | // Do executes the "firebasehosting.sites.versions.files.list" call. | 
|  | // Exactly one of *ListVersionFilesResponse or error will be non-nil. | 
|  | // Any non-2xx status code is an error. Response headers are in either | 
|  | // *ListVersionFilesResponse.ServerResponse.Header or (if a response was | 
|  | // returned at all) in error.(*googleapi.Error).Header. Use | 
|  | // googleapi.IsNotModified to check whether the returned error was | 
|  | // because http.StatusNotModified was returned. | 
|  | func (c *SitesVersionsFilesListCall) Do(opts ...googleapi.CallOption) (*ListVersionFilesResponse, error) { | 
|  | gensupport.SetOptions(c.urlParams_, opts...) | 
|  | res, err := c.doRequest("json") | 
|  | if res != nil && res.StatusCode == http.StatusNotModified { | 
|  | if res.Body != nil { | 
|  | res.Body.Close() | 
|  | } | 
|  | return nil, &googleapi.Error{ | 
|  | Code:   res.StatusCode, | 
|  | Header: res.Header, | 
|  | } | 
|  | } | 
|  | if err != nil { | 
|  | return nil, err | 
|  | } | 
|  | defer googleapi.CloseBody(res) | 
|  | if err := googleapi.CheckResponse(res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | ret := &ListVersionFilesResponse{ | 
|  | ServerResponse: googleapi.ServerResponse{ | 
|  | Header:         res.Header, | 
|  | HTTPStatusCode: res.StatusCode, | 
|  | }, | 
|  | } | 
|  | target := &ret | 
|  | if err := gensupport.DecodeResponse(target, res); err != nil { | 
|  | return nil, err | 
|  | } | 
|  | return ret, nil | 
|  | // { | 
|  | //   "description": "Lists the remaining files to be uploaded for the specified version.", | 
|  | //   "flatPath": "v1beta1/sites/{sitesId}/versions/{versionsId}/files", | 
|  | //   "httpMethod": "GET", | 
|  | //   "id": "firebasehosting.sites.versions.files.list", | 
|  | //   "parameterOrder": [ | 
|  | //     "parent" | 
|  | //   ], | 
|  | //   "parameters": { | 
|  | //     "pageSize": { | 
|  | //       "description": "The page size to return. Defaults to 1000.", | 
|  | //       "format": "int32", | 
|  | //       "location": "query", | 
|  | //       "type": "integer" | 
|  | //     }, | 
|  | //     "pageToken": { | 
|  | //       "description": "The next_page_token from a previous request, if provided. This will be the\nencoded version of a firebase.hosting.proto.metadata.ListFilesPageToken.", | 
|  | //       "location": "query", | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "parent": { | 
|  | //       "description": "Required. The parent to list files for, in the format:\n\u003ccode\u003esites/\u003cvar\u003esite-name\u003c/var\u003e/versions/\u003cvar\u003eversionID\u003c/var\u003e\u003c/code\u003e", | 
|  | //       "location": "path", | 
|  | //       "pattern": "^sites/[^/]+/versions/[^/]+$", | 
|  | //       "required": true, | 
|  | //       "type": "string" | 
|  | //     }, | 
|  | //     "status": { | 
|  | //       "description": "The type of files in the version that should be listed.", | 
|  | //       "enum": [ | 
|  | //         "STATUS_UNSPECIFIED", | 
|  | //         "EXPECTED", | 
|  | //         "ACTIVE" | 
|  | //       ], | 
|  | //       "location": "query", | 
|  | //       "type": "string" | 
|  | //     } | 
|  | //   }, | 
|  | //   "path": "v1beta1/{+parent}/files", | 
|  | //   "response": { | 
|  | //     "$ref": "ListVersionFilesResponse" | 
|  | //   }, | 
|  | //   "scopes": [ | 
|  | //     "https://www.googleapis.com/auth/cloud-platform", | 
|  | //     "https://www.googleapis.com/auth/cloud-platform.read-only", | 
|  | //     "https://www.googleapis.com/auth/firebase", | 
|  | //     "https://www.googleapis.com/auth/firebase.readonly" | 
|  | //   ] | 
|  | // } | 
|  |  | 
|  | } | 
|  |  | 
|  | // Pages invokes f for each page of results. | 
|  | // A non-nil error returned from f will halt the iteration. | 
|  | // The provided context supersedes any context provided to the Context method. | 
|  | func (c *SitesVersionsFilesListCall) Pages(ctx context.Context, f func(*ListVersionFilesResponse) error) error { | 
|  | c.ctx_ = ctx | 
|  | defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point | 
|  | for { | 
|  | x, err := c.Do() | 
|  | if err != nil { | 
|  | return err | 
|  | } | 
|  | if err := f(x); err != nil { | 
|  | return err | 
|  | } | 
|  | if x.NextPageToken == "" { | 
|  | return nil | 
|  | } | 
|  | c.PageToken(x.NextPageToken) | 
|  | } | 
|  | } |