google-apis-firebaseappdistribution_v1 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,1513 @@
1
+ # Copyright 2020 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ require 'date'
16
+ require 'google/apis/core/base_service'
17
+ require 'google/apis/core/json_representation'
18
+ require 'google/apis/core/hashable'
19
+ require 'google/apis/errors'
20
+
21
+ module Google
22
+ module Apis
23
+ module FirebaseappdistributionV1
24
+
25
+ # Information to read/write to blobstore2.
26
+ class GdataBlobstore2Info
27
+ include Google::Apis::Core::Hashable
28
+
29
+ # The blob generation id.
30
+ # Corresponds to the JSON property `blobGeneration`
31
+ # @return [Fixnum]
32
+ attr_accessor :blob_generation
33
+
34
+ # The blob id, e.g., /blobstore/prod/playground/scotty
35
+ # Corresponds to the JSON property `blobId`
36
+ # @return [String]
37
+ attr_accessor :blob_id
38
+
39
+ # Read handle passed from Bigstore -> Scotty for a GCS download. This is a
40
+ # signed, serialized blobstore2.ReadHandle proto which must never be set outside
41
+ # of Bigstore, and is not applicable to non-GCS media downloads.
42
+ # Corresponds to the JSON property `downloadReadHandle`
43
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
44
+ # @return [String]
45
+ attr_accessor :download_read_handle
46
+
47
+ # The blob read token. Needed to read blobs that have not been replicated. Might
48
+ # not be available until the final call.
49
+ # Corresponds to the JSON property `readToken`
50
+ # @return [String]
51
+ attr_accessor :read_token
52
+
53
+ # Metadata passed from Blobstore -> Scotty for a new GCS upload. This is a
54
+ # signed, serialized blobstore2.BlobMetadataContainer proto which must never be
55
+ # consumed outside of Bigstore, and is not applicable to non-GCS media uploads.
56
+ # Corresponds to the JSON property `uploadMetadataContainer`
57
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
58
+ # @return [String]
59
+ attr_accessor :upload_metadata_container
60
+
61
+ def initialize(**args)
62
+ update!(**args)
63
+ end
64
+
65
+ # Update properties of this object
66
+ def update!(**args)
67
+ @blob_generation = args[:blob_generation] if args.key?(:blob_generation)
68
+ @blob_id = args[:blob_id] if args.key?(:blob_id)
69
+ @download_read_handle = args[:download_read_handle] if args.key?(:download_read_handle)
70
+ @read_token = args[:read_token] if args.key?(:read_token)
71
+ @upload_metadata_container = args[:upload_metadata_container] if args.key?(:upload_metadata_container)
72
+ end
73
+ end
74
+
75
+ # A sequence of media data references representing composite data. Introduced to
76
+ # support Bigstore composite objects. For details, visit http://go/bigstore-
77
+ # composites.
78
+ class GdataCompositeMedia
79
+ include Google::Apis::Core::Hashable
80
+
81
+ # Blobstore v1 reference, set if reference_type is BLOBSTORE_REF This should be
82
+ # the byte representation of a blobstore.BlobRef. Since Blobstore is deprecating
83
+ # v1, use blobstore2_info instead. For now, any v2 blob will also be represented
84
+ # in this field as v1 BlobRef.
85
+ # Corresponds to the JSON property `blobRef`
86
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
87
+ # @return [String]
88
+ attr_accessor :blob_ref
89
+
90
+ # Information to read/write to blobstore2.
91
+ # Corresponds to the JSON property `blobstore2Info`
92
+ # @return [Google::Apis::FirebaseappdistributionV1::GdataBlobstore2Info]
93
+ attr_accessor :blobstore2_info
94
+
95
+ # A binary data reference for a media download. Serves as a technology-agnostic
96
+ # binary reference in some Google infrastructure. This value is a serialized
97
+ # storage_cosmo.BinaryReference proto. Storing it as bytes is a hack to get
98
+ # around the fact that the cosmo proto (as well as others it includes) doesn't
99
+ # support JavaScript. This prevents us from including the actual type of this
100
+ # field.
101
+ # Corresponds to the JSON property `cosmoBinaryReference`
102
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
103
+ # @return [String]
104
+ attr_accessor :cosmo_binary_reference
105
+
106
+ # crc32.c hash for the payload.
107
+ # Corresponds to the JSON property `crc32cHash`
108
+ # @return [Fixnum]
109
+ attr_accessor :crc32c_hash
110
+
111
+ # Media data, set if reference_type is INLINE
112
+ # Corresponds to the JSON property `inline`
113
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
114
+ # @return [String]
115
+ attr_accessor :inline
116
+
117
+ # Size of the data, in bytes
118
+ # Corresponds to the JSON property `length`
119
+ # @return [Fixnum]
120
+ attr_accessor :length
121
+
122
+ # MD5 hash for the payload.
123
+ # Corresponds to the JSON property `md5Hash`
124
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
125
+ # @return [String]
126
+ attr_accessor :md5_hash
127
+
128
+ # This is a copy of the tech.blob.ObjectId proto, which could not be used
129
+ # directly here due to transitive closure issues with JavaScript support; see
130
+ # http://b/8801763.
131
+ # Corresponds to the JSON property `objectId`
132
+ # @return [Google::Apis::FirebaseappdistributionV1::GdataObjectId]
133
+ attr_accessor :object_id_prop
134
+
135
+ # Path to the data, set if reference_type is PATH
136
+ # Corresponds to the JSON property `path`
137
+ # @return [String]
138
+ attr_accessor :path
139
+
140
+ # Describes what the field reference contains.
141
+ # Corresponds to the JSON property `referenceType`
142
+ # @return [String]
143
+ attr_accessor :reference_type
144
+
145
+ # SHA-1 hash for the payload.
146
+ # Corresponds to the JSON property `sha1Hash`
147
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
148
+ # @return [String]
149
+ attr_accessor :sha1_hash
150
+
151
+ def initialize(**args)
152
+ update!(**args)
153
+ end
154
+
155
+ # Update properties of this object
156
+ def update!(**args)
157
+ @blob_ref = args[:blob_ref] if args.key?(:blob_ref)
158
+ @blobstore2_info = args[:blobstore2_info] if args.key?(:blobstore2_info)
159
+ @cosmo_binary_reference = args[:cosmo_binary_reference] if args.key?(:cosmo_binary_reference)
160
+ @crc32c_hash = args[:crc32c_hash] if args.key?(:crc32c_hash)
161
+ @inline = args[:inline] if args.key?(:inline)
162
+ @length = args[:length] if args.key?(:length)
163
+ @md5_hash = args[:md5_hash] if args.key?(:md5_hash)
164
+ @object_id_prop = args[:object_id_prop] if args.key?(:object_id_prop)
165
+ @path = args[:path] if args.key?(:path)
166
+ @reference_type = args[:reference_type] if args.key?(:reference_type)
167
+ @sha1_hash = args[:sha1_hash] if args.key?(:sha1_hash)
168
+ end
169
+ end
170
+
171
+ # Detailed Content-Type information from Scotty. The Content-Type of the media
172
+ # will typically be filled in by the header or Scotty's best_guess, but this
173
+ # extended information provides the backend with more information so that it can
174
+ # make a better decision if needed. This is only used on media upload requests
175
+ # from Scotty.
176
+ class GdataContentTypeInfo
177
+ include Google::Apis::Core::Hashable
178
+
179
+ # Scotty's best guess of what the content type of the file is.
180
+ # Corresponds to the JSON property `bestGuess`
181
+ # @return [String]
182
+ attr_accessor :best_guess
183
+
184
+ # The content type of the file derived by looking at specific bytes (i.e. "magic
185
+ # bytes") of the actual file.
186
+ # Corresponds to the JSON property `fromBytes`
187
+ # @return [String]
188
+ attr_accessor :from_bytes
189
+
190
+ # The content type of the file derived from the file extension of the original
191
+ # file name used by the client.
192
+ # Corresponds to the JSON property `fromFileName`
193
+ # @return [String]
194
+ attr_accessor :from_file_name
195
+
196
+ # The content type of the file as specified in the request headers, multipart
197
+ # headers, or RUPIO start request.
198
+ # Corresponds to the JSON property `fromHeader`
199
+ # @return [String]
200
+ attr_accessor :from_header
201
+
202
+ # The content type of the file derived from the file extension of the URL path.
203
+ # The URL path is assumed to represent a file name (which is typically only true
204
+ # for agents that are providing a REST API).
205
+ # Corresponds to the JSON property `fromUrlPath`
206
+ # @return [String]
207
+ attr_accessor :from_url_path
208
+
209
+ def initialize(**args)
210
+ update!(**args)
211
+ end
212
+
213
+ # Update properties of this object
214
+ def update!(**args)
215
+ @best_guess = args[:best_guess] if args.key?(:best_guess)
216
+ @from_bytes = args[:from_bytes] if args.key?(:from_bytes)
217
+ @from_file_name = args[:from_file_name] if args.key?(:from_file_name)
218
+ @from_header = args[:from_header] if args.key?(:from_header)
219
+ @from_url_path = args[:from_url_path] if args.key?(:from_url_path)
220
+ end
221
+ end
222
+
223
+ # Backend response for a Diff get checksums response. For details on the Scotty
224
+ # Diff protocol, visit http://go/scotty-diff-protocol.
225
+ class GdataDiffChecksumsResponse
226
+ include Google::Apis::Core::Hashable
227
+
228
+ # A sequence of media data references representing composite data. Introduced to
229
+ # support Bigstore composite objects. For details, visit http://go/bigstore-
230
+ # composites.
231
+ # Corresponds to the JSON property `checksumsLocation`
232
+ # @return [Google::Apis::FirebaseappdistributionV1::GdataCompositeMedia]
233
+ attr_accessor :checksums_location
234
+
235
+ # The chunk size of checksums. Must be a multiple of 256KB.
236
+ # Corresponds to the JSON property `chunkSizeBytes`
237
+ # @return [Fixnum]
238
+ attr_accessor :chunk_size_bytes
239
+
240
+ # A sequence of media data references representing composite data. Introduced to
241
+ # support Bigstore composite objects. For details, visit http://go/bigstore-
242
+ # composites.
243
+ # Corresponds to the JSON property `objectLocation`
244
+ # @return [Google::Apis::FirebaseappdistributionV1::GdataCompositeMedia]
245
+ attr_accessor :object_location
246
+
247
+ # The total size of the server object.
248
+ # Corresponds to the JSON property `objectSizeBytes`
249
+ # @return [Fixnum]
250
+ attr_accessor :object_size_bytes
251
+
252
+ # The object version of the object the checksums are being returned for.
253
+ # Corresponds to the JSON property `objectVersion`
254
+ # @return [String]
255
+ attr_accessor :object_version
256
+
257
+ def initialize(**args)
258
+ update!(**args)
259
+ end
260
+
261
+ # Update properties of this object
262
+ def update!(**args)
263
+ @checksums_location = args[:checksums_location] if args.key?(:checksums_location)
264
+ @chunk_size_bytes = args[:chunk_size_bytes] if args.key?(:chunk_size_bytes)
265
+ @object_location = args[:object_location] if args.key?(:object_location)
266
+ @object_size_bytes = args[:object_size_bytes] if args.key?(:object_size_bytes)
267
+ @object_version = args[:object_version] if args.key?(:object_version)
268
+ end
269
+ end
270
+
271
+ # Backend response for a Diff download response. For details on the Scotty Diff
272
+ # protocol, visit http://go/scotty-diff-protocol.
273
+ class GdataDiffDownloadResponse
274
+ include Google::Apis::Core::Hashable
275
+
276
+ # A sequence of media data references representing composite data. Introduced to
277
+ # support Bigstore composite objects. For details, visit http://go/bigstore-
278
+ # composites.
279
+ # Corresponds to the JSON property `objectLocation`
280
+ # @return [Google::Apis::FirebaseappdistributionV1::GdataCompositeMedia]
281
+ attr_accessor :object_location
282
+
283
+ def initialize(**args)
284
+ update!(**args)
285
+ end
286
+
287
+ # Update properties of this object
288
+ def update!(**args)
289
+ @object_location = args[:object_location] if args.key?(:object_location)
290
+ end
291
+ end
292
+
293
+ # A Diff upload request. For details on the Scotty Diff protocol, visit http://
294
+ # go/scotty-diff-protocol.
295
+ class GdataDiffUploadRequest
296
+ include Google::Apis::Core::Hashable
297
+
298
+ # A sequence of media data references representing composite data. Introduced to
299
+ # support Bigstore composite objects. For details, visit http://go/bigstore-
300
+ # composites.
301
+ # Corresponds to the JSON property `checksumsInfo`
302
+ # @return [Google::Apis::FirebaseappdistributionV1::GdataCompositeMedia]
303
+ attr_accessor :checksums_info
304
+
305
+ # A sequence of media data references representing composite data. Introduced to
306
+ # support Bigstore composite objects. For details, visit http://go/bigstore-
307
+ # composites.
308
+ # Corresponds to the JSON property `objectInfo`
309
+ # @return [Google::Apis::FirebaseappdistributionV1::GdataCompositeMedia]
310
+ attr_accessor :object_info
311
+
312
+ # The object version of the object that is the base version the incoming diff
313
+ # script will be applied to. This field will always be filled in.
314
+ # Corresponds to the JSON property `objectVersion`
315
+ # @return [String]
316
+ attr_accessor :object_version
317
+
318
+ def initialize(**args)
319
+ update!(**args)
320
+ end
321
+
322
+ # Update properties of this object
323
+ def update!(**args)
324
+ @checksums_info = args[:checksums_info] if args.key?(:checksums_info)
325
+ @object_info = args[:object_info] if args.key?(:object_info)
326
+ @object_version = args[:object_version] if args.key?(:object_version)
327
+ end
328
+ end
329
+
330
+ # Backend response for a Diff upload request. For details on the Scotty Diff
331
+ # protocol, visit http://go/scotty-diff-protocol.
332
+ class GdataDiffUploadResponse
333
+ include Google::Apis::Core::Hashable
334
+
335
+ # The object version of the object at the server. Must be included in the end
336
+ # notification response. The version in the end notification response must
337
+ # correspond to the new version of the object that is now stored at the server,
338
+ # after the upload.
339
+ # Corresponds to the JSON property `objectVersion`
340
+ # @return [String]
341
+ attr_accessor :object_version
342
+
343
+ # A sequence of media data references representing composite data. Introduced to
344
+ # support Bigstore composite objects. For details, visit http://go/bigstore-
345
+ # composites.
346
+ # Corresponds to the JSON property `originalObject`
347
+ # @return [Google::Apis::FirebaseappdistributionV1::GdataCompositeMedia]
348
+ attr_accessor :original_object
349
+
350
+ def initialize(**args)
351
+ update!(**args)
352
+ end
353
+
354
+ # Update properties of this object
355
+ def update!(**args)
356
+ @object_version = args[:object_version] if args.key?(:object_version)
357
+ @original_object = args[:original_object] if args.key?(:original_object)
358
+ end
359
+ end
360
+
361
+ # Backend response for a Diff get version response. For details on the Scotty
362
+ # Diff protocol, visit http://go/scotty-diff-protocol.
363
+ class GdataDiffVersionResponse
364
+ include Google::Apis::Core::Hashable
365
+
366
+ # The total size of the server object.
367
+ # Corresponds to the JSON property `objectSizeBytes`
368
+ # @return [Fixnum]
369
+ attr_accessor :object_size_bytes
370
+
371
+ # The version of the object stored at the server.
372
+ # Corresponds to the JSON property `objectVersion`
373
+ # @return [String]
374
+ attr_accessor :object_version
375
+
376
+ def initialize(**args)
377
+ update!(**args)
378
+ end
379
+
380
+ # Update properties of this object
381
+ def update!(**args)
382
+ @object_size_bytes = args[:object_size_bytes] if args.key?(:object_size_bytes)
383
+ @object_version = args[:object_version] if args.key?(:object_version)
384
+ end
385
+ end
386
+
387
+ # Parameters specific to media downloads.
388
+ class GdataDownloadParameters
389
+ include Google::Apis::Core::Hashable
390
+
391
+ # A boolean to be returned in the response to Scotty. Allows/disallows gzip
392
+ # encoding of the payload content when the server thinks it's advantageous (
393
+ # hence, does not guarantee compression) which allows Scotty to GZip the
394
+ # response to the client.
395
+ # Corresponds to the JSON property `allowGzipCompression`
396
+ # @return [Boolean]
397
+ attr_accessor :allow_gzip_compression
398
+ alias_method :allow_gzip_compression?, :allow_gzip_compression
399
+
400
+ # Determining whether or not Apiary should skip the inclusion of any Content-
401
+ # Range header on its response to Scotty.
402
+ # Corresponds to the JSON property `ignoreRange`
403
+ # @return [Boolean]
404
+ attr_accessor :ignore_range
405
+ alias_method :ignore_range?, :ignore_range
406
+
407
+ def initialize(**args)
408
+ update!(**args)
409
+ end
410
+
411
+ # Update properties of this object
412
+ def update!(**args)
413
+ @allow_gzip_compression = args[:allow_gzip_compression] if args.key?(:allow_gzip_compression)
414
+ @ignore_range = args[:ignore_range] if args.key?(:ignore_range)
415
+ end
416
+ end
417
+
418
+ # A reference to data stored on the filesystem, on GFS or in blobstore.
419
+ class GdataMedia
420
+ include Google::Apis::Core::Hashable
421
+
422
+ # Deprecated, use one of explicit hash type fields instead. Algorithm used for
423
+ # calculating the hash. As of 2011/01/21, "MD5" is the only possible value for
424
+ # this field. New values may be added at any time.
425
+ # Corresponds to the JSON property `algorithm`
426
+ # @return [String]
427
+ attr_accessor :algorithm
428
+
429
+ # Use object_id instead.
430
+ # Corresponds to the JSON property `bigstoreObjectRef`
431
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
432
+ # @return [String]
433
+ attr_accessor :bigstore_object_ref
434
+
435
+ # Blobstore v1 reference, set if reference_type is BLOBSTORE_REF This should be
436
+ # the byte representation of a blobstore.BlobRef. Since Blobstore is deprecating
437
+ # v1, use blobstore2_info instead. For now, any v2 blob will also be represented
438
+ # in this field as v1 BlobRef.
439
+ # Corresponds to the JSON property `blobRef`
440
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
441
+ # @return [String]
442
+ attr_accessor :blob_ref
443
+
444
+ # Information to read/write to blobstore2.
445
+ # Corresponds to the JSON property `blobstore2Info`
446
+ # @return [Google::Apis::FirebaseappdistributionV1::GdataBlobstore2Info]
447
+ attr_accessor :blobstore2_info
448
+
449
+ # A composite media composed of one or more media objects, set if reference_type
450
+ # is COMPOSITE_MEDIA. The media length field must be set to the sum of the
451
+ # lengths of all composite media objects. Note: All composite media must have
452
+ # length specified.
453
+ # Corresponds to the JSON property `compositeMedia`
454
+ # @return [Array<Google::Apis::FirebaseappdistributionV1::GdataCompositeMedia>]
455
+ attr_accessor :composite_media
456
+
457
+ # MIME type of the data
458
+ # Corresponds to the JSON property `contentType`
459
+ # @return [String]
460
+ attr_accessor :content_type
461
+
462
+ # Detailed Content-Type information from Scotty. The Content-Type of the media
463
+ # will typically be filled in by the header or Scotty's best_guess, but this
464
+ # extended information provides the backend with more information so that it can
465
+ # make a better decision if needed. This is only used on media upload requests
466
+ # from Scotty.
467
+ # Corresponds to the JSON property `contentTypeInfo`
468
+ # @return [Google::Apis::FirebaseappdistributionV1::GdataContentTypeInfo]
469
+ attr_accessor :content_type_info
470
+
471
+ # A binary data reference for a media download. Serves as a technology-agnostic
472
+ # binary reference in some Google infrastructure. This value is a serialized
473
+ # storage_cosmo.BinaryReference proto. Storing it as bytes is a hack to get
474
+ # around the fact that the cosmo proto (as well as others it includes) doesn't
475
+ # support JavaScript. This prevents us from including the actual type of this
476
+ # field.
477
+ # Corresponds to the JSON property `cosmoBinaryReference`
478
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
479
+ # @return [String]
480
+ attr_accessor :cosmo_binary_reference
481
+
482
+ # For Scotty Uploads: Scotty-provided hashes for uploads For Scotty Downloads: (
483
+ # WARNING: DO NOT USE WITHOUT PERMISSION FROM THE SCOTTY TEAM.) A Hash provided
484
+ # by the agent to be used to verify the data being downloaded. Currently only
485
+ # supported for inline payloads. Further, only crc32c_hash is currently
486
+ # supported.
487
+ # Corresponds to the JSON property `crc32cHash`
488
+ # @return [Fixnum]
489
+ attr_accessor :crc32c_hash
490
+
491
+ # Backend response for a Diff get checksums response. For details on the Scotty
492
+ # Diff protocol, visit http://go/scotty-diff-protocol.
493
+ # Corresponds to the JSON property `diffChecksumsResponse`
494
+ # @return [Google::Apis::FirebaseappdistributionV1::GdataDiffChecksumsResponse]
495
+ attr_accessor :diff_checksums_response
496
+
497
+ # Backend response for a Diff download response. For details on the Scotty Diff
498
+ # protocol, visit http://go/scotty-diff-protocol.
499
+ # Corresponds to the JSON property `diffDownloadResponse`
500
+ # @return [Google::Apis::FirebaseappdistributionV1::GdataDiffDownloadResponse]
501
+ attr_accessor :diff_download_response
502
+
503
+ # A Diff upload request. For details on the Scotty Diff protocol, visit http://
504
+ # go/scotty-diff-protocol.
505
+ # Corresponds to the JSON property `diffUploadRequest`
506
+ # @return [Google::Apis::FirebaseappdistributionV1::GdataDiffUploadRequest]
507
+ attr_accessor :diff_upload_request
508
+
509
+ # Backend response for a Diff upload request. For details on the Scotty Diff
510
+ # protocol, visit http://go/scotty-diff-protocol.
511
+ # Corresponds to the JSON property `diffUploadResponse`
512
+ # @return [Google::Apis::FirebaseappdistributionV1::GdataDiffUploadResponse]
513
+ attr_accessor :diff_upload_response
514
+
515
+ # Backend response for a Diff get version response. For details on the Scotty
516
+ # Diff protocol, visit http://go/scotty-diff-protocol.
517
+ # Corresponds to the JSON property `diffVersionResponse`
518
+ # @return [Google::Apis::FirebaseappdistributionV1::GdataDiffVersionResponse]
519
+ attr_accessor :diff_version_response
520
+
521
+ # Parameters specific to media downloads.
522
+ # Corresponds to the JSON property `downloadParameters`
523
+ # @return [Google::Apis::FirebaseappdistributionV1::GdataDownloadParameters]
524
+ attr_accessor :download_parameters
525
+
526
+ # Original file name
527
+ # Corresponds to the JSON property `filename`
528
+ # @return [String]
529
+ attr_accessor :filename
530
+
531
+ # Deprecated, use one of explicit hash type fields instead. These two hash
532
+ # related fields will only be populated on Scotty based media uploads and will
533
+ # contain the content of the hash group in the NotificationRequest: http://cs/#
534
+ # google3/uploader/service/proto/upload_listener.proto&q=class:Hash Hex encoded
535
+ # hash value of the uploaded media.
536
+ # Corresponds to the JSON property `hash`
537
+ # @return [String]
538
+ attr_accessor :hash_prop
539
+
540
+ # For Scotty uploads only. If a user sends a hash code and the backend has
541
+ # requested that Scotty verify the upload against the client hash, Scotty will
542
+ # perform the check on behalf of the backend and will reject it if the hashes
543
+ # don't match. This is set to true if Scotty performed this verification.
544
+ # Corresponds to the JSON property `hashVerified`
545
+ # @return [Boolean]
546
+ attr_accessor :hash_verified
547
+ alias_method :hash_verified?, :hash_verified
548
+
549
+ # Media data, set if reference_type is INLINE
550
+ # Corresponds to the JSON property `inline`
551
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
552
+ # @return [String]
553
+ attr_accessor :inline
554
+
555
+ # |is_potential_retry| is set false only when Scotty is certain that it has not
556
+ # sent the request before. When a client resumes an upload, this field must be
557
+ # set true in agent calls, because Scotty cannot be certain that it has never
558
+ # sent the request before due to potential failure in the session state
559
+ # persistence.
560
+ # Corresponds to the JSON property `isPotentialRetry`
561
+ # @return [Boolean]
562
+ attr_accessor :is_potential_retry
563
+ alias_method :is_potential_retry?, :is_potential_retry
564
+
565
+ # Size of the data, in bytes
566
+ # Corresponds to the JSON property `length`
567
+ # @return [Fixnum]
568
+ attr_accessor :length
569
+
570
+ # Scotty-provided MD5 hash for an upload.
571
+ # Corresponds to the JSON property `md5Hash`
572
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
573
+ # @return [String]
574
+ attr_accessor :md5_hash
575
+
576
+ # Media id to forward to the operation GetMedia. Can be set if reference_type is
577
+ # GET_MEDIA.
578
+ # Corresponds to the JSON property `mediaId`
579
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
580
+ # @return [String]
581
+ attr_accessor :media_id
582
+
583
+ # This is a copy of the tech.blob.ObjectId proto, which could not be used
584
+ # directly here due to transitive closure issues with JavaScript support; see
585
+ # http://b/8801763.
586
+ # Corresponds to the JSON property `objectId`
587
+ # @return [Google::Apis::FirebaseappdistributionV1::GdataObjectId]
588
+ attr_accessor :object_id_prop
589
+
590
+ # Path to the data, set if reference_type is PATH
591
+ # Corresponds to the JSON property `path`
592
+ # @return [String]
593
+ attr_accessor :path
594
+
595
+ # Describes what the field reference contains.
596
+ # Corresponds to the JSON property `referenceType`
597
+ # @return [String]
598
+ attr_accessor :reference_type
599
+
600
+ # Scotty-provided SHA1 hash for an upload.
601
+ # Corresponds to the JSON property `sha1Hash`
602
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
603
+ # @return [String]
604
+ attr_accessor :sha1_hash
605
+
606
+ # Scotty-provided SHA256 hash for an upload.
607
+ # Corresponds to the JSON property `sha256Hash`
608
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
609
+ # @return [String]
610
+ attr_accessor :sha256_hash
611
+
612
+ # Time at which the media data was last updated, in milliseconds since UNIX
613
+ # epoch
614
+ # Corresponds to the JSON property `timestamp`
615
+ # @return [Fixnum]
616
+ attr_accessor :timestamp
617
+
618
+ # A unique fingerprint/version id for the media data
619
+ # Corresponds to the JSON property `token`
620
+ # @return [String]
621
+ attr_accessor :token
622
+
623
+ def initialize(**args)
624
+ update!(**args)
625
+ end
626
+
627
+ # Update properties of this object
628
+ def update!(**args)
629
+ @algorithm = args[:algorithm] if args.key?(:algorithm)
630
+ @bigstore_object_ref = args[:bigstore_object_ref] if args.key?(:bigstore_object_ref)
631
+ @blob_ref = args[:blob_ref] if args.key?(:blob_ref)
632
+ @blobstore2_info = args[:blobstore2_info] if args.key?(:blobstore2_info)
633
+ @composite_media = args[:composite_media] if args.key?(:composite_media)
634
+ @content_type = args[:content_type] if args.key?(:content_type)
635
+ @content_type_info = args[:content_type_info] if args.key?(:content_type_info)
636
+ @cosmo_binary_reference = args[:cosmo_binary_reference] if args.key?(:cosmo_binary_reference)
637
+ @crc32c_hash = args[:crc32c_hash] if args.key?(:crc32c_hash)
638
+ @diff_checksums_response = args[:diff_checksums_response] if args.key?(:diff_checksums_response)
639
+ @diff_download_response = args[:diff_download_response] if args.key?(:diff_download_response)
640
+ @diff_upload_request = args[:diff_upload_request] if args.key?(:diff_upload_request)
641
+ @diff_upload_response = args[:diff_upload_response] if args.key?(:diff_upload_response)
642
+ @diff_version_response = args[:diff_version_response] if args.key?(:diff_version_response)
643
+ @download_parameters = args[:download_parameters] if args.key?(:download_parameters)
644
+ @filename = args[:filename] if args.key?(:filename)
645
+ @hash_prop = args[:hash_prop] if args.key?(:hash_prop)
646
+ @hash_verified = args[:hash_verified] if args.key?(:hash_verified)
647
+ @inline = args[:inline] if args.key?(:inline)
648
+ @is_potential_retry = args[:is_potential_retry] if args.key?(:is_potential_retry)
649
+ @length = args[:length] if args.key?(:length)
650
+ @md5_hash = args[:md5_hash] if args.key?(:md5_hash)
651
+ @media_id = args[:media_id] if args.key?(:media_id)
652
+ @object_id_prop = args[:object_id_prop] if args.key?(:object_id_prop)
653
+ @path = args[:path] if args.key?(:path)
654
+ @reference_type = args[:reference_type] if args.key?(:reference_type)
655
+ @sha1_hash = args[:sha1_hash] if args.key?(:sha1_hash)
656
+ @sha256_hash = args[:sha256_hash] if args.key?(:sha256_hash)
657
+ @timestamp = args[:timestamp] if args.key?(:timestamp)
658
+ @token = args[:token] if args.key?(:token)
659
+ end
660
+ end
661
+
662
+ # This is a copy of the tech.blob.ObjectId proto, which could not be used
663
+ # directly here due to transitive closure issues with JavaScript support; see
664
+ # http://b/8801763.
665
+ class GdataObjectId
666
+ include Google::Apis::Core::Hashable
667
+
668
+ # The name of the bucket to which this object belongs.
669
+ # Corresponds to the JSON property `bucketName`
670
+ # @return [String]
671
+ attr_accessor :bucket_name
672
+
673
+ # Generation of the object. Generations are monotonically increasing across
674
+ # writes, allowing them to be be compared to determine which generation is newer.
675
+ # If this is omitted in a request, then you are requesting the live object. See
676
+ # http://go/bigstore-versions
677
+ # Corresponds to the JSON property `generation`
678
+ # @return [Fixnum]
679
+ attr_accessor :generation
680
+
681
+ # The name of the object.
682
+ # Corresponds to the JSON property `objectName`
683
+ # @return [String]
684
+ attr_accessor :object_name
685
+
686
+ def initialize(**args)
687
+ update!(**args)
688
+ end
689
+
690
+ # Update properties of this object
691
+ def update!(**args)
692
+ @bucket_name = args[:bucket_name] if args.key?(:bucket_name)
693
+ @generation = args[:generation] if args.key?(:generation)
694
+ @object_name = args[:object_name] if args.key?(:object_name)
695
+ end
696
+ end
697
+
698
+ # Android App Bundle (AAB) information for a Firebase app.
699
+ class GoogleFirebaseAppdistroV1AabInfo
700
+ include Google::Apis::Core::Hashable
701
+
702
+ # App bundle integration state. Only valid for android apps.
703
+ # Corresponds to the JSON property `integrationState`
704
+ # @return [String]
705
+ attr_accessor :integration_state
706
+
707
+ # The name of the `AabInfo` resource. Format: `projects/`project_number`/apps/`
708
+ # app`/aabInfo`
709
+ # Corresponds to the JSON property `name`
710
+ # @return [String]
711
+ attr_accessor :name
712
+
713
+ # App bundle test certificate
714
+ # Corresponds to the JSON property `testCertificate`
715
+ # @return [Google::Apis::FirebaseappdistributionV1::GoogleFirebaseAppdistroV1TestCertificate]
716
+ attr_accessor :test_certificate
717
+
718
+ def initialize(**args)
719
+ update!(**args)
720
+ end
721
+
722
+ # Update properties of this object
723
+ def update!(**args)
724
+ @integration_state = args[:integration_state] if args.key?(:integration_state)
725
+ @name = args[:name] if args.key?(:name)
726
+ @test_certificate = args[:test_certificate] if args.key?(:test_certificate)
727
+ end
728
+ end
729
+
730
+ # The Request message for batch adding testers
731
+ class GoogleFirebaseAppdistroV1BatchAddTestersRequest
732
+ include Google::Apis::Core::Hashable
733
+
734
+ # Required. The email addresses of the tester resources to create. A maximum of
735
+ # 999 and a minimum of 1 tester can be created in a batch.
736
+ # Corresponds to the JSON property `emails`
737
+ # @return [Array<String>]
738
+ attr_accessor :emails
739
+
740
+ def initialize(**args)
741
+ update!(**args)
742
+ end
743
+
744
+ # Update properties of this object
745
+ def update!(**args)
746
+ @emails = args[:emails] if args.key?(:emails)
747
+ end
748
+ end
749
+
750
+ # The Response message for `BatchAddTesters`.
751
+ class GoogleFirebaseAppdistroV1BatchAddTestersResponse
752
+ include Google::Apis::Core::Hashable
753
+
754
+ # The testers which are created and/or already exist
755
+ # Corresponds to the JSON property `testers`
756
+ # @return [Array<Google::Apis::FirebaseappdistributionV1::GoogleFirebaseAppdistroV1Tester>]
757
+ attr_accessor :testers
758
+
759
+ def initialize(**args)
760
+ update!(**args)
761
+ end
762
+
763
+ # Update properties of this object
764
+ def update!(**args)
765
+ @testers = args[:testers] if args.key?(:testers)
766
+ end
767
+ end
768
+
769
+ # The request message for `BatchDeleteReleases`.
770
+ class GoogleFirebaseAppdistroV1BatchDeleteReleasesRequest
771
+ include Google::Apis::Core::Hashable
772
+
773
+ # Required. The names of the release resources to delete. Format: `projects/`
774
+ # project_number`/apps/`app_id`/releases/`release_id`` A maximum of 100 releases
775
+ # can be deleted per request.
776
+ # Corresponds to the JSON property `names`
777
+ # @return [Array<String>]
778
+ attr_accessor :names
779
+
780
+ def initialize(**args)
781
+ update!(**args)
782
+ end
783
+
784
+ # Update properties of this object
785
+ def update!(**args)
786
+ @names = args[:names] if args.key?(:names)
787
+ end
788
+ end
789
+
790
+ # The request message for `BatchJoinGroup`
791
+ class GoogleFirebaseAppdistroV1BatchJoinGroupRequest
792
+ include Google::Apis::Core::Hashable
793
+
794
+ # Indicates whether to create tester resources based on `emails` if they don't
795
+ # exist yet.
796
+ # Corresponds to the JSON property `createMissingTesters`
797
+ # @return [Boolean]
798
+ attr_accessor :create_missing_testers
799
+ alias_method :create_missing_testers?, :create_missing_testers
800
+
801
+ # Required. The emails of the testers to be added to the group. A maximum of 999
802
+ # and a minimum of 1 tester can be created in a batch.
803
+ # Corresponds to the JSON property `emails`
804
+ # @return [Array<String>]
805
+ attr_accessor :emails
806
+
807
+ def initialize(**args)
808
+ update!(**args)
809
+ end
810
+
811
+ # Update properties of this object
812
+ def update!(**args)
813
+ @create_missing_testers = args[:create_missing_testers] if args.key?(:create_missing_testers)
814
+ @emails = args[:emails] if args.key?(:emails)
815
+ end
816
+ end
817
+
818
+ # Request message for `BatchLeaveGroup`
819
+ class GoogleFirebaseAppdistroV1BatchLeaveGroupRequest
820
+ include Google::Apis::Core::Hashable
821
+
822
+ # Required. The email addresses of the testers to be removed from the group. A
823
+ # maximum of 999 and a minimum of 1 testers can be removed in a batch.
824
+ # Corresponds to the JSON property `emails`
825
+ # @return [Array<String>]
826
+ attr_accessor :emails
827
+
828
+ def initialize(**args)
829
+ update!(**args)
830
+ end
831
+
832
+ # Update properties of this object
833
+ def update!(**args)
834
+ @emails = args[:emails] if args.key?(:emails)
835
+ end
836
+ end
837
+
838
+ # The request message for `BatchRemoveTesters`.
839
+ class GoogleFirebaseAppdistroV1BatchRemoveTestersRequest
840
+ include Google::Apis::Core::Hashable
841
+
842
+ # Required. The email addresses of the tester resources to removed. A maximum of
843
+ # 999 and a minimum of 1 testers can be deleted in a batch.
844
+ # Corresponds to the JSON property `emails`
845
+ # @return [Array<String>]
846
+ attr_accessor :emails
847
+
848
+ def initialize(**args)
849
+ update!(**args)
850
+ end
851
+
852
+ # Update properties of this object
853
+ def update!(**args)
854
+ @emails = args[:emails] if args.key?(:emails)
855
+ end
856
+ end
857
+
858
+ # The response message for `BatchRemoveTesters`
859
+ class GoogleFirebaseAppdistroV1BatchRemoveTestersResponse
860
+ include Google::Apis::Core::Hashable
861
+
862
+ # List of deleted tester emails
863
+ # Corresponds to the JSON property `emails`
864
+ # @return [Array<String>]
865
+ attr_accessor :emails
866
+
867
+ def initialize(**args)
868
+ update!(**args)
869
+ end
870
+
871
+ # Update properties of this object
872
+ def update!(**args)
873
+ @emails = args[:emails] if args.key?(:emails)
874
+ end
875
+ end
876
+
877
+ # The request message for `DistributeRelease`.
878
+ class GoogleFirebaseAppdistroV1DistributeReleaseRequest
879
+ include Google::Apis::Core::Hashable
880
+
881
+ # A list of group aliases (IDs) to be given access to this release. A combined
882
+ # maximum of 999 `testerEmails` and `groupAliases` can be specified in a single
883
+ # request.
884
+ # Corresponds to the JSON property `groupAliases`
885
+ # @return [Array<String>]
886
+ attr_accessor :group_aliases
887
+
888
+ # A list of tester email addresses to be given access to this release. A
889
+ # combined maximum of 999 `testerEmails` and `groupAliases` can be specified in
890
+ # a single request.
891
+ # Corresponds to the JSON property `testerEmails`
892
+ # @return [Array<String>]
893
+ attr_accessor :tester_emails
894
+
895
+ def initialize(**args)
896
+ update!(**args)
897
+ end
898
+
899
+ # Update properties of this object
900
+ def update!(**args)
901
+ @group_aliases = args[:group_aliases] if args.key?(:group_aliases)
902
+ @tester_emails = args[:tester_emails] if args.key?(:tester_emails)
903
+ end
904
+ end
905
+
906
+ # The response message for `DistributeRelease`.
907
+ class GoogleFirebaseAppdistroV1DistributeReleaseResponse
908
+ include Google::Apis::Core::Hashable
909
+
910
+ def initialize(**args)
911
+ update!(**args)
912
+ end
913
+
914
+ # Update properties of this object
915
+ def update!(**args)
916
+ end
917
+ end
918
+
919
+ # A feedback report submitted by a tester for a release.
920
+ class GoogleFirebaseAppdistroV1FeedbackReport
921
+ include Google::Apis::Core::Hashable
922
+
923
+ # Output only. The time when the feedback report was created.
924
+ # Corresponds to the JSON property `createTime`
925
+ # @return [String]
926
+ attr_accessor :create_time
927
+
928
+ # Output only. A link to the Firebase console displaying the feedback report.
929
+ # Corresponds to the JSON property `firebaseConsoleUri`
930
+ # @return [String]
931
+ attr_accessor :firebase_console_uri
932
+
933
+ # The name of the feedback report resource. Format: `projects/`project_number`/
934
+ # apps/`app`/releases/`release`/feedbackReports/`feedback_report``
935
+ # Corresponds to the JSON property `name`
936
+ # @return [String]
937
+ attr_accessor :name
938
+
939
+ # Output only. A signed link (which expires in one hour) that lets you directly
940
+ # download the screenshot.
941
+ # Corresponds to the JSON property `screenshotUri`
942
+ # @return [String]
943
+ attr_accessor :screenshot_uri
944
+
945
+ # Output only. The resource name of the tester who submitted the feedback report.
946
+ # Corresponds to the JSON property `tester`
947
+ # @return [String]
948
+ attr_accessor :tester
949
+
950
+ # Output only. The text of the feedback report.
951
+ # Corresponds to the JSON property `text`
952
+ # @return [String]
953
+ attr_accessor :text
954
+
955
+ def initialize(**args)
956
+ update!(**args)
957
+ end
958
+
959
+ # Update properties of this object
960
+ def update!(**args)
961
+ @create_time = args[:create_time] if args.key?(:create_time)
962
+ @firebase_console_uri = args[:firebase_console_uri] if args.key?(:firebase_console_uri)
963
+ @name = args[:name] if args.key?(:name)
964
+ @screenshot_uri = args[:screenshot_uri] if args.key?(:screenshot_uri)
965
+ @tester = args[:tester] if args.key?(:tester)
966
+ @text = args[:text] if args.key?(:text)
967
+ end
968
+ end
969
+
970
+ # A group which can contain testers. A group can be invited to test apps in a
971
+ # Firebase project.
972
+ class GoogleFirebaseAppdistroV1Group
973
+ include Google::Apis::Core::Hashable
974
+
975
+ # Required. The display name of the group.
976
+ # Corresponds to the JSON property `displayName`
977
+ # @return [String]
978
+ attr_accessor :display_name
979
+
980
+ # Output only. The number of invite links for this group.
981
+ # Corresponds to the JSON property `inviteLinkCount`
982
+ # @return [Fixnum]
983
+ attr_accessor :invite_link_count
984
+
985
+ # The name of the group resource. Format: `projects/`project_number`/groups/`
986
+ # group_alias``
987
+ # Corresponds to the JSON property `name`
988
+ # @return [String]
989
+ attr_accessor :name
990
+
991
+ # Output only. The number of releases this group is permitted to access.
992
+ # Corresponds to the JSON property `releaseCount`
993
+ # @return [Fixnum]
994
+ attr_accessor :release_count
995
+
996
+ # Output only. The number of testers who are members of this group.
997
+ # Corresponds to the JSON property `testerCount`
998
+ # @return [Fixnum]
999
+ attr_accessor :tester_count
1000
+
1001
+ def initialize(**args)
1002
+ update!(**args)
1003
+ end
1004
+
1005
+ # Update properties of this object
1006
+ def update!(**args)
1007
+ @display_name = args[:display_name] if args.key?(:display_name)
1008
+ @invite_link_count = args[:invite_link_count] if args.key?(:invite_link_count)
1009
+ @name = args[:name] if args.key?(:name)
1010
+ @release_count = args[:release_count] if args.key?(:release_count)
1011
+ @tester_count = args[:tester_count] if args.key?(:tester_count)
1012
+ end
1013
+ end
1014
+
1015
+ # The response message for `ListFeedbackReports`.
1016
+ class GoogleFirebaseAppdistroV1ListFeedbackReportsResponse
1017
+ include Google::Apis::Core::Hashable
1018
+
1019
+ # The feedback reports
1020
+ # Corresponds to the JSON property `feedbackReports`
1021
+ # @return [Array<Google::Apis::FirebaseappdistributionV1::GoogleFirebaseAppdistroV1FeedbackReport>]
1022
+ attr_accessor :feedback_reports
1023
+
1024
+ # A short-lived token, which can be sent as `pageToken` to retrieve the next
1025
+ # page. If this field is omitted, there are no subsequent pages.
1026
+ # Corresponds to the JSON property `nextPageToken`
1027
+ # @return [String]
1028
+ attr_accessor :next_page_token
1029
+
1030
+ def initialize(**args)
1031
+ update!(**args)
1032
+ end
1033
+
1034
+ # Update properties of this object
1035
+ def update!(**args)
1036
+ @feedback_reports = args[:feedback_reports] if args.key?(:feedback_reports)
1037
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1038
+ end
1039
+ end
1040
+
1041
+ # The response message for `ListGroups`.
1042
+ class GoogleFirebaseAppdistroV1ListGroupsResponse
1043
+ include Google::Apis::Core::Hashable
1044
+
1045
+ # The groups listed.
1046
+ # Corresponds to the JSON property `groups`
1047
+ # @return [Array<Google::Apis::FirebaseappdistributionV1::GoogleFirebaseAppdistroV1Group>]
1048
+ attr_accessor :groups
1049
+
1050
+ # A short-lived token, which can be sent as `pageToken` to retrieve the next
1051
+ # page. If this field is omitted, there are no subsequent pages.
1052
+ # Corresponds to the JSON property `nextPageToken`
1053
+ # @return [String]
1054
+ attr_accessor :next_page_token
1055
+
1056
+ def initialize(**args)
1057
+ update!(**args)
1058
+ end
1059
+
1060
+ # Update properties of this object
1061
+ def update!(**args)
1062
+ @groups = args[:groups] if args.key?(:groups)
1063
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1064
+ end
1065
+ end
1066
+
1067
+ # The response message for `ListReleases`.
1068
+ class GoogleFirebaseAppdistroV1ListReleasesResponse
1069
+ include Google::Apis::Core::Hashable
1070
+
1071
+ # A short-lived token, which can be sent as `pageToken` to retrieve the next
1072
+ # page. If this field is omitted, there are no subsequent pages.
1073
+ # Corresponds to the JSON property `nextPageToken`
1074
+ # @return [String]
1075
+ attr_accessor :next_page_token
1076
+
1077
+ # The releases
1078
+ # Corresponds to the JSON property `releases`
1079
+ # @return [Array<Google::Apis::FirebaseappdistributionV1::GoogleFirebaseAppdistroV1Release>]
1080
+ attr_accessor :releases
1081
+
1082
+ def initialize(**args)
1083
+ update!(**args)
1084
+ end
1085
+
1086
+ # Update properties of this object
1087
+ def update!(**args)
1088
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1089
+ @releases = args[:releases] if args.key?(:releases)
1090
+ end
1091
+ end
1092
+
1093
+ # The response message for `ListTesters`.
1094
+ class GoogleFirebaseAppdistroV1ListTestersResponse
1095
+ include Google::Apis::Core::Hashable
1096
+
1097
+ # A short-lived token, which can be sent as `pageToken` to retrieve the next
1098
+ # page. If this field is omitted, there are no subsequent pages.
1099
+ # Corresponds to the JSON property `nextPageToken`
1100
+ # @return [String]
1101
+ attr_accessor :next_page_token
1102
+
1103
+ # The testers listed.
1104
+ # Corresponds to the JSON property `testers`
1105
+ # @return [Array<Google::Apis::FirebaseappdistributionV1::GoogleFirebaseAppdistroV1Tester>]
1106
+ attr_accessor :testers
1107
+
1108
+ def initialize(**args)
1109
+ update!(**args)
1110
+ end
1111
+
1112
+ # Update properties of this object
1113
+ def update!(**args)
1114
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1115
+ @testers = args[:testers] if args.key?(:testers)
1116
+ end
1117
+ end
1118
+
1119
+ # A release of a Firebase app.
1120
+ class GoogleFirebaseAppdistroV1Release
1121
+ include Google::Apis::Core::Hashable
1122
+
1123
+ # Output only. A signed link (which expires in one hour) to directly download
1124
+ # the app binary (IPA/APK/AAB) file.
1125
+ # Corresponds to the JSON property `binaryDownloadUri`
1126
+ # @return [String]
1127
+ attr_accessor :binary_download_uri
1128
+
1129
+ # Output only. Build version of the release. For an Android release, the build
1130
+ # version is the `versionCode`. For an iOS release, the build version is the `
1131
+ # CFBundleVersion`.
1132
+ # Corresponds to the JSON property `buildVersion`
1133
+ # @return [String]
1134
+ attr_accessor :build_version
1135
+
1136
+ # Output only. The time the release was created.
1137
+ # Corresponds to the JSON property `createTime`
1138
+ # @return [String]
1139
+ attr_accessor :create_time
1140
+
1141
+ # Output only. Display version of the release. For an Android release, the
1142
+ # display version is the `versionName`. For an iOS release, the display version
1143
+ # is the `CFBundleShortVersionString`.
1144
+ # Corresponds to the JSON property `displayVersion`
1145
+ # @return [String]
1146
+ attr_accessor :display_version
1147
+
1148
+ # Output only. A link to the Firebase console displaying a single release.
1149
+ # Corresponds to the JSON property `firebaseConsoleUri`
1150
+ # @return [String]
1151
+ attr_accessor :firebase_console_uri
1152
+
1153
+ # The name of the release resource. Format: `projects/`project_number`/apps/`
1154
+ # app_id`/releases/`release_id``
1155
+ # Corresponds to the JSON property `name`
1156
+ # @return [String]
1157
+ attr_accessor :name
1158
+
1159
+ # Notes that belong to a release.
1160
+ # Corresponds to the JSON property `releaseNotes`
1161
+ # @return [Google::Apis::FirebaseappdistributionV1::GoogleFirebaseAppdistroV1ReleaseNotes]
1162
+ attr_accessor :release_notes
1163
+
1164
+ # Output only. A link to the release in the tester web clip or Android app that
1165
+ # lets testers (which were granted access to the app) view release notes and
1166
+ # install the app onto their devices.
1167
+ # Corresponds to the JSON property `testingUri`
1168
+ # @return [String]
1169
+ attr_accessor :testing_uri
1170
+
1171
+ def initialize(**args)
1172
+ update!(**args)
1173
+ end
1174
+
1175
+ # Update properties of this object
1176
+ def update!(**args)
1177
+ @binary_download_uri = args[:binary_download_uri] if args.key?(:binary_download_uri)
1178
+ @build_version = args[:build_version] if args.key?(:build_version)
1179
+ @create_time = args[:create_time] if args.key?(:create_time)
1180
+ @display_version = args[:display_version] if args.key?(:display_version)
1181
+ @firebase_console_uri = args[:firebase_console_uri] if args.key?(:firebase_console_uri)
1182
+ @name = args[:name] if args.key?(:name)
1183
+ @release_notes = args[:release_notes] if args.key?(:release_notes)
1184
+ @testing_uri = args[:testing_uri] if args.key?(:testing_uri)
1185
+ end
1186
+ end
1187
+
1188
+ # Notes that belong to a release.
1189
+ class GoogleFirebaseAppdistroV1ReleaseNotes
1190
+ include Google::Apis::Core::Hashable
1191
+
1192
+ # The text of the release notes.
1193
+ # Corresponds to the JSON property `text`
1194
+ # @return [String]
1195
+ attr_accessor :text
1196
+
1197
+ def initialize(**args)
1198
+ update!(**args)
1199
+ end
1200
+
1201
+ # Update properties of this object
1202
+ def update!(**args)
1203
+ @text = args[:text] if args.key?(:text)
1204
+ end
1205
+ end
1206
+
1207
+ # App bundle test certificate
1208
+ class GoogleFirebaseAppdistroV1TestCertificate
1209
+ include Google::Apis::Core::Hashable
1210
+
1211
+ # Hex string of MD5 hash of the test certificate used to resign the AAB
1212
+ # Corresponds to the JSON property `hashMd5`
1213
+ # @return [String]
1214
+ attr_accessor :hash_md5
1215
+
1216
+ # Hex string of SHA1 hash of the test certificate used to resign the AAB
1217
+ # Corresponds to the JSON property `hashSha1`
1218
+ # @return [String]
1219
+ attr_accessor :hash_sha1
1220
+
1221
+ # Hex string of SHA256 hash of the test certificate used to resign the AAB
1222
+ # Corresponds to the JSON property `hashSha256`
1223
+ # @return [String]
1224
+ attr_accessor :hash_sha256
1225
+
1226
+ def initialize(**args)
1227
+ update!(**args)
1228
+ end
1229
+
1230
+ # Update properties of this object
1231
+ def update!(**args)
1232
+ @hash_md5 = args[:hash_md5] if args.key?(:hash_md5)
1233
+ @hash_sha1 = args[:hash_sha1] if args.key?(:hash_sha1)
1234
+ @hash_sha256 = args[:hash_sha256] if args.key?(:hash_sha256)
1235
+ end
1236
+ end
1237
+
1238
+ # A person that can be invited to test apps in a Firebase project.
1239
+ class GoogleFirebaseAppdistroV1Tester
1240
+ include Google::Apis::Core::Hashable
1241
+
1242
+ # The name of the tester associated with the Google account used to accept the
1243
+ # tester invitation.
1244
+ # Corresponds to the JSON property `displayName`
1245
+ # @return [String]
1246
+ attr_accessor :display_name
1247
+
1248
+ # The resource names of the groups this tester belongs to.
1249
+ # Corresponds to the JSON property `groups`
1250
+ # @return [Array<String>]
1251
+ attr_accessor :groups
1252
+
1253
+ # Output only. The time the tester was last active. This is the most recent time
1254
+ # the tester installed one of the apps. If they've never installed one or if the
1255
+ # release no longer exists, this is the time the tester was added to the project.
1256
+ # Corresponds to the JSON property `lastActivityTime`
1257
+ # @return [String]
1258
+ attr_accessor :last_activity_time
1259
+
1260
+ # The name of the tester resource. Format: `projects/`project_number`/testers/`
1261
+ # email_address``
1262
+ # Corresponds to the JSON property `name`
1263
+ # @return [String]
1264
+ attr_accessor :name
1265
+
1266
+ def initialize(**args)
1267
+ update!(**args)
1268
+ end
1269
+
1270
+ # Update properties of this object
1271
+ def update!(**args)
1272
+ @display_name = args[:display_name] if args.key?(:display_name)
1273
+ @groups = args[:groups] if args.key?(:groups)
1274
+ @last_activity_time = args[:last_activity_time] if args.key?(:last_activity_time)
1275
+ @name = args[:name] if args.key?(:name)
1276
+ end
1277
+ end
1278
+
1279
+ # Operation metadata for `UploadRelease`.
1280
+ class GoogleFirebaseAppdistroV1UploadReleaseMetadata
1281
+ include Google::Apis::Core::Hashable
1282
+
1283
+ def initialize(**args)
1284
+ update!(**args)
1285
+ end
1286
+
1287
+ # Update properties of this object
1288
+ def update!(**args)
1289
+ end
1290
+ end
1291
+
1292
+ # Request message for `UploadRelease`.
1293
+ class GoogleFirebaseAppdistroV1UploadReleaseRequest
1294
+ include Google::Apis::Core::Hashable
1295
+
1296
+ # A reference to data stored on the filesystem, on GFS or in blobstore.
1297
+ # Corresponds to the JSON property `blob`
1298
+ # @return [Google::Apis::FirebaseappdistributionV1::GdataMedia]
1299
+ attr_accessor :blob
1300
+
1301
+ def initialize(**args)
1302
+ update!(**args)
1303
+ end
1304
+
1305
+ # Update properties of this object
1306
+ def update!(**args)
1307
+ @blob = args[:blob] if args.key?(:blob)
1308
+ end
1309
+ end
1310
+
1311
+ # Response message for `UploadRelease`.
1312
+ class GoogleFirebaseAppdistroV1UploadReleaseResponse
1313
+ include Google::Apis::Core::Hashable
1314
+
1315
+ # A release of a Firebase app.
1316
+ # Corresponds to the JSON property `release`
1317
+ # @return [Google::Apis::FirebaseappdistributionV1::GoogleFirebaseAppdistroV1Release]
1318
+ attr_accessor :release
1319
+
1320
+ # Result of upload release.
1321
+ # Corresponds to the JSON property `result`
1322
+ # @return [String]
1323
+ attr_accessor :result
1324
+
1325
+ def initialize(**args)
1326
+ update!(**args)
1327
+ end
1328
+
1329
+ # Update properties of this object
1330
+ def update!(**args)
1331
+ @release = args[:release] if args.key?(:release)
1332
+ @result = args[:result] if args.key?(:result)
1333
+ end
1334
+ end
1335
+
1336
+ # The request message for Operations.CancelOperation.
1337
+ class GoogleLongrunningCancelOperationRequest
1338
+ include Google::Apis::Core::Hashable
1339
+
1340
+ def initialize(**args)
1341
+ update!(**args)
1342
+ end
1343
+
1344
+ # Update properties of this object
1345
+ def update!(**args)
1346
+ end
1347
+ end
1348
+
1349
+ # The response message for Operations.ListOperations.
1350
+ class GoogleLongrunningListOperationsResponse
1351
+ include Google::Apis::Core::Hashable
1352
+
1353
+ # The standard List next-page token.
1354
+ # Corresponds to the JSON property `nextPageToken`
1355
+ # @return [String]
1356
+ attr_accessor :next_page_token
1357
+
1358
+ # A list of operations that matches the specified filter in the request.
1359
+ # Corresponds to the JSON property `operations`
1360
+ # @return [Array<Google::Apis::FirebaseappdistributionV1::GoogleLongrunningOperation>]
1361
+ attr_accessor :operations
1362
+
1363
+ def initialize(**args)
1364
+ update!(**args)
1365
+ end
1366
+
1367
+ # Update properties of this object
1368
+ def update!(**args)
1369
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1370
+ @operations = args[:operations] if args.key?(:operations)
1371
+ end
1372
+ end
1373
+
1374
+ # This resource represents a long-running operation that is the result of a
1375
+ # network API call.
1376
+ class GoogleLongrunningOperation
1377
+ include Google::Apis::Core::Hashable
1378
+
1379
+ # If the value is `false`, it means the operation is still in progress. If `true`
1380
+ # , the operation is completed, and either `error` or `response` is available.
1381
+ # Corresponds to the JSON property `done`
1382
+ # @return [Boolean]
1383
+ attr_accessor :done
1384
+ alias_method :done?, :done
1385
+
1386
+ # The `Status` type defines a logical error model that is suitable for different
1387
+ # programming environments, including REST APIs and RPC APIs. It is used by [
1388
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
1389
+ # data: error code, error message, and error details. You can find out more
1390
+ # about this error model and how to work with it in the [API Design Guide](https:
1391
+ # //cloud.google.com/apis/design/errors).
1392
+ # Corresponds to the JSON property `error`
1393
+ # @return [Google::Apis::FirebaseappdistributionV1::GoogleRpcStatus]
1394
+ attr_accessor :error
1395
+
1396
+ # Service-specific metadata associated with the operation. It typically contains
1397
+ # progress information and common metadata such as create time. Some services
1398
+ # might not provide such metadata. Any method that returns a long-running
1399
+ # operation should document the metadata type, if any.
1400
+ # Corresponds to the JSON property `metadata`
1401
+ # @return [Hash<String,Object>]
1402
+ attr_accessor :metadata
1403
+
1404
+ # The server-assigned name, which is only unique within the same service that
1405
+ # originally returns it. If you use the default HTTP mapping, the `name` should
1406
+ # be a resource name ending with `operations/`unique_id``.
1407
+ # Corresponds to the JSON property `name`
1408
+ # @return [String]
1409
+ attr_accessor :name
1410
+
1411
+ # The normal response of the operation in case of success. If the original
1412
+ # method returns no data on success, such as `Delete`, the response is `google.
1413
+ # protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`,
1414
+ # the response should be the resource. For other methods, the response should
1415
+ # have the type `XxxResponse`, where `Xxx` is the original method name. For
1416
+ # example, if the original method name is `TakeSnapshot()`, the inferred
1417
+ # response type is `TakeSnapshotResponse`.
1418
+ # Corresponds to the JSON property `response`
1419
+ # @return [Hash<String,Object>]
1420
+ attr_accessor :response
1421
+
1422
+ def initialize(**args)
1423
+ update!(**args)
1424
+ end
1425
+
1426
+ # Update properties of this object
1427
+ def update!(**args)
1428
+ @done = args[:done] if args.key?(:done)
1429
+ @error = args[:error] if args.key?(:error)
1430
+ @metadata = args[:metadata] if args.key?(:metadata)
1431
+ @name = args[:name] if args.key?(:name)
1432
+ @response = args[:response] if args.key?(:response)
1433
+ end
1434
+ end
1435
+
1436
+ # The request message for Operations.WaitOperation.
1437
+ class GoogleLongrunningWaitOperationRequest
1438
+ include Google::Apis::Core::Hashable
1439
+
1440
+ # The maximum duration to wait before timing out. If left blank, the wait will
1441
+ # be at most the time permitted by the underlying HTTP/RPC protocol. If RPC
1442
+ # context deadline is also specified, the shorter one will be used.
1443
+ # Corresponds to the JSON property `timeout`
1444
+ # @return [String]
1445
+ attr_accessor :timeout
1446
+
1447
+ def initialize(**args)
1448
+ update!(**args)
1449
+ end
1450
+
1451
+ # Update properties of this object
1452
+ def update!(**args)
1453
+ @timeout = args[:timeout] if args.key?(:timeout)
1454
+ end
1455
+ end
1456
+
1457
+ # A generic empty message that you can re-use to avoid defining duplicated empty
1458
+ # messages in your APIs. A typical example is to use it as the request or the
1459
+ # response type of an API method. For instance: service Foo ` rpc Bar(google.
1460
+ # protobuf.Empty) returns (google.protobuf.Empty); `
1461
+ class GoogleProtobufEmpty
1462
+ include Google::Apis::Core::Hashable
1463
+
1464
+ def initialize(**args)
1465
+ update!(**args)
1466
+ end
1467
+
1468
+ # Update properties of this object
1469
+ def update!(**args)
1470
+ end
1471
+ end
1472
+
1473
+ # The `Status` type defines a logical error model that is suitable for different
1474
+ # programming environments, including REST APIs and RPC APIs. It is used by [
1475
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
1476
+ # data: error code, error message, and error details. You can find out more
1477
+ # about this error model and how to work with it in the [API Design Guide](https:
1478
+ # //cloud.google.com/apis/design/errors).
1479
+ class GoogleRpcStatus
1480
+ include Google::Apis::Core::Hashable
1481
+
1482
+ # The status code, which should be an enum value of google.rpc.Code.
1483
+ # Corresponds to the JSON property `code`
1484
+ # @return [Fixnum]
1485
+ attr_accessor :code
1486
+
1487
+ # A list of messages that carry the error details. There is a common set of
1488
+ # message types for APIs to use.
1489
+ # Corresponds to the JSON property `details`
1490
+ # @return [Array<Hash<String,Object>>]
1491
+ attr_accessor :details
1492
+
1493
+ # A developer-facing error message, which should be in English. Any user-facing
1494
+ # error message should be localized and sent in the google.rpc.Status.details
1495
+ # field, or localized by the client.
1496
+ # Corresponds to the JSON property `message`
1497
+ # @return [String]
1498
+ attr_accessor :message
1499
+
1500
+ def initialize(**args)
1501
+ update!(**args)
1502
+ end
1503
+
1504
+ # Update properties of this object
1505
+ def update!(**args)
1506
+ @code = args[:code] if args.key?(:code)
1507
+ @details = args[:details] if args.key?(:details)
1508
+ @message = args[:message] if args.key?(:message)
1509
+ end
1510
+ end
1511
+ end
1512
+ end
1513
+ end