...

Source file src/google.golang.org/api/firebaseappdistribution/v1/firebaseappdistribution-gen.go

Documentation: google.golang.org/api/firebaseappdistribution/v1

     1  // Copyright 2024 Google LLC.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  // Code generated file. DO NOT EDIT.
     6  
     7  // Package firebaseappdistribution provides access to the Firebase App Distribution API.
     8  //
     9  // For product documentation, see: https://firebase.google.com/products/app-distribution
    10  //
    11  // # Library status
    12  //
    13  // These client libraries are officially supported by Google. However, this
    14  // library is considered complete and is in maintenance mode. This means
    15  // that we will address critical bugs and security issues but will not add
    16  // any new features.
    17  //
    18  // When possible, we recommend using our newer
    19  // [Cloud Client Libraries for Go](https://pkg.go.dev/cloud.google.com/go)
    20  // that are still actively being worked and iterated on.
    21  //
    22  // # Creating a client
    23  //
    24  // Usage example:
    25  //
    26  //	import "google.golang.org/api/firebaseappdistribution/v1"
    27  //	...
    28  //	ctx := context.Background()
    29  //	firebaseappdistributionService, err := firebaseappdistribution.NewService(ctx)
    30  //
    31  // In this example, Google Application Default Credentials are used for
    32  // authentication. For information on how to create and obtain Application
    33  // Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
    34  //
    35  // # Other authentication options
    36  //
    37  // To use an API key for authentication (note: some APIs do not support API
    38  // keys), use [google.golang.org/api/option.WithAPIKey]:
    39  //
    40  //	firebaseappdistributionService, err := firebaseappdistribution.NewService(ctx, option.WithAPIKey("AIza..."))
    41  //
    42  // To use an OAuth token (e.g., a user token obtained via a three-legged OAuth
    43  // flow, use [google.golang.org/api/option.WithTokenSource]:
    44  //
    45  //	config := &oauth2.Config{...}
    46  //	// ...
    47  //	token, err := config.Exchange(ctx, ...)
    48  //	firebaseappdistributionService, err := firebaseappdistribution.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
    49  //
    50  // See [google.golang.org/api/option.ClientOption] for details on options.
    51  package firebaseappdistribution // import "google.golang.org/api/firebaseappdistribution/v1"
    52  
    53  import (
    54  	"bytes"
    55  	"context"
    56  	"encoding/json"
    57  	"errors"
    58  	"fmt"
    59  	"io"
    60  	"net/http"
    61  	"net/url"
    62  	"strconv"
    63  	"strings"
    64  
    65  	googleapi "google.golang.org/api/googleapi"
    66  	internal "google.golang.org/api/internal"
    67  	gensupport "google.golang.org/api/internal/gensupport"
    68  	option "google.golang.org/api/option"
    69  	internaloption "google.golang.org/api/option/internaloption"
    70  	htransport "google.golang.org/api/transport/http"
    71  )
    72  
    73  // Always reference these packages, just in case the auto-generated code
    74  // below doesn't.
    75  var _ = bytes.NewBuffer
    76  var _ = strconv.Itoa
    77  var _ = fmt.Sprintf
    78  var _ = json.NewDecoder
    79  var _ = io.Copy
    80  var _ = url.Parse
    81  var _ = gensupport.MarshalJSON
    82  var _ = googleapi.Version
    83  var _ = errors.New
    84  var _ = strings.Replace
    85  var _ = context.Canceled
    86  var _ = internaloption.WithDefaultEndpoint
    87  var _ = internal.Version
    88  
    89  const apiId = "firebaseappdistribution:v1"
    90  const apiName = "firebaseappdistribution"
    91  const apiVersion = "v1"
    92  const basePath = "https://firebaseappdistribution.googleapis.com/"
    93  const basePathTemplate = "https://firebaseappdistribution.UNIVERSE_DOMAIN/"
    94  const mtlsBasePath = "https://firebaseappdistribution.mtls.googleapis.com/"
    95  
    96  // OAuth2 scopes used by this API.
    97  const (
    98  	// See, edit, configure, and delete your Google Cloud data and see the email
    99  	// address for your Google Account.
   100  	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
   101  )
   102  
   103  // NewService creates a new Service.
   104  func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
   105  	scopesOption := internaloption.WithDefaultScopes(
   106  		"https://www.googleapis.com/auth/cloud-platform",
   107  	)
   108  	// NOTE: prepend, so we don't override user-specified scopes.
   109  	opts = append([]option.ClientOption{scopesOption}, opts...)
   110  	opts = append(opts, internaloption.WithDefaultEndpoint(basePath))
   111  	opts = append(opts, internaloption.WithDefaultEndpointTemplate(basePathTemplate))
   112  	opts = append(opts, internaloption.WithDefaultMTLSEndpoint(mtlsBasePath))
   113  	opts = append(opts, internaloption.EnableNewAuthLibrary())
   114  	client, endpoint, err := htransport.NewClient(ctx, opts...)
   115  	if err != nil {
   116  		return nil, err
   117  	}
   118  	s, err := New(client)
   119  	if err != nil {
   120  		return nil, err
   121  	}
   122  	if endpoint != "" {
   123  		s.BasePath = endpoint
   124  	}
   125  	return s, nil
   126  }
   127  
   128  // New creates a new Service. It uses the provided http.Client for requests.
   129  //
   130  // Deprecated: please use NewService instead.
   131  // To provide a custom HTTP client, use option.WithHTTPClient.
   132  // If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
   133  func New(client *http.Client) (*Service, error) {
   134  	if client == nil {
   135  		return nil, errors.New("client is nil")
   136  	}
   137  	s := &Service{client: client, BasePath: basePath}
   138  	s.Media = NewMediaService(s)
   139  	s.Projects = NewProjectsService(s)
   140  	return s, nil
   141  }
   142  
   143  type Service struct {
   144  	client    *http.Client
   145  	BasePath  string // API endpoint base URL
   146  	UserAgent string // optional additional User-Agent fragment
   147  
   148  	Media *MediaService
   149  
   150  	Projects *ProjectsService
   151  }
   152  
   153  func (s *Service) userAgent() string {
   154  	if s.UserAgent == "" {
   155  		return googleapi.UserAgent
   156  	}
   157  	return googleapi.UserAgent + " " + s.UserAgent
   158  }
   159  
   160  func NewMediaService(s *Service) *MediaService {
   161  	rs := &MediaService{s: s}
   162  	return rs
   163  }
   164  
   165  type MediaService struct {
   166  	s *Service
   167  }
   168  
   169  func NewProjectsService(s *Service) *ProjectsService {
   170  	rs := &ProjectsService{s: s}
   171  	rs.Apps = NewProjectsAppsService(s)
   172  	rs.Groups = NewProjectsGroupsService(s)
   173  	rs.Testers = NewProjectsTestersService(s)
   174  	return rs
   175  }
   176  
   177  type ProjectsService struct {
   178  	s *Service
   179  
   180  	Apps *ProjectsAppsService
   181  
   182  	Groups *ProjectsGroupsService
   183  
   184  	Testers *ProjectsTestersService
   185  }
   186  
   187  func NewProjectsAppsService(s *Service) *ProjectsAppsService {
   188  	rs := &ProjectsAppsService{s: s}
   189  	rs.Releases = NewProjectsAppsReleasesService(s)
   190  	return rs
   191  }
   192  
   193  type ProjectsAppsService struct {
   194  	s *Service
   195  
   196  	Releases *ProjectsAppsReleasesService
   197  }
   198  
   199  func NewProjectsAppsReleasesService(s *Service) *ProjectsAppsReleasesService {
   200  	rs := &ProjectsAppsReleasesService{s: s}
   201  	rs.FeedbackReports = NewProjectsAppsReleasesFeedbackReportsService(s)
   202  	rs.Operations = NewProjectsAppsReleasesOperationsService(s)
   203  	return rs
   204  }
   205  
   206  type ProjectsAppsReleasesService struct {
   207  	s *Service
   208  
   209  	FeedbackReports *ProjectsAppsReleasesFeedbackReportsService
   210  
   211  	Operations *ProjectsAppsReleasesOperationsService
   212  }
   213  
   214  func NewProjectsAppsReleasesFeedbackReportsService(s *Service) *ProjectsAppsReleasesFeedbackReportsService {
   215  	rs := &ProjectsAppsReleasesFeedbackReportsService{s: s}
   216  	return rs
   217  }
   218  
   219  type ProjectsAppsReleasesFeedbackReportsService struct {
   220  	s *Service
   221  }
   222  
   223  func NewProjectsAppsReleasesOperationsService(s *Service) *ProjectsAppsReleasesOperationsService {
   224  	rs := &ProjectsAppsReleasesOperationsService{s: s}
   225  	return rs
   226  }
   227  
   228  type ProjectsAppsReleasesOperationsService struct {
   229  	s *Service
   230  }
   231  
   232  func NewProjectsGroupsService(s *Service) *ProjectsGroupsService {
   233  	rs := &ProjectsGroupsService{s: s}
   234  	return rs
   235  }
   236  
   237  type ProjectsGroupsService struct {
   238  	s *Service
   239  }
   240  
   241  func NewProjectsTestersService(s *Service) *ProjectsTestersService {
   242  	rs := &ProjectsTestersService{s: s}
   243  	return rs
   244  }
   245  
   246  type ProjectsTestersService struct {
   247  	s *Service
   248  }
   249  
   250  // GdataBlobstore2Info: Information to read/write to blobstore2.
   251  type GdataBlobstore2Info struct {
   252  	// BlobGeneration: The blob generation id.
   253  	BlobGeneration int64 `json:"blobGeneration,omitempty,string"`
   254  	// BlobId: The blob id, e.g., /blobstore/prod/playground/scotty
   255  	BlobId string `json:"blobId,omitempty"`
   256  	// DownloadReadHandle: Read handle passed from Bigstore -> Scotty for a GCS
   257  	// download. This is a signed, serialized blobstore2.ReadHandle proto which
   258  	// must never be set outside of Bigstore, and is not applicable to non-GCS
   259  	// media downloads.
   260  	DownloadReadHandle string `json:"downloadReadHandle,omitempty"`
   261  	// ReadToken: The blob read token. Needed to read blobs that have not been
   262  	// replicated. Might not be available until the final call.
   263  	ReadToken string `json:"readToken,omitempty"`
   264  	// UploadMetadataContainer: Metadata passed from Blobstore -> Scotty for a new
   265  	// GCS upload. This is a signed, serialized blobstore2.BlobMetadataContainer
   266  	// proto which must never be consumed outside of Bigstore, and is not
   267  	// applicable to non-GCS media uploads.
   268  	UploadMetadataContainer string `json:"uploadMetadataContainer,omitempty"`
   269  	// ForceSendFields is a list of field names (e.g. "BlobGeneration") to
   270  	// unconditionally include in API requests. By default, fields with empty or
   271  	// default values are omitted from API requests. See
   272  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   273  	// details.
   274  	ForceSendFields []string `json:"-"`
   275  	// NullFields is a list of field names (e.g. "BlobGeneration") to include in
   276  	// API requests with the JSON null value. By default, fields with empty values
   277  	// are omitted from API requests. See
   278  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   279  	NullFields []string `json:"-"`
   280  }
   281  
   282  func (s *GdataBlobstore2Info) MarshalJSON() ([]byte, error) {
   283  	type NoMethod GdataBlobstore2Info
   284  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   285  }
   286  
   287  // GdataCompositeMedia: A sequence of media data references representing
   288  // composite data. Introduced to support Bigstore composite objects. For
   289  // details, visit http://go/bigstore-composites.
   290  type GdataCompositeMedia struct {
   291  	// BlobRef: Blobstore v1 reference, set if reference_type is BLOBSTORE_REF This
   292  	// should be the byte representation of a blobstore.BlobRef. Since Blobstore is
   293  	// deprecating v1, use blobstore2_info instead. For now, any v2 blob will also
   294  	// be represented in this field as v1 BlobRef.
   295  	BlobRef string `json:"blobRef,omitempty"`
   296  	// Blobstore2Info: Blobstore v2 info, set if reference_type is BLOBSTORE_REF
   297  	// and it refers to a v2 blob.
   298  	Blobstore2Info *GdataBlobstore2Info `json:"blobstore2Info,omitempty"`
   299  	// CosmoBinaryReference: A binary data reference for a media download. Serves
   300  	// as a technology-agnostic binary reference in some Google infrastructure.
   301  	// This value is a serialized storage_cosmo.BinaryReference proto. Storing it
   302  	// as bytes is a hack to get around the fact that the cosmo proto (as well as
   303  	// others it includes) doesn't support JavaScript. This prevents us from
   304  	// including the actual type of this field.
   305  	CosmoBinaryReference string `json:"cosmoBinaryReference,omitempty"`
   306  	// Crc32cHash: crc32.c hash for the payload.
   307  	Crc32cHash int64 `json:"crc32cHash,omitempty"`
   308  	// Inline: Media data, set if reference_type is INLINE
   309  	Inline string `json:"inline,omitempty"`
   310  	// Length: Size of the data, in bytes
   311  	Length int64 `json:"length,omitempty,string"`
   312  	// Md5Hash: MD5 hash for the payload.
   313  	Md5Hash string `json:"md5Hash,omitempty"`
   314  	// ObjectId: Reference to a TI Blob, set if reference_type is BIGSTORE_REF.
   315  	ObjectId *GdataObjectId `json:"objectId,omitempty"`
   316  	// Path: Path to the data, set if reference_type is PATH
   317  	Path string `json:"path,omitempty"`
   318  	// ReferenceType: Describes what the field reference contains.
   319  	//
   320  	// Possible values:
   321  	//   "PATH" - Reference contains a GFS path or a local path.
   322  	//   "BLOB_REF" - Reference points to a blobstore object. This could be either
   323  	// a v1 blob_ref or a v2 blobstore2_info. Clients should check blobstore2_info
   324  	// first, since v1 is being deprecated.
   325  	//   "INLINE" - Data is included into this proto buffer
   326  	//   "BIGSTORE_REF" - Reference points to a bigstore object
   327  	//   "COSMO_BINARY_REFERENCE" - Indicates the data is stored in
   328  	// cosmo_binary_reference.
   329  	ReferenceType string `json:"referenceType,omitempty"`
   330  	// Sha1Hash: SHA-1 hash for the payload.
   331  	Sha1Hash string `json:"sha1Hash,omitempty"`
   332  	// ForceSendFields is a list of field names (e.g. "BlobRef") to unconditionally
   333  	// include in API requests. By default, fields with empty or default values are
   334  	// omitted from API requests. See
   335  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   336  	// details.
   337  	ForceSendFields []string `json:"-"`
   338  	// NullFields is a list of field names (e.g. "BlobRef") to include in API
   339  	// requests with the JSON null value. By default, fields with empty values are
   340  	// omitted from API requests. See
   341  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   342  	NullFields []string `json:"-"`
   343  }
   344  
   345  func (s *GdataCompositeMedia) MarshalJSON() ([]byte, error) {
   346  	type NoMethod GdataCompositeMedia
   347  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   348  }
   349  
   350  // GdataContentTypeInfo: Detailed Content-Type information from Scotty. The
   351  // Content-Type of the media will typically be filled in by the header or
   352  // Scotty's best_guess, but this extended information provides the backend with
   353  // more information so that it can make a better decision if needed. This is
   354  // only used on media upload requests from Scotty.
   355  type GdataContentTypeInfo struct {
   356  	// BestGuess: Scotty's best guess of what the content type of the file is.
   357  	BestGuess string `json:"bestGuess,omitempty"`
   358  	// FromBytes: The content type of the file derived by looking at specific bytes
   359  	// (i.e. "magic bytes") of the actual file.
   360  	FromBytes string `json:"fromBytes,omitempty"`
   361  	// FromFileName: The content type of the file derived from the file extension
   362  	// of the original file name used by the client.
   363  	FromFileName string `json:"fromFileName,omitempty"`
   364  	// FromHeader: The content type of the file as specified in the request
   365  	// headers, multipart headers, or RUPIO start request.
   366  	FromHeader string `json:"fromHeader,omitempty"`
   367  	// FromUrlPath: The content type of the file derived from the file extension of
   368  	// the URL path. The URL path is assumed to represent a file name (which is
   369  	// typically only true for agents that are providing a REST API).
   370  	FromUrlPath string `json:"fromUrlPath,omitempty"`
   371  	// ForceSendFields is a list of field names (e.g. "BestGuess") to
   372  	// unconditionally include in API requests. By default, fields with empty or
   373  	// default values are omitted from API requests. See
   374  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   375  	// details.
   376  	ForceSendFields []string `json:"-"`
   377  	// NullFields is a list of field names (e.g. "BestGuess") to include in API
   378  	// requests with the JSON null value. By default, fields with empty values are
   379  	// omitted from API requests. See
   380  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   381  	NullFields []string `json:"-"`
   382  }
   383  
   384  func (s *GdataContentTypeInfo) MarshalJSON() ([]byte, error) {
   385  	type NoMethod GdataContentTypeInfo
   386  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   387  }
   388  
   389  // GdataDiffChecksumsResponse: Backend response for a Diff get checksums
   390  // response. For details on the Scotty Diff protocol, visit
   391  // http://go/scotty-diff-protocol.
   392  type GdataDiffChecksumsResponse struct {
   393  	// ChecksumsLocation: Exactly one of these fields must be populated. If
   394  	// checksums_location is filled, the server will return the corresponding
   395  	// contents to the user. If object_location is filled, the server will
   396  	// calculate the checksums based on the content there and return that to the
   397  	// user. For details on the format of the checksums, see
   398  	// http://go/scotty-diff-protocol.
   399  	ChecksumsLocation *GdataCompositeMedia `json:"checksumsLocation,omitempty"`
   400  	// ChunkSizeBytes: The chunk size of checksums. Must be a multiple of 256KB.
   401  	ChunkSizeBytes int64 `json:"chunkSizeBytes,omitempty,string"`
   402  	// ObjectLocation: If set, calculate the checksums based on the contents and
   403  	// return them to the caller.
   404  	ObjectLocation *GdataCompositeMedia `json:"objectLocation,omitempty"`
   405  	// ObjectSizeBytes: The total size of the server object.
   406  	ObjectSizeBytes int64 `json:"objectSizeBytes,omitempty,string"`
   407  	// ObjectVersion: The object version of the object the checksums are being
   408  	// returned for.
   409  	ObjectVersion string `json:"objectVersion,omitempty"`
   410  	// ForceSendFields is a list of field names (e.g. "ChecksumsLocation") to
   411  	// unconditionally include in API requests. By default, fields with empty or
   412  	// default values are omitted from API requests. See
   413  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   414  	// details.
   415  	ForceSendFields []string `json:"-"`
   416  	// NullFields is a list of field names (e.g. "ChecksumsLocation") to include in
   417  	// API requests with the JSON null value. By default, fields with empty values
   418  	// are omitted from API requests. See
   419  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   420  	NullFields []string `json:"-"`
   421  }
   422  
   423  func (s *GdataDiffChecksumsResponse) MarshalJSON() ([]byte, error) {
   424  	type NoMethod GdataDiffChecksumsResponse
   425  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   426  }
   427  
   428  // GdataDiffDownloadResponse: Backend response for a Diff download response.
   429  // For details on the Scotty Diff protocol, visit
   430  // http://go/scotty-diff-protocol.
   431  type GdataDiffDownloadResponse struct {
   432  	// ObjectLocation: The original object location.
   433  	ObjectLocation *GdataCompositeMedia `json:"objectLocation,omitempty"`
   434  	// ForceSendFields is a list of field names (e.g. "ObjectLocation") to
   435  	// unconditionally include in API requests. By default, fields with empty or
   436  	// default values are omitted from API requests. See
   437  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   438  	// details.
   439  	ForceSendFields []string `json:"-"`
   440  	// NullFields is a list of field names (e.g. "ObjectLocation") to include in
   441  	// API requests with the JSON null value. By default, fields with empty values
   442  	// are omitted from API requests. See
   443  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   444  	NullFields []string `json:"-"`
   445  }
   446  
   447  func (s *GdataDiffDownloadResponse) MarshalJSON() ([]byte, error) {
   448  	type NoMethod GdataDiffDownloadResponse
   449  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   450  }
   451  
   452  // GdataDiffUploadRequest: A Diff upload request. For details on the Scotty
   453  // Diff protocol, visit http://go/scotty-diff-protocol.
   454  type GdataDiffUploadRequest struct {
   455  	// ChecksumsInfo: The location of the checksums for the new object. Agents must
   456  	// clone the object located here, as the upload server will delete the contents
   457  	// once a response is received. For details on the format of the checksums, see
   458  	// http://go/scotty-diff-protocol.
   459  	ChecksumsInfo *GdataCompositeMedia `json:"checksumsInfo,omitempty"`
   460  	// ObjectInfo: The location of the new object. Agents must clone the object
   461  	// located here, as the upload server will delete the contents once a response
   462  	// is received.
   463  	ObjectInfo *GdataCompositeMedia `json:"objectInfo,omitempty"`
   464  	// ObjectVersion: The object version of the object that is the base version the
   465  	// incoming diff script will be applied to. This field will always be filled
   466  	// in.
   467  	ObjectVersion string `json:"objectVersion,omitempty"`
   468  	// ForceSendFields is a list of field names (e.g. "ChecksumsInfo") to
   469  	// unconditionally include in API requests. By default, fields with empty or
   470  	// default values are omitted from API requests. See
   471  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   472  	// details.
   473  	ForceSendFields []string `json:"-"`
   474  	// NullFields is a list of field names (e.g. "ChecksumsInfo") to include in API
   475  	// requests with the JSON null value. By default, fields with empty values are
   476  	// omitted from API requests. See
   477  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   478  	NullFields []string `json:"-"`
   479  }
   480  
   481  func (s *GdataDiffUploadRequest) MarshalJSON() ([]byte, error) {
   482  	type NoMethod GdataDiffUploadRequest
   483  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   484  }
   485  
   486  // GdataDiffUploadResponse: Backend response for a Diff upload request. For
   487  // details on the Scotty Diff protocol, visit http://go/scotty-diff-protocol.
   488  type GdataDiffUploadResponse struct {
   489  	// ObjectVersion: The object version of the object at the server. Must be
   490  	// included in the end notification response. The version in the end
   491  	// notification response must correspond to the new version of the object that
   492  	// is now stored at the server, after the upload.
   493  	ObjectVersion string `json:"objectVersion,omitempty"`
   494  	// OriginalObject: The location of the original file for a diff upload request.
   495  	// Must be filled in if responding to an upload start notification.
   496  	OriginalObject *GdataCompositeMedia `json:"originalObject,omitempty"`
   497  	// ForceSendFields is a list of field names (e.g. "ObjectVersion") to
   498  	// unconditionally include in API requests. By default, fields with empty or
   499  	// default values are omitted from API requests. See
   500  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   501  	// details.
   502  	ForceSendFields []string `json:"-"`
   503  	// NullFields is a list of field names (e.g. "ObjectVersion") to include in API
   504  	// requests with the JSON null value. By default, fields with empty values are
   505  	// omitted from API requests. See
   506  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   507  	NullFields []string `json:"-"`
   508  }
   509  
   510  func (s *GdataDiffUploadResponse) MarshalJSON() ([]byte, error) {
   511  	type NoMethod GdataDiffUploadResponse
   512  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   513  }
   514  
   515  // GdataDiffVersionResponse: Backend response for a Diff get version response.
   516  // For details on the Scotty Diff protocol, visit
   517  // http://go/scotty-diff-protocol.
   518  type GdataDiffVersionResponse struct {
   519  	// ObjectSizeBytes: The total size of the server object.
   520  	ObjectSizeBytes int64 `json:"objectSizeBytes,omitempty,string"`
   521  	// ObjectVersion: The version of the object stored at the server.
   522  	ObjectVersion string `json:"objectVersion,omitempty"`
   523  	// ForceSendFields is a list of field names (e.g. "ObjectSizeBytes") to
   524  	// unconditionally include in API requests. By default, fields with empty or
   525  	// default values are omitted from API requests. See
   526  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   527  	// details.
   528  	ForceSendFields []string `json:"-"`
   529  	// NullFields is a list of field names (e.g. "ObjectSizeBytes") to include in
   530  	// API requests with the JSON null value. By default, fields with empty values
   531  	// are omitted from API requests. See
   532  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   533  	NullFields []string `json:"-"`
   534  }
   535  
   536  func (s *GdataDiffVersionResponse) MarshalJSON() ([]byte, error) {
   537  	type NoMethod GdataDiffVersionResponse
   538  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   539  }
   540  
   541  // GdataDownloadParameters: Parameters specific to media downloads.
   542  type GdataDownloadParameters struct {
   543  	// AllowGzipCompression: A boolean to be returned in the response to Scotty.
   544  	// Allows/disallows gzip encoding of the payload content when the server thinks
   545  	// it's advantageous (hence, does not guarantee compression) which allows
   546  	// Scotty to GZip the response to the client.
   547  	AllowGzipCompression bool `json:"allowGzipCompression,omitempty"`
   548  	// IgnoreRange: Determining whether or not Apiary should skip the inclusion of
   549  	// any Content-Range header on its response to Scotty.
   550  	IgnoreRange bool `json:"ignoreRange,omitempty"`
   551  	// ForceSendFields is a list of field names (e.g. "AllowGzipCompression") to
   552  	// unconditionally include in API requests. By default, fields with empty or
   553  	// default values are omitted from API requests. See
   554  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   555  	// details.
   556  	ForceSendFields []string `json:"-"`
   557  	// NullFields is a list of field names (e.g. "AllowGzipCompression") to include
   558  	// in API requests with the JSON null value. By default, fields with empty
   559  	// values are omitted from API requests. See
   560  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   561  	NullFields []string `json:"-"`
   562  }
   563  
   564  func (s *GdataDownloadParameters) MarshalJSON() ([]byte, error) {
   565  	type NoMethod GdataDownloadParameters
   566  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   567  }
   568  
   569  // GdataMedia: A reference to data stored on the filesystem, on GFS or in
   570  // blobstore.
   571  type GdataMedia struct {
   572  	// Algorithm: Deprecated, use one of explicit hash type fields instead.
   573  	// Algorithm used for calculating the hash. As of 2011/01/21, "MD5" is the only
   574  	// possible value for this field. New values may be added at any time.
   575  	Algorithm string `json:"algorithm,omitempty"`
   576  	// BigstoreObjectRef: Use object_id instead.
   577  	BigstoreObjectRef string `json:"bigstoreObjectRef,omitempty"`
   578  	// BlobRef: Blobstore v1 reference, set if reference_type is BLOBSTORE_REF This
   579  	// should be the byte representation of a blobstore.BlobRef. Since Blobstore is
   580  	// deprecating v1, use blobstore2_info instead. For now, any v2 blob will also
   581  	// be represented in this field as v1 BlobRef.
   582  	BlobRef string `json:"blobRef,omitempty"`
   583  	// Blobstore2Info: Blobstore v2 info, set if reference_type is BLOBSTORE_REF
   584  	// and it refers to a v2 blob.
   585  	Blobstore2Info *GdataBlobstore2Info `json:"blobstore2Info,omitempty"`
   586  	// CompositeMedia: A composite media composed of one or more media objects, set
   587  	// if reference_type is COMPOSITE_MEDIA. The media length field must be set to
   588  	// the sum of the lengths of all composite media objects. Note: All composite
   589  	// media must have length specified.
   590  	CompositeMedia []*GdataCompositeMedia `json:"compositeMedia,omitempty"`
   591  	// ContentType: MIME type of the data
   592  	ContentType string `json:"contentType,omitempty"`
   593  	// ContentTypeInfo: Extended content type information provided for Scotty
   594  	// uploads.
   595  	ContentTypeInfo *GdataContentTypeInfo `json:"contentTypeInfo,omitempty"`
   596  	// CosmoBinaryReference: A binary data reference for a media download. Serves
   597  	// as a technology-agnostic binary reference in some Google infrastructure.
   598  	// This value is a serialized storage_cosmo.BinaryReference proto. Storing it
   599  	// as bytes is a hack to get around the fact that the cosmo proto (as well as
   600  	// others it includes) doesn't support JavaScript. This prevents us from
   601  	// including the actual type of this field.
   602  	CosmoBinaryReference string `json:"cosmoBinaryReference,omitempty"`
   603  	// Crc32cHash: For Scotty Uploads: Scotty-provided hashes for uploads For
   604  	// Scotty Downloads: (WARNING: DO NOT USE WITHOUT PERMISSION FROM THE SCOTTY
   605  	// TEAM.) A Hash provided by the agent to be used to verify the data being
   606  	// downloaded. Currently only supported for inline payloads. Further, only
   607  	// crc32c_hash is currently supported.
   608  	Crc32cHash int64 `json:"crc32cHash,omitempty"`
   609  	// DiffChecksumsResponse: Set if reference_type is DIFF_CHECKSUMS_RESPONSE.
   610  	DiffChecksumsResponse *GdataDiffChecksumsResponse `json:"diffChecksumsResponse,omitempty"`
   611  	// DiffDownloadResponse: Set if reference_type is DIFF_DOWNLOAD_RESPONSE.
   612  	DiffDownloadResponse *GdataDiffDownloadResponse `json:"diffDownloadResponse,omitempty"`
   613  	// DiffUploadRequest: Set if reference_type is DIFF_UPLOAD_REQUEST.
   614  	DiffUploadRequest *GdataDiffUploadRequest `json:"diffUploadRequest,omitempty"`
   615  	// DiffUploadResponse: Set if reference_type is DIFF_UPLOAD_RESPONSE.
   616  	DiffUploadResponse *GdataDiffUploadResponse `json:"diffUploadResponse,omitempty"`
   617  	// DiffVersionResponse: Set if reference_type is DIFF_VERSION_RESPONSE.
   618  	DiffVersionResponse *GdataDiffVersionResponse `json:"diffVersionResponse,omitempty"`
   619  	// DownloadParameters: Parameters for a media download.
   620  	DownloadParameters *GdataDownloadParameters `json:"downloadParameters,omitempty"`
   621  	// Filename: Original file name
   622  	Filename string `json:"filename,omitempty"`
   623  	// Hash: Deprecated, use one of explicit hash type fields instead. These two
   624  	// hash related fields will only be populated on Scotty based media uploads and
   625  	// will contain the content of the hash group in the NotificationRequest:
   626  	// http://cs/#google3/uploader/service/proto/upload_listener.proto&q=class:Hash
   627  	// Hex encoded hash value of the uploaded media.
   628  	Hash string `json:"hash,omitempty"`
   629  	// HashVerified: For Scotty uploads only. If a user sends a hash code and the
   630  	// backend has requested that Scotty verify the upload against the client hash,
   631  	// Scotty will perform the check on behalf of the backend and will reject it if
   632  	// the hashes don't match. This is set to true if Scotty performed this
   633  	// verification.
   634  	HashVerified bool `json:"hashVerified,omitempty"`
   635  	// Inline: Media data, set if reference_type is INLINE
   636  	Inline string `json:"inline,omitempty"`
   637  	// IsPotentialRetry: |is_potential_retry| is set false only when Scotty is
   638  	// certain that it has not sent the request before. When a client resumes an
   639  	// upload, this field must be set true in agent calls, because Scotty cannot be
   640  	// certain that it has never sent the request before due to potential failure
   641  	// in the session state persistence.
   642  	IsPotentialRetry bool `json:"isPotentialRetry,omitempty"`
   643  	// Length: Size of the data, in bytes
   644  	Length int64 `json:"length,omitempty,string"`
   645  	// Md5Hash: Scotty-provided MD5 hash for an upload.
   646  	Md5Hash string `json:"md5Hash,omitempty"`
   647  	// MediaId: Media id to forward to the operation GetMedia. Can be set if
   648  	// reference_type is GET_MEDIA.
   649  	MediaId string `json:"mediaId,omitempty"`
   650  	// ObjectId: Reference to a TI Blob, set if reference_type is BIGSTORE_REF.
   651  	ObjectId *GdataObjectId `json:"objectId,omitempty"`
   652  	// Path: Path to the data, set if reference_type is PATH
   653  	Path string `json:"path,omitempty"`
   654  	// ReferenceType: Describes what the field reference contains.
   655  	//
   656  	// Possible values:
   657  	//   "PATH" - Reference contains a GFS path or a local path.
   658  	//   "BLOB_REF" - Reference points to a blobstore object. This could be either
   659  	// a v1 blob_ref or a v2 blobstore2_info. Clients should check blobstore2_info
   660  	// first, since v1 is being deprecated.
   661  	//   "INLINE" - Data is included into this proto buffer
   662  	//   "GET_MEDIA" - Data should be accessed from the current service using the
   663  	// operation GetMedia.
   664  	//   "COMPOSITE_MEDIA" - The content for this media object is stored across
   665  	// multiple partial media objects under the composite_media field.
   666  	//   "BIGSTORE_REF" - Reference points to a bigstore object
   667  	//   "DIFF_VERSION_RESPONSE" - Indicates the data is stored in
   668  	// diff_version_response.
   669  	//   "DIFF_CHECKSUMS_RESPONSE" - Indicates the data is stored in
   670  	// diff_checksums_response.
   671  	//   "DIFF_DOWNLOAD_RESPONSE" - Indicates the data is stored in
   672  	// diff_download_response.
   673  	//   "DIFF_UPLOAD_REQUEST" - Indicates the data is stored in
   674  	// diff_upload_request.
   675  	//   "DIFF_UPLOAD_RESPONSE" - Indicates the data is stored in
   676  	// diff_upload_response.
   677  	//   "COSMO_BINARY_REFERENCE" - Indicates the data is stored in
   678  	// cosmo_binary_reference.
   679  	//   "ARBITRARY_BYTES" - Informs Scotty to generate a response payload with the
   680  	// size specified in the length field. The contents of the payload are
   681  	// generated by Scotty and are undefined. This is useful for testing download
   682  	// speeds between the user and Scotty without involving a real payload source.
   683  	// Note: range is not supported when using arbitrary_bytes.
   684  	ReferenceType string `json:"referenceType,omitempty"`
   685  	// Sha1Hash: Scotty-provided SHA1 hash for an upload.
   686  	Sha1Hash string `json:"sha1Hash,omitempty"`
   687  	// Sha256Hash: Scotty-provided SHA256 hash for an upload.
   688  	Sha256Hash string `json:"sha256Hash,omitempty"`
   689  	// Timestamp: Time at which the media data was last updated, in milliseconds
   690  	// since UNIX epoch
   691  	Timestamp uint64 `json:"timestamp,omitempty,string"`
   692  	// Token: A unique fingerprint/version id for the media data
   693  	Token string `json:"token,omitempty"`
   694  	// ForceSendFields is a list of field names (e.g. "Algorithm") to
   695  	// unconditionally include in API requests. By default, fields with empty or
   696  	// default values are omitted from API requests. See
   697  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   698  	// details.
   699  	ForceSendFields []string `json:"-"`
   700  	// NullFields is a list of field names (e.g. "Algorithm") to include in API
   701  	// requests with the JSON null value. By default, fields with empty values are
   702  	// omitted from API requests. See
   703  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   704  	NullFields []string `json:"-"`
   705  }
   706  
   707  func (s *GdataMedia) MarshalJSON() ([]byte, error) {
   708  	type NoMethod GdataMedia
   709  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   710  }
   711  
   712  // GdataObjectId: This is a copy of the tech.blob.ObjectId proto, which could
   713  // not be used directly here due to transitive closure issues with JavaScript
   714  // support; see http://b/8801763.
   715  type GdataObjectId struct {
   716  	// BucketName: The name of the bucket to which this object belongs.
   717  	BucketName string `json:"bucketName,omitempty"`
   718  	// Generation: Generation of the object. Generations are monotonically
   719  	// increasing across writes, allowing them to be be compared to determine which
   720  	// generation is newer. If this is omitted in a request, then you are
   721  	// requesting the live object. See http://go/bigstore-versions
   722  	Generation int64 `json:"generation,omitempty,string"`
   723  	// ObjectName: The name of the object.
   724  	ObjectName string `json:"objectName,omitempty"`
   725  	// ForceSendFields is a list of field names (e.g. "BucketName") to
   726  	// unconditionally include in API requests. By default, fields with empty or
   727  	// default values are omitted from API requests. See
   728  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   729  	// details.
   730  	ForceSendFields []string `json:"-"`
   731  	// NullFields is a list of field names (e.g. "BucketName") to include in API
   732  	// requests with the JSON null value. By default, fields with empty values are
   733  	// omitted from API requests. See
   734  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   735  	NullFields []string `json:"-"`
   736  }
   737  
   738  func (s *GdataObjectId) MarshalJSON() ([]byte, error) {
   739  	type NoMethod GdataObjectId
   740  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   741  }
   742  
   743  // GoogleFirebaseAppdistroV1AabInfo: Android App Bundle (AAB) information for a
   744  // Firebase app.
   745  type GoogleFirebaseAppdistroV1AabInfo struct {
   746  	// IntegrationState: App bundle integration state. Only valid for android apps.
   747  	//
   748  	// Possible values:
   749  	//   "AAB_INTEGRATION_STATE_UNSPECIFIED" - Aab integration state unspecified
   750  	//   "INTEGRATED" - App can receive app bundle uploads
   751  	//   "PLAY_ACCOUNT_NOT_LINKED" - Firebase project is not linked to a Play
   752  	// developer account
   753  	//   "NO_APP_WITH_GIVEN_BUNDLE_ID_IN_PLAY_ACCOUNT" - There is no app in linked
   754  	// Play developer account with the same bundle id
   755  	//   "APP_NOT_PUBLISHED" - The app in Play developer account is not in a
   756  	// published state
   757  	//   "AAB_STATE_UNAVAILABLE" - Play App status is unavailable
   758  	//   "PLAY_IAS_TERMS_NOT_ACCEPTED" - Play IAS terms not accepted
   759  	IntegrationState string `json:"integrationState,omitempty"`
   760  	// Name: The name of the `AabInfo` resource. Format:
   761  	// `projects/{project_number}/apps/{app}/aabInfo`
   762  	Name string `json:"name,omitempty"`
   763  	// TestCertificate: App bundle test certificate generated for the app. Set
   764  	// after the first app bundle is uploaded for this app.
   765  	TestCertificate *GoogleFirebaseAppdistroV1TestCertificate `json:"testCertificate,omitempty"`
   766  
   767  	// ServerResponse contains the HTTP response code and headers from the server.
   768  	googleapi.ServerResponse `json:"-"`
   769  	// ForceSendFields is a list of field names (e.g. "IntegrationState") to
   770  	// unconditionally include in API requests. By default, fields with empty or
   771  	// default values are omitted from API requests. See
   772  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   773  	// details.
   774  	ForceSendFields []string `json:"-"`
   775  	// NullFields is a list of field names (e.g. "IntegrationState") to include in
   776  	// API requests with the JSON null value. By default, fields with empty values
   777  	// are omitted from API requests. See
   778  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   779  	NullFields []string `json:"-"`
   780  }
   781  
   782  func (s *GoogleFirebaseAppdistroV1AabInfo) MarshalJSON() ([]byte, error) {
   783  	type NoMethod GoogleFirebaseAppdistroV1AabInfo
   784  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   785  }
   786  
   787  // GoogleFirebaseAppdistroV1BatchAddTestersRequest: The Request message for
   788  // batch adding testers
   789  type GoogleFirebaseAppdistroV1BatchAddTestersRequest struct {
   790  	// Emails: Required. The email addresses of the tester resources to create. A
   791  	// maximum of 999 and a minimum of 1 tester can be created in a batch.
   792  	Emails []string `json:"emails,omitempty"`
   793  	// ForceSendFields is a list of field names (e.g. "Emails") to unconditionally
   794  	// include in API requests. By default, fields with empty or default values are
   795  	// omitted from API requests. See
   796  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   797  	// details.
   798  	ForceSendFields []string `json:"-"`
   799  	// NullFields is a list of field names (e.g. "Emails") to include in API
   800  	// requests with the JSON null value. By default, fields with empty values are
   801  	// omitted from API requests. See
   802  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   803  	NullFields []string `json:"-"`
   804  }
   805  
   806  func (s *GoogleFirebaseAppdistroV1BatchAddTestersRequest) MarshalJSON() ([]byte, error) {
   807  	type NoMethod GoogleFirebaseAppdistroV1BatchAddTestersRequest
   808  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   809  }
   810  
   811  // GoogleFirebaseAppdistroV1BatchAddTestersResponse: The Response message for
   812  // `BatchAddTesters`.
   813  type GoogleFirebaseAppdistroV1BatchAddTestersResponse struct {
   814  	// Testers: The testers which are created and/or already exist
   815  	Testers []*GoogleFirebaseAppdistroV1Tester `json:"testers,omitempty"`
   816  
   817  	// ServerResponse contains the HTTP response code and headers from the server.
   818  	googleapi.ServerResponse `json:"-"`
   819  	// ForceSendFields is a list of field names (e.g. "Testers") to unconditionally
   820  	// include in API requests. By default, fields with empty or default values are
   821  	// omitted from API requests. See
   822  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   823  	// details.
   824  	ForceSendFields []string `json:"-"`
   825  	// NullFields is a list of field names (e.g. "Testers") to include in API
   826  	// requests with the JSON null value. By default, fields with empty values are
   827  	// omitted from API requests. See
   828  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   829  	NullFields []string `json:"-"`
   830  }
   831  
   832  func (s *GoogleFirebaseAppdistroV1BatchAddTestersResponse) MarshalJSON() ([]byte, error) {
   833  	type NoMethod GoogleFirebaseAppdistroV1BatchAddTestersResponse
   834  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   835  }
   836  
   837  // GoogleFirebaseAppdistroV1BatchDeleteReleasesRequest: The request message for
   838  // `BatchDeleteReleases`.
   839  type GoogleFirebaseAppdistroV1BatchDeleteReleasesRequest struct {
   840  	// Names: Required. The names of the release resources to delete. Format:
   841  	// `projects/{project_number}/apps/{app_id}/releases/{release_id}` A maximum of
   842  	// 100 releases can be deleted per request.
   843  	Names []string `json:"names,omitempty"`
   844  	// ForceSendFields is a list of field names (e.g. "Names") to unconditionally
   845  	// include in API requests. By default, fields with empty or default values are
   846  	// omitted from API requests. See
   847  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   848  	// details.
   849  	ForceSendFields []string `json:"-"`
   850  	// NullFields is a list of field names (e.g. "Names") to include in API
   851  	// requests with the JSON null value. By default, fields with empty values are
   852  	// omitted from API requests. See
   853  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   854  	NullFields []string `json:"-"`
   855  }
   856  
   857  func (s *GoogleFirebaseAppdistroV1BatchDeleteReleasesRequest) MarshalJSON() ([]byte, error) {
   858  	type NoMethod GoogleFirebaseAppdistroV1BatchDeleteReleasesRequest
   859  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   860  }
   861  
   862  // GoogleFirebaseAppdistroV1BatchJoinGroupRequest: The request message for
   863  // `BatchJoinGroup`
   864  type GoogleFirebaseAppdistroV1BatchJoinGroupRequest struct {
   865  	// CreateMissingTesters: Indicates whether to create tester resources based on
   866  	// `emails` if they don't exist yet.
   867  	CreateMissingTesters bool `json:"createMissingTesters,omitempty"`
   868  	// Emails: Required. The emails of the testers to be added to the group. A
   869  	// maximum of 999 and a minimum of 1 tester can be created in a batch.
   870  	Emails []string `json:"emails,omitempty"`
   871  	// ForceSendFields is a list of field names (e.g. "CreateMissingTesters") to
   872  	// unconditionally include in API requests. By default, fields with empty or
   873  	// default values are omitted from API requests. See
   874  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   875  	// details.
   876  	ForceSendFields []string `json:"-"`
   877  	// NullFields is a list of field names (e.g. "CreateMissingTesters") to include
   878  	// in API requests with the JSON null value. By default, fields with empty
   879  	// values are omitted from API requests. See
   880  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   881  	NullFields []string `json:"-"`
   882  }
   883  
   884  func (s *GoogleFirebaseAppdistroV1BatchJoinGroupRequest) MarshalJSON() ([]byte, error) {
   885  	type NoMethod GoogleFirebaseAppdistroV1BatchJoinGroupRequest
   886  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   887  }
   888  
   889  // GoogleFirebaseAppdistroV1BatchLeaveGroupRequest: Request message for
   890  // `BatchLeaveGroup`
   891  type GoogleFirebaseAppdistroV1BatchLeaveGroupRequest struct {
   892  	// Emails: Required. The email addresses of the testers to be removed from the
   893  	// group. A maximum of 999 and a minimum of 1 testers can be removed in a
   894  	// batch.
   895  	Emails []string `json:"emails,omitempty"`
   896  	// ForceSendFields is a list of field names (e.g. "Emails") to unconditionally
   897  	// include in API requests. By default, fields with empty or default values are
   898  	// omitted from API requests. See
   899  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   900  	// details.
   901  	ForceSendFields []string `json:"-"`
   902  	// NullFields is a list of field names (e.g. "Emails") to include in API
   903  	// requests with the JSON null value. By default, fields with empty values are
   904  	// omitted from API requests. See
   905  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   906  	NullFields []string `json:"-"`
   907  }
   908  
   909  func (s *GoogleFirebaseAppdistroV1BatchLeaveGroupRequest) MarshalJSON() ([]byte, error) {
   910  	type NoMethod GoogleFirebaseAppdistroV1BatchLeaveGroupRequest
   911  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   912  }
   913  
   914  // GoogleFirebaseAppdistroV1BatchRemoveTestersRequest: The request message for
   915  // `BatchRemoveTesters`.
   916  type GoogleFirebaseAppdistroV1BatchRemoveTestersRequest struct {
   917  	// Emails: Required. The email addresses of the tester resources to removed. A
   918  	// maximum of 999 and a minimum of 1 testers can be deleted in a batch.
   919  	Emails []string `json:"emails,omitempty"`
   920  	// ForceSendFields is a list of field names (e.g. "Emails") to unconditionally
   921  	// include in API requests. By default, fields with empty or default values are
   922  	// omitted from API requests. See
   923  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   924  	// details.
   925  	ForceSendFields []string `json:"-"`
   926  	// NullFields is a list of field names (e.g. "Emails") to include in API
   927  	// requests with the JSON null value. By default, fields with empty values are
   928  	// omitted from API requests. See
   929  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   930  	NullFields []string `json:"-"`
   931  }
   932  
   933  func (s *GoogleFirebaseAppdistroV1BatchRemoveTestersRequest) MarshalJSON() ([]byte, error) {
   934  	type NoMethod GoogleFirebaseAppdistroV1BatchRemoveTestersRequest
   935  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   936  }
   937  
   938  // GoogleFirebaseAppdistroV1BatchRemoveTestersResponse: The response message
   939  // for `BatchRemoveTesters`
   940  type GoogleFirebaseAppdistroV1BatchRemoveTestersResponse struct {
   941  	// Emails: List of deleted tester emails
   942  	Emails []string `json:"emails,omitempty"`
   943  
   944  	// ServerResponse contains the HTTP response code and headers from the server.
   945  	googleapi.ServerResponse `json:"-"`
   946  	// ForceSendFields is a list of field names (e.g. "Emails") to unconditionally
   947  	// include in API requests. By default, fields with empty or default values are
   948  	// omitted from API requests. See
   949  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   950  	// details.
   951  	ForceSendFields []string `json:"-"`
   952  	// NullFields is a list of field names (e.g. "Emails") to include in API
   953  	// requests with the JSON null value. By default, fields with empty values are
   954  	// omitted from API requests. See
   955  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   956  	NullFields []string `json:"-"`
   957  }
   958  
   959  func (s *GoogleFirebaseAppdistroV1BatchRemoveTestersResponse) MarshalJSON() ([]byte, error) {
   960  	type NoMethod GoogleFirebaseAppdistroV1BatchRemoveTestersResponse
   961  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   962  }
   963  
   964  // GoogleFirebaseAppdistroV1DistributeReleaseRequest: The request message for
   965  // `DistributeRelease`.
   966  type GoogleFirebaseAppdistroV1DistributeReleaseRequest struct {
   967  	// GroupAliases: A list of group aliases (IDs) to be given access to this
   968  	// release. A combined maximum of 999 `testerEmails` and `groupAliases` can be
   969  	// specified in a single request.
   970  	GroupAliases []string `json:"groupAliases,omitempty"`
   971  	// TesterEmails: A list of tester email addresses to be given access to this
   972  	// release. A combined maximum of 999 `testerEmails` and `groupAliases` can be
   973  	// specified in a single request.
   974  	TesterEmails []string `json:"testerEmails,omitempty"`
   975  	// ForceSendFields is a list of field names (e.g. "GroupAliases") to
   976  	// unconditionally include in API requests. By default, fields with empty or
   977  	// default values are omitted from API requests. See
   978  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   979  	// details.
   980  	ForceSendFields []string `json:"-"`
   981  	// NullFields is a list of field names (e.g. "GroupAliases") to include in API
   982  	// requests with the JSON null value. By default, fields with empty values are
   983  	// omitted from API requests. See
   984  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   985  	NullFields []string `json:"-"`
   986  }
   987  
   988  func (s *GoogleFirebaseAppdistroV1DistributeReleaseRequest) MarshalJSON() ([]byte, error) {
   989  	type NoMethod GoogleFirebaseAppdistroV1DistributeReleaseRequest
   990  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   991  }
   992  
   993  // GoogleFirebaseAppdistroV1DistributeReleaseResponse: The response message for
   994  // `DistributeRelease`.
   995  type GoogleFirebaseAppdistroV1DistributeReleaseResponse struct {
   996  	// ServerResponse contains the HTTP response code and headers from the server.
   997  	googleapi.ServerResponse `json:"-"`
   998  }
   999  
  1000  // GoogleFirebaseAppdistroV1FeedbackReport: A feedback report submitted by a
  1001  // tester for a release.
  1002  type GoogleFirebaseAppdistroV1FeedbackReport struct {
  1003  	// CreateTime: Output only. The time when the feedback report was created.
  1004  	CreateTime string `json:"createTime,omitempty"`
  1005  	// FirebaseConsoleUri: Output only. A link to the Firebase console displaying
  1006  	// the feedback report.
  1007  	FirebaseConsoleUri string `json:"firebaseConsoleUri,omitempty"`
  1008  	// Name: The name of the feedback report resource. Format:
  1009  	// `projects/{project_number}/apps/{app}/releases/{release}/feedbackReports/{fee
  1010  	// dback_report}`
  1011  	Name string `json:"name,omitempty"`
  1012  	// ScreenshotUri: Output only. A signed link (which expires in one hour) that
  1013  	// lets you directly download the screenshot.
  1014  	ScreenshotUri string `json:"screenshotUri,omitempty"`
  1015  	// Tester: Output only. The resource name of the tester who submitted the
  1016  	// feedback report.
  1017  	Tester string `json:"tester,omitempty"`
  1018  	// Text: Output only. The text of the feedback report.
  1019  	Text string `json:"text,omitempty"`
  1020  
  1021  	// ServerResponse contains the HTTP response code and headers from the server.
  1022  	googleapi.ServerResponse `json:"-"`
  1023  	// ForceSendFields is a list of field names (e.g. "CreateTime") to
  1024  	// unconditionally include in API requests. By default, fields with empty or
  1025  	// default values are omitted from API requests. See
  1026  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1027  	// details.
  1028  	ForceSendFields []string `json:"-"`
  1029  	// NullFields is a list of field names (e.g. "CreateTime") to include in API
  1030  	// requests with the JSON null value. By default, fields with empty values are
  1031  	// omitted from API requests. See
  1032  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1033  	NullFields []string `json:"-"`
  1034  }
  1035  
  1036  func (s *GoogleFirebaseAppdistroV1FeedbackReport) MarshalJSON() ([]byte, error) {
  1037  	type NoMethod GoogleFirebaseAppdistroV1FeedbackReport
  1038  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1039  }
  1040  
  1041  // GoogleFirebaseAppdistroV1Group: A group which can contain testers. A group
  1042  // can be invited to test apps in a Firebase project.
  1043  type GoogleFirebaseAppdistroV1Group struct {
  1044  	// DisplayName: Required. The display name of the group.
  1045  	DisplayName string `json:"displayName,omitempty"`
  1046  	// InviteLinkCount: Output only. The number of invite links for this group.
  1047  	InviteLinkCount int64 `json:"inviteLinkCount,omitempty"`
  1048  	// Name: The name of the group resource. Format:
  1049  	// `projects/{project_number}/groups/{group_alias}`
  1050  	Name string `json:"name,omitempty"`
  1051  	// ReleaseCount: Output only. The number of releases this group is permitted to
  1052  	// access.
  1053  	ReleaseCount int64 `json:"releaseCount,omitempty"`
  1054  	// TesterCount: Output only. The number of testers who are members of this
  1055  	// group.
  1056  	TesterCount int64 `json:"testerCount,omitempty"`
  1057  
  1058  	// ServerResponse contains the HTTP response code and headers from the server.
  1059  	googleapi.ServerResponse `json:"-"`
  1060  	// ForceSendFields is a list of field names (e.g. "DisplayName") to
  1061  	// unconditionally include in API requests. By default, fields with empty or
  1062  	// default values are omitted from API requests. See
  1063  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1064  	// details.
  1065  	ForceSendFields []string `json:"-"`
  1066  	// NullFields is a list of field names (e.g. "DisplayName") to include in API
  1067  	// requests with the JSON null value. By default, fields with empty values are
  1068  	// omitted from API requests. See
  1069  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1070  	NullFields []string `json:"-"`
  1071  }
  1072  
  1073  func (s *GoogleFirebaseAppdistroV1Group) MarshalJSON() ([]byte, error) {
  1074  	type NoMethod GoogleFirebaseAppdistroV1Group
  1075  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1076  }
  1077  
  1078  // GoogleFirebaseAppdistroV1ListFeedbackReportsResponse: The response message
  1079  // for `ListFeedbackReports`.
  1080  type GoogleFirebaseAppdistroV1ListFeedbackReportsResponse struct {
  1081  	// FeedbackReports: The feedback reports
  1082  	FeedbackReports []*GoogleFirebaseAppdistroV1FeedbackReport `json:"feedbackReports,omitempty"`
  1083  	// NextPageToken: A short-lived token, which can be sent as `pageToken` to
  1084  	// retrieve the next page. If this field is omitted, there are no subsequent
  1085  	// pages.
  1086  	NextPageToken string `json:"nextPageToken,omitempty"`
  1087  
  1088  	// ServerResponse contains the HTTP response code and headers from the server.
  1089  	googleapi.ServerResponse `json:"-"`
  1090  	// ForceSendFields is a list of field names (e.g. "FeedbackReports") to
  1091  	// unconditionally include in API requests. By default, fields with empty or
  1092  	// default values are omitted from API requests. See
  1093  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1094  	// details.
  1095  	ForceSendFields []string `json:"-"`
  1096  	// NullFields is a list of field names (e.g. "FeedbackReports") to include in
  1097  	// API requests with the JSON null value. By default, fields with empty values
  1098  	// are omitted from API requests. See
  1099  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1100  	NullFields []string `json:"-"`
  1101  }
  1102  
  1103  func (s *GoogleFirebaseAppdistroV1ListFeedbackReportsResponse) MarshalJSON() ([]byte, error) {
  1104  	type NoMethod GoogleFirebaseAppdistroV1ListFeedbackReportsResponse
  1105  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1106  }
  1107  
  1108  // GoogleFirebaseAppdistroV1ListGroupsResponse: The response message for
  1109  // `ListGroups`.
  1110  type GoogleFirebaseAppdistroV1ListGroupsResponse struct {
  1111  	// Groups: The groups listed.
  1112  	Groups []*GoogleFirebaseAppdistroV1Group `json:"groups,omitempty"`
  1113  	// NextPageToken: A short-lived token, which can be sent as `pageToken` to
  1114  	// retrieve the next page. If this field is omitted, there are no subsequent
  1115  	// pages.
  1116  	NextPageToken string `json:"nextPageToken,omitempty"`
  1117  
  1118  	// ServerResponse contains the HTTP response code and headers from the server.
  1119  	googleapi.ServerResponse `json:"-"`
  1120  	// ForceSendFields is a list of field names (e.g. "Groups") to unconditionally
  1121  	// include in API requests. By default, fields with empty or default values are
  1122  	// omitted from API requests. See
  1123  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1124  	// details.
  1125  	ForceSendFields []string `json:"-"`
  1126  	// NullFields is a list of field names (e.g. "Groups") to include in API
  1127  	// requests with the JSON null value. By default, fields with empty values are
  1128  	// omitted from API requests. See
  1129  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1130  	NullFields []string `json:"-"`
  1131  }
  1132  
  1133  func (s *GoogleFirebaseAppdistroV1ListGroupsResponse) MarshalJSON() ([]byte, error) {
  1134  	type NoMethod GoogleFirebaseAppdistroV1ListGroupsResponse
  1135  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1136  }
  1137  
  1138  // GoogleFirebaseAppdistroV1ListReleasesResponse: The response message for
  1139  // `ListReleases`.
  1140  type GoogleFirebaseAppdistroV1ListReleasesResponse struct {
  1141  	// NextPageToken: A short-lived token, which can be sent as `pageToken` to
  1142  	// retrieve the next page. If this field is omitted, there are no subsequent
  1143  	// pages.
  1144  	NextPageToken string `json:"nextPageToken,omitempty"`
  1145  	// Releases: The releases
  1146  	Releases []*GoogleFirebaseAppdistroV1Release `json:"releases,omitempty"`
  1147  
  1148  	// ServerResponse contains the HTTP response code and headers from the server.
  1149  	googleapi.ServerResponse `json:"-"`
  1150  	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
  1151  	// unconditionally include in API requests. By default, fields with empty or
  1152  	// default values are omitted from API requests. See
  1153  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1154  	// details.
  1155  	ForceSendFields []string `json:"-"`
  1156  	// NullFields is a list of field names (e.g. "NextPageToken") to include in API
  1157  	// requests with the JSON null value. By default, fields with empty values are
  1158  	// omitted from API requests. See
  1159  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1160  	NullFields []string `json:"-"`
  1161  }
  1162  
  1163  func (s *GoogleFirebaseAppdistroV1ListReleasesResponse) MarshalJSON() ([]byte, error) {
  1164  	type NoMethod GoogleFirebaseAppdistroV1ListReleasesResponse
  1165  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1166  }
  1167  
  1168  // GoogleFirebaseAppdistroV1ListTestersResponse: The response message for
  1169  // `ListTesters`.
  1170  type GoogleFirebaseAppdistroV1ListTestersResponse struct {
  1171  	// NextPageToken: A short-lived token, which can be sent as `pageToken` to
  1172  	// retrieve the next page. If this field is omitted, there are no subsequent
  1173  	// pages.
  1174  	NextPageToken string `json:"nextPageToken,omitempty"`
  1175  	// Testers: The testers listed.
  1176  	Testers []*GoogleFirebaseAppdistroV1Tester `json:"testers,omitempty"`
  1177  
  1178  	// ServerResponse contains the HTTP response code and headers from the server.
  1179  	googleapi.ServerResponse `json:"-"`
  1180  	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
  1181  	// unconditionally include in API requests. By default, fields with empty or
  1182  	// default values are omitted from API requests. See
  1183  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1184  	// details.
  1185  	ForceSendFields []string `json:"-"`
  1186  	// NullFields is a list of field names (e.g. "NextPageToken") to include in API
  1187  	// requests with the JSON null value. By default, fields with empty values are
  1188  	// omitted from API requests. See
  1189  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1190  	NullFields []string `json:"-"`
  1191  }
  1192  
  1193  func (s *GoogleFirebaseAppdistroV1ListTestersResponse) MarshalJSON() ([]byte, error) {
  1194  	type NoMethod GoogleFirebaseAppdistroV1ListTestersResponse
  1195  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1196  }
  1197  
  1198  // GoogleFirebaseAppdistroV1Release: A release of a Firebase app.
  1199  type GoogleFirebaseAppdistroV1Release struct {
  1200  	// BinaryDownloadUri: Output only. A signed link (which expires in one hour) to
  1201  	// directly download the app binary (IPA/APK/AAB) file.
  1202  	BinaryDownloadUri string `json:"binaryDownloadUri,omitempty"`
  1203  	// BuildVersion: Output only. Build version of the release. For an Android
  1204  	// release, the build version is the `versionCode`. For an iOS release, the
  1205  	// build version is the `CFBundleVersion`.
  1206  	BuildVersion string `json:"buildVersion,omitempty"`
  1207  	// CreateTime: Output only. The time the release was created.
  1208  	CreateTime string `json:"createTime,omitempty"`
  1209  	// DisplayVersion: Output only. Display version of the release. For an Android
  1210  	// release, the display version is the `versionName`. For an iOS release, the
  1211  	// display version is the `CFBundleShortVersionString`.
  1212  	DisplayVersion string `json:"displayVersion,omitempty"`
  1213  	// FirebaseConsoleUri: Output only. A link to the Firebase console displaying a
  1214  	// single release.
  1215  	FirebaseConsoleUri string `json:"firebaseConsoleUri,omitempty"`
  1216  	// Name: The name of the release resource. Format:
  1217  	// `projects/{project_number}/apps/{app_id}/releases/{release_id}`
  1218  	Name string `json:"name,omitempty"`
  1219  	// ReleaseNotes: Notes of the release.
  1220  	ReleaseNotes *GoogleFirebaseAppdistroV1ReleaseNotes `json:"releaseNotes,omitempty"`
  1221  	// TestingUri: Output only. A link to the release in the tester web clip or
  1222  	// Android app that lets testers (which were granted access to the app) view
  1223  	// release notes and install the app onto their devices.
  1224  	TestingUri string `json:"testingUri,omitempty"`
  1225  
  1226  	// ServerResponse contains the HTTP response code and headers from the server.
  1227  	googleapi.ServerResponse `json:"-"`
  1228  	// ForceSendFields is a list of field names (e.g. "BinaryDownloadUri") to
  1229  	// unconditionally include in API requests. By default, fields with empty or
  1230  	// default values are omitted from API requests. See
  1231  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1232  	// details.
  1233  	ForceSendFields []string `json:"-"`
  1234  	// NullFields is a list of field names (e.g. "BinaryDownloadUri") to include in
  1235  	// API requests with the JSON null value. By default, fields with empty values
  1236  	// are omitted from API requests. See
  1237  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1238  	NullFields []string `json:"-"`
  1239  }
  1240  
  1241  func (s *GoogleFirebaseAppdistroV1Release) MarshalJSON() ([]byte, error) {
  1242  	type NoMethod GoogleFirebaseAppdistroV1Release
  1243  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1244  }
  1245  
  1246  // GoogleFirebaseAppdistroV1ReleaseNotes: Notes that belong to a release.
  1247  type GoogleFirebaseAppdistroV1ReleaseNotes struct {
  1248  	// Text: The text of the release notes.
  1249  	Text string `json:"text,omitempty"`
  1250  	// ForceSendFields is a list of field names (e.g. "Text") to unconditionally
  1251  	// include in API requests. By default, fields with empty or default values are
  1252  	// omitted from API requests. See
  1253  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1254  	// details.
  1255  	ForceSendFields []string `json:"-"`
  1256  	// NullFields is a list of field names (e.g. "Text") to include in API requests
  1257  	// with the JSON null value. By default, fields with empty values are omitted
  1258  	// from API requests. See
  1259  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1260  	NullFields []string `json:"-"`
  1261  }
  1262  
  1263  func (s *GoogleFirebaseAppdistroV1ReleaseNotes) MarshalJSON() ([]byte, error) {
  1264  	type NoMethod GoogleFirebaseAppdistroV1ReleaseNotes
  1265  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1266  }
  1267  
  1268  // GoogleFirebaseAppdistroV1TestCertificate: App bundle test certificate
  1269  type GoogleFirebaseAppdistroV1TestCertificate struct {
  1270  	// HashMd5: Hex string of MD5 hash of the test certificate used to resign the
  1271  	// AAB
  1272  	HashMd5 string `json:"hashMd5,omitempty"`
  1273  	// HashSha1: Hex string of SHA1 hash of the test certificate used to resign the
  1274  	// AAB
  1275  	HashSha1 string `json:"hashSha1,omitempty"`
  1276  	// HashSha256: Hex string of SHA256 hash of the test certificate used to resign
  1277  	// the AAB
  1278  	HashSha256 string `json:"hashSha256,omitempty"`
  1279  	// ForceSendFields is a list of field names (e.g. "HashMd5") to unconditionally
  1280  	// include in API requests. By default, fields with empty or default values are
  1281  	// omitted from API requests. See
  1282  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1283  	// details.
  1284  	ForceSendFields []string `json:"-"`
  1285  	// NullFields is a list of field names (e.g. "HashMd5") to include in API
  1286  	// requests with the JSON null value. By default, fields with empty values are
  1287  	// omitted from API requests. See
  1288  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1289  	NullFields []string `json:"-"`
  1290  }
  1291  
  1292  func (s *GoogleFirebaseAppdistroV1TestCertificate) MarshalJSON() ([]byte, error) {
  1293  	type NoMethod GoogleFirebaseAppdistroV1TestCertificate
  1294  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1295  }
  1296  
  1297  // GoogleFirebaseAppdistroV1Tester: A person that can be invited to test apps
  1298  // in a Firebase project.
  1299  type GoogleFirebaseAppdistroV1Tester struct {
  1300  	// DisplayName: The name of the tester associated with the Google account used
  1301  	// to accept the tester invitation.
  1302  	DisplayName string `json:"displayName,omitempty"`
  1303  	// Groups: The resource names of the groups this tester belongs to.
  1304  	Groups []string `json:"groups,omitempty"`
  1305  	// LastActivityTime: Output only. The time the tester was last active. This is
  1306  	// the most recent time the tester installed one of the apps. If they've never
  1307  	// installed one or if the release no longer exists, this is the time the
  1308  	// tester was added to the project.
  1309  	LastActivityTime string `json:"lastActivityTime,omitempty"`
  1310  	// Name: The name of the tester resource. Format:
  1311  	// `projects/{project_number}/testers/{email_address}`
  1312  	Name string `json:"name,omitempty"`
  1313  
  1314  	// ServerResponse contains the HTTP response code and headers from the server.
  1315  	googleapi.ServerResponse `json:"-"`
  1316  	// ForceSendFields is a list of field names (e.g. "DisplayName") to
  1317  	// unconditionally include in API requests. By default, fields with empty or
  1318  	// default values are omitted from API requests. See
  1319  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1320  	// details.
  1321  	ForceSendFields []string `json:"-"`
  1322  	// NullFields is a list of field names (e.g. "DisplayName") to include in API
  1323  	// requests with the JSON null value. By default, fields with empty values are
  1324  	// omitted from API requests. See
  1325  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1326  	NullFields []string `json:"-"`
  1327  }
  1328  
  1329  func (s *GoogleFirebaseAppdistroV1Tester) MarshalJSON() ([]byte, error) {
  1330  	type NoMethod GoogleFirebaseAppdistroV1Tester
  1331  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1332  }
  1333  
  1334  // GoogleFirebaseAppdistroV1UploadReleaseMetadata: Operation metadata for
  1335  // `UploadRelease`.
  1336  type GoogleFirebaseAppdistroV1UploadReleaseMetadata struct {
  1337  }
  1338  
  1339  // GoogleFirebaseAppdistroV1UploadReleaseRequest: Request message for
  1340  // `UploadRelease`.
  1341  type GoogleFirebaseAppdistroV1UploadReleaseRequest struct {
  1342  	// Blob: Binary to upload
  1343  	Blob *GdataMedia `json:"blob,omitempty"`
  1344  	// ForceSendFields is a list of field names (e.g. "Blob") to unconditionally
  1345  	// include in API requests. By default, fields with empty or default values are
  1346  	// omitted from API requests. See
  1347  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1348  	// details.
  1349  	ForceSendFields []string `json:"-"`
  1350  	// NullFields is a list of field names (e.g. "Blob") to include in API requests
  1351  	// with the JSON null value. By default, fields with empty values are omitted
  1352  	// from API requests. See
  1353  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1354  	NullFields []string `json:"-"`
  1355  }
  1356  
  1357  func (s *GoogleFirebaseAppdistroV1UploadReleaseRequest) MarshalJSON() ([]byte, error) {
  1358  	type NoMethod GoogleFirebaseAppdistroV1UploadReleaseRequest
  1359  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1360  }
  1361  
  1362  // GoogleFirebaseAppdistroV1UploadReleaseResponse: Response message for
  1363  // `UploadRelease`.
  1364  type GoogleFirebaseAppdistroV1UploadReleaseResponse struct {
  1365  	// Release: Release associated with the uploaded binary.
  1366  	Release *GoogleFirebaseAppdistroV1Release `json:"release,omitempty"`
  1367  	// Result: Result of upload release.
  1368  	//
  1369  	// Possible values:
  1370  	//   "UPLOAD_RELEASE_RESULT_UNSPECIFIED" - Upload binary result unspecified
  1371  	//   "RELEASE_CREATED" - Upload binary resulted in a new release
  1372  	//   "RELEASE_UPDATED" - Upload binary updated an existing release
  1373  	//   "RELEASE_UNMODIFIED" - Upload binary resulted in a no-op. A release with
  1374  	// the exact same binary already exists.
  1375  	Result string `json:"result,omitempty"`
  1376  	// ForceSendFields is a list of field names (e.g. "Release") to unconditionally
  1377  	// include in API requests. By default, fields with empty or default values are
  1378  	// omitted from API requests. See
  1379  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1380  	// details.
  1381  	ForceSendFields []string `json:"-"`
  1382  	// NullFields is a list of field names (e.g. "Release") to include in API
  1383  	// requests with the JSON null value. By default, fields with empty values are
  1384  	// omitted from API requests. See
  1385  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1386  	NullFields []string `json:"-"`
  1387  }
  1388  
  1389  func (s *GoogleFirebaseAppdistroV1UploadReleaseResponse) MarshalJSON() ([]byte, error) {
  1390  	type NoMethod GoogleFirebaseAppdistroV1UploadReleaseResponse
  1391  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1392  }
  1393  
  1394  // GoogleLongrunningCancelOperationRequest: The request message for
  1395  // Operations.CancelOperation.
  1396  type GoogleLongrunningCancelOperationRequest struct {
  1397  }
  1398  
  1399  // GoogleLongrunningListOperationsResponse: The response message for
  1400  // Operations.ListOperations.
  1401  type GoogleLongrunningListOperationsResponse struct {
  1402  	// NextPageToken: The standard List next-page token.
  1403  	NextPageToken string `json:"nextPageToken,omitempty"`
  1404  	// Operations: A list of operations that matches the specified filter in the
  1405  	// request.
  1406  	Operations []*GoogleLongrunningOperation `json:"operations,omitempty"`
  1407  
  1408  	// ServerResponse contains the HTTP response code and headers from the server.
  1409  	googleapi.ServerResponse `json:"-"`
  1410  	// ForceSendFields is a list of field names (e.g. "NextPageToken") to
  1411  	// unconditionally include in API requests. By default, fields with empty or
  1412  	// default values are omitted from API requests. See
  1413  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1414  	// details.
  1415  	ForceSendFields []string `json:"-"`
  1416  	// NullFields is a list of field names (e.g. "NextPageToken") to include in API
  1417  	// requests with the JSON null value. By default, fields with empty values are
  1418  	// omitted from API requests. See
  1419  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1420  	NullFields []string `json:"-"`
  1421  }
  1422  
  1423  func (s *GoogleLongrunningListOperationsResponse) MarshalJSON() ([]byte, error) {
  1424  	type NoMethod GoogleLongrunningListOperationsResponse
  1425  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1426  }
  1427  
  1428  // GoogleLongrunningOperation: This resource represents a long-running
  1429  // operation that is the result of a network API call.
  1430  type GoogleLongrunningOperation struct {
  1431  	// Done: If the value is `false`, it means the operation is still in progress.
  1432  	// If `true`, the operation is completed, and either `error` or `response` is
  1433  	// available.
  1434  	Done bool `json:"done,omitempty"`
  1435  	// Error: The error result of the operation in case of failure or cancellation.
  1436  	Error *GoogleRpcStatus `json:"error,omitempty"`
  1437  	// Metadata: Service-specific metadata associated with the operation. It
  1438  	// typically contains progress information and common metadata such as create
  1439  	// time. Some services might not provide such metadata. Any method that returns
  1440  	// a long-running operation should document the metadata type, if any.
  1441  	Metadata googleapi.RawMessage `json:"metadata,omitempty"`
  1442  	// Name: The server-assigned name, which is only unique within the same service
  1443  	// that originally returns it. If you use the default HTTP mapping, the `name`
  1444  	// should be a resource name ending with `operations/{unique_id}`.
  1445  	Name string `json:"name,omitempty"`
  1446  	// Response: The normal, successful response of the operation. If the original
  1447  	// method returns no data on success, such as `Delete`, the response is
  1448  	// `google.protobuf.Empty`. If the original method is standard
  1449  	// `Get`/`Create`/`Update`, the response should be the resource. For other
  1450  	// methods, the response should have the type `XxxResponse`, where `Xxx` is the
  1451  	// original method name. For example, if the original method name is
  1452  	// `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
  1453  	Response googleapi.RawMessage `json:"response,omitempty"`
  1454  
  1455  	// ServerResponse contains the HTTP response code and headers from the server.
  1456  	googleapi.ServerResponse `json:"-"`
  1457  	// ForceSendFields is a list of field names (e.g. "Done") to unconditionally
  1458  	// include in API requests. By default, fields with empty or default values are
  1459  	// omitted from API requests. See
  1460  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1461  	// details.
  1462  	ForceSendFields []string `json:"-"`
  1463  	// NullFields is a list of field names (e.g. "Done") to include in API requests
  1464  	// with the JSON null value. By default, fields with empty values are omitted
  1465  	// from API requests. See
  1466  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1467  	NullFields []string `json:"-"`
  1468  }
  1469  
  1470  func (s *GoogleLongrunningOperation) MarshalJSON() ([]byte, error) {
  1471  	type NoMethod GoogleLongrunningOperation
  1472  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1473  }
  1474  
  1475  // GoogleLongrunningWaitOperationRequest: The request message for
  1476  // Operations.WaitOperation.
  1477  type GoogleLongrunningWaitOperationRequest struct {
  1478  	// Timeout: The maximum duration to wait before timing out. If left blank, the
  1479  	// wait will be at most the time permitted by the underlying HTTP/RPC protocol.
  1480  	// If RPC context deadline is also specified, the shorter one will be used.
  1481  	Timeout string `json:"timeout,omitempty"`
  1482  	// ForceSendFields is a list of field names (e.g. "Timeout") to unconditionally
  1483  	// include in API requests. By default, fields with empty or default values are
  1484  	// omitted from API requests. See
  1485  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1486  	// details.
  1487  	ForceSendFields []string `json:"-"`
  1488  	// NullFields is a list of field names (e.g. "Timeout") to include in API
  1489  	// requests with the JSON null value. By default, fields with empty values are
  1490  	// omitted from API requests. See
  1491  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1492  	NullFields []string `json:"-"`
  1493  }
  1494  
  1495  func (s *GoogleLongrunningWaitOperationRequest) MarshalJSON() ([]byte, error) {
  1496  	type NoMethod GoogleLongrunningWaitOperationRequest
  1497  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1498  }
  1499  
  1500  // GoogleProtobufEmpty: A generic empty message that you can re-use to avoid
  1501  // defining duplicated empty messages in your APIs. A typical example is to use
  1502  // it as the request or the response type of an API method. For instance:
  1503  // service Foo { rpc Bar(google.protobuf.Empty) returns
  1504  // (google.protobuf.Empty); }
  1505  type GoogleProtobufEmpty struct {
  1506  	// ServerResponse contains the HTTP response code and headers from the server.
  1507  	googleapi.ServerResponse `json:"-"`
  1508  }
  1509  
  1510  // GoogleRpcStatus: The `Status` type defines a logical error model that is
  1511  // suitable for different programming environments, including REST APIs and RPC
  1512  // APIs. It is used by gRPC (https://github.com/grpc). Each `Status` message
  1513  // contains three pieces of data: error code, error message, and error details.
  1514  // You can find out more about this error model and how to work with it in the
  1515  // API Design Guide (https://cloud.google.com/apis/design/errors).
  1516  type GoogleRpcStatus struct {
  1517  	// Code: The status code, which should be an enum value of google.rpc.Code.
  1518  	Code int64 `json:"code,omitempty"`
  1519  	// Details: A list of messages that carry the error details. There is a common
  1520  	// set of message types for APIs to use.
  1521  	Details []googleapi.RawMessage `json:"details,omitempty"`
  1522  	// Message: A developer-facing error message, which should be in English. Any
  1523  	// user-facing error message should be localized and sent in the
  1524  	// google.rpc.Status.details field, or localized by the client.
  1525  	Message string `json:"message,omitempty"`
  1526  	// ForceSendFields is a list of field names (e.g. "Code") to unconditionally
  1527  	// include in API requests. By default, fields with empty or default values are
  1528  	// omitted from API requests. See
  1529  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1530  	// details.
  1531  	ForceSendFields []string `json:"-"`
  1532  	// NullFields is a list of field names (e.g. "Code") to include in API requests
  1533  	// with the JSON null value. By default, fields with empty values are omitted
  1534  	// from API requests. See
  1535  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1536  	NullFields []string `json:"-"`
  1537  }
  1538  
  1539  func (s *GoogleRpcStatus) MarshalJSON() ([]byte, error) {
  1540  	type NoMethod GoogleRpcStatus
  1541  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1542  }
  1543  
  1544  type MediaUploadCall struct {
  1545  	s                                             *Service
  1546  	app                                           string
  1547  	googlefirebaseappdistrov1uploadreleaserequest *GoogleFirebaseAppdistroV1UploadReleaseRequest
  1548  	urlParams_                                    gensupport.URLParams
  1549  	mediaInfo_                                    *gensupport.MediaInfo
  1550  	ctx_                                          context.Context
  1551  	header_                                       http.Header
  1552  }
  1553  
  1554  // Upload: Uploads a binary. Uploading a binary can result in a new release
  1555  // being created, an update to an existing release, or a no-op if a release
  1556  // with the same binary already exists.
  1557  //
  1558  //   - app: The name of the app resource. Format:
  1559  //     `projects/{project_number}/apps/{app_id}`.
  1560  func (r *MediaService) Upload(app string, googlefirebaseappdistrov1uploadreleaserequest *GoogleFirebaseAppdistroV1UploadReleaseRequest) *MediaUploadCall {
  1561  	c := &MediaUploadCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  1562  	c.app = app
  1563  	c.googlefirebaseappdistrov1uploadreleaserequest = googlefirebaseappdistrov1uploadreleaserequest
  1564  	return c
  1565  }
  1566  
  1567  // Media specifies the media to upload in one or more chunks. The chunk size
  1568  // may be controlled by supplying a MediaOption generated by
  1569  // googleapi.ChunkSize. The chunk size defaults to
  1570  // googleapi.DefaultUploadChunkSize.The Content-Type header used in the upload
  1571  // request will be determined by sniffing the contents of r, unless a
  1572  // MediaOption generated by googleapi.ContentType is supplied.
  1573  // At most one of Media and ResumableMedia may be set.
  1574  func (c *MediaUploadCall) Media(r io.Reader, options ...googleapi.MediaOption) *MediaUploadCall {
  1575  	c.mediaInfo_ = gensupport.NewInfoFromMedia(r, options)
  1576  	return c
  1577  }
  1578  
  1579  // ResumableMedia specifies the media to upload in chunks and can be canceled
  1580  // with ctx.
  1581  //
  1582  // Deprecated: use Media instead.
  1583  //
  1584  // At most one of Media and ResumableMedia may be set. mediaType identifies the
  1585  // MIME media type of the upload, such as "image/png". If mediaType is "", it
  1586  // will be auto-detected. The provided ctx will supersede any context
  1587  // previously provided to the Context method.
  1588  func (c *MediaUploadCall) ResumableMedia(ctx context.Context, r io.ReaderAt, size int64, mediaType string) *MediaUploadCall {
  1589  	c.ctx_ = ctx
  1590  	c.mediaInfo_ = gensupport.NewInfoFromResumableMedia(r, size, mediaType)
  1591  	return c
  1592  }
  1593  
  1594  // ProgressUpdater provides a callback function that will be called after every
  1595  // chunk. It should be a low-latency function in order to not slow down the
  1596  // upload operation. This should only be called when using ResumableMedia (as
  1597  // opposed to Media).
  1598  func (c *MediaUploadCall) ProgressUpdater(pu googleapi.ProgressUpdater) *MediaUploadCall {
  1599  	c.mediaInfo_.SetProgressUpdater(pu)
  1600  	return c
  1601  }
  1602  
  1603  // Fields allows partial responses to be retrieved. See
  1604  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  1605  // details.
  1606  func (c *MediaUploadCall) Fields(s ...googleapi.Field) *MediaUploadCall {
  1607  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  1608  	return c
  1609  }
  1610  
  1611  // Context sets the context to be used in this call's Do method.
  1612  // This context will supersede any context previously provided to the
  1613  // ResumableMedia method.
  1614  func (c *MediaUploadCall) Context(ctx context.Context) *MediaUploadCall {
  1615  	c.ctx_ = ctx
  1616  	return c
  1617  }
  1618  
  1619  // Header returns a http.Header that can be modified by the caller to add
  1620  // headers to the request.
  1621  func (c *MediaUploadCall) Header() http.Header {
  1622  	if c.header_ == nil {
  1623  		c.header_ = make(http.Header)
  1624  	}
  1625  	return c.header_
  1626  }
  1627  
  1628  func (c *MediaUploadCall) doRequest(alt string) (*http.Response, error) {
  1629  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  1630  	var body io.Reader = nil
  1631  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlefirebaseappdistrov1uploadreleaserequest)
  1632  	if err != nil {
  1633  		return nil, err
  1634  	}
  1635  	c.urlParams_.Set("alt", alt)
  1636  	c.urlParams_.Set("prettyPrint", "false")
  1637  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+app}/releases:upload")
  1638  	if c.mediaInfo_ != nil {
  1639  		urls = googleapi.ResolveRelative(c.s.BasePath, "/upload/v1/{+app}/releases:upload")
  1640  		c.urlParams_.Set("uploadType", c.mediaInfo_.UploadType())
  1641  	}
  1642  	if body == nil {
  1643  		body = new(bytes.Buffer)
  1644  		reqHeaders.Set("Content-Type", "application/json")
  1645  	}
  1646  	body, getBody, cleanup := c.mediaInfo_.UploadRequest(reqHeaders, body)
  1647  	defer cleanup()
  1648  	urls += "?" + c.urlParams_.Encode()
  1649  	req, err := http.NewRequest("POST", urls, body)
  1650  	if err != nil {
  1651  		return nil, err
  1652  	}
  1653  	req.Header = reqHeaders
  1654  	req.GetBody = getBody
  1655  	googleapi.Expand(req.URL, map[string]string{
  1656  		"app": c.app,
  1657  	})
  1658  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  1659  }
  1660  
  1661  // Do executes the "firebaseappdistribution.media.upload" call.
  1662  // Any non-2xx status code is an error. Response headers are in either
  1663  // *GoogleLongrunningOperation.ServerResponse.Header or (if a response was
  1664  // returned at all) in error.(*googleapi.Error).Header. Use
  1665  // googleapi.IsNotModified to check whether the returned error was because
  1666  // http.StatusNotModified was returned.
  1667  func (c *MediaUploadCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, error) {
  1668  	gensupport.SetOptions(c.urlParams_, opts...)
  1669  	res, err := c.doRequest("json")
  1670  	if res != nil && res.StatusCode == http.StatusNotModified {
  1671  		if res.Body != nil {
  1672  			res.Body.Close()
  1673  		}
  1674  		return nil, gensupport.WrapError(&googleapi.Error{
  1675  			Code:   res.StatusCode,
  1676  			Header: res.Header,
  1677  		})
  1678  	}
  1679  	if err != nil {
  1680  		return nil, err
  1681  	}
  1682  	defer googleapi.CloseBody(res)
  1683  	if err := googleapi.CheckResponse(res); err != nil {
  1684  		return nil, gensupport.WrapError(err)
  1685  	}
  1686  	rx := c.mediaInfo_.ResumableUpload(res.Header.Get("Location"))
  1687  	if rx != nil {
  1688  		rx.Client = c.s.client
  1689  		rx.UserAgent = c.s.userAgent()
  1690  		ctx := c.ctx_
  1691  		if ctx == nil {
  1692  			ctx = context.TODO()
  1693  		}
  1694  		res, err = rx.Upload(ctx)
  1695  		if err != nil {
  1696  			return nil, err
  1697  		}
  1698  		defer res.Body.Close()
  1699  		if err := googleapi.CheckResponse(res); err != nil {
  1700  			return nil, gensupport.WrapError(err)
  1701  		}
  1702  	}
  1703  	ret := &GoogleLongrunningOperation{
  1704  		ServerResponse: googleapi.ServerResponse{
  1705  			Header:         res.Header,
  1706  			HTTPStatusCode: res.StatusCode,
  1707  		},
  1708  	}
  1709  	target := &ret
  1710  	if err := gensupport.DecodeResponse(target, res); err != nil {
  1711  		return nil, err
  1712  	}
  1713  	return ret, nil
  1714  }
  1715  
  1716  type ProjectsAppsGetAabInfoCall struct {
  1717  	s            *Service
  1718  	name         string
  1719  	urlParams_   gensupport.URLParams
  1720  	ifNoneMatch_ string
  1721  	ctx_         context.Context
  1722  	header_      http.Header
  1723  }
  1724  
  1725  // GetAabInfo: Gets Android App Bundle (AAB) information for a Firebase app.
  1726  //
  1727  //   - name: The name of the `AabInfo` resource to retrieve. Format:
  1728  //     `projects/{project_number}/apps/{app_id}/aabInfo`.
  1729  func (r *ProjectsAppsService) GetAabInfo(name string) *ProjectsAppsGetAabInfoCall {
  1730  	c := &ProjectsAppsGetAabInfoCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  1731  	c.name = name
  1732  	return c
  1733  }
  1734  
  1735  // Fields allows partial responses to be retrieved. See
  1736  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  1737  // details.
  1738  func (c *ProjectsAppsGetAabInfoCall) Fields(s ...googleapi.Field) *ProjectsAppsGetAabInfoCall {
  1739  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  1740  	return c
  1741  }
  1742  
  1743  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  1744  // object's ETag matches the given value. This is useful for getting updates
  1745  // only after the object has changed since the last request.
  1746  func (c *ProjectsAppsGetAabInfoCall) IfNoneMatch(entityTag string) *ProjectsAppsGetAabInfoCall {
  1747  	c.ifNoneMatch_ = entityTag
  1748  	return c
  1749  }
  1750  
  1751  // Context sets the context to be used in this call's Do method.
  1752  func (c *ProjectsAppsGetAabInfoCall) Context(ctx context.Context) *ProjectsAppsGetAabInfoCall {
  1753  	c.ctx_ = ctx
  1754  	return c
  1755  }
  1756  
  1757  // Header returns a http.Header that can be modified by the caller to add
  1758  // headers to the request.
  1759  func (c *ProjectsAppsGetAabInfoCall) Header() http.Header {
  1760  	if c.header_ == nil {
  1761  		c.header_ = make(http.Header)
  1762  	}
  1763  	return c.header_
  1764  }
  1765  
  1766  func (c *ProjectsAppsGetAabInfoCall) doRequest(alt string) (*http.Response, error) {
  1767  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  1768  	if c.ifNoneMatch_ != "" {
  1769  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  1770  	}
  1771  	var body io.Reader = nil
  1772  	c.urlParams_.Set("alt", alt)
  1773  	c.urlParams_.Set("prettyPrint", "false")
  1774  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
  1775  	urls += "?" + c.urlParams_.Encode()
  1776  	req, err := http.NewRequest("GET", urls, body)
  1777  	if err != nil {
  1778  		return nil, err
  1779  	}
  1780  	req.Header = reqHeaders
  1781  	googleapi.Expand(req.URL, map[string]string{
  1782  		"name": c.name,
  1783  	})
  1784  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  1785  }
  1786  
  1787  // Do executes the "firebaseappdistribution.projects.apps.getAabInfo" call.
  1788  // Any non-2xx status code is an error. Response headers are in either
  1789  // *GoogleFirebaseAppdistroV1AabInfo.ServerResponse.Header or (if a response
  1790  // was returned at all) in error.(*googleapi.Error).Header. Use
  1791  // googleapi.IsNotModified to check whether the returned error was because
  1792  // http.StatusNotModified was returned.
  1793  func (c *ProjectsAppsGetAabInfoCall) Do(opts ...googleapi.CallOption) (*GoogleFirebaseAppdistroV1AabInfo, error) {
  1794  	gensupport.SetOptions(c.urlParams_, opts...)
  1795  	res, err := c.doRequest("json")
  1796  	if res != nil && res.StatusCode == http.StatusNotModified {
  1797  		if res.Body != nil {
  1798  			res.Body.Close()
  1799  		}
  1800  		return nil, gensupport.WrapError(&googleapi.Error{
  1801  			Code:   res.StatusCode,
  1802  			Header: res.Header,
  1803  		})
  1804  	}
  1805  	if err != nil {
  1806  		return nil, err
  1807  	}
  1808  	defer googleapi.CloseBody(res)
  1809  	if err := googleapi.CheckResponse(res); err != nil {
  1810  		return nil, gensupport.WrapError(err)
  1811  	}
  1812  	ret := &GoogleFirebaseAppdistroV1AabInfo{
  1813  		ServerResponse: googleapi.ServerResponse{
  1814  			Header:         res.Header,
  1815  			HTTPStatusCode: res.StatusCode,
  1816  		},
  1817  	}
  1818  	target := &ret
  1819  	if err := gensupport.DecodeResponse(target, res); err != nil {
  1820  		return nil, err
  1821  	}
  1822  	return ret, nil
  1823  }
  1824  
  1825  type ProjectsAppsReleasesBatchDeleteCall struct {
  1826  	s                                                   *Service
  1827  	parent                                              string
  1828  	googlefirebaseappdistrov1batchdeletereleasesrequest *GoogleFirebaseAppdistroV1BatchDeleteReleasesRequest
  1829  	urlParams_                                          gensupport.URLParams
  1830  	ctx_                                                context.Context
  1831  	header_                                             http.Header
  1832  }
  1833  
  1834  // BatchDelete: Deletes releases. A maximum of 100 releases can be deleted per
  1835  // request.
  1836  //
  1837  //   - parent: The name of the app resource, which is the parent of the release
  1838  //     resources. Format: `projects/{project_number}/apps/{app_id}`.
  1839  func (r *ProjectsAppsReleasesService) BatchDelete(parent string, googlefirebaseappdistrov1batchdeletereleasesrequest *GoogleFirebaseAppdistroV1BatchDeleteReleasesRequest) *ProjectsAppsReleasesBatchDeleteCall {
  1840  	c := &ProjectsAppsReleasesBatchDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  1841  	c.parent = parent
  1842  	c.googlefirebaseappdistrov1batchdeletereleasesrequest = googlefirebaseappdistrov1batchdeletereleasesrequest
  1843  	return c
  1844  }
  1845  
  1846  // Fields allows partial responses to be retrieved. See
  1847  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  1848  // details.
  1849  func (c *ProjectsAppsReleasesBatchDeleteCall) Fields(s ...googleapi.Field) *ProjectsAppsReleasesBatchDeleteCall {
  1850  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  1851  	return c
  1852  }
  1853  
  1854  // Context sets the context to be used in this call's Do method.
  1855  func (c *ProjectsAppsReleasesBatchDeleteCall) Context(ctx context.Context) *ProjectsAppsReleasesBatchDeleteCall {
  1856  	c.ctx_ = ctx
  1857  	return c
  1858  }
  1859  
  1860  // Header returns a http.Header that can be modified by the caller to add
  1861  // headers to the request.
  1862  func (c *ProjectsAppsReleasesBatchDeleteCall) Header() http.Header {
  1863  	if c.header_ == nil {
  1864  		c.header_ = make(http.Header)
  1865  	}
  1866  	return c.header_
  1867  }
  1868  
  1869  func (c *ProjectsAppsReleasesBatchDeleteCall) doRequest(alt string) (*http.Response, error) {
  1870  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  1871  	var body io.Reader = nil
  1872  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlefirebaseappdistrov1batchdeletereleasesrequest)
  1873  	if err != nil {
  1874  		return nil, err
  1875  	}
  1876  	c.urlParams_.Set("alt", alt)
  1877  	c.urlParams_.Set("prettyPrint", "false")
  1878  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/releases:batchDelete")
  1879  	urls += "?" + c.urlParams_.Encode()
  1880  	req, err := http.NewRequest("POST", urls, body)
  1881  	if err != nil {
  1882  		return nil, err
  1883  	}
  1884  	req.Header = reqHeaders
  1885  	googleapi.Expand(req.URL, map[string]string{
  1886  		"parent": c.parent,
  1887  	})
  1888  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  1889  }
  1890  
  1891  // Do executes the "firebaseappdistribution.projects.apps.releases.batchDelete" call.
  1892  // Any non-2xx status code is an error. Response headers are in either
  1893  // *GoogleProtobufEmpty.ServerResponse.Header or (if a response was returned at
  1894  // all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
  1895  // check whether the returned error was because http.StatusNotModified was
  1896  // returned.
  1897  func (c *ProjectsAppsReleasesBatchDeleteCall) Do(opts ...googleapi.CallOption) (*GoogleProtobufEmpty, error) {
  1898  	gensupport.SetOptions(c.urlParams_, opts...)
  1899  	res, err := c.doRequest("json")
  1900  	if res != nil && res.StatusCode == http.StatusNotModified {
  1901  		if res.Body != nil {
  1902  			res.Body.Close()
  1903  		}
  1904  		return nil, gensupport.WrapError(&googleapi.Error{
  1905  			Code:   res.StatusCode,
  1906  			Header: res.Header,
  1907  		})
  1908  	}
  1909  	if err != nil {
  1910  		return nil, err
  1911  	}
  1912  	defer googleapi.CloseBody(res)
  1913  	if err := googleapi.CheckResponse(res); err != nil {
  1914  		return nil, gensupport.WrapError(err)
  1915  	}
  1916  	ret := &GoogleProtobufEmpty{
  1917  		ServerResponse: googleapi.ServerResponse{
  1918  			Header:         res.Header,
  1919  			HTTPStatusCode: res.StatusCode,
  1920  		},
  1921  	}
  1922  	target := &ret
  1923  	if err := gensupport.DecodeResponse(target, res); err != nil {
  1924  		return nil, err
  1925  	}
  1926  	return ret, nil
  1927  }
  1928  
  1929  type ProjectsAppsReleasesDistributeCall struct {
  1930  	s                                                 *Service
  1931  	name                                              string
  1932  	googlefirebaseappdistrov1distributereleaserequest *GoogleFirebaseAppdistroV1DistributeReleaseRequest
  1933  	urlParams_                                        gensupport.URLParams
  1934  	ctx_                                              context.Context
  1935  	header_                                           http.Header
  1936  }
  1937  
  1938  // Distribute: Distributes a release to testers. This call does the following:
  1939  // 1. Creates testers for the specified emails, if none exist. 2. Adds the
  1940  // testers and groups to the release. 3. Sends new testers an invitation email.
  1941  // 4. Sends existing testers a new release email. The request will fail with a
  1942  // `INVALID_ARGUMENT` if it contains a group that doesn't exist.
  1943  //
  1944  //   - name: The name of the release resource to distribute. Format:
  1945  //     `projects/{project_number}/apps/{app_id}/releases/{release_id}`.
  1946  func (r *ProjectsAppsReleasesService) Distribute(name string, googlefirebaseappdistrov1distributereleaserequest *GoogleFirebaseAppdistroV1DistributeReleaseRequest) *ProjectsAppsReleasesDistributeCall {
  1947  	c := &ProjectsAppsReleasesDistributeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  1948  	c.name = name
  1949  	c.googlefirebaseappdistrov1distributereleaserequest = googlefirebaseappdistrov1distributereleaserequest
  1950  	return c
  1951  }
  1952  
  1953  // Fields allows partial responses to be retrieved. See
  1954  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  1955  // details.
  1956  func (c *ProjectsAppsReleasesDistributeCall) Fields(s ...googleapi.Field) *ProjectsAppsReleasesDistributeCall {
  1957  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  1958  	return c
  1959  }
  1960  
  1961  // Context sets the context to be used in this call's Do method.
  1962  func (c *ProjectsAppsReleasesDistributeCall) Context(ctx context.Context) *ProjectsAppsReleasesDistributeCall {
  1963  	c.ctx_ = ctx
  1964  	return c
  1965  }
  1966  
  1967  // Header returns a http.Header that can be modified by the caller to add
  1968  // headers to the request.
  1969  func (c *ProjectsAppsReleasesDistributeCall) Header() http.Header {
  1970  	if c.header_ == nil {
  1971  		c.header_ = make(http.Header)
  1972  	}
  1973  	return c.header_
  1974  }
  1975  
  1976  func (c *ProjectsAppsReleasesDistributeCall) doRequest(alt string) (*http.Response, error) {
  1977  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  1978  	var body io.Reader = nil
  1979  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlefirebaseappdistrov1distributereleaserequest)
  1980  	if err != nil {
  1981  		return nil, err
  1982  	}
  1983  	c.urlParams_.Set("alt", alt)
  1984  	c.urlParams_.Set("prettyPrint", "false")
  1985  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:distribute")
  1986  	urls += "?" + c.urlParams_.Encode()
  1987  	req, err := http.NewRequest("POST", urls, body)
  1988  	if err != nil {
  1989  		return nil, err
  1990  	}
  1991  	req.Header = reqHeaders
  1992  	googleapi.Expand(req.URL, map[string]string{
  1993  		"name": c.name,
  1994  	})
  1995  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  1996  }
  1997  
  1998  // Do executes the "firebaseappdistribution.projects.apps.releases.distribute" call.
  1999  // Any non-2xx status code is an error. Response headers are in either
  2000  // *GoogleFirebaseAppdistroV1DistributeReleaseResponse.ServerResponse.Header or
  2001  // (if a response was returned at all) in error.(*googleapi.Error).Header. Use
  2002  // googleapi.IsNotModified to check whether the returned error was because
  2003  // http.StatusNotModified was returned.
  2004  func (c *ProjectsAppsReleasesDistributeCall) Do(opts ...googleapi.CallOption) (*GoogleFirebaseAppdistroV1DistributeReleaseResponse, error) {
  2005  	gensupport.SetOptions(c.urlParams_, opts...)
  2006  	res, err := c.doRequest("json")
  2007  	if res != nil && res.StatusCode == http.StatusNotModified {
  2008  		if res.Body != nil {
  2009  			res.Body.Close()
  2010  		}
  2011  		return nil, gensupport.WrapError(&googleapi.Error{
  2012  			Code:   res.StatusCode,
  2013  			Header: res.Header,
  2014  		})
  2015  	}
  2016  	if err != nil {
  2017  		return nil, err
  2018  	}
  2019  	defer googleapi.CloseBody(res)
  2020  	if err := googleapi.CheckResponse(res); err != nil {
  2021  		return nil, gensupport.WrapError(err)
  2022  	}
  2023  	ret := &GoogleFirebaseAppdistroV1DistributeReleaseResponse{
  2024  		ServerResponse: googleapi.ServerResponse{
  2025  			Header:         res.Header,
  2026  			HTTPStatusCode: res.StatusCode,
  2027  		},
  2028  	}
  2029  	target := &ret
  2030  	if err := gensupport.DecodeResponse(target, res); err != nil {
  2031  		return nil, err
  2032  	}
  2033  	return ret, nil
  2034  }
  2035  
  2036  type ProjectsAppsReleasesGetCall struct {
  2037  	s            *Service
  2038  	name         string
  2039  	urlParams_   gensupport.URLParams
  2040  	ifNoneMatch_ string
  2041  	ctx_         context.Context
  2042  	header_      http.Header
  2043  }
  2044  
  2045  // Get: Gets a release.
  2046  //
  2047  //   - name: The name of the release resource to retrieve. Format:
  2048  //     projects/{project_number}/apps/{app_id}/releases/{release_id}.
  2049  func (r *ProjectsAppsReleasesService) Get(name string) *ProjectsAppsReleasesGetCall {
  2050  	c := &ProjectsAppsReleasesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  2051  	c.name = name
  2052  	return c
  2053  }
  2054  
  2055  // Fields allows partial responses to be retrieved. See
  2056  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  2057  // details.
  2058  func (c *ProjectsAppsReleasesGetCall) Fields(s ...googleapi.Field) *ProjectsAppsReleasesGetCall {
  2059  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  2060  	return c
  2061  }
  2062  
  2063  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  2064  // object's ETag matches the given value. This is useful for getting updates
  2065  // only after the object has changed since the last request.
  2066  func (c *ProjectsAppsReleasesGetCall) IfNoneMatch(entityTag string) *ProjectsAppsReleasesGetCall {
  2067  	c.ifNoneMatch_ = entityTag
  2068  	return c
  2069  }
  2070  
  2071  // Context sets the context to be used in this call's Do method.
  2072  func (c *ProjectsAppsReleasesGetCall) Context(ctx context.Context) *ProjectsAppsReleasesGetCall {
  2073  	c.ctx_ = ctx
  2074  	return c
  2075  }
  2076  
  2077  // Header returns a http.Header that can be modified by the caller to add
  2078  // headers to the request.
  2079  func (c *ProjectsAppsReleasesGetCall) Header() http.Header {
  2080  	if c.header_ == nil {
  2081  		c.header_ = make(http.Header)
  2082  	}
  2083  	return c.header_
  2084  }
  2085  
  2086  func (c *ProjectsAppsReleasesGetCall) doRequest(alt string) (*http.Response, error) {
  2087  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  2088  	if c.ifNoneMatch_ != "" {
  2089  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  2090  	}
  2091  	var body io.Reader = nil
  2092  	c.urlParams_.Set("alt", alt)
  2093  	c.urlParams_.Set("prettyPrint", "false")
  2094  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
  2095  	urls += "?" + c.urlParams_.Encode()
  2096  	req, err := http.NewRequest("GET", urls, body)
  2097  	if err != nil {
  2098  		return nil, err
  2099  	}
  2100  	req.Header = reqHeaders
  2101  	googleapi.Expand(req.URL, map[string]string{
  2102  		"name": c.name,
  2103  	})
  2104  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  2105  }
  2106  
  2107  // Do executes the "firebaseappdistribution.projects.apps.releases.get" call.
  2108  // Any non-2xx status code is an error. Response headers are in either
  2109  // *GoogleFirebaseAppdistroV1Release.ServerResponse.Header or (if a response
  2110  // was returned at all) in error.(*googleapi.Error).Header. Use
  2111  // googleapi.IsNotModified to check whether the returned error was because
  2112  // http.StatusNotModified was returned.
  2113  func (c *ProjectsAppsReleasesGetCall) Do(opts ...googleapi.CallOption) (*GoogleFirebaseAppdistroV1Release, error) {
  2114  	gensupport.SetOptions(c.urlParams_, opts...)
  2115  	res, err := c.doRequest("json")
  2116  	if res != nil && res.StatusCode == http.StatusNotModified {
  2117  		if res.Body != nil {
  2118  			res.Body.Close()
  2119  		}
  2120  		return nil, gensupport.WrapError(&googleapi.Error{
  2121  			Code:   res.StatusCode,
  2122  			Header: res.Header,
  2123  		})
  2124  	}
  2125  	if err != nil {
  2126  		return nil, err
  2127  	}
  2128  	defer googleapi.CloseBody(res)
  2129  	if err := googleapi.CheckResponse(res); err != nil {
  2130  		return nil, gensupport.WrapError(err)
  2131  	}
  2132  	ret := &GoogleFirebaseAppdistroV1Release{
  2133  		ServerResponse: googleapi.ServerResponse{
  2134  			Header:         res.Header,
  2135  			HTTPStatusCode: res.StatusCode,
  2136  		},
  2137  	}
  2138  	target := &ret
  2139  	if err := gensupport.DecodeResponse(target, res); err != nil {
  2140  		return nil, err
  2141  	}
  2142  	return ret, nil
  2143  }
  2144  
  2145  type ProjectsAppsReleasesListCall struct {
  2146  	s            *Service
  2147  	parent       string
  2148  	urlParams_   gensupport.URLParams
  2149  	ifNoneMatch_ string
  2150  	ctx_         context.Context
  2151  	header_      http.Header
  2152  }
  2153  
  2154  // List: Lists releases. By default, sorts by `createTime` in descending order.
  2155  //
  2156  //   - parent: The name of the app resource, which is the parent of the release
  2157  //     resources. Format: `projects/{project_number}/apps/{app_id}`.
  2158  func (r *ProjectsAppsReleasesService) List(parent string) *ProjectsAppsReleasesListCall {
  2159  	c := &ProjectsAppsReleasesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  2160  	c.parent = parent
  2161  	return c
  2162  }
  2163  
  2164  // Filter sets the optional parameter "filter": The expression to filter
  2165  // releases listed in the response. To learn more about filtering, refer to
  2166  // Google's AIP-160 standard (http://aip.dev/160). Supported fields: -
  2167  // `releaseNotes.text` supports `=` (can contain a wildcard character (`*`) at
  2168  // the beginning or end of the string) - `createTime` supports `<`, `<=`, `>`
  2169  // and `>=`, and expects an RFC-3339 formatted string Examples: - `createTime
  2170  // <= "2021-09-08T00:00:00+04:00" - `releaseNotes.text="fixes" AND createTime
  2171  // >= "2021-09-08T00:00:00.0Z" - `releaseNotes.text="*v1.0.0-rc*"
  2172  func (c *ProjectsAppsReleasesListCall) Filter(filter string) *ProjectsAppsReleasesListCall {
  2173  	c.urlParams_.Set("filter", filter)
  2174  	return c
  2175  }
  2176  
  2177  // OrderBy sets the optional parameter "orderBy": The fields used to order
  2178  // releases. Supported fields: - `createTime` To specify descending order for a
  2179  // field, append a "desc" suffix, for example, `createTime desc`. If this
  2180  // parameter is not set, releases are ordered by `createTime` in descending
  2181  // order.
  2182  func (c *ProjectsAppsReleasesListCall) OrderBy(orderBy string) *ProjectsAppsReleasesListCall {
  2183  	c.urlParams_.Set("orderBy", orderBy)
  2184  	return c
  2185  }
  2186  
  2187  // PageSize sets the optional parameter "pageSize": The maximum number of
  2188  // releases to return. The service may return fewer than this value. The valid
  2189  // range is [1-100]; If unspecified (0), at most 25 releases are returned.
  2190  // Values above 100 are coerced to 100.
  2191  func (c *ProjectsAppsReleasesListCall) PageSize(pageSize int64) *ProjectsAppsReleasesListCall {
  2192  	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
  2193  	return c
  2194  }
  2195  
  2196  // PageToken sets the optional parameter "pageToken": A page token, received
  2197  // from a previous `ListReleases` call. Provide this to retrieve the subsequent
  2198  // page. When paginating, all other parameters provided to `ListReleases` must
  2199  // match the call that provided the page token.
  2200  func (c *ProjectsAppsReleasesListCall) PageToken(pageToken string) *ProjectsAppsReleasesListCall {
  2201  	c.urlParams_.Set("pageToken", pageToken)
  2202  	return c
  2203  }
  2204  
  2205  // Fields allows partial responses to be retrieved. See
  2206  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  2207  // details.
  2208  func (c *ProjectsAppsReleasesListCall) Fields(s ...googleapi.Field) *ProjectsAppsReleasesListCall {
  2209  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  2210  	return c
  2211  }
  2212  
  2213  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  2214  // object's ETag matches the given value. This is useful for getting updates
  2215  // only after the object has changed since the last request.
  2216  func (c *ProjectsAppsReleasesListCall) IfNoneMatch(entityTag string) *ProjectsAppsReleasesListCall {
  2217  	c.ifNoneMatch_ = entityTag
  2218  	return c
  2219  }
  2220  
  2221  // Context sets the context to be used in this call's Do method.
  2222  func (c *ProjectsAppsReleasesListCall) Context(ctx context.Context) *ProjectsAppsReleasesListCall {
  2223  	c.ctx_ = ctx
  2224  	return c
  2225  }
  2226  
  2227  // Header returns a http.Header that can be modified by the caller to add
  2228  // headers to the request.
  2229  func (c *ProjectsAppsReleasesListCall) Header() http.Header {
  2230  	if c.header_ == nil {
  2231  		c.header_ = make(http.Header)
  2232  	}
  2233  	return c.header_
  2234  }
  2235  
  2236  func (c *ProjectsAppsReleasesListCall) doRequest(alt string) (*http.Response, error) {
  2237  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  2238  	if c.ifNoneMatch_ != "" {
  2239  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  2240  	}
  2241  	var body io.Reader = nil
  2242  	c.urlParams_.Set("alt", alt)
  2243  	c.urlParams_.Set("prettyPrint", "false")
  2244  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/releases")
  2245  	urls += "?" + c.urlParams_.Encode()
  2246  	req, err := http.NewRequest("GET", urls, body)
  2247  	if err != nil {
  2248  		return nil, err
  2249  	}
  2250  	req.Header = reqHeaders
  2251  	googleapi.Expand(req.URL, map[string]string{
  2252  		"parent": c.parent,
  2253  	})
  2254  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  2255  }
  2256  
  2257  // Do executes the "firebaseappdistribution.projects.apps.releases.list" call.
  2258  // Any non-2xx status code is an error. Response headers are in either
  2259  // *GoogleFirebaseAppdistroV1ListReleasesResponse.ServerResponse.Header or (if
  2260  // a response was returned at all) in error.(*googleapi.Error).Header. Use
  2261  // googleapi.IsNotModified to check whether the returned error was because
  2262  // http.StatusNotModified was returned.
  2263  func (c *ProjectsAppsReleasesListCall) Do(opts ...googleapi.CallOption) (*GoogleFirebaseAppdistroV1ListReleasesResponse, error) {
  2264  	gensupport.SetOptions(c.urlParams_, opts...)
  2265  	res, err := c.doRequest("json")
  2266  	if res != nil && res.StatusCode == http.StatusNotModified {
  2267  		if res.Body != nil {
  2268  			res.Body.Close()
  2269  		}
  2270  		return nil, gensupport.WrapError(&googleapi.Error{
  2271  			Code:   res.StatusCode,
  2272  			Header: res.Header,
  2273  		})
  2274  	}
  2275  	if err != nil {
  2276  		return nil, err
  2277  	}
  2278  	defer googleapi.CloseBody(res)
  2279  	if err := googleapi.CheckResponse(res); err != nil {
  2280  		return nil, gensupport.WrapError(err)
  2281  	}
  2282  	ret := &GoogleFirebaseAppdistroV1ListReleasesResponse{
  2283  		ServerResponse: googleapi.ServerResponse{
  2284  			Header:         res.Header,
  2285  			HTTPStatusCode: res.StatusCode,
  2286  		},
  2287  	}
  2288  	target := &ret
  2289  	if err := gensupport.DecodeResponse(target, res); err != nil {
  2290  		return nil, err
  2291  	}
  2292  	return ret, nil
  2293  }
  2294  
  2295  // Pages invokes f for each page of results.
  2296  // A non-nil error returned from f will halt the iteration.
  2297  // The provided context supersedes any context provided to the Context method.
  2298  func (c *ProjectsAppsReleasesListCall) Pages(ctx context.Context, f func(*GoogleFirebaseAppdistroV1ListReleasesResponse) error) error {
  2299  	c.ctx_ = ctx
  2300  	defer c.PageToken(c.urlParams_.Get("pageToken"))
  2301  	for {
  2302  		x, err := c.Do()
  2303  		if err != nil {
  2304  			return err
  2305  		}
  2306  		if err := f(x); err != nil {
  2307  			return err
  2308  		}
  2309  		if x.NextPageToken == "" {
  2310  			return nil
  2311  		}
  2312  		c.PageToken(x.NextPageToken)
  2313  	}
  2314  }
  2315  
  2316  type ProjectsAppsReleasesPatchCall struct {
  2317  	s                                *Service
  2318  	name                             string
  2319  	googlefirebaseappdistrov1release *GoogleFirebaseAppdistroV1Release
  2320  	urlParams_                       gensupport.URLParams
  2321  	ctx_                             context.Context
  2322  	header_                          http.Header
  2323  }
  2324  
  2325  // Patch: Updates a release.
  2326  //
  2327  //   - name: The name of the release resource. Format:
  2328  //     `projects/{project_number}/apps/{app_id}/releases/{release_id}`.
  2329  func (r *ProjectsAppsReleasesService) Patch(name string, googlefirebaseappdistrov1release *GoogleFirebaseAppdistroV1Release) *ProjectsAppsReleasesPatchCall {
  2330  	c := &ProjectsAppsReleasesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  2331  	c.name = name
  2332  	c.googlefirebaseappdistrov1release = googlefirebaseappdistrov1release
  2333  	return c
  2334  }
  2335  
  2336  // UpdateMask sets the optional parameter "updateMask": The list of fields to
  2337  // update.
  2338  func (c *ProjectsAppsReleasesPatchCall) UpdateMask(updateMask string) *ProjectsAppsReleasesPatchCall {
  2339  	c.urlParams_.Set("updateMask", updateMask)
  2340  	return c
  2341  }
  2342  
  2343  // Fields allows partial responses to be retrieved. See
  2344  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  2345  // details.
  2346  func (c *ProjectsAppsReleasesPatchCall) Fields(s ...googleapi.Field) *ProjectsAppsReleasesPatchCall {
  2347  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  2348  	return c
  2349  }
  2350  
  2351  // Context sets the context to be used in this call's Do method.
  2352  func (c *ProjectsAppsReleasesPatchCall) Context(ctx context.Context) *ProjectsAppsReleasesPatchCall {
  2353  	c.ctx_ = ctx
  2354  	return c
  2355  }
  2356  
  2357  // Header returns a http.Header that can be modified by the caller to add
  2358  // headers to the request.
  2359  func (c *ProjectsAppsReleasesPatchCall) Header() http.Header {
  2360  	if c.header_ == nil {
  2361  		c.header_ = make(http.Header)
  2362  	}
  2363  	return c.header_
  2364  }
  2365  
  2366  func (c *ProjectsAppsReleasesPatchCall) doRequest(alt string) (*http.Response, error) {
  2367  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  2368  	var body io.Reader = nil
  2369  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlefirebaseappdistrov1release)
  2370  	if err != nil {
  2371  		return nil, err
  2372  	}
  2373  	c.urlParams_.Set("alt", alt)
  2374  	c.urlParams_.Set("prettyPrint", "false")
  2375  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
  2376  	urls += "?" + c.urlParams_.Encode()
  2377  	req, err := http.NewRequest("PATCH", urls, body)
  2378  	if err != nil {
  2379  		return nil, err
  2380  	}
  2381  	req.Header = reqHeaders
  2382  	googleapi.Expand(req.URL, map[string]string{
  2383  		"name": c.name,
  2384  	})
  2385  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  2386  }
  2387  
  2388  // Do executes the "firebaseappdistribution.projects.apps.releases.patch" call.
  2389  // Any non-2xx status code is an error. Response headers are in either
  2390  // *GoogleFirebaseAppdistroV1Release.ServerResponse.Header or (if a response
  2391  // was returned at all) in error.(*googleapi.Error).Header. Use
  2392  // googleapi.IsNotModified to check whether the returned error was because
  2393  // http.StatusNotModified was returned.
  2394  func (c *ProjectsAppsReleasesPatchCall) Do(opts ...googleapi.CallOption) (*GoogleFirebaseAppdistroV1Release, error) {
  2395  	gensupport.SetOptions(c.urlParams_, opts...)
  2396  	res, err := c.doRequest("json")
  2397  	if res != nil && res.StatusCode == http.StatusNotModified {
  2398  		if res.Body != nil {
  2399  			res.Body.Close()
  2400  		}
  2401  		return nil, gensupport.WrapError(&googleapi.Error{
  2402  			Code:   res.StatusCode,
  2403  			Header: res.Header,
  2404  		})
  2405  	}
  2406  	if err != nil {
  2407  		return nil, err
  2408  	}
  2409  	defer googleapi.CloseBody(res)
  2410  	if err := googleapi.CheckResponse(res); err != nil {
  2411  		return nil, gensupport.WrapError(err)
  2412  	}
  2413  	ret := &GoogleFirebaseAppdistroV1Release{
  2414  		ServerResponse: googleapi.ServerResponse{
  2415  			Header:         res.Header,
  2416  			HTTPStatusCode: res.StatusCode,
  2417  		},
  2418  	}
  2419  	target := &ret
  2420  	if err := gensupport.DecodeResponse(target, res); err != nil {
  2421  		return nil, err
  2422  	}
  2423  	return ret, nil
  2424  }
  2425  
  2426  type ProjectsAppsReleasesFeedbackReportsDeleteCall struct {
  2427  	s          *Service
  2428  	name       string
  2429  	urlParams_ gensupport.URLParams
  2430  	ctx_       context.Context
  2431  	header_    http.Header
  2432  }
  2433  
  2434  // Delete: Deletes a feedback report.
  2435  //
  2436  //   - name: The name of the feedback report to delete. Format:
  2437  //     projects/{project_number}/apps/{app}/releases/{release}/feedbackReports/{fe
  2438  //     edback_report}.
  2439  func (r *ProjectsAppsReleasesFeedbackReportsService) Delete(name string) *ProjectsAppsReleasesFeedbackReportsDeleteCall {
  2440  	c := &ProjectsAppsReleasesFeedbackReportsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  2441  	c.name = name
  2442  	return c
  2443  }
  2444  
  2445  // Fields allows partial responses to be retrieved. See
  2446  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  2447  // details.
  2448  func (c *ProjectsAppsReleasesFeedbackReportsDeleteCall) Fields(s ...googleapi.Field) *ProjectsAppsReleasesFeedbackReportsDeleteCall {
  2449  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  2450  	return c
  2451  }
  2452  
  2453  // Context sets the context to be used in this call's Do method.
  2454  func (c *ProjectsAppsReleasesFeedbackReportsDeleteCall) Context(ctx context.Context) *ProjectsAppsReleasesFeedbackReportsDeleteCall {
  2455  	c.ctx_ = ctx
  2456  	return c
  2457  }
  2458  
  2459  // Header returns a http.Header that can be modified by the caller to add
  2460  // headers to the request.
  2461  func (c *ProjectsAppsReleasesFeedbackReportsDeleteCall) Header() http.Header {
  2462  	if c.header_ == nil {
  2463  		c.header_ = make(http.Header)
  2464  	}
  2465  	return c.header_
  2466  }
  2467  
  2468  func (c *ProjectsAppsReleasesFeedbackReportsDeleteCall) doRequest(alt string) (*http.Response, error) {
  2469  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  2470  	var body io.Reader = nil
  2471  	c.urlParams_.Set("alt", alt)
  2472  	c.urlParams_.Set("prettyPrint", "false")
  2473  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
  2474  	urls += "?" + c.urlParams_.Encode()
  2475  	req, err := http.NewRequest("DELETE", urls, body)
  2476  	if err != nil {
  2477  		return nil, err
  2478  	}
  2479  	req.Header = reqHeaders
  2480  	googleapi.Expand(req.URL, map[string]string{
  2481  		"name": c.name,
  2482  	})
  2483  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  2484  }
  2485  
  2486  // Do executes the "firebaseappdistribution.projects.apps.releases.feedbackReports.delete" call.
  2487  // Any non-2xx status code is an error. Response headers are in either
  2488  // *GoogleProtobufEmpty.ServerResponse.Header or (if a response was returned at
  2489  // all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
  2490  // check whether the returned error was because http.StatusNotModified was
  2491  // returned.
  2492  func (c *ProjectsAppsReleasesFeedbackReportsDeleteCall) Do(opts ...googleapi.CallOption) (*GoogleProtobufEmpty, error) {
  2493  	gensupport.SetOptions(c.urlParams_, opts...)
  2494  	res, err := c.doRequest("json")
  2495  	if res != nil && res.StatusCode == http.StatusNotModified {
  2496  		if res.Body != nil {
  2497  			res.Body.Close()
  2498  		}
  2499  		return nil, gensupport.WrapError(&googleapi.Error{
  2500  			Code:   res.StatusCode,
  2501  			Header: res.Header,
  2502  		})
  2503  	}
  2504  	if err != nil {
  2505  		return nil, err
  2506  	}
  2507  	defer googleapi.CloseBody(res)
  2508  	if err := googleapi.CheckResponse(res); err != nil {
  2509  		return nil, gensupport.WrapError(err)
  2510  	}
  2511  	ret := &GoogleProtobufEmpty{
  2512  		ServerResponse: googleapi.ServerResponse{
  2513  			Header:         res.Header,
  2514  			HTTPStatusCode: res.StatusCode,
  2515  		},
  2516  	}
  2517  	target := &ret
  2518  	if err := gensupport.DecodeResponse(target, res); err != nil {
  2519  		return nil, err
  2520  	}
  2521  	return ret, nil
  2522  }
  2523  
  2524  type ProjectsAppsReleasesFeedbackReportsGetCall struct {
  2525  	s            *Service
  2526  	name         string
  2527  	urlParams_   gensupport.URLParams
  2528  	ifNoneMatch_ string
  2529  	ctx_         context.Context
  2530  	header_      http.Header
  2531  }
  2532  
  2533  // Get: Gets a feedback report.
  2534  //
  2535  //   - name: The name of the feedback report to retrieve. Format:
  2536  //     projects/{project_number}/apps/{app}/releases/{release}/feedbackReports/{fe
  2537  //     edback_report}.
  2538  func (r *ProjectsAppsReleasesFeedbackReportsService) Get(name string) *ProjectsAppsReleasesFeedbackReportsGetCall {
  2539  	c := &ProjectsAppsReleasesFeedbackReportsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  2540  	c.name = name
  2541  	return c
  2542  }
  2543  
  2544  // Fields allows partial responses to be retrieved. See
  2545  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  2546  // details.
  2547  func (c *ProjectsAppsReleasesFeedbackReportsGetCall) Fields(s ...googleapi.Field) *ProjectsAppsReleasesFeedbackReportsGetCall {
  2548  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  2549  	return c
  2550  }
  2551  
  2552  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  2553  // object's ETag matches the given value. This is useful for getting updates
  2554  // only after the object has changed since the last request.
  2555  func (c *ProjectsAppsReleasesFeedbackReportsGetCall) IfNoneMatch(entityTag string) *ProjectsAppsReleasesFeedbackReportsGetCall {
  2556  	c.ifNoneMatch_ = entityTag
  2557  	return c
  2558  }
  2559  
  2560  // Context sets the context to be used in this call's Do method.
  2561  func (c *ProjectsAppsReleasesFeedbackReportsGetCall) Context(ctx context.Context) *ProjectsAppsReleasesFeedbackReportsGetCall {
  2562  	c.ctx_ = ctx
  2563  	return c
  2564  }
  2565  
  2566  // Header returns a http.Header that can be modified by the caller to add
  2567  // headers to the request.
  2568  func (c *ProjectsAppsReleasesFeedbackReportsGetCall) Header() http.Header {
  2569  	if c.header_ == nil {
  2570  		c.header_ = make(http.Header)
  2571  	}
  2572  	return c.header_
  2573  }
  2574  
  2575  func (c *ProjectsAppsReleasesFeedbackReportsGetCall) doRequest(alt string) (*http.Response, error) {
  2576  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  2577  	if c.ifNoneMatch_ != "" {
  2578  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  2579  	}
  2580  	var body io.Reader = nil
  2581  	c.urlParams_.Set("alt", alt)
  2582  	c.urlParams_.Set("prettyPrint", "false")
  2583  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
  2584  	urls += "?" + c.urlParams_.Encode()
  2585  	req, err := http.NewRequest("GET", urls, body)
  2586  	if err != nil {
  2587  		return nil, err
  2588  	}
  2589  	req.Header = reqHeaders
  2590  	googleapi.Expand(req.URL, map[string]string{
  2591  		"name": c.name,
  2592  	})
  2593  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  2594  }
  2595  
  2596  // Do executes the "firebaseappdistribution.projects.apps.releases.feedbackReports.get" call.
  2597  // Any non-2xx status code is an error. Response headers are in either
  2598  // *GoogleFirebaseAppdistroV1FeedbackReport.ServerResponse.Header or (if a
  2599  // response was returned at all) in error.(*googleapi.Error).Header. Use
  2600  // googleapi.IsNotModified to check whether the returned error was because
  2601  // http.StatusNotModified was returned.
  2602  func (c *ProjectsAppsReleasesFeedbackReportsGetCall) Do(opts ...googleapi.CallOption) (*GoogleFirebaseAppdistroV1FeedbackReport, error) {
  2603  	gensupport.SetOptions(c.urlParams_, opts...)
  2604  	res, err := c.doRequest("json")
  2605  	if res != nil && res.StatusCode == http.StatusNotModified {
  2606  		if res.Body != nil {
  2607  			res.Body.Close()
  2608  		}
  2609  		return nil, gensupport.WrapError(&googleapi.Error{
  2610  			Code:   res.StatusCode,
  2611  			Header: res.Header,
  2612  		})
  2613  	}
  2614  	if err != nil {
  2615  		return nil, err
  2616  	}
  2617  	defer googleapi.CloseBody(res)
  2618  	if err := googleapi.CheckResponse(res); err != nil {
  2619  		return nil, gensupport.WrapError(err)
  2620  	}
  2621  	ret := &GoogleFirebaseAppdistroV1FeedbackReport{
  2622  		ServerResponse: googleapi.ServerResponse{
  2623  			Header:         res.Header,
  2624  			HTTPStatusCode: res.StatusCode,
  2625  		},
  2626  	}
  2627  	target := &ret
  2628  	if err := gensupport.DecodeResponse(target, res); err != nil {
  2629  		return nil, err
  2630  	}
  2631  	return ret, nil
  2632  }
  2633  
  2634  type ProjectsAppsReleasesFeedbackReportsListCall struct {
  2635  	s            *Service
  2636  	parent       string
  2637  	urlParams_   gensupport.URLParams
  2638  	ifNoneMatch_ string
  2639  	ctx_         context.Context
  2640  	header_      http.Header
  2641  }
  2642  
  2643  // List: Lists feedback reports. By default, sorts by `createTime` in
  2644  // descending order.
  2645  //
  2646  //   - parent: The name of the release resource, which is the parent of the
  2647  //     feedback report resources. Format:
  2648  //     `projects/{project_number}/apps/{app}/releases/{release}`.
  2649  func (r *ProjectsAppsReleasesFeedbackReportsService) List(parent string) *ProjectsAppsReleasesFeedbackReportsListCall {
  2650  	c := &ProjectsAppsReleasesFeedbackReportsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  2651  	c.parent = parent
  2652  	return c
  2653  }
  2654  
  2655  // PageSize sets the optional parameter "pageSize": The maximum number of
  2656  // feedback reports to return. The service may return fewer than this value.
  2657  // The valid range is [1-100]; If unspecified (0), at most 25 feedback reports
  2658  // are returned. Values above 100 are coerced to 100.
  2659  func (c *ProjectsAppsReleasesFeedbackReportsListCall) PageSize(pageSize int64) *ProjectsAppsReleasesFeedbackReportsListCall {
  2660  	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
  2661  	return c
  2662  }
  2663  
  2664  // PageToken sets the optional parameter "pageToken": A page token, received
  2665  // from a previous `ListFeedbackReports` call. Provide this to retrieve the
  2666  // subsequent page. When paginating, all other parameters provided to
  2667  // `ListFeedbackReports` must match the call that provided the page token.
  2668  func (c *ProjectsAppsReleasesFeedbackReportsListCall) PageToken(pageToken string) *ProjectsAppsReleasesFeedbackReportsListCall {
  2669  	c.urlParams_.Set("pageToken", pageToken)
  2670  	return c
  2671  }
  2672  
  2673  // Fields allows partial responses to be retrieved. See
  2674  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  2675  // details.
  2676  func (c *ProjectsAppsReleasesFeedbackReportsListCall) Fields(s ...googleapi.Field) *ProjectsAppsReleasesFeedbackReportsListCall {
  2677  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  2678  	return c
  2679  }
  2680  
  2681  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  2682  // object's ETag matches the given value. This is useful for getting updates
  2683  // only after the object has changed since the last request.
  2684  func (c *ProjectsAppsReleasesFeedbackReportsListCall) IfNoneMatch(entityTag string) *ProjectsAppsReleasesFeedbackReportsListCall {
  2685  	c.ifNoneMatch_ = entityTag
  2686  	return c
  2687  }
  2688  
  2689  // Context sets the context to be used in this call's Do method.
  2690  func (c *ProjectsAppsReleasesFeedbackReportsListCall) Context(ctx context.Context) *ProjectsAppsReleasesFeedbackReportsListCall {
  2691  	c.ctx_ = ctx
  2692  	return c
  2693  }
  2694  
  2695  // Header returns a http.Header that can be modified by the caller to add
  2696  // headers to the request.
  2697  func (c *ProjectsAppsReleasesFeedbackReportsListCall) Header() http.Header {
  2698  	if c.header_ == nil {
  2699  		c.header_ = make(http.Header)
  2700  	}
  2701  	return c.header_
  2702  }
  2703  
  2704  func (c *ProjectsAppsReleasesFeedbackReportsListCall) doRequest(alt string) (*http.Response, error) {
  2705  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  2706  	if c.ifNoneMatch_ != "" {
  2707  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  2708  	}
  2709  	var body io.Reader = nil
  2710  	c.urlParams_.Set("alt", alt)
  2711  	c.urlParams_.Set("prettyPrint", "false")
  2712  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/feedbackReports")
  2713  	urls += "?" + c.urlParams_.Encode()
  2714  	req, err := http.NewRequest("GET", urls, body)
  2715  	if err != nil {
  2716  		return nil, err
  2717  	}
  2718  	req.Header = reqHeaders
  2719  	googleapi.Expand(req.URL, map[string]string{
  2720  		"parent": c.parent,
  2721  	})
  2722  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  2723  }
  2724  
  2725  // Do executes the "firebaseappdistribution.projects.apps.releases.feedbackReports.list" call.
  2726  // Any non-2xx status code is an error. Response headers are in either
  2727  // *GoogleFirebaseAppdistroV1ListFeedbackReportsResponse.ServerResponse.Header
  2728  // or (if a response was returned at all) in error.(*googleapi.Error).Header.
  2729  // Use googleapi.IsNotModified to check whether the returned error was because
  2730  // http.StatusNotModified was returned.
  2731  func (c *ProjectsAppsReleasesFeedbackReportsListCall) Do(opts ...googleapi.CallOption) (*GoogleFirebaseAppdistroV1ListFeedbackReportsResponse, error) {
  2732  	gensupport.SetOptions(c.urlParams_, opts...)
  2733  	res, err := c.doRequest("json")
  2734  	if res != nil && res.StatusCode == http.StatusNotModified {
  2735  		if res.Body != nil {
  2736  			res.Body.Close()
  2737  		}
  2738  		return nil, gensupport.WrapError(&googleapi.Error{
  2739  			Code:   res.StatusCode,
  2740  			Header: res.Header,
  2741  		})
  2742  	}
  2743  	if err != nil {
  2744  		return nil, err
  2745  	}
  2746  	defer googleapi.CloseBody(res)
  2747  	if err := googleapi.CheckResponse(res); err != nil {
  2748  		return nil, gensupport.WrapError(err)
  2749  	}
  2750  	ret := &GoogleFirebaseAppdistroV1ListFeedbackReportsResponse{
  2751  		ServerResponse: googleapi.ServerResponse{
  2752  			Header:         res.Header,
  2753  			HTTPStatusCode: res.StatusCode,
  2754  		},
  2755  	}
  2756  	target := &ret
  2757  	if err := gensupport.DecodeResponse(target, res); err != nil {
  2758  		return nil, err
  2759  	}
  2760  	return ret, nil
  2761  }
  2762  
  2763  // Pages invokes f for each page of results.
  2764  // A non-nil error returned from f will halt the iteration.
  2765  // The provided context supersedes any context provided to the Context method.
  2766  func (c *ProjectsAppsReleasesFeedbackReportsListCall) Pages(ctx context.Context, f func(*GoogleFirebaseAppdistroV1ListFeedbackReportsResponse) error) error {
  2767  	c.ctx_ = ctx
  2768  	defer c.PageToken(c.urlParams_.Get("pageToken"))
  2769  	for {
  2770  		x, err := c.Do()
  2771  		if err != nil {
  2772  			return err
  2773  		}
  2774  		if err := f(x); err != nil {
  2775  			return err
  2776  		}
  2777  		if x.NextPageToken == "" {
  2778  			return nil
  2779  		}
  2780  		c.PageToken(x.NextPageToken)
  2781  	}
  2782  }
  2783  
  2784  type ProjectsAppsReleasesOperationsCancelCall struct {
  2785  	s                                       *Service
  2786  	name                                    string
  2787  	googlelongrunningcanceloperationrequest *GoogleLongrunningCancelOperationRequest
  2788  	urlParams_                              gensupport.URLParams
  2789  	ctx_                                    context.Context
  2790  	header_                                 http.Header
  2791  }
  2792  
  2793  // Cancel: Starts asynchronous cancellation on a long-running operation. The
  2794  // server makes a best effort to cancel the operation, but success is not
  2795  // guaranteed. If the server doesn't support this method, it returns
  2796  // `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or
  2797  // other methods to check whether the cancellation succeeded or whether the
  2798  // operation completed despite cancellation. On successful cancellation, the
  2799  // operation is not deleted; instead, it becomes an operation with an
  2800  // Operation.error value with a google.rpc.Status.code of 1, corresponding to
  2801  // `Code.CANCELLED`.
  2802  //
  2803  // - name: The name of the operation resource to be cancelled.
  2804  func (r *ProjectsAppsReleasesOperationsService) Cancel(name string, googlelongrunningcanceloperationrequest *GoogleLongrunningCancelOperationRequest) *ProjectsAppsReleasesOperationsCancelCall {
  2805  	c := &ProjectsAppsReleasesOperationsCancelCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  2806  	c.name = name
  2807  	c.googlelongrunningcanceloperationrequest = googlelongrunningcanceloperationrequest
  2808  	return c
  2809  }
  2810  
  2811  // Fields allows partial responses to be retrieved. See
  2812  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  2813  // details.
  2814  func (c *ProjectsAppsReleasesOperationsCancelCall) Fields(s ...googleapi.Field) *ProjectsAppsReleasesOperationsCancelCall {
  2815  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  2816  	return c
  2817  }
  2818  
  2819  // Context sets the context to be used in this call's Do method.
  2820  func (c *ProjectsAppsReleasesOperationsCancelCall) Context(ctx context.Context) *ProjectsAppsReleasesOperationsCancelCall {
  2821  	c.ctx_ = ctx
  2822  	return c
  2823  }
  2824  
  2825  // Header returns a http.Header that can be modified by the caller to add
  2826  // headers to the request.
  2827  func (c *ProjectsAppsReleasesOperationsCancelCall) Header() http.Header {
  2828  	if c.header_ == nil {
  2829  		c.header_ = make(http.Header)
  2830  	}
  2831  	return c.header_
  2832  }
  2833  
  2834  func (c *ProjectsAppsReleasesOperationsCancelCall) doRequest(alt string) (*http.Response, error) {
  2835  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  2836  	var body io.Reader = nil
  2837  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlelongrunningcanceloperationrequest)
  2838  	if err != nil {
  2839  		return nil, err
  2840  	}
  2841  	c.urlParams_.Set("alt", alt)
  2842  	c.urlParams_.Set("prettyPrint", "false")
  2843  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:cancel")
  2844  	urls += "?" + c.urlParams_.Encode()
  2845  	req, err := http.NewRequest("POST", urls, body)
  2846  	if err != nil {
  2847  		return nil, err
  2848  	}
  2849  	req.Header = reqHeaders
  2850  	googleapi.Expand(req.URL, map[string]string{
  2851  		"name": c.name,
  2852  	})
  2853  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  2854  }
  2855  
  2856  // Do executes the "firebaseappdistribution.projects.apps.releases.operations.cancel" call.
  2857  // Any non-2xx status code is an error. Response headers are in either
  2858  // *GoogleProtobufEmpty.ServerResponse.Header or (if a response was returned at
  2859  // all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
  2860  // check whether the returned error was because http.StatusNotModified was
  2861  // returned.
  2862  func (c *ProjectsAppsReleasesOperationsCancelCall) Do(opts ...googleapi.CallOption) (*GoogleProtobufEmpty, error) {
  2863  	gensupport.SetOptions(c.urlParams_, opts...)
  2864  	res, err := c.doRequest("json")
  2865  	if res != nil && res.StatusCode == http.StatusNotModified {
  2866  		if res.Body != nil {
  2867  			res.Body.Close()
  2868  		}
  2869  		return nil, gensupport.WrapError(&googleapi.Error{
  2870  			Code:   res.StatusCode,
  2871  			Header: res.Header,
  2872  		})
  2873  	}
  2874  	if err != nil {
  2875  		return nil, err
  2876  	}
  2877  	defer googleapi.CloseBody(res)
  2878  	if err := googleapi.CheckResponse(res); err != nil {
  2879  		return nil, gensupport.WrapError(err)
  2880  	}
  2881  	ret := &GoogleProtobufEmpty{
  2882  		ServerResponse: googleapi.ServerResponse{
  2883  			Header:         res.Header,
  2884  			HTTPStatusCode: res.StatusCode,
  2885  		},
  2886  	}
  2887  	target := &ret
  2888  	if err := gensupport.DecodeResponse(target, res); err != nil {
  2889  		return nil, err
  2890  	}
  2891  	return ret, nil
  2892  }
  2893  
  2894  type ProjectsAppsReleasesOperationsDeleteCall struct {
  2895  	s          *Service
  2896  	name       string
  2897  	urlParams_ gensupport.URLParams
  2898  	ctx_       context.Context
  2899  	header_    http.Header
  2900  }
  2901  
  2902  // Delete: Deletes a long-running operation. This method indicates that the
  2903  // client is no longer interested in the operation result. It does not cancel
  2904  // the operation. If the server doesn't support this method, it returns
  2905  // `google.rpc.Code.UNIMPLEMENTED`.
  2906  //
  2907  // - name: The name of the operation resource to be deleted.
  2908  func (r *ProjectsAppsReleasesOperationsService) Delete(name string) *ProjectsAppsReleasesOperationsDeleteCall {
  2909  	c := &ProjectsAppsReleasesOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  2910  	c.name = name
  2911  	return c
  2912  }
  2913  
  2914  // Fields allows partial responses to be retrieved. See
  2915  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  2916  // details.
  2917  func (c *ProjectsAppsReleasesOperationsDeleteCall) Fields(s ...googleapi.Field) *ProjectsAppsReleasesOperationsDeleteCall {
  2918  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  2919  	return c
  2920  }
  2921  
  2922  // Context sets the context to be used in this call's Do method.
  2923  func (c *ProjectsAppsReleasesOperationsDeleteCall) Context(ctx context.Context) *ProjectsAppsReleasesOperationsDeleteCall {
  2924  	c.ctx_ = ctx
  2925  	return c
  2926  }
  2927  
  2928  // Header returns a http.Header that can be modified by the caller to add
  2929  // headers to the request.
  2930  func (c *ProjectsAppsReleasesOperationsDeleteCall) Header() http.Header {
  2931  	if c.header_ == nil {
  2932  		c.header_ = make(http.Header)
  2933  	}
  2934  	return c.header_
  2935  }
  2936  
  2937  func (c *ProjectsAppsReleasesOperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
  2938  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  2939  	var body io.Reader = nil
  2940  	c.urlParams_.Set("alt", alt)
  2941  	c.urlParams_.Set("prettyPrint", "false")
  2942  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
  2943  	urls += "?" + c.urlParams_.Encode()
  2944  	req, err := http.NewRequest("DELETE", urls, body)
  2945  	if err != nil {
  2946  		return nil, err
  2947  	}
  2948  	req.Header = reqHeaders
  2949  	googleapi.Expand(req.URL, map[string]string{
  2950  		"name": c.name,
  2951  	})
  2952  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  2953  }
  2954  
  2955  // Do executes the "firebaseappdistribution.projects.apps.releases.operations.delete" call.
  2956  // Any non-2xx status code is an error. Response headers are in either
  2957  // *GoogleProtobufEmpty.ServerResponse.Header or (if a response was returned at
  2958  // all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
  2959  // check whether the returned error was because http.StatusNotModified was
  2960  // returned.
  2961  func (c *ProjectsAppsReleasesOperationsDeleteCall) Do(opts ...googleapi.CallOption) (*GoogleProtobufEmpty, error) {
  2962  	gensupport.SetOptions(c.urlParams_, opts...)
  2963  	res, err := c.doRequest("json")
  2964  	if res != nil && res.StatusCode == http.StatusNotModified {
  2965  		if res.Body != nil {
  2966  			res.Body.Close()
  2967  		}
  2968  		return nil, gensupport.WrapError(&googleapi.Error{
  2969  			Code:   res.StatusCode,
  2970  			Header: res.Header,
  2971  		})
  2972  	}
  2973  	if err != nil {
  2974  		return nil, err
  2975  	}
  2976  	defer googleapi.CloseBody(res)
  2977  	if err := googleapi.CheckResponse(res); err != nil {
  2978  		return nil, gensupport.WrapError(err)
  2979  	}
  2980  	ret := &GoogleProtobufEmpty{
  2981  		ServerResponse: googleapi.ServerResponse{
  2982  			Header:         res.Header,
  2983  			HTTPStatusCode: res.StatusCode,
  2984  		},
  2985  	}
  2986  	target := &ret
  2987  	if err := gensupport.DecodeResponse(target, res); err != nil {
  2988  		return nil, err
  2989  	}
  2990  	return ret, nil
  2991  }
  2992  
  2993  type ProjectsAppsReleasesOperationsGetCall struct {
  2994  	s            *Service
  2995  	name         string
  2996  	urlParams_   gensupport.URLParams
  2997  	ifNoneMatch_ string
  2998  	ctx_         context.Context
  2999  	header_      http.Header
  3000  }
  3001  
  3002  // Get: Gets the latest state of a long-running operation. Clients can use this
  3003  // method to poll the operation result at intervals as recommended by the API
  3004  // service.
  3005  //
  3006  // - name: The name of the operation resource.
  3007  func (r *ProjectsAppsReleasesOperationsService) Get(name string) *ProjectsAppsReleasesOperationsGetCall {
  3008  	c := &ProjectsAppsReleasesOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  3009  	c.name = name
  3010  	return c
  3011  }
  3012  
  3013  // Fields allows partial responses to be retrieved. See
  3014  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  3015  // details.
  3016  func (c *ProjectsAppsReleasesOperationsGetCall) Fields(s ...googleapi.Field) *ProjectsAppsReleasesOperationsGetCall {
  3017  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  3018  	return c
  3019  }
  3020  
  3021  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  3022  // object's ETag matches the given value. This is useful for getting updates
  3023  // only after the object has changed since the last request.
  3024  func (c *ProjectsAppsReleasesOperationsGetCall) IfNoneMatch(entityTag string) *ProjectsAppsReleasesOperationsGetCall {
  3025  	c.ifNoneMatch_ = entityTag
  3026  	return c
  3027  }
  3028  
  3029  // Context sets the context to be used in this call's Do method.
  3030  func (c *ProjectsAppsReleasesOperationsGetCall) Context(ctx context.Context) *ProjectsAppsReleasesOperationsGetCall {
  3031  	c.ctx_ = ctx
  3032  	return c
  3033  }
  3034  
  3035  // Header returns a http.Header that can be modified by the caller to add
  3036  // headers to the request.
  3037  func (c *ProjectsAppsReleasesOperationsGetCall) Header() http.Header {
  3038  	if c.header_ == nil {
  3039  		c.header_ = make(http.Header)
  3040  	}
  3041  	return c.header_
  3042  }
  3043  
  3044  func (c *ProjectsAppsReleasesOperationsGetCall) doRequest(alt string) (*http.Response, error) {
  3045  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  3046  	if c.ifNoneMatch_ != "" {
  3047  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  3048  	}
  3049  	var body io.Reader = nil
  3050  	c.urlParams_.Set("alt", alt)
  3051  	c.urlParams_.Set("prettyPrint", "false")
  3052  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
  3053  	urls += "?" + c.urlParams_.Encode()
  3054  	req, err := http.NewRequest("GET", urls, body)
  3055  	if err != nil {
  3056  		return nil, err
  3057  	}
  3058  	req.Header = reqHeaders
  3059  	googleapi.Expand(req.URL, map[string]string{
  3060  		"name": c.name,
  3061  	})
  3062  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  3063  }
  3064  
  3065  // Do executes the "firebaseappdistribution.projects.apps.releases.operations.get" call.
  3066  // Any non-2xx status code is an error. Response headers are in either
  3067  // *GoogleLongrunningOperation.ServerResponse.Header or (if a response was
  3068  // returned at all) in error.(*googleapi.Error).Header. Use
  3069  // googleapi.IsNotModified to check whether the returned error was because
  3070  // http.StatusNotModified was returned.
  3071  func (c *ProjectsAppsReleasesOperationsGetCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, error) {
  3072  	gensupport.SetOptions(c.urlParams_, opts...)
  3073  	res, err := c.doRequest("json")
  3074  	if res != nil && res.StatusCode == http.StatusNotModified {
  3075  		if res.Body != nil {
  3076  			res.Body.Close()
  3077  		}
  3078  		return nil, gensupport.WrapError(&googleapi.Error{
  3079  			Code:   res.StatusCode,
  3080  			Header: res.Header,
  3081  		})
  3082  	}
  3083  	if err != nil {
  3084  		return nil, err
  3085  	}
  3086  	defer googleapi.CloseBody(res)
  3087  	if err := googleapi.CheckResponse(res); err != nil {
  3088  		return nil, gensupport.WrapError(err)
  3089  	}
  3090  	ret := &GoogleLongrunningOperation{
  3091  		ServerResponse: googleapi.ServerResponse{
  3092  			Header:         res.Header,
  3093  			HTTPStatusCode: res.StatusCode,
  3094  		},
  3095  	}
  3096  	target := &ret
  3097  	if err := gensupport.DecodeResponse(target, res); err != nil {
  3098  		return nil, err
  3099  	}
  3100  	return ret, nil
  3101  }
  3102  
  3103  type ProjectsAppsReleasesOperationsListCall struct {
  3104  	s            *Service
  3105  	name         string
  3106  	urlParams_   gensupport.URLParams
  3107  	ifNoneMatch_ string
  3108  	ctx_         context.Context
  3109  	header_      http.Header
  3110  }
  3111  
  3112  // List: Lists operations that match the specified filter in the request. If
  3113  // the server doesn't support this method, it returns `UNIMPLEMENTED`.
  3114  //
  3115  // - name: The name of the operation's parent resource.
  3116  func (r *ProjectsAppsReleasesOperationsService) List(name string) *ProjectsAppsReleasesOperationsListCall {
  3117  	c := &ProjectsAppsReleasesOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  3118  	c.name = name
  3119  	return c
  3120  }
  3121  
  3122  // Filter sets the optional parameter "filter": The standard list filter.
  3123  func (c *ProjectsAppsReleasesOperationsListCall) Filter(filter string) *ProjectsAppsReleasesOperationsListCall {
  3124  	c.urlParams_.Set("filter", filter)
  3125  	return c
  3126  }
  3127  
  3128  // PageSize sets the optional parameter "pageSize": The standard list page
  3129  // size.
  3130  func (c *ProjectsAppsReleasesOperationsListCall) PageSize(pageSize int64) *ProjectsAppsReleasesOperationsListCall {
  3131  	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
  3132  	return c
  3133  }
  3134  
  3135  // PageToken sets the optional parameter "pageToken": The standard list page
  3136  // token.
  3137  func (c *ProjectsAppsReleasesOperationsListCall) PageToken(pageToken string) *ProjectsAppsReleasesOperationsListCall {
  3138  	c.urlParams_.Set("pageToken", pageToken)
  3139  	return c
  3140  }
  3141  
  3142  // Fields allows partial responses to be retrieved. See
  3143  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  3144  // details.
  3145  func (c *ProjectsAppsReleasesOperationsListCall) Fields(s ...googleapi.Field) *ProjectsAppsReleasesOperationsListCall {
  3146  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  3147  	return c
  3148  }
  3149  
  3150  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  3151  // object's ETag matches the given value. This is useful for getting updates
  3152  // only after the object has changed since the last request.
  3153  func (c *ProjectsAppsReleasesOperationsListCall) IfNoneMatch(entityTag string) *ProjectsAppsReleasesOperationsListCall {
  3154  	c.ifNoneMatch_ = entityTag
  3155  	return c
  3156  }
  3157  
  3158  // Context sets the context to be used in this call's Do method.
  3159  func (c *ProjectsAppsReleasesOperationsListCall) Context(ctx context.Context) *ProjectsAppsReleasesOperationsListCall {
  3160  	c.ctx_ = ctx
  3161  	return c
  3162  }
  3163  
  3164  // Header returns a http.Header that can be modified by the caller to add
  3165  // headers to the request.
  3166  func (c *ProjectsAppsReleasesOperationsListCall) Header() http.Header {
  3167  	if c.header_ == nil {
  3168  		c.header_ = make(http.Header)
  3169  	}
  3170  	return c.header_
  3171  }
  3172  
  3173  func (c *ProjectsAppsReleasesOperationsListCall) doRequest(alt string) (*http.Response, error) {
  3174  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  3175  	if c.ifNoneMatch_ != "" {
  3176  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  3177  	}
  3178  	var body io.Reader = nil
  3179  	c.urlParams_.Set("alt", alt)
  3180  	c.urlParams_.Set("prettyPrint", "false")
  3181  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}/operations")
  3182  	urls += "?" + c.urlParams_.Encode()
  3183  	req, err := http.NewRequest("GET", urls, body)
  3184  	if err != nil {
  3185  		return nil, err
  3186  	}
  3187  	req.Header = reqHeaders
  3188  	googleapi.Expand(req.URL, map[string]string{
  3189  		"name": c.name,
  3190  	})
  3191  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  3192  }
  3193  
  3194  // Do executes the "firebaseappdistribution.projects.apps.releases.operations.list" call.
  3195  // Any non-2xx status code is an error. Response headers are in either
  3196  // *GoogleLongrunningListOperationsResponse.ServerResponse.Header or (if a
  3197  // response was returned at all) in error.(*googleapi.Error).Header. Use
  3198  // googleapi.IsNotModified to check whether the returned error was because
  3199  // http.StatusNotModified was returned.
  3200  func (c *ProjectsAppsReleasesOperationsListCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningListOperationsResponse, error) {
  3201  	gensupport.SetOptions(c.urlParams_, opts...)
  3202  	res, err := c.doRequest("json")
  3203  	if res != nil && res.StatusCode == http.StatusNotModified {
  3204  		if res.Body != nil {
  3205  			res.Body.Close()
  3206  		}
  3207  		return nil, gensupport.WrapError(&googleapi.Error{
  3208  			Code:   res.StatusCode,
  3209  			Header: res.Header,
  3210  		})
  3211  	}
  3212  	if err != nil {
  3213  		return nil, err
  3214  	}
  3215  	defer googleapi.CloseBody(res)
  3216  	if err := googleapi.CheckResponse(res); err != nil {
  3217  		return nil, gensupport.WrapError(err)
  3218  	}
  3219  	ret := &GoogleLongrunningListOperationsResponse{
  3220  		ServerResponse: googleapi.ServerResponse{
  3221  			Header:         res.Header,
  3222  			HTTPStatusCode: res.StatusCode,
  3223  		},
  3224  	}
  3225  	target := &ret
  3226  	if err := gensupport.DecodeResponse(target, res); err != nil {
  3227  		return nil, err
  3228  	}
  3229  	return ret, nil
  3230  }
  3231  
  3232  // Pages invokes f for each page of results.
  3233  // A non-nil error returned from f will halt the iteration.
  3234  // The provided context supersedes any context provided to the Context method.
  3235  func (c *ProjectsAppsReleasesOperationsListCall) Pages(ctx context.Context, f func(*GoogleLongrunningListOperationsResponse) error) error {
  3236  	c.ctx_ = ctx
  3237  	defer c.PageToken(c.urlParams_.Get("pageToken"))
  3238  	for {
  3239  		x, err := c.Do()
  3240  		if err != nil {
  3241  			return err
  3242  		}
  3243  		if err := f(x); err != nil {
  3244  			return err
  3245  		}
  3246  		if x.NextPageToken == "" {
  3247  			return nil
  3248  		}
  3249  		c.PageToken(x.NextPageToken)
  3250  	}
  3251  }
  3252  
  3253  type ProjectsAppsReleasesOperationsWaitCall struct {
  3254  	s                                     *Service
  3255  	name                                  string
  3256  	googlelongrunningwaitoperationrequest *GoogleLongrunningWaitOperationRequest
  3257  	urlParams_                            gensupport.URLParams
  3258  	ctx_                                  context.Context
  3259  	header_                               http.Header
  3260  }
  3261  
  3262  // Wait: Waits until the specified long-running operation is done or reaches at
  3263  // most a specified timeout, returning the latest state. If the operation is
  3264  // already done, the latest state is immediately returned. If the timeout
  3265  // specified is greater than the default HTTP/RPC timeout, the HTTP/RPC timeout
  3266  // is used. If the server does not support this method, it returns
  3267  // `google.rpc.Code.UNIMPLEMENTED`. Note that this method is on a best-effort
  3268  // basis. It may return the latest state before the specified timeout
  3269  // (including immediately), meaning even an immediate response is no guarantee
  3270  // that the operation is done.
  3271  //
  3272  // - name: The name of the operation resource to wait on.
  3273  func (r *ProjectsAppsReleasesOperationsService) Wait(name string, googlelongrunningwaitoperationrequest *GoogleLongrunningWaitOperationRequest) *ProjectsAppsReleasesOperationsWaitCall {
  3274  	c := &ProjectsAppsReleasesOperationsWaitCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  3275  	c.name = name
  3276  	c.googlelongrunningwaitoperationrequest = googlelongrunningwaitoperationrequest
  3277  	return c
  3278  }
  3279  
  3280  // Fields allows partial responses to be retrieved. See
  3281  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  3282  // details.
  3283  func (c *ProjectsAppsReleasesOperationsWaitCall) Fields(s ...googleapi.Field) *ProjectsAppsReleasesOperationsWaitCall {
  3284  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  3285  	return c
  3286  }
  3287  
  3288  // Context sets the context to be used in this call's Do method.
  3289  func (c *ProjectsAppsReleasesOperationsWaitCall) Context(ctx context.Context) *ProjectsAppsReleasesOperationsWaitCall {
  3290  	c.ctx_ = ctx
  3291  	return c
  3292  }
  3293  
  3294  // Header returns a http.Header that can be modified by the caller to add
  3295  // headers to the request.
  3296  func (c *ProjectsAppsReleasesOperationsWaitCall) Header() http.Header {
  3297  	if c.header_ == nil {
  3298  		c.header_ = make(http.Header)
  3299  	}
  3300  	return c.header_
  3301  }
  3302  
  3303  func (c *ProjectsAppsReleasesOperationsWaitCall) doRequest(alt string) (*http.Response, error) {
  3304  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  3305  	var body io.Reader = nil
  3306  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlelongrunningwaitoperationrequest)
  3307  	if err != nil {
  3308  		return nil, err
  3309  	}
  3310  	c.urlParams_.Set("alt", alt)
  3311  	c.urlParams_.Set("prettyPrint", "false")
  3312  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:wait")
  3313  	urls += "?" + c.urlParams_.Encode()
  3314  	req, err := http.NewRequest("POST", urls, body)
  3315  	if err != nil {
  3316  		return nil, err
  3317  	}
  3318  	req.Header = reqHeaders
  3319  	googleapi.Expand(req.URL, map[string]string{
  3320  		"name": c.name,
  3321  	})
  3322  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  3323  }
  3324  
  3325  // Do executes the "firebaseappdistribution.projects.apps.releases.operations.wait" call.
  3326  // Any non-2xx status code is an error. Response headers are in either
  3327  // *GoogleLongrunningOperation.ServerResponse.Header or (if a response was
  3328  // returned at all) in error.(*googleapi.Error).Header. Use
  3329  // googleapi.IsNotModified to check whether the returned error was because
  3330  // http.StatusNotModified was returned.
  3331  func (c *ProjectsAppsReleasesOperationsWaitCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, error) {
  3332  	gensupport.SetOptions(c.urlParams_, opts...)
  3333  	res, err := c.doRequest("json")
  3334  	if res != nil && res.StatusCode == http.StatusNotModified {
  3335  		if res.Body != nil {
  3336  			res.Body.Close()
  3337  		}
  3338  		return nil, gensupport.WrapError(&googleapi.Error{
  3339  			Code:   res.StatusCode,
  3340  			Header: res.Header,
  3341  		})
  3342  	}
  3343  	if err != nil {
  3344  		return nil, err
  3345  	}
  3346  	defer googleapi.CloseBody(res)
  3347  	if err := googleapi.CheckResponse(res); err != nil {
  3348  		return nil, gensupport.WrapError(err)
  3349  	}
  3350  	ret := &GoogleLongrunningOperation{
  3351  		ServerResponse: googleapi.ServerResponse{
  3352  			Header:         res.Header,
  3353  			HTTPStatusCode: res.StatusCode,
  3354  		},
  3355  	}
  3356  	target := &ret
  3357  	if err := gensupport.DecodeResponse(target, res); err != nil {
  3358  		return nil, err
  3359  	}
  3360  	return ret, nil
  3361  }
  3362  
  3363  type ProjectsGroupsBatchJoinCall struct {
  3364  	s                                              *Service
  3365  	group                                          string
  3366  	googlefirebaseappdistrov1batchjoingrouprequest *GoogleFirebaseAppdistroV1BatchJoinGroupRequest
  3367  	urlParams_                                     gensupport.URLParams
  3368  	ctx_                                           context.Context
  3369  	header_                                        http.Header
  3370  }
  3371  
  3372  // BatchJoin: Batch adds members to a group. The testers will gain access to
  3373  // all releases that the groups have access to.
  3374  //
  3375  //   - group: The name of the group resource to which testers are added. Format:
  3376  //     `projects/{project_number}/groups/{group_alias}`.
  3377  func (r *ProjectsGroupsService) BatchJoin(group string, googlefirebaseappdistrov1batchjoingrouprequest *GoogleFirebaseAppdistroV1BatchJoinGroupRequest) *ProjectsGroupsBatchJoinCall {
  3378  	c := &ProjectsGroupsBatchJoinCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  3379  	c.group = group
  3380  	c.googlefirebaseappdistrov1batchjoingrouprequest = googlefirebaseappdistrov1batchjoingrouprequest
  3381  	return c
  3382  }
  3383  
  3384  // Fields allows partial responses to be retrieved. See
  3385  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  3386  // details.
  3387  func (c *ProjectsGroupsBatchJoinCall) Fields(s ...googleapi.Field) *ProjectsGroupsBatchJoinCall {
  3388  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  3389  	return c
  3390  }
  3391  
  3392  // Context sets the context to be used in this call's Do method.
  3393  func (c *ProjectsGroupsBatchJoinCall) Context(ctx context.Context) *ProjectsGroupsBatchJoinCall {
  3394  	c.ctx_ = ctx
  3395  	return c
  3396  }
  3397  
  3398  // Header returns a http.Header that can be modified by the caller to add
  3399  // headers to the request.
  3400  func (c *ProjectsGroupsBatchJoinCall) Header() http.Header {
  3401  	if c.header_ == nil {
  3402  		c.header_ = make(http.Header)
  3403  	}
  3404  	return c.header_
  3405  }
  3406  
  3407  func (c *ProjectsGroupsBatchJoinCall) doRequest(alt string) (*http.Response, error) {
  3408  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  3409  	var body io.Reader = nil
  3410  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlefirebaseappdistrov1batchjoingrouprequest)
  3411  	if err != nil {
  3412  		return nil, err
  3413  	}
  3414  	c.urlParams_.Set("alt", alt)
  3415  	c.urlParams_.Set("prettyPrint", "false")
  3416  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+group}:batchJoin")
  3417  	urls += "?" + c.urlParams_.Encode()
  3418  	req, err := http.NewRequest("POST", urls, body)
  3419  	if err != nil {
  3420  		return nil, err
  3421  	}
  3422  	req.Header = reqHeaders
  3423  	googleapi.Expand(req.URL, map[string]string{
  3424  		"group": c.group,
  3425  	})
  3426  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  3427  }
  3428  
  3429  // Do executes the "firebaseappdistribution.projects.groups.batchJoin" call.
  3430  // Any non-2xx status code is an error. Response headers are in either
  3431  // *GoogleProtobufEmpty.ServerResponse.Header or (if a response was returned at
  3432  // all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
  3433  // check whether the returned error was because http.StatusNotModified was
  3434  // returned.
  3435  func (c *ProjectsGroupsBatchJoinCall) Do(opts ...googleapi.CallOption) (*GoogleProtobufEmpty, error) {
  3436  	gensupport.SetOptions(c.urlParams_, opts...)
  3437  	res, err := c.doRequest("json")
  3438  	if res != nil && res.StatusCode == http.StatusNotModified {
  3439  		if res.Body != nil {
  3440  			res.Body.Close()
  3441  		}
  3442  		return nil, gensupport.WrapError(&googleapi.Error{
  3443  			Code:   res.StatusCode,
  3444  			Header: res.Header,
  3445  		})
  3446  	}
  3447  	if err != nil {
  3448  		return nil, err
  3449  	}
  3450  	defer googleapi.CloseBody(res)
  3451  	if err := googleapi.CheckResponse(res); err != nil {
  3452  		return nil, gensupport.WrapError(err)
  3453  	}
  3454  	ret := &GoogleProtobufEmpty{
  3455  		ServerResponse: googleapi.ServerResponse{
  3456  			Header:         res.Header,
  3457  			HTTPStatusCode: res.StatusCode,
  3458  		},
  3459  	}
  3460  	target := &ret
  3461  	if err := gensupport.DecodeResponse(target, res); err != nil {
  3462  		return nil, err
  3463  	}
  3464  	return ret, nil
  3465  }
  3466  
  3467  type ProjectsGroupsBatchLeaveCall struct {
  3468  	s                                               *Service
  3469  	group                                           string
  3470  	googlefirebaseappdistrov1batchleavegrouprequest *GoogleFirebaseAppdistroV1BatchLeaveGroupRequest
  3471  	urlParams_                                      gensupport.URLParams
  3472  	ctx_                                            context.Context
  3473  	header_                                         http.Header
  3474  }
  3475  
  3476  // BatchLeave: Batch removed members from a group. The testers will lose access
  3477  // to all releases that the groups have access to.
  3478  //
  3479  //   - group: The name of the group resource from which testers are removed.
  3480  //     Format: `projects/{project_number}/groups/{group_alias}`.
  3481  func (r *ProjectsGroupsService) BatchLeave(group string, googlefirebaseappdistrov1batchleavegrouprequest *GoogleFirebaseAppdistroV1BatchLeaveGroupRequest) *ProjectsGroupsBatchLeaveCall {
  3482  	c := &ProjectsGroupsBatchLeaveCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  3483  	c.group = group
  3484  	c.googlefirebaseappdistrov1batchleavegrouprequest = googlefirebaseappdistrov1batchleavegrouprequest
  3485  	return c
  3486  }
  3487  
  3488  // Fields allows partial responses to be retrieved. See
  3489  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  3490  // details.
  3491  func (c *ProjectsGroupsBatchLeaveCall) Fields(s ...googleapi.Field) *ProjectsGroupsBatchLeaveCall {
  3492  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  3493  	return c
  3494  }
  3495  
  3496  // Context sets the context to be used in this call's Do method.
  3497  func (c *ProjectsGroupsBatchLeaveCall) Context(ctx context.Context) *ProjectsGroupsBatchLeaveCall {
  3498  	c.ctx_ = ctx
  3499  	return c
  3500  }
  3501  
  3502  // Header returns a http.Header that can be modified by the caller to add
  3503  // headers to the request.
  3504  func (c *ProjectsGroupsBatchLeaveCall) Header() http.Header {
  3505  	if c.header_ == nil {
  3506  		c.header_ = make(http.Header)
  3507  	}
  3508  	return c.header_
  3509  }
  3510  
  3511  func (c *ProjectsGroupsBatchLeaveCall) doRequest(alt string) (*http.Response, error) {
  3512  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  3513  	var body io.Reader = nil
  3514  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlefirebaseappdistrov1batchleavegrouprequest)
  3515  	if err != nil {
  3516  		return nil, err
  3517  	}
  3518  	c.urlParams_.Set("alt", alt)
  3519  	c.urlParams_.Set("prettyPrint", "false")
  3520  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+group}:batchLeave")
  3521  	urls += "?" + c.urlParams_.Encode()
  3522  	req, err := http.NewRequest("POST", urls, body)
  3523  	if err != nil {
  3524  		return nil, err
  3525  	}
  3526  	req.Header = reqHeaders
  3527  	googleapi.Expand(req.URL, map[string]string{
  3528  		"group": c.group,
  3529  	})
  3530  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  3531  }
  3532  
  3533  // Do executes the "firebaseappdistribution.projects.groups.batchLeave" call.
  3534  // Any non-2xx status code is an error. Response headers are in either
  3535  // *GoogleProtobufEmpty.ServerResponse.Header or (if a response was returned at
  3536  // all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
  3537  // check whether the returned error was because http.StatusNotModified was
  3538  // returned.
  3539  func (c *ProjectsGroupsBatchLeaveCall) Do(opts ...googleapi.CallOption) (*GoogleProtobufEmpty, error) {
  3540  	gensupport.SetOptions(c.urlParams_, opts...)
  3541  	res, err := c.doRequest("json")
  3542  	if res != nil && res.StatusCode == http.StatusNotModified {
  3543  		if res.Body != nil {
  3544  			res.Body.Close()
  3545  		}
  3546  		return nil, gensupport.WrapError(&googleapi.Error{
  3547  			Code:   res.StatusCode,
  3548  			Header: res.Header,
  3549  		})
  3550  	}
  3551  	if err != nil {
  3552  		return nil, err
  3553  	}
  3554  	defer googleapi.CloseBody(res)
  3555  	if err := googleapi.CheckResponse(res); err != nil {
  3556  		return nil, gensupport.WrapError(err)
  3557  	}
  3558  	ret := &GoogleProtobufEmpty{
  3559  		ServerResponse: googleapi.ServerResponse{
  3560  			Header:         res.Header,
  3561  			HTTPStatusCode: res.StatusCode,
  3562  		},
  3563  	}
  3564  	target := &ret
  3565  	if err := gensupport.DecodeResponse(target, res); err != nil {
  3566  		return nil, err
  3567  	}
  3568  	return ret, nil
  3569  }
  3570  
  3571  type ProjectsGroupsCreateCall struct {
  3572  	s                              *Service
  3573  	parent                         string
  3574  	googlefirebaseappdistrov1group *GoogleFirebaseAppdistroV1Group
  3575  	urlParams_                     gensupport.URLParams
  3576  	ctx_                           context.Context
  3577  	header_                        http.Header
  3578  }
  3579  
  3580  // Create: Create a group.
  3581  //
  3582  //   - parent: The name of the project resource, which is the parent of the group
  3583  //     resource. Format: `projects/{project_number}`.
  3584  func (r *ProjectsGroupsService) Create(parent string, googlefirebaseappdistrov1group *GoogleFirebaseAppdistroV1Group) *ProjectsGroupsCreateCall {
  3585  	c := &ProjectsGroupsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  3586  	c.parent = parent
  3587  	c.googlefirebaseappdistrov1group = googlefirebaseappdistrov1group
  3588  	return c
  3589  }
  3590  
  3591  // GroupId sets the optional parameter "groupId": The "alias" to use for the
  3592  // group, which will become the final component of the group's resource name.
  3593  // This value must be unique per project. The field is named `groupId` to
  3594  // comply with AIP guidance for user-specified IDs. This value should be 4-63
  3595  // characters, and valid characters are `/a-z-/`. If not set, it will be
  3596  // generated based on the display name.
  3597  func (c *ProjectsGroupsCreateCall) GroupId(groupId string) *ProjectsGroupsCreateCall {
  3598  	c.urlParams_.Set("groupId", groupId)
  3599  	return c
  3600  }
  3601  
  3602  // Fields allows partial responses to be retrieved. See
  3603  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  3604  // details.
  3605  func (c *ProjectsGroupsCreateCall) Fields(s ...googleapi.Field) *ProjectsGroupsCreateCall {
  3606  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  3607  	return c
  3608  }
  3609  
  3610  // Context sets the context to be used in this call's Do method.
  3611  func (c *ProjectsGroupsCreateCall) Context(ctx context.Context) *ProjectsGroupsCreateCall {
  3612  	c.ctx_ = ctx
  3613  	return c
  3614  }
  3615  
  3616  // Header returns a http.Header that can be modified by the caller to add
  3617  // headers to the request.
  3618  func (c *ProjectsGroupsCreateCall) Header() http.Header {
  3619  	if c.header_ == nil {
  3620  		c.header_ = make(http.Header)
  3621  	}
  3622  	return c.header_
  3623  }
  3624  
  3625  func (c *ProjectsGroupsCreateCall) doRequest(alt string) (*http.Response, error) {
  3626  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  3627  	var body io.Reader = nil
  3628  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlefirebaseappdistrov1group)
  3629  	if err != nil {
  3630  		return nil, err
  3631  	}
  3632  	c.urlParams_.Set("alt", alt)
  3633  	c.urlParams_.Set("prettyPrint", "false")
  3634  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/groups")
  3635  	urls += "?" + c.urlParams_.Encode()
  3636  	req, err := http.NewRequest("POST", urls, body)
  3637  	if err != nil {
  3638  		return nil, err
  3639  	}
  3640  	req.Header = reqHeaders
  3641  	googleapi.Expand(req.URL, map[string]string{
  3642  		"parent": c.parent,
  3643  	})
  3644  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  3645  }
  3646  
  3647  // Do executes the "firebaseappdistribution.projects.groups.create" call.
  3648  // Any non-2xx status code is an error. Response headers are in either
  3649  // *GoogleFirebaseAppdistroV1Group.ServerResponse.Header or (if a response was
  3650  // returned at all) in error.(*googleapi.Error).Header. Use
  3651  // googleapi.IsNotModified to check whether the returned error was because
  3652  // http.StatusNotModified was returned.
  3653  func (c *ProjectsGroupsCreateCall) Do(opts ...googleapi.CallOption) (*GoogleFirebaseAppdistroV1Group, error) {
  3654  	gensupport.SetOptions(c.urlParams_, opts...)
  3655  	res, err := c.doRequest("json")
  3656  	if res != nil && res.StatusCode == http.StatusNotModified {
  3657  		if res.Body != nil {
  3658  			res.Body.Close()
  3659  		}
  3660  		return nil, gensupport.WrapError(&googleapi.Error{
  3661  			Code:   res.StatusCode,
  3662  			Header: res.Header,
  3663  		})
  3664  	}
  3665  	if err != nil {
  3666  		return nil, err
  3667  	}
  3668  	defer googleapi.CloseBody(res)
  3669  	if err := googleapi.CheckResponse(res); err != nil {
  3670  		return nil, gensupport.WrapError(err)
  3671  	}
  3672  	ret := &GoogleFirebaseAppdistroV1Group{
  3673  		ServerResponse: googleapi.ServerResponse{
  3674  			Header:         res.Header,
  3675  			HTTPStatusCode: res.StatusCode,
  3676  		},
  3677  	}
  3678  	target := &ret
  3679  	if err := gensupport.DecodeResponse(target, res); err != nil {
  3680  		return nil, err
  3681  	}
  3682  	return ret, nil
  3683  }
  3684  
  3685  type ProjectsGroupsDeleteCall struct {
  3686  	s          *Service
  3687  	name       string
  3688  	urlParams_ gensupport.URLParams
  3689  	ctx_       context.Context
  3690  	header_    http.Header
  3691  }
  3692  
  3693  // Delete: Delete a group.
  3694  //
  3695  //   - name: The name of the group resource. Format:
  3696  //     `projects/{project_number}/groups/{group_alias}`.
  3697  func (r *ProjectsGroupsService) Delete(name string) *ProjectsGroupsDeleteCall {
  3698  	c := &ProjectsGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  3699  	c.name = name
  3700  	return c
  3701  }
  3702  
  3703  // Fields allows partial responses to be retrieved. See
  3704  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  3705  // details.
  3706  func (c *ProjectsGroupsDeleteCall) Fields(s ...googleapi.Field) *ProjectsGroupsDeleteCall {
  3707  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  3708  	return c
  3709  }
  3710  
  3711  // Context sets the context to be used in this call's Do method.
  3712  func (c *ProjectsGroupsDeleteCall) Context(ctx context.Context) *ProjectsGroupsDeleteCall {
  3713  	c.ctx_ = ctx
  3714  	return c
  3715  }
  3716  
  3717  // Header returns a http.Header that can be modified by the caller to add
  3718  // headers to the request.
  3719  func (c *ProjectsGroupsDeleteCall) Header() http.Header {
  3720  	if c.header_ == nil {
  3721  		c.header_ = make(http.Header)
  3722  	}
  3723  	return c.header_
  3724  }
  3725  
  3726  func (c *ProjectsGroupsDeleteCall) doRequest(alt string) (*http.Response, error) {
  3727  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  3728  	var body io.Reader = nil
  3729  	c.urlParams_.Set("alt", alt)
  3730  	c.urlParams_.Set("prettyPrint", "false")
  3731  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
  3732  	urls += "?" + c.urlParams_.Encode()
  3733  	req, err := http.NewRequest("DELETE", urls, body)
  3734  	if err != nil {
  3735  		return nil, err
  3736  	}
  3737  	req.Header = reqHeaders
  3738  	googleapi.Expand(req.URL, map[string]string{
  3739  		"name": c.name,
  3740  	})
  3741  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  3742  }
  3743  
  3744  // Do executes the "firebaseappdistribution.projects.groups.delete" call.
  3745  // Any non-2xx status code is an error. Response headers are in either
  3746  // *GoogleProtobufEmpty.ServerResponse.Header or (if a response was returned at
  3747  // all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
  3748  // check whether the returned error was because http.StatusNotModified was
  3749  // returned.
  3750  func (c *ProjectsGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*GoogleProtobufEmpty, error) {
  3751  	gensupport.SetOptions(c.urlParams_, opts...)
  3752  	res, err := c.doRequest("json")
  3753  	if res != nil && res.StatusCode == http.StatusNotModified {
  3754  		if res.Body != nil {
  3755  			res.Body.Close()
  3756  		}
  3757  		return nil, gensupport.WrapError(&googleapi.Error{
  3758  			Code:   res.StatusCode,
  3759  			Header: res.Header,
  3760  		})
  3761  	}
  3762  	if err != nil {
  3763  		return nil, err
  3764  	}
  3765  	defer googleapi.CloseBody(res)
  3766  	if err := googleapi.CheckResponse(res); err != nil {
  3767  		return nil, gensupport.WrapError(err)
  3768  	}
  3769  	ret := &GoogleProtobufEmpty{
  3770  		ServerResponse: googleapi.ServerResponse{
  3771  			Header:         res.Header,
  3772  			HTTPStatusCode: res.StatusCode,
  3773  		},
  3774  	}
  3775  	target := &ret
  3776  	if err := gensupport.DecodeResponse(target, res); err != nil {
  3777  		return nil, err
  3778  	}
  3779  	return ret, nil
  3780  }
  3781  
  3782  type ProjectsGroupsGetCall struct {
  3783  	s            *Service
  3784  	name         string
  3785  	urlParams_   gensupport.URLParams
  3786  	ifNoneMatch_ string
  3787  	ctx_         context.Context
  3788  	header_      http.Header
  3789  }
  3790  
  3791  // Get: Get a group.
  3792  //
  3793  //   - name: The name of the group resource to retrieve. Format:
  3794  //     `projects/{project_number}/groups/{group_alias}`.
  3795  func (r *ProjectsGroupsService) Get(name string) *ProjectsGroupsGetCall {
  3796  	c := &ProjectsGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  3797  	c.name = name
  3798  	return c
  3799  }
  3800  
  3801  // Fields allows partial responses to be retrieved. See
  3802  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  3803  // details.
  3804  func (c *ProjectsGroupsGetCall) Fields(s ...googleapi.Field) *ProjectsGroupsGetCall {
  3805  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  3806  	return c
  3807  }
  3808  
  3809  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  3810  // object's ETag matches the given value. This is useful for getting updates
  3811  // only after the object has changed since the last request.
  3812  func (c *ProjectsGroupsGetCall) IfNoneMatch(entityTag string) *ProjectsGroupsGetCall {
  3813  	c.ifNoneMatch_ = entityTag
  3814  	return c
  3815  }
  3816  
  3817  // Context sets the context to be used in this call's Do method.
  3818  func (c *ProjectsGroupsGetCall) Context(ctx context.Context) *ProjectsGroupsGetCall {
  3819  	c.ctx_ = ctx
  3820  	return c
  3821  }
  3822  
  3823  // Header returns a http.Header that can be modified by the caller to add
  3824  // headers to the request.
  3825  func (c *ProjectsGroupsGetCall) Header() http.Header {
  3826  	if c.header_ == nil {
  3827  		c.header_ = make(http.Header)
  3828  	}
  3829  	return c.header_
  3830  }
  3831  
  3832  func (c *ProjectsGroupsGetCall) doRequest(alt string) (*http.Response, error) {
  3833  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  3834  	if c.ifNoneMatch_ != "" {
  3835  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  3836  	}
  3837  	var body io.Reader = nil
  3838  	c.urlParams_.Set("alt", alt)
  3839  	c.urlParams_.Set("prettyPrint", "false")
  3840  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
  3841  	urls += "?" + c.urlParams_.Encode()
  3842  	req, err := http.NewRequest("GET", urls, body)
  3843  	if err != nil {
  3844  		return nil, err
  3845  	}
  3846  	req.Header = reqHeaders
  3847  	googleapi.Expand(req.URL, map[string]string{
  3848  		"name": c.name,
  3849  	})
  3850  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  3851  }
  3852  
  3853  // Do executes the "firebaseappdistribution.projects.groups.get" call.
  3854  // Any non-2xx status code is an error. Response headers are in either
  3855  // *GoogleFirebaseAppdistroV1Group.ServerResponse.Header or (if a response was
  3856  // returned at all) in error.(*googleapi.Error).Header. Use
  3857  // googleapi.IsNotModified to check whether the returned error was because
  3858  // http.StatusNotModified was returned.
  3859  func (c *ProjectsGroupsGetCall) Do(opts ...googleapi.CallOption) (*GoogleFirebaseAppdistroV1Group, error) {
  3860  	gensupport.SetOptions(c.urlParams_, opts...)
  3861  	res, err := c.doRequest("json")
  3862  	if res != nil && res.StatusCode == http.StatusNotModified {
  3863  		if res.Body != nil {
  3864  			res.Body.Close()
  3865  		}
  3866  		return nil, gensupport.WrapError(&googleapi.Error{
  3867  			Code:   res.StatusCode,
  3868  			Header: res.Header,
  3869  		})
  3870  	}
  3871  	if err != nil {
  3872  		return nil, err
  3873  	}
  3874  	defer googleapi.CloseBody(res)
  3875  	if err := googleapi.CheckResponse(res); err != nil {
  3876  		return nil, gensupport.WrapError(err)
  3877  	}
  3878  	ret := &GoogleFirebaseAppdistroV1Group{
  3879  		ServerResponse: googleapi.ServerResponse{
  3880  			Header:         res.Header,
  3881  			HTTPStatusCode: res.StatusCode,
  3882  		},
  3883  	}
  3884  	target := &ret
  3885  	if err := gensupport.DecodeResponse(target, res); err != nil {
  3886  		return nil, err
  3887  	}
  3888  	return ret, nil
  3889  }
  3890  
  3891  type ProjectsGroupsListCall struct {
  3892  	s            *Service
  3893  	parent       string
  3894  	urlParams_   gensupport.URLParams
  3895  	ifNoneMatch_ string
  3896  	ctx_         context.Context
  3897  	header_      http.Header
  3898  }
  3899  
  3900  // List: List groups.
  3901  //
  3902  //   - parent: The name of the project resource, which is the parent of the group
  3903  //     resources. Format: `projects/{project_number}`.
  3904  func (r *ProjectsGroupsService) List(parent string) *ProjectsGroupsListCall {
  3905  	c := &ProjectsGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  3906  	c.parent = parent
  3907  	return c
  3908  }
  3909  
  3910  // PageSize sets the optional parameter "pageSize": The maximum number of
  3911  // groups to return. The service may return fewer than this value. The valid
  3912  // range is [1-1000]; If unspecified (0), at most 25 groups are returned.
  3913  // Values above 1000 are coerced to 1000.
  3914  func (c *ProjectsGroupsListCall) PageSize(pageSize int64) *ProjectsGroupsListCall {
  3915  	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
  3916  	return c
  3917  }
  3918  
  3919  // PageToken sets the optional parameter "pageToken": A page token, received
  3920  // from a previous `ListGroups` call. Provide this to retrieve the subsequent
  3921  // page. When paginating, all other parameters provided to `ListGroups` must
  3922  // match the call that provided the page token.
  3923  func (c *ProjectsGroupsListCall) PageToken(pageToken string) *ProjectsGroupsListCall {
  3924  	c.urlParams_.Set("pageToken", pageToken)
  3925  	return c
  3926  }
  3927  
  3928  // Fields allows partial responses to be retrieved. See
  3929  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  3930  // details.
  3931  func (c *ProjectsGroupsListCall) Fields(s ...googleapi.Field) *ProjectsGroupsListCall {
  3932  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  3933  	return c
  3934  }
  3935  
  3936  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  3937  // object's ETag matches the given value. This is useful for getting updates
  3938  // only after the object has changed since the last request.
  3939  func (c *ProjectsGroupsListCall) IfNoneMatch(entityTag string) *ProjectsGroupsListCall {
  3940  	c.ifNoneMatch_ = entityTag
  3941  	return c
  3942  }
  3943  
  3944  // Context sets the context to be used in this call's Do method.
  3945  func (c *ProjectsGroupsListCall) Context(ctx context.Context) *ProjectsGroupsListCall {
  3946  	c.ctx_ = ctx
  3947  	return c
  3948  }
  3949  
  3950  // Header returns a http.Header that can be modified by the caller to add
  3951  // headers to the request.
  3952  func (c *ProjectsGroupsListCall) Header() http.Header {
  3953  	if c.header_ == nil {
  3954  		c.header_ = make(http.Header)
  3955  	}
  3956  	return c.header_
  3957  }
  3958  
  3959  func (c *ProjectsGroupsListCall) doRequest(alt string) (*http.Response, error) {
  3960  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  3961  	if c.ifNoneMatch_ != "" {
  3962  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  3963  	}
  3964  	var body io.Reader = nil
  3965  	c.urlParams_.Set("alt", alt)
  3966  	c.urlParams_.Set("prettyPrint", "false")
  3967  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/groups")
  3968  	urls += "?" + c.urlParams_.Encode()
  3969  	req, err := http.NewRequest("GET", urls, body)
  3970  	if err != nil {
  3971  		return nil, err
  3972  	}
  3973  	req.Header = reqHeaders
  3974  	googleapi.Expand(req.URL, map[string]string{
  3975  		"parent": c.parent,
  3976  	})
  3977  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  3978  }
  3979  
  3980  // Do executes the "firebaseappdistribution.projects.groups.list" call.
  3981  // Any non-2xx status code is an error. Response headers are in either
  3982  // *GoogleFirebaseAppdistroV1ListGroupsResponse.ServerResponse.Header or (if a
  3983  // response was returned at all) in error.(*googleapi.Error).Header. Use
  3984  // googleapi.IsNotModified to check whether the returned error was because
  3985  // http.StatusNotModified was returned.
  3986  func (c *ProjectsGroupsListCall) Do(opts ...googleapi.CallOption) (*GoogleFirebaseAppdistroV1ListGroupsResponse, error) {
  3987  	gensupport.SetOptions(c.urlParams_, opts...)
  3988  	res, err := c.doRequest("json")
  3989  	if res != nil && res.StatusCode == http.StatusNotModified {
  3990  		if res.Body != nil {
  3991  			res.Body.Close()
  3992  		}
  3993  		return nil, gensupport.WrapError(&googleapi.Error{
  3994  			Code:   res.StatusCode,
  3995  			Header: res.Header,
  3996  		})
  3997  	}
  3998  	if err != nil {
  3999  		return nil, err
  4000  	}
  4001  	defer googleapi.CloseBody(res)
  4002  	if err := googleapi.CheckResponse(res); err != nil {
  4003  		return nil, gensupport.WrapError(err)
  4004  	}
  4005  	ret := &GoogleFirebaseAppdistroV1ListGroupsResponse{
  4006  		ServerResponse: googleapi.ServerResponse{
  4007  			Header:         res.Header,
  4008  			HTTPStatusCode: res.StatusCode,
  4009  		},
  4010  	}
  4011  	target := &ret
  4012  	if err := gensupport.DecodeResponse(target, res); err != nil {
  4013  		return nil, err
  4014  	}
  4015  	return ret, nil
  4016  }
  4017  
  4018  // Pages invokes f for each page of results.
  4019  // A non-nil error returned from f will halt the iteration.
  4020  // The provided context supersedes any context provided to the Context method.
  4021  func (c *ProjectsGroupsListCall) Pages(ctx context.Context, f func(*GoogleFirebaseAppdistroV1ListGroupsResponse) error) error {
  4022  	c.ctx_ = ctx
  4023  	defer c.PageToken(c.urlParams_.Get("pageToken"))
  4024  	for {
  4025  		x, err := c.Do()
  4026  		if err != nil {
  4027  			return err
  4028  		}
  4029  		if err := f(x); err != nil {
  4030  			return err
  4031  		}
  4032  		if x.NextPageToken == "" {
  4033  			return nil
  4034  		}
  4035  		c.PageToken(x.NextPageToken)
  4036  	}
  4037  }
  4038  
  4039  type ProjectsGroupsPatchCall struct {
  4040  	s                              *Service
  4041  	name                           string
  4042  	googlefirebaseappdistrov1group *GoogleFirebaseAppdistroV1Group
  4043  	urlParams_                     gensupport.URLParams
  4044  	ctx_                           context.Context
  4045  	header_                        http.Header
  4046  }
  4047  
  4048  // Patch: Update a group.
  4049  //
  4050  //   - name: The name of the group resource. Format:
  4051  //     `projects/{project_number}/groups/{group_alias}`.
  4052  func (r *ProjectsGroupsService) Patch(name string, googlefirebaseappdistrov1group *GoogleFirebaseAppdistroV1Group) *ProjectsGroupsPatchCall {
  4053  	c := &ProjectsGroupsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  4054  	c.name = name
  4055  	c.googlefirebaseappdistrov1group = googlefirebaseappdistrov1group
  4056  	return c
  4057  }
  4058  
  4059  // UpdateMask sets the optional parameter "updateMask": The list of fields to
  4060  // update.
  4061  func (c *ProjectsGroupsPatchCall) UpdateMask(updateMask string) *ProjectsGroupsPatchCall {
  4062  	c.urlParams_.Set("updateMask", updateMask)
  4063  	return c
  4064  }
  4065  
  4066  // Fields allows partial responses to be retrieved. See
  4067  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  4068  // details.
  4069  func (c *ProjectsGroupsPatchCall) Fields(s ...googleapi.Field) *ProjectsGroupsPatchCall {
  4070  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  4071  	return c
  4072  }
  4073  
  4074  // Context sets the context to be used in this call's Do method.
  4075  func (c *ProjectsGroupsPatchCall) Context(ctx context.Context) *ProjectsGroupsPatchCall {
  4076  	c.ctx_ = ctx
  4077  	return c
  4078  }
  4079  
  4080  // Header returns a http.Header that can be modified by the caller to add
  4081  // headers to the request.
  4082  func (c *ProjectsGroupsPatchCall) Header() http.Header {
  4083  	if c.header_ == nil {
  4084  		c.header_ = make(http.Header)
  4085  	}
  4086  	return c.header_
  4087  }
  4088  
  4089  func (c *ProjectsGroupsPatchCall) doRequest(alt string) (*http.Response, error) {
  4090  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  4091  	var body io.Reader = nil
  4092  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlefirebaseappdistrov1group)
  4093  	if err != nil {
  4094  		return nil, err
  4095  	}
  4096  	c.urlParams_.Set("alt", alt)
  4097  	c.urlParams_.Set("prettyPrint", "false")
  4098  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
  4099  	urls += "?" + c.urlParams_.Encode()
  4100  	req, err := http.NewRequest("PATCH", urls, body)
  4101  	if err != nil {
  4102  		return nil, err
  4103  	}
  4104  	req.Header = reqHeaders
  4105  	googleapi.Expand(req.URL, map[string]string{
  4106  		"name": c.name,
  4107  	})
  4108  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  4109  }
  4110  
  4111  // Do executes the "firebaseappdistribution.projects.groups.patch" call.
  4112  // Any non-2xx status code is an error. Response headers are in either
  4113  // *GoogleFirebaseAppdistroV1Group.ServerResponse.Header or (if a response was
  4114  // returned at all) in error.(*googleapi.Error).Header. Use
  4115  // googleapi.IsNotModified to check whether the returned error was because
  4116  // http.StatusNotModified was returned.
  4117  func (c *ProjectsGroupsPatchCall) Do(opts ...googleapi.CallOption) (*GoogleFirebaseAppdistroV1Group, error) {
  4118  	gensupport.SetOptions(c.urlParams_, opts...)
  4119  	res, err := c.doRequest("json")
  4120  	if res != nil && res.StatusCode == http.StatusNotModified {
  4121  		if res.Body != nil {
  4122  			res.Body.Close()
  4123  		}
  4124  		return nil, gensupport.WrapError(&googleapi.Error{
  4125  			Code:   res.StatusCode,
  4126  			Header: res.Header,
  4127  		})
  4128  	}
  4129  	if err != nil {
  4130  		return nil, err
  4131  	}
  4132  	defer googleapi.CloseBody(res)
  4133  	if err := googleapi.CheckResponse(res); err != nil {
  4134  		return nil, gensupport.WrapError(err)
  4135  	}
  4136  	ret := &GoogleFirebaseAppdistroV1Group{
  4137  		ServerResponse: googleapi.ServerResponse{
  4138  			Header:         res.Header,
  4139  			HTTPStatusCode: res.StatusCode,
  4140  		},
  4141  	}
  4142  	target := &ret
  4143  	if err := gensupport.DecodeResponse(target, res); err != nil {
  4144  		return nil, err
  4145  	}
  4146  	return ret, nil
  4147  }
  4148  
  4149  type ProjectsTestersBatchAddCall struct {
  4150  	s                                               *Service
  4151  	project                                         string
  4152  	googlefirebaseappdistrov1batchaddtestersrequest *GoogleFirebaseAppdistroV1BatchAddTestersRequest
  4153  	urlParams_                                      gensupport.URLParams
  4154  	ctx_                                            context.Context
  4155  	header_                                         http.Header
  4156  }
  4157  
  4158  // BatchAdd: Batch adds testers. This call adds testers for the specified
  4159  // emails if they don't already exist. Returns all testers specified in the
  4160  // request, including newly created and previously existing testers. This
  4161  // action is idempotent.
  4162  //
  4163  //   - project: The name of the project resource. Format:
  4164  //     `projects/{project_number}`.
  4165  func (r *ProjectsTestersService) BatchAdd(project string, googlefirebaseappdistrov1batchaddtestersrequest *GoogleFirebaseAppdistroV1BatchAddTestersRequest) *ProjectsTestersBatchAddCall {
  4166  	c := &ProjectsTestersBatchAddCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  4167  	c.project = project
  4168  	c.googlefirebaseappdistrov1batchaddtestersrequest = googlefirebaseappdistrov1batchaddtestersrequest
  4169  	return c
  4170  }
  4171  
  4172  // Fields allows partial responses to be retrieved. See
  4173  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  4174  // details.
  4175  func (c *ProjectsTestersBatchAddCall) Fields(s ...googleapi.Field) *ProjectsTestersBatchAddCall {
  4176  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  4177  	return c
  4178  }
  4179  
  4180  // Context sets the context to be used in this call's Do method.
  4181  func (c *ProjectsTestersBatchAddCall) Context(ctx context.Context) *ProjectsTestersBatchAddCall {
  4182  	c.ctx_ = ctx
  4183  	return c
  4184  }
  4185  
  4186  // Header returns a http.Header that can be modified by the caller to add
  4187  // headers to the request.
  4188  func (c *ProjectsTestersBatchAddCall) Header() http.Header {
  4189  	if c.header_ == nil {
  4190  		c.header_ = make(http.Header)
  4191  	}
  4192  	return c.header_
  4193  }
  4194  
  4195  func (c *ProjectsTestersBatchAddCall) doRequest(alt string) (*http.Response, error) {
  4196  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  4197  	var body io.Reader = nil
  4198  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlefirebaseappdistrov1batchaddtestersrequest)
  4199  	if err != nil {
  4200  		return nil, err
  4201  	}
  4202  	c.urlParams_.Set("alt", alt)
  4203  	c.urlParams_.Set("prettyPrint", "false")
  4204  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+project}/testers:batchAdd")
  4205  	urls += "?" + c.urlParams_.Encode()
  4206  	req, err := http.NewRequest("POST", urls, body)
  4207  	if err != nil {
  4208  		return nil, err
  4209  	}
  4210  	req.Header = reqHeaders
  4211  	googleapi.Expand(req.URL, map[string]string{
  4212  		"project": c.project,
  4213  	})
  4214  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  4215  }
  4216  
  4217  // Do executes the "firebaseappdistribution.projects.testers.batchAdd" call.
  4218  // Any non-2xx status code is an error. Response headers are in either
  4219  // *GoogleFirebaseAppdistroV1BatchAddTestersResponse.ServerResponse.Header or
  4220  // (if a response was returned at all) in error.(*googleapi.Error).Header. Use
  4221  // googleapi.IsNotModified to check whether the returned error was because
  4222  // http.StatusNotModified was returned.
  4223  func (c *ProjectsTestersBatchAddCall) Do(opts ...googleapi.CallOption) (*GoogleFirebaseAppdistroV1BatchAddTestersResponse, error) {
  4224  	gensupport.SetOptions(c.urlParams_, opts...)
  4225  	res, err := c.doRequest("json")
  4226  	if res != nil && res.StatusCode == http.StatusNotModified {
  4227  		if res.Body != nil {
  4228  			res.Body.Close()
  4229  		}
  4230  		return nil, gensupport.WrapError(&googleapi.Error{
  4231  			Code:   res.StatusCode,
  4232  			Header: res.Header,
  4233  		})
  4234  	}
  4235  	if err != nil {
  4236  		return nil, err
  4237  	}
  4238  	defer googleapi.CloseBody(res)
  4239  	if err := googleapi.CheckResponse(res); err != nil {
  4240  		return nil, gensupport.WrapError(err)
  4241  	}
  4242  	ret := &GoogleFirebaseAppdistroV1BatchAddTestersResponse{
  4243  		ServerResponse: googleapi.ServerResponse{
  4244  			Header:         res.Header,
  4245  			HTTPStatusCode: res.StatusCode,
  4246  		},
  4247  	}
  4248  	target := &ret
  4249  	if err := gensupport.DecodeResponse(target, res); err != nil {
  4250  		return nil, err
  4251  	}
  4252  	return ret, nil
  4253  }
  4254  
  4255  type ProjectsTestersBatchRemoveCall struct {
  4256  	s                                                  *Service
  4257  	project                                            string
  4258  	googlefirebaseappdistrov1batchremovetestersrequest *GoogleFirebaseAppdistroV1BatchRemoveTestersRequest
  4259  	urlParams_                                         gensupport.URLParams
  4260  	ctx_                                               context.Context
  4261  	header_                                            http.Header
  4262  }
  4263  
  4264  // BatchRemove: Batch removes testers. If found, this call deletes testers for
  4265  // the specified emails. Returns all deleted testers.
  4266  //
  4267  //   - project: The name of the project resource. Format:
  4268  //     `projects/{project_number}`.
  4269  func (r *ProjectsTestersService) BatchRemove(project string, googlefirebaseappdistrov1batchremovetestersrequest *GoogleFirebaseAppdistroV1BatchRemoveTestersRequest) *ProjectsTestersBatchRemoveCall {
  4270  	c := &ProjectsTestersBatchRemoveCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  4271  	c.project = project
  4272  	c.googlefirebaseappdistrov1batchremovetestersrequest = googlefirebaseappdistrov1batchremovetestersrequest
  4273  	return c
  4274  }
  4275  
  4276  // Fields allows partial responses to be retrieved. See
  4277  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  4278  // details.
  4279  func (c *ProjectsTestersBatchRemoveCall) Fields(s ...googleapi.Field) *ProjectsTestersBatchRemoveCall {
  4280  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  4281  	return c
  4282  }
  4283  
  4284  // Context sets the context to be used in this call's Do method.
  4285  func (c *ProjectsTestersBatchRemoveCall) Context(ctx context.Context) *ProjectsTestersBatchRemoveCall {
  4286  	c.ctx_ = ctx
  4287  	return c
  4288  }
  4289  
  4290  // Header returns a http.Header that can be modified by the caller to add
  4291  // headers to the request.
  4292  func (c *ProjectsTestersBatchRemoveCall) Header() http.Header {
  4293  	if c.header_ == nil {
  4294  		c.header_ = make(http.Header)
  4295  	}
  4296  	return c.header_
  4297  }
  4298  
  4299  func (c *ProjectsTestersBatchRemoveCall) doRequest(alt string) (*http.Response, error) {
  4300  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  4301  	var body io.Reader = nil
  4302  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlefirebaseappdistrov1batchremovetestersrequest)
  4303  	if err != nil {
  4304  		return nil, err
  4305  	}
  4306  	c.urlParams_.Set("alt", alt)
  4307  	c.urlParams_.Set("prettyPrint", "false")
  4308  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+project}/testers:batchRemove")
  4309  	urls += "?" + c.urlParams_.Encode()
  4310  	req, err := http.NewRequest("POST", urls, body)
  4311  	if err != nil {
  4312  		return nil, err
  4313  	}
  4314  	req.Header = reqHeaders
  4315  	googleapi.Expand(req.URL, map[string]string{
  4316  		"project": c.project,
  4317  	})
  4318  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  4319  }
  4320  
  4321  // Do executes the "firebaseappdistribution.projects.testers.batchRemove" call.
  4322  // Any non-2xx status code is an error. Response headers are in either
  4323  // *GoogleFirebaseAppdistroV1BatchRemoveTestersResponse.ServerResponse.Header
  4324  // or (if a response was returned at all) in error.(*googleapi.Error).Header.
  4325  // Use googleapi.IsNotModified to check whether the returned error was because
  4326  // http.StatusNotModified was returned.
  4327  func (c *ProjectsTestersBatchRemoveCall) Do(opts ...googleapi.CallOption) (*GoogleFirebaseAppdistroV1BatchRemoveTestersResponse, error) {
  4328  	gensupport.SetOptions(c.urlParams_, opts...)
  4329  	res, err := c.doRequest("json")
  4330  	if res != nil && res.StatusCode == http.StatusNotModified {
  4331  		if res.Body != nil {
  4332  			res.Body.Close()
  4333  		}
  4334  		return nil, gensupport.WrapError(&googleapi.Error{
  4335  			Code:   res.StatusCode,
  4336  			Header: res.Header,
  4337  		})
  4338  	}
  4339  	if err != nil {
  4340  		return nil, err
  4341  	}
  4342  	defer googleapi.CloseBody(res)
  4343  	if err := googleapi.CheckResponse(res); err != nil {
  4344  		return nil, gensupport.WrapError(err)
  4345  	}
  4346  	ret := &GoogleFirebaseAppdistroV1BatchRemoveTestersResponse{
  4347  		ServerResponse: googleapi.ServerResponse{
  4348  			Header:         res.Header,
  4349  			HTTPStatusCode: res.StatusCode,
  4350  		},
  4351  	}
  4352  	target := &ret
  4353  	if err := gensupport.DecodeResponse(target, res); err != nil {
  4354  		return nil, err
  4355  	}
  4356  	return ret, nil
  4357  }
  4358  
  4359  type ProjectsTestersListCall struct {
  4360  	s            *Service
  4361  	parent       string
  4362  	urlParams_   gensupport.URLParams
  4363  	ifNoneMatch_ string
  4364  	ctx_         context.Context
  4365  	header_      http.Header
  4366  }
  4367  
  4368  // List: Lists testers and their resource ids.
  4369  //
  4370  //   - parent: The name of the project resource, which is the parent of the
  4371  //     tester resources. Format: `projects/{project_number}`.
  4372  func (r *ProjectsTestersService) List(parent string) *ProjectsTestersListCall {
  4373  	c := &ProjectsTestersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  4374  	c.parent = parent
  4375  	return c
  4376  }
  4377  
  4378  // Filter sets the optional parameter "filter": The expression to filter
  4379  // testers listed in the response. To learn more about filtering, refer to
  4380  // Google's AIP-160 standard (http://aip.dev/160). Supported fields: - `name` -
  4381  // `displayName` - `groups` Example: - `name =
  4382  // "projects/-/testers/*@example.com" - `displayName = "Joe Sixpack" -
  4383  // `groups = "projects/*/groups/qa-team"
  4384  func (c *ProjectsTestersListCall) Filter(filter string) *ProjectsTestersListCall {
  4385  	c.urlParams_.Set("filter", filter)
  4386  	return c
  4387  }
  4388  
  4389  // PageSize sets the optional parameter "pageSize": The maximum number of
  4390  // testers to return. The service may return fewer than this value. The valid
  4391  // range is [1-1000]; If unspecified (0), at most 10 testers are returned.
  4392  // Values above 1000 are coerced to 1000.
  4393  func (c *ProjectsTestersListCall) PageSize(pageSize int64) *ProjectsTestersListCall {
  4394  	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
  4395  	return c
  4396  }
  4397  
  4398  // PageToken sets the optional parameter "pageToken": A page token, received
  4399  // from a previous `ListTesters` call. Provide this to retrieve the subsequent
  4400  // page. When paginating, all other parameters provided to `ListTesters` must
  4401  // match the call that provided the page token.
  4402  func (c *ProjectsTestersListCall) PageToken(pageToken string) *ProjectsTestersListCall {
  4403  	c.urlParams_.Set("pageToken", pageToken)
  4404  	return c
  4405  }
  4406  
  4407  // Fields allows partial responses to be retrieved. See
  4408  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  4409  // details.
  4410  func (c *ProjectsTestersListCall) Fields(s ...googleapi.Field) *ProjectsTestersListCall {
  4411  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  4412  	return c
  4413  }
  4414  
  4415  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  4416  // object's ETag matches the given value. This is useful for getting updates
  4417  // only after the object has changed since the last request.
  4418  func (c *ProjectsTestersListCall) IfNoneMatch(entityTag string) *ProjectsTestersListCall {
  4419  	c.ifNoneMatch_ = entityTag
  4420  	return c
  4421  }
  4422  
  4423  // Context sets the context to be used in this call's Do method.
  4424  func (c *ProjectsTestersListCall) Context(ctx context.Context) *ProjectsTestersListCall {
  4425  	c.ctx_ = ctx
  4426  	return c
  4427  }
  4428  
  4429  // Header returns a http.Header that can be modified by the caller to add
  4430  // headers to the request.
  4431  func (c *ProjectsTestersListCall) Header() http.Header {
  4432  	if c.header_ == nil {
  4433  		c.header_ = make(http.Header)
  4434  	}
  4435  	return c.header_
  4436  }
  4437  
  4438  func (c *ProjectsTestersListCall) doRequest(alt string) (*http.Response, error) {
  4439  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  4440  	if c.ifNoneMatch_ != "" {
  4441  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  4442  	}
  4443  	var body io.Reader = nil
  4444  	c.urlParams_.Set("alt", alt)
  4445  	c.urlParams_.Set("prettyPrint", "false")
  4446  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/testers")
  4447  	urls += "?" + c.urlParams_.Encode()
  4448  	req, err := http.NewRequest("GET", urls, body)
  4449  	if err != nil {
  4450  		return nil, err
  4451  	}
  4452  	req.Header = reqHeaders
  4453  	googleapi.Expand(req.URL, map[string]string{
  4454  		"parent": c.parent,
  4455  	})
  4456  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  4457  }
  4458  
  4459  // Do executes the "firebaseappdistribution.projects.testers.list" call.
  4460  // Any non-2xx status code is an error. Response headers are in either
  4461  // *GoogleFirebaseAppdistroV1ListTestersResponse.ServerResponse.Header or (if a
  4462  // response was returned at all) in error.(*googleapi.Error).Header. Use
  4463  // googleapi.IsNotModified to check whether the returned error was because
  4464  // http.StatusNotModified was returned.
  4465  func (c *ProjectsTestersListCall) Do(opts ...googleapi.CallOption) (*GoogleFirebaseAppdistroV1ListTestersResponse, error) {
  4466  	gensupport.SetOptions(c.urlParams_, opts...)
  4467  	res, err := c.doRequest("json")
  4468  	if res != nil && res.StatusCode == http.StatusNotModified {
  4469  		if res.Body != nil {
  4470  			res.Body.Close()
  4471  		}
  4472  		return nil, gensupport.WrapError(&googleapi.Error{
  4473  			Code:   res.StatusCode,
  4474  			Header: res.Header,
  4475  		})
  4476  	}
  4477  	if err != nil {
  4478  		return nil, err
  4479  	}
  4480  	defer googleapi.CloseBody(res)
  4481  	if err := googleapi.CheckResponse(res); err != nil {
  4482  		return nil, gensupport.WrapError(err)
  4483  	}
  4484  	ret := &GoogleFirebaseAppdistroV1ListTestersResponse{
  4485  		ServerResponse: googleapi.ServerResponse{
  4486  			Header:         res.Header,
  4487  			HTTPStatusCode: res.StatusCode,
  4488  		},
  4489  	}
  4490  	target := &ret
  4491  	if err := gensupport.DecodeResponse(target, res); err != nil {
  4492  		return nil, err
  4493  	}
  4494  	return ret, nil
  4495  }
  4496  
  4497  // Pages invokes f for each page of results.
  4498  // A non-nil error returned from f will halt the iteration.
  4499  // The provided context supersedes any context provided to the Context method.
  4500  func (c *ProjectsTestersListCall) Pages(ctx context.Context, f func(*GoogleFirebaseAppdistroV1ListTestersResponse) error) error {
  4501  	c.ctx_ = ctx
  4502  	defer c.PageToken(c.urlParams_.Get("pageToken"))
  4503  	for {
  4504  		x, err := c.Do()
  4505  		if err != nil {
  4506  			return err
  4507  		}
  4508  		if err := f(x); err != nil {
  4509  			return err
  4510  		}
  4511  		if x.NextPageToken == "" {
  4512  			return nil
  4513  		}
  4514  		c.PageToken(x.NextPageToken)
  4515  	}
  4516  }
  4517  
  4518  type ProjectsTestersPatchCall struct {
  4519  	s                               *Service
  4520  	name                            string
  4521  	googlefirebaseappdistrov1tester *GoogleFirebaseAppdistroV1Tester
  4522  	urlParams_                      gensupport.URLParams
  4523  	ctx_                            context.Context
  4524  	header_                         http.Header
  4525  }
  4526  
  4527  // Patch: Update a tester. If the testers joins a group they gain access to all
  4528  // releases that the group has access to.
  4529  //
  4530  //   - name: The name of the tester resource. Format:
  4531  //     `projects/{project_number}/testers/{email_address}`.
  4532  func (r *ProjectsTestersService) Patch(name string, googlefirebaseappdistrov1tester *GoogleFirebaseAppdistroV1Tester) *ProjectsTestersPatchCall {
  4533  	c := &ProjectsTestersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  4534  	c.name = name
  4535  	c.googlefirebaseappdistrov1tester = googlefirebaseappdistrov1tester
  4536  	return c
  4537  }
  4538  
  4539  // UpdateMask sets the optional parameter "updateMask": The list of fields to
  4540  // update.
  4541  func (c *ProjectsTestersPatchCall) UpdateMask(updateMask string) *ProjectsTestersPatchCall {
  4542  	c.urlParams_.Set("updateMask", updateMask)
  4543  	return c
  4544  }
  4545  
  4546  // Fields allows partial responses to be retrieved. See
  4547  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  4548  // details.
  4549  func (c *ProjectsTestersPatchCall) Fields(s ...googleapi.Field) *ProjectsTestersPatchCall {
  4550  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  4551  	return c
  4552  }
  4553  
  4554  // Context sets the context to be used in this call's Do method.
  4555  func (c *ProjectsTestersPatchCall) Context(ctx context.Context) *ProjectsTestersPatchCall {
  4556  	c.ctx_ = ctx
  4557  	return c
  4558  }
  4559  
  4560  // Header returns a http.Header that can be modified by the caller to add
  4561  // headers to the request.
  4562  func (c *ProjectsTestersPatchCall) Header() http.Header {
  4563  	if c.header_ == nil {
  4564  		c.header_ = make(http.Header)
  4565  	}
  4566  	return c.header_
  4567  }
  4568  
  4569  func (c *ProjectsTestersPatchCall) doRequest(alt string) (*http.Response, error) {
  4570  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  4571  	var body io.Reader = nil
  4572  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.googlefirebaseappdistrov1tester)
  4573  	if err != nil {
  4574  		return nil, err
  4575  	}
  4576  	c.urlParams_.Set("alt", alt)
  4577  	c.urlParams_.Set("prettyPrint", "false")
  4578  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
  4579  	urls += "?" + c.urlParams_.Encode()
  4580  	req, err := http.NewRequest("PATCH", urls, body)
  4581  	if err != nil {
  4582  		return nil, err
  4583  	}
  4584  	req.Header = reqHeaders
  4585  	googleapi.Expand(req.URL, map[string]string{
  4586  		"name": c.name,
  4587  	})
  4588  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  4589  }
  4590  
  4591  // Do executes the "firebaseappdistribution.projects.testers.patch" call.
  4592  // Any non-2xx status code is an error. Response headers are in either
  4593  // *GoogleFirebaseAppdistroV1Tester.ServerResponse.Header or (if a response was
  4594  // returned at all) in error.(*googleapi.Error).Header. Use
  4595  // googleapi.IsNotModified to check whether the returned error was because
  4596  // http.StatusNotModified was returned.
  4597  func (c *ProjectsTestersPatchCall) Do(opts ...googleapi.CallOption) (*GoogleFirebaseAppdistroV1Tester, error) {
  4598  	gensupport.SetOptions(c.urlParams_, opts...)
  4599  	res, err := c.doRequest("json")
  4600  	if res != nil && res.StatusCode == http.StatusNotModified {
  4601  		if res.Body != nil {
  4602  			res.Body.Close()
  4603  		}
  4604  		return nil, gensupport.WrapError(&googleapi.Error{
  4605  			Code:   res.StatusCode,
  4606  			Header: res.Header,
  4607  		})
  4608  	}
  4609  	if err != nil {
  4610  		return nil, err
  4611  	}
  4612  	defer googleapi.CloseBody(res)
  4613  	if err := googleapi.CheckResponse(res); err != nil {
  4614  		return nil, gensupport.WrapError(err)
  4615  	}
  4616  	ret := &GoogleFirebaseAppdistroV1Tester{
  4617  		ServerResponse: googleapi.ServerResponse{
  4618  			Header:         res.Header,
  4619  			HTTPStatusCode: res.StatusCode,
  4620  		},
  4621  	}
  4622  	target := &ret
  4623  	if err := gensupport.DecodeResponse(target, res); err != nil {
  4624  		return nil, err
  4625  	}
  4626  	return ret, nil
  4627  }
  4628  

View as plain text