google-apis-firebaseappcheck_v1 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -21,6 +21,1028 @@ require 'google/apis/errors'
21
21
  module Google
22
22
  module Apis
23
23
  module FirebaseappcheckV1
24
+
25
+ # An app's App Attest configuration object. This configuration controls certain
26
+ # properties of the `AppCheckToken` returned by ExchangeAppAttestAttestation and
27
+ # ExchangeAppAttestAssertion, such as its ttl. Note that the Team ID registered
28
+ # with your app is used as part of the validation process. Please register it
29
+ # via the Firebase Console or programmatically via the [Firebase Management
30
+ # Service](https://firebase.google.com/docs/projects/api/reference/rest/v11/
31
+ # projects.iosApps/patch).
32
+ class GoogleFirebaseAppcheckV1AppAttestConfig
33
+ include Google::Apis::Core::Hashable
34
+
35
+ # Required. The relative resource name of the App Attest configuration object,
36
+ # in the format: ``` projects/`project_number`/apps/`app_id`/appAttestConfig ```
37
+ # Corresponds to the JSON property `name`
38
+ # @return [String]
39
+ attr_accessor :name
40
+
41
+ # Specifies the duration for which App Check tokens exchanged from App Attest
42
+ # artifacts will be valid. If unset, a default value of 1 hour is assumed. Must
43
+ # be between 30 minutes and 7 days, inclusive.
44
+ # Corresponds to the JSON property `tokenTtl`
45
+ # @return [String]
46
+ attr_accessor :token_ttl
47
+
48
+ def initialize(**args)
49
+ update!(**args)
50
+ end
51
+
52
+ # Update properties of this object
53
+ def update!(**args)
54
+ @name = args[:name] if args.key?(:name)
55
+ @token_ttl = args[:token_ttl] if args.key?(:token_ttl)
56
+ end
57
+ end
58
+
59
+ # Encapsulates an *App Check token*, which are used to access Firebase services
60
+ # protected by App Check.
61
+ class GoogleFirebaseAppcheckV1AppCheckToken
62
+ include Google::Apis::Core::Hashable
63
+
64
+ # The App Check token. App Check tokens are signed [JWTs](https://tools.ietf.org/
65
+ # html/rfc7519) containing claims that identify the attested app and Firebase
66
+ # project. This token is used to access Firebase services protected by App Check.
67
+ # These tokens can also be [verified by your own custom backends](https://
68
+ # firebase.google.com/docs/app-check/custom-resource-backend) using the Firebase
69
+ # Admin SDK.
70
+ # Corresponds to the JSON property `token`
71
+ # @return [String]
72
+ attr_accessor :token
73
+
74
+ # The duration from the time this token is minted until its expiration. This
75
+ # field is intended to ease client-side token management, since the client may
76
+ # have clock skew, but is still able to accurately measure a duration.
77
+ # Corresponds to the JSON property `ttl`
78
+ # @return [String]
79
+ attr_accessor :ttl
80
+
81
+ def initialize(**args)
82
+ update!(**args)
83
+ end
84
+
85
+ # Update properties of this object
86
+ def update!(**args)
87
+ @token = args[:token] if args.key?(:token)
88
+ @ttl = args[:ttl] if args.key?(:ttl)
89
+ end
90
+ end
91
+
92
+ # Response message for the BatchGetAppAttestConfigs method.
93
+ class GoogleFirebaseAppcheckV1BatchGetAppAttestConfigsResponse
94
+ include Google::Apis::Core::Hashable
95
+
96
+ # AppAttestConfigs retrieved.
97
+ # Corresponds to the JSON property `configs`
98
+ # @return [Array<Google::Apis::FirebaseappcheckV1::GoogleFirebaseAppcheckV1AppAttestConfig>]
99
+ attr_accessor :configs
100
+
101
+ def initialize(**args)
102
+ update!(**args)
103
+ end
104
+
105
+ # Update properties of this object
106
+ def update!(**args)
107
+ @configs = args[:configs] if args.key?(:configs)
108
+ end
109
+ end
110
+
111
+ # Response message for the BatchGetDeviceCheckConfigs method.
112
+ class GoogleFirebaseAppcheckV1BatchGetDeviceCheckConfigsResponse
113
+ include Google::Apis::Core::Hashable
114
+
115
+ # DeviceCheckConfigs retrieved.
116
+ # Corresponds to the JSON property `configs`
117
+ # @return [Array<Google::Apis::FirebaseappcheckV1::GoogleFirebaseAppcheckV1DeviceCheckConfig>]
118
+ attr_accessor :configs
119
+
120
+ def initialize(**args)
121
+ update!(**args)
122
+ end
123
+
124
+ # Update properties of this object
125
+ def update!(**args)
126
+ @configs = args[:configs] if args.key?(:configs)
127
+ end
128
+ end
129
+
130
+ # Response message for the BatchGetPlayIntegrityConfigs method.
131
+ class GoogleFirebaseAppcheckV1BatchGetPlayIntegrityConfigsResponse
132
+ include Google::Apis::Core::Hashable
133
+
134
+ # PlayIntegrityConfigs retrieved.
135
+ # Corresponds to the JSON property `configs`
136
+ # @return [Array<Google::Apis::FirebaseappcheckV1::GoogleFirebaseAppcheckV1PlayIntegrityConfig>]
137
+ attr_accessor :configs
138
+
139
+ def initialize(**args)
140
+ update!(**args)
141
+ end
142
+
143
+ # Update properties of this object
144
+ def update!(**args)
145
+ @configs = args[:configs] if args.key?(:configs)
146
+ end
147
+ end
148
+
149
+ # Response message for the BatchGetRecaptchaEnterpriseConfigs method.
150
+ class GoogleFirebaseAppcheckV1BatchGetRecaptchaEnterpriseConfigsResponse
151
+ include Google::Apis::Core::Hashable
152
+
153
+ # RecaptchaEnterpriseConfigs retrieved.
154
+ # Corresponds to the JSON property `configs`
155
+ # @return [Array<Google::Apis::FirebaseappcheckV1::GoogleFirebaseAppcheckV1RecaptchaEnterpriseConfig>]
156
+ attr_accessor :configs
157
+
158
+ def initialize(**args)
159
+ update!(**args)
160
+ end
161
+
162
+ # Update properties of this object
163
+ def update!(**args)
164
+ @configs = args[:configs] if args.key?(:configs)
165
+ end
166
+ end
167
+
168
+ # Response message for the BatchGetRecaptchaV3Configs method.
169
+ class GoogleFirebaseAppcheckV1BatchGetRecaptchaV3ConfigsResponse
170
+ include Google::Apis::Core::Hashable
171
+
172
+ # RecaptchaV3Configs retrieved.
173
+ # Corresponds to the JSON property `configs`
174
+ # @return [Array<Google::Apis::FirebaseappcheckV1::GoogleFirebaseAppcheckV1RecaptchaV3Config>]
175
+ attr_accessor :configs
176
+
177
+ def initialize(**args)
178
+ update!(**args)
179
+ end
180
+
181
+ # Update properties of this object
182
+ def update!(**args)
183
+ @configs = args[:configs] if args.key?(:configs)
184
+ end
185
+ end
186
+
187
+ # Response message for the BatchGetSafetyNetConfigs method.
188
+ class GoogleFirebaseAppcheckV1BatchGetSafetyNetConfigsResponse
189
+ include Google::Apis::Core::Hashable
190
+
191
+ # SafetyNetConfigs retrieved.
192
+ # Corresponds to the JSON property `configs`
193
+ # @return [Array<Google::Apis::FirebaseappcheckV1::GoogleFirebaseAppcheckV1SafetyNetConfig>]
194
+ attr_accessor :configs
195
+
196
+ def initialize(**args)
197
+ update!(**args)
198
+ end
199
+
200
+ # Update properties of this object
201
+ def update!(**args)
202
+ @configs = args[:configs] if args.key?(:configs)
203
+ end
204
+ end
205
+
206
+ # Request message for the BatchUpdateServices method.
207
+ class GoogleFirebaseAppcheckV1BatchUpdateServicesRequest
208
+ include Google::Apis::Core::Hashable
209
+
210
+ # Required. The request messages specifying the Services to update. A maximum of
211
+ # 100 objects can be updated in a batch.
212
+ # Corresponds to the JSON property `requests`
213
+ # @return [Array<Google::Apis::FirebaseappcheckV1::GoogleFirebaseAppcheckV1UpdateServiceRequest>]
214
+ attr_accessor :requests
215
+
216
+ # Optional. A comma-separated list of names of fields in the Services to update.
217
+ # Example: `display_name`. If the `update_mask` field is set in both this
218
+ # request and any of the UpdateServiceRequest messages, they must match or the
219
+ # entire batch fails and no updates will be committed.
220
+ # Corresponds to the JSON property `updateMask`
221
+ # @return [String]
222
+ attr_accessor :update_mask
223
+
224
+ def initialize(**args)
225
+ update!(**args)
226
+ end
227
+
228
+ # Update properties of this object
229
+ def update!(**args)
230
+ @requests = args[:requests] if args.key?(:requests)
231
+ @update_mask = args[:update_mask] if args.key?(:update_mask)
232
+ end
233
+ end
234
+
235
+ # Response message for the BatchUpdateServices method.
236
+ class GoogleFirebaseAppcheckV1BatchUpdateServicesResponse
237
+ include Google::Apis::Core::Hashable
238
+
239
+ # Service objects after the updates have been applied.
240
+ # Corresponds to the JSON property `services`
241
+ # @return [Array<Google::Apis::FirebaseappcheckV1::GoogleFirebaseAppcheckV1Service>]
242
+ attr_accessor :services
243
+
244
+ def initialize(**args)
245
+ update!(**args)
246
+ end
247
+
248
+ # Update properties of this object
249
+ def update!(**args)
250
+ @services = args[:services] if args.key?(:services)
251
+ end
252
+ end
253
+
254
+ # A *debug token* is a secret used during the development or integration testing
255
+ # of an app. It essentially allows the development or integration testing to
256
+ # bypass app attestation while still allowing App Check to enforce protection on
257
+ # supported production Firebase services.
258
+ class GoogleFirebaseAppcheckV1DebugToken
259
+ include Google::Apis::Core::Hashable
260
+
261
+ # Required. A human readable display name used to identify this debug token.
262
+ # Corresponds to the JSON property `displayName`
263
+ # @return [String]
264
+ attr_accessor :display_name
265
+
266
+ # Required. The relative resource name of the debug token, in the format: ```
267
+ # projects/`project_number`/apps/`app_id`/debugTokens/`debug_token_id` ```
268
+ # Corresponds to the JSON property `name`
269
+ # @return [String]
270
+ attr_accessor :name
271
+
272
+ # Required. Input only. Immutable. The secret token itself. Must be provided
273
+ # during creation, and must be a UUID4, case insensitive. This field is
274
+ # immutable once set, and cannot be provided during an UpdateDebugToken request.
275
+ # You can, however, delete this debug token using DeleteDebugToken to revoke it.
276
+ # For security reasons, this field will never be populated in any response.
277
+ # Corresponds to the JSON property `token`
278
+ # @return [String]
279
+ attr_accessor :token
280
+
281
+ def initialize(**args)
282
+ update!(**args)
283
+ end
284
+
285
+ # Update properties of this object
286
+ def update!(**args)
287
+ @display_name = args[:display_name] if args.key?(:display_name)
288
+ @name = args[:name] if args.key?(:name)
289
+ @token = args[:token] if args.key?(:token)
290
+ end
291
+ end
292
+
293
+ # An app's DeviceCheck configuration object. This configuration is used by
294
+ # ExchangeDeviceCheckToken to validate device tokens issued to apps by
295
+ # DeviceCheck. It also controls certain properties of the returned `
296
+ # AppCheckToken`, such as its ttl. Note that the Team ID registered with your
297
+ # app is used as part of the validation process. Please register it via the
298
+ # Firebase Console or programmatically via the [Firebase Management Service](
299
+ # https://firebase.google.com/docs/projects/api/reference/rest/v11/projects.
300
+ # iosApps/patch).
301
+ class GoogleFirebaseAppcheckV1DeviceCheckConfig
302
+ include Google::Apis::Core::Hashable
303
+
304
+ # Required. The key identifier of a private key enabled with DeviceCheck,
305
+ # created in your Apple Developer account.
306
+ # Corresponds to the JSON property `keyId`
307
+ # @return [String]
308
+ attr_accessor :key_id
309
+
310
+ # Required. The relative resource name of the DeviceCheck configuration object,
311
+ # in the format: ``` projects/`project_number`/apps/`app_id`/deviceCheckConfig ``
312
+ # `
313
+ # Corresponds to the JSON property `name`
314
+ # @return [String]
315
+ attr_accessor :name
316
+
317
+ # Required. Input only. The contents of the private key (`.p8`) file associated
318
+ # with the key specified by `key_id`. For security reasons, this field will
319
+ # never be populated in any response.
320
+ # Corresponds to the JSON property `privateKey`
321
+ # @return [String]
322
+ attr_accessor :private_key
323
+
324
+ # Output only. Whether the `private_key` field was previously set. Since we will
325
+ # never return the `private_key` field, this field is the only way to find out
326
+ # whether it was previously set.
327
+ # Corresponds to the JSON property `privateKeySet`
328
+ # @return [Boolean]
329
+ attr_accessor :private_key_set
330
+ alias_method :private_key_set?, :private_key_set
331
+
332
+ # Specifies the duration for which App Check tokens exchanged from DeviceCheck
333
+ # tokens will be valid. If unset, a default value of 1 hour is assumed. Must be
334
+ # between 30 minutes and 7 days, inclusive.
335
+ # Corresponds to the JSON property `tokenTtl`
336
+ # @return [String]
337
+ attr_accessor :token_ttl
338
+
339
+ def initialize(**args)
340
+ update!(**args)
341
+ end
342
+
343
+ # Update properties of this object
344
+ def update!(**args)
345
+ @key_id = args[:key_id] if args.key?(:key_id)
346
+ @name = args[:name] if args.key?(:name)
347
+ @private_key = args[:private_key] if args.key?(:private_key)
348
+ @private_key_set = args[:private_key_set] if args.key?(:private_key_set)
349
+ @token_ttl = args[:token_ttl] if args.key?(:token_ttl)
350
+ end
351
+ end
352
+
353
+ # Request message for the ExchangeAppAttestAssertion method.
354
+ class GoogleFirebaseAppcheckV1ExchangeAppAttestAssertionRequest
355
+ include Google::Apis::Core::Hashable
356
+
357
+ # Required. The artifact returned by a previous call to
358
+ # ExchangeAppAttestAttestation.
359
+ # Corresponds to the JSON property `artifact`
360
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
361
+ # @return [String]
362
+ attr_accessor :artifact
363
+
364
+ # Required. The CBOR-encoded assertion returned by the client-side App Attest
365
+ # API.
366
+ # Corresponds to the JSON property `assertion`
367
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
368
+ # @return [String]
369
+ attr_accessor :assertion
370
+
371
+ # Required. A one-time challenge returned by an immediately prior call to
372
+ # GenerateAppAttestChallenge.
373
+ # Corresponds to the JSON property `challenge`
374
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
375
+ # @return [String]
376
+ attr_accessor :challenge
377
+
378
+ def initialize(**args)
379
+ update!(**args)
380
+ end
381
+
382
+ # Update properties of this object
383
+ def update!(**args)
384
+ @artifact = args[:artifact] if args.key?(:artifact)
385
+ @assertion = args[:assertion] if args.key?(:assertion)
386
+ @challenge = args[:challenge] if args.key?(:challenge)
387
+ end
388
+ end
389
+
390
+ # Request message for the ExchangeAppAttestAttestation method.
391
+ class GoogleFirebaseAppcheckV1ExchangeAppAttestAttestationRequest
392
+ include Google::Apis::Core::Hashable
393
+
394
+ # Required. The App Attest statement returned by the client-side App Attest API.
395
+ # This is a base64url encoded CBOR object in the JSON response.
396
+ # Corresponds to the JSON property `attestationStatement`
397
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
398
+ # @return [String]
399
+ attr_accessor :attestation_statement
400
+
401
+ # Required. A one-time challenge returned by an immediately prior call to
402
+ # GenerateAppAttestChallenge.
403
+ # Corresponds to the JSON property `challenge`
404
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
405
+ # @return [String]
406
+ attr_accessor :challenge
407
+
408
+ # Required. The key ID generated by App Attest for the client app.
409
+ # Corresponds to the JSON property `keyId`
410
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
411
+ # @return [String]
412
+ attr_accessor :key_id
413
+
414
+ def initialize(**args)
415
+ update!(**args)
416
+ end
417
+
418
+ # Update properties of this object
419
+ def update!(**args)
420
+ @attestation_statement = args[:attestation_statement] if args.key?(:attestation_statement)
421
+ @challenge = args[:challenge] if args.key?(:challenge)
422
+ @key_id = args[:key_id] if args.key?(:key_id)
423
+ end
424
+ end
425
+
426
+ # Response message for the ExchangeAppAttestAttestation method.
427
+ class GoogleFirebaseAppcheckV1ExchangeAppAttestAttestationResponse
428
+ include Google::Apis::Core::Hashable
429
+
430
+ # Encapsulates an *App Check token*, which are used to access Firebase services
431
+ # protected by App Check.
432
+ # Corresponds to the JSON property `appCheckToken`
433
+ # @return [Google::Apis::FirebaseappcheckV1::GoogleFirebaseAppcheckV1AppCheckToken]
434
+ attr_accessor :app_check_token
435
+
436
+ # An artifact that can be used in future calls to ExchangeAppAttestAssertion.
437
+ # Corresponds to the JSON property `artifact`
438
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
439
+ # @return [String]
440
+ attr_accessor :artifact
441
+
442
+ def initialize(**args)
443
+ update!(**args)
444
+ end
445
+
446
+ # Update properties of this object
447
+ def update!(**args)
448
+ @app_check_token = args[:app_check_token] if args.key?(:app_check_token)
449
+ @artifact = args[:artifact] if args.key?(:artifact)
450
+ end
451
+ end
452
+
453
+ # Request message for the ExchangeCustomToken method.
454
+ class GoogleFirebaseAppcheckV1ExchangeCustomTokenRequest
455
+ include Google::Apis::Core::Hashable
456
+
457
+ # Required. A custom token signed using your project's Admin SDK service account
458
+ # credentials.
459
+ # Corresponds to the JSON property `customToken`
460
+ # @return [String]
461
+ attr_accessor :custom_token
462
+
463
+ def initialize(**args)
464
+ update!(**args)
465
+ end
466
+
467
+ # Update properties of this object
468
+ def update!(**args)
469
+ @custom_token = args[:custom_token] if args.key?(:custom_token)
470
+ end
471
+ end
472
+
473
+ # Request message for the ExchangeDebugToken method.
474
+ class GoogleFirebaseAppcheckV1ExchangeDebugTokenRequest
475
+ include Google::Apis::Core::Hashable
476
+
477
+ # Required. A debug token secret. This string must match a debug token secret
478
+ # previously created using CreateDebugToken.
479
+ # Corresponds to the JSON property `debugToken`
480
+ # @return [String]
481
+ attr_accessor :debug_token
482
+
483
+ def initialize(**args)
484
+ update!(**args)
485
+ end
486
+
487
+ # Update properties of this object
488
+ def update!(**args)
489
+ @debug_token = args[:debug_token] if args.key?(:debug_token)
490
+ end
491
+ end
492
+
493
+ # Request message for the ExchangeDeviceCheckToken method.
494
+ class GoogleFirebaseAppcheckV1ExchangeDeviceCheckTokenRequest
495
+ include Google::Apis::Core::Hashable
496
+
497
+ # Required. The `device_token` as returned by Apple's client-side [DeviceCheck
498
+ # API](https://developer.apple.com/documentation/devicecheck/dcdevice). This is
499
+ # the base64 encoded `Data` (Swift) or `NSData` (ObjC) object.
500
+ # Corresponds to the JSON property `deviceToken`
501
+ # @return [String]
502
+ attr_accessor :device_token
503
+
504
+ def initialize(**args)
505
+ update!(**args)
506
+ end
507
+
508
+ # Update properties of this object
509
+ def update!(**args)
510
+ @device_token = args[:device_token] if args.key?(:device_token)
511
+ end
512
+ end
513
+
514
+ # Request message for the ExchangePlayIntegrityToken method.
515
+ class GoogleFirebaseAppcheckV1ExchangePlayIntegrityTokenRequest
516
+ include Google::Apis::Core::Hashable
517
+
518
+ # Required. The [integrity verdict response token from Play Integrity](https://
519
+ # developer.android.com/google/play/integrity/verdict#decrypt-verify) issued to
520
+ # your app.
521
+ # Corresponds to the JSON property `playIntegrityToken`
522
+ # @return [String]
523
+ attr_accessor :play_integrity_token
524
+
525
+ def initialize(**args)
526
+ update!(**args)
527
+ end
528
+
529
+ # Update properties of this object
530
+ def update!(**args)
531
+ @play_integrity_token = args[:play_integrity_token] if args.key?(:play_integrity_token)
532
+ end
533
+ end
534
+
535
+ # Request message for the ExchangeRecaptchaEnterpriseToken method.
536
+ class GoogleFirebaseAppcheckV1ExchangeRecaptchaEnterpriseTokenRequest
537
+ include Google::Apis::Core::Hashable
538
+
539
+ # Required. The reCAPTCHA token as returned by the [reCAPTCHA Enterprise
540
+ # JavaScript API](https://cloud.google.com/recaptcha-enterprise/docs/instrument-
541
+ # web-pages).
542
+ # Corresponds to the JSON property `recaptchaEnterpriseToken`
543
+ # @return [String]
544
+ attr_accessor :recaptcha_enterprise_token
545
+
546
+ def initialize(**args)
547
+ update!(**args)
548
+ end
549
+
550
+ # Update properties of this object
551
+ def update!(**args)
552
+ @recaptcha_enterprise_token = args[:recaptcha_enterprise_token] if args.key?(:recaptcha_enterprise_token)
553
+ end
554
+ end
555
+
556
+ # Request message for the ExchangeRecaptchaV3Token method.
557
+ class GoogleFirebaseAppcheckV1ExchangeRecaptchaV3TokenRequest
558
+ include Google::Apis::Core::Hashable
559
+
560
+ # Required. The reCAPTCHA token as returned by the [reCAPTCHA v3 JavaScript API](
561
+ # https://developers.google.com/recaptcha/docs/v3).
562
+ # Corresponds to the JSON property `recaptchaV3Token`
563
+ # @return [String]
564
+ attr_accessor :recaptcha_v3_token
565
+
566
+ def initialize(**args)
567
+ update!(**args)
568
+ end
569
+
570
+ # Update properties of this object
571
+ def update!(**args)
572
+ @recaptcha_v3_token = args[:recaptcha_v3_token] if args.key?(:recaptcha_v3_token)
573
+ end
574
+ end
575
+
576
+ # Request message for the ExchangeSafetyNetToken method.
577
+ class GoogleFirebaseAppcheckV1ExchangeSafetyNetTokenRequest
578
+ include Google::Apis::Core::Hashable
579
+
580
+ # Required. The [SafetyNet attestation response](https://developer.android.com/
581
+ # training/safetynet/attestation#request-attestation-step) issued to your app.
582
+ # Corresponds to the JSON property `safetyNetToken`
583
+ # @return [String]
584
+ attr_accessor :safety_net_token
585
+
586
+ def initialize(**args)
587
+ update!(**args)
588
+ end
589
+
590
+ # Update properties of this object
591
+ def update!(**args)
592
+ @safety_net_token = args[:safety_net_token] if args.key?(:safety_net_token)
593
+ end
594
+ end
595
+
596
+ # Request message for the GenerateAppAttestChallenge method.
597
+ class GoogleFirebaseAppcheckV1GenerateAppAttestChallengeRequest
598
+ include Google::Apis::Core::Hashable
599
+
600
+ def initialize(**args)
601
+ update!(**args)
602
+ end
603
+
604
+ # Update properties of this object
605
+ def update!(**args)
606
+ end
607
+ end
608
+
609
+ # Response message for the GenerateAppAttestChallenge method.
610
+ class GoogleFirebaseAppcheckV1GenerateAppAttestChallengeResponse
611
+ include Google::Apis::Core::Hashable
612
+
613
+ # A one-time use challenge for the client to pass to the App Attest API.
614
+ # Corresponds to the JSON property `challenge`
615
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
616
+ # @return [String]
617
+ attr_accessor :challenge
618
+
619
+ # The duration from the time this challenge is minted until its expiration. This
620
+ # field is intended to ease client-side token management, since the client may
621
+ # have clock skew, but is still able to accurately measure a duration.
622
+ # Corresponds to the JSON property `ttl`
623
+ # @return [String]
624
+ attr_accessor :ttl
625
+
626
+ def initialize(**args)
627
+ update!(**args)
628
+ end
629
+
630
+ # Update properties of this object
631
+ def update!(**args)
632
+ @challenge = args[:challenge] if args.key?(:challenge)
633
+ @ttl = args[:ttl] if args.key?(:ttl)
634
+ end
635
+ end
636
+
637
+ # Request message for the GeneratePlayIntegrityChallenge method.
638
+ class GoogleFirebaseAppcheckV1GeneratePlayIntegrityChallengeRequest
639
+ include Google::Apis::Core::Hashable
640
+
641
+ def initialize(**args)
642
+ update!(**args)
643
+ end
644
+
645
+ # Update properties of this object
646
+ def update!(**args)
647
+ end
648
+ end
649
+
650
+ # Response message for the GeneratePlayIntegrityChallenge method.
651
+ class GoogleFirebaseAppcheckV1GeneratePlayIntegrityChallengeResponse
652
+ include Google::Apis::Core::Hashable
653
+
654
+ # A one-time use [challenge](https://developer.android.com/google/play/integrity/
655
+ # verdict#protect-against-replay-attacks) for the client to pass to the Play
656
+ # Integrity API.
657
+ # Corresponds to the JSON property `challenge`
658
+ # @return [String]
659
+ attr_accessor :challenge
660
+
661
+ # The duration from the time this challenge is minted until its expiration. This
662
+ # field is intended to ease client-side token management, since the client may
663
+ # have clock skew, but is still able to accurately measure a duration.
664
+ # Corresponds to the JSON property `ttl`
665
+ # @return [String]
666
+ attr_accessor :ttl
667
+
668
+ def initialize(**args)
669
+ update!(**args)
670
+ end
671
+
672
+ # Update properties of this object
673
+ def update!(**args)
674
+ @challenge = args[:challenge] if args.key?(:challenge)
675
+ @ttl = args[:ttl] if args.key?(:ttl)
676
+ end
677
+ end
678
+
679
+ # Response message for the ListDebugTokens method.
680
+ class GoogleFirebaseAppcheckV1ListDebugTokensResponse
681
+ include Google::Apis::Core::Hashable
682
+
683
+ # The DebugTokens retrieved.
684
+ # Corresponds to the JSON property `debugTokens`
685
+ # @return [Array<Google::Apis::FirebaseappcheckV1::GoogleFirebaseAppcheckV1DebugToken>]
686
+ attr_accessor :debug_tokens
687
+
688
+ # If the result list is too large to fit in a single response, then a token is
689
+ # returned. If the string is empty or omitted, then this response is the last
690
+ # page of results. This token can be used in a subsequent call to
691
+ # ListDebugTokens to find the next group of DebugTokens. Page tokens are short-
692
+ # lived and should not be persisted.
693
+ # Corresponds to the JSON property `nextPageToken`
694
+ # @return [String]
695
+ attr_accessor :next_page_token
696
+
697
+ def initialize(**args)
698
+ update!(**args)
699
+ end
700
+
701
+ # Update properties of this object
702
+ def update!(**args)
703
+ @debug_tokens = args[:debug_tokens] if args.key?(:debug_tokens)
704
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
705
+ end
706
+ end
707
+
708
+ # Response message for the ListServices method.
709
+ class GoogleFirebaseAppcheckV1ListServicesResponse
710
+ include Google::Apis::Core::Hashable
711
+
712
+ # If the result list is too large to fit in a single response, then a token is
713
+ # returned. If the string is empty or omitted, then this response is the last
714
+ # page of results. This token can be used in a subsequent call to ListServices
715
+ # to find the next group of Services. Page tokens are short-lived and should not
716
+ # be persisted.
717
+ # Corresponds to the JSON property `nextPageToken`
718
+ # @return [String]
719
+ attr_accessor :next_page_token
720
+
721
+ # The Services retrieved.
722
+ # Corresponds to the JSON property `services`
723
+ # @return [Array<Google::Apis::FirebaseappcheckV1::GoogleFirebaseAppcheckV1Service>]
724
+ attr_accessor :services
725
+
726
+ def initialize(**args)
727
+ update!(**args)
728
+ end
729
+
730
+ # Update properties of this object
731
+ def update!(**args)
732
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
733
+ @services = args[:services] if args.key?(:services)
734
+ end
735
+ end
736
+
737
+ # An app's Play Integrity configuration object. This configuration controls
738
+ # certain properties of the `AppCheckToken` returned by
739
+ # ExchangePlayIntegrityToken, such as its ttl. Note that your registered SHA-256
740
+ # certificate fingerprints are used to validate tokens issued by the Play
741
+ # Integrity API; please register them via the Firebase Console or
742
+ # programmatically via the [Firebase Management Service](https://firebase.google.
743
+ # com/docs/projects/api/reference/rest/v1beta1/projects.androidApps.sha/create).
744
+ class GoogleFirebaseAppcheckV1PlayIntegrityConfig
745
+ include Google::Apis::Core::Hashable
746
+
747
+ # Required. The relative resource name of the Play Integrity configuration
748
+ # object, in the format: ``` projects/`project_number`/apps/`app_id`/
749
+ # playIntegrityConfig ```
750
+ # Corresponds to the JSON property `name`
751
+ # @return [String]
752
+ attr_accessor :name
753
+
754
+ # Specifies the duration for which App Check tokens exchanged from Play
755
+ # Integrity tokens will be valid. If unset, a default value of 1 hour is assumed.
756
+ # Must be between 30 minutes and 7 days, inclusive.
757
+ # Corresponds to the JSON property `tokenTtl`
758
+ # @return [String]
759
+ attr_accessor :token_ttl
760
+
761
+ def initialize(**args)
762
+ update!(**args)
763
+ end
764
+
765
+ # Update properties of this object
766
+ def update!(**args)
767
+ @name = args[:name] if args.key?(:name)
768
+ @token_ttl = args[:token_ttl] if args.key?(:token_ttl)
769
+ end
770
+ end
771
+
772
+ # A JWK as specified by [section 4 of RFC 7517](https://tools.ietf.org/html/
773
+ # rfc7517#section-4) and [section 6.3.1 of RFC 7518](https://tools.ietf.org/html/
774
+ # rfc7518#section-6.3.1).
775
+ class GoogleFirebaseAppcheckV1PublicJwk
776
+ include Google::Apis::Core::Hashable
777
+
778
+ # See [section 4.4 of RFC 7517](https://tools.ietf.org/html/rfc7517#section-4.4).
779
+ # Corresponds to the JSON property `alg`
780
+ # @return [String]
781
+ attr_accessor :alg
782
+
783
+ # See [section 6.3.1.2 of RFC 7518](https://tools.ietf.org/html/rfc7518#section-
784
+ # 6.3.1.2).
785
+ # Corresponds to the JSON property `e`
786
+ # @return [String]
787
+ attr_accessor :e
788
+
789
+ # See [section 4.5 of RFC 7517](https://tools.ietf.org/html/rfc7517#section-4.5).
790
+ # Corresponds to the JSON property `kid`
791
+ # @return [String]
792
+ attr_accessor :kid
793
+
794
+ # See [section 4.1 of RFC 7517](https://tools.ietf.org/html/rfc7517#section-4.1).
795
+ # Corresponds to the JSON property `kty`
796
+ # @return [String]
797
+ attr_accessor :kty
798
+
799
+ # See [section 6.3.1.1 of RFC 7518](https://tools.ietf.org/html/rfc7518#section-
800
+ # 6.3.1.1).
801
+ # Corresponds to the JSON property `n`
802
+ # @return [String]
803
+ attr_accessor :n
804
+
805
+ # See [section 4.2 of RFC 7517](https://tools.ietf.org/html/rfc7517#section-4.2).
806
+ # Corresponds to the JSON property `use`
807
+ # @return [String]
808
+ attr_accessor :use
809
+
810
+ def initialize(**args)
811
+ update!(**args)
812
+ end
813
+
814
+ # Update properties of this object
815
+ def update!(**args)
816
+ @alg = args[:alg] if args.key?(:alg)
817
+ @e = args[:e] if args.key?(:e)
818
+ @kid = args[:kid] if args.key?(:kid)
819
+ @kty = args[:kty] if args.key?(:kty)
820
+ @n = args[:n] if args.key?(:n)
821
+ @use = args[:use] if args.key?(:use)
822
+ end
823
+ end
824
+
825
+ # The currently active set of public keys that can be used to verify App Check
826
+ # tokens. This object is a JWK set as specified by [section 5 of RFC 7517](https:
827
+ # //tools.ietf.org/html/rfc7517#section-5). For security, the response **must
828
+ # not** be cached for longer than six hours.
829
+ class GoogleFirebaseAppcheckV1PublicJwkSet
830
+ include Google::Apis::Core::Hashable
831
+
832
+ # The set of public keys. See [section 5.1 of RFC 7517](https://tools.ietf.org/
833
+ # html/rfc7517#section-5).
834
+ # Corresponds to the JSON property `keys`
835
+ # @return [Array<Google::Apis::FirebaseappcheckV1::GoogleFirebaseAppcheckV1PublicJwk>]
836
+ attr_accessor :keys
837
+
838
+ def initialize(**args)
839
+ update!(**args)
840
+ end
841
+
842
+ # Update properties of this object
843
+ def update!(**args)
844
+ @keys = args[:keys] if args.key?(:keys)
845
+ end
846
+ end
847
+
848
+ # An app's reCAPTCHA Enterprise configuration object. This configuration is used
849
+ # by ExchangeRecaptchaEnterpriseToken to validate reCAPTCHA tokens issued to
850
+ # apps by reCAPTCHA Enterprise. It also controls certain properties of the
851
+ # returned `AppCheckToken`, such as its ttl.
852
+ class GoogleFirebaseAppcheckV1RecaptchaEnterpriseConfig
853
+ include Google::Apis::Core::Hashable
854
+
855
+ # Required. The relative resource name of the reCAPTCHA Enterprise configuration
856
+ # object, in the format: ``` projects/`project_number`/apps/`app_id`/
857
+ # recaptchaEnterpriseConfig ```
858
+ # Corresponds to the JSON property `name`
859
+ # @return [String]
860
+ attr_accessor :name
861
+
862
+ # The score-based site key [created in reCAPTCHA Enterprise](https://cloud.
863
+ # google.com/recaptcha-enterprise/docs/create-key#creating_a_site_key) used to [
864
+ # invoke reCAPTCHA and generate the reCAPTCHA tokens](https://cloud.google.com/
865
+ # recaptcha-enterprise/docs/instrument-web-pages) for your application.
866
+ # Important: This is *not* the `site_secret` (as it is in reCAPTCHA v3), but
867
+ # rather your score-based reCAPTCHA Enterprise site key.
868
+ # Corresponds to the JSON property `siteKey`
869
+ # @return [String]
870
+ attr_accessor :site_key
871
+
872
+ # Specifies the duration for which App Check tokens exchanged from reCAPTCHA
873
+ # Enterprise tokens will be valid. If unset, a default value of 1 hour is
874
+ # assumed. Must be between 30 minutes and 7 days, inclusive.
875
+ # Corresponds to the JSON property `tokenTtl`
876
+ # @return [String]
877
+ attr_accessor :token_ttl
878
+
879
+ def initialize(**args)
880
+ update!(**args)
881
+ end
882
+
883
+ # Update properties of this object
884
+ def update!(**args)
885
+ @name = args[:name] if args.key?(:name)
886
+ @site_key = args[:site_key] if args.key?(:site_key)
887
+ @token_ttl = args[:token_ttl] if args.key?(:token_ttl)
888
+ end
889
+ end
890
+
891
+ # An app's reCAPTCHA v3 configuration object. This configuration is used by
892
+ # ExchangeRecaptchaV3Token to validate reCAPTCHA tokens issued to apps by
893
+ # reCAPTCHA v3. It also controls certain properties of the returned `
894
+ # AppCheckToken`, such as its ttl.
895
+ class GoogleFirebaseAppcheckV1RecaptchaV3Config
896
+ include Google::Apis::Core::Hashable
897
+
898
+ # Required. The relative resource name of the reCAPTCHA v3 configuration object,
899
+ # in the format: ``` projects/`project_number`/apps/`app_id`/recaptchaV3Config ``
900
+ # `
901
+ # Corresponds to the JSON property `name`
902
+ # @return [String]
903
+ attr_accessor :name
904
+
905
+ # Required. Input only. The site secret used to identify your service for
906
+ # reCAPTCHA v3 verification. For security reasons, this field will never be
907
+ # populated in any response.
908
+ # Corresponds to the JSON property `siteSecret`
909
+ # @return [String]
910
+ attr_accessor :site_secret
911
+
912
+ # Output only. Whether the `site_secret` field was previously set. Since we will
913
+ # never return the `site_secret` field, this field is the only way to find out
914
+ # whether it was previously set.
915
+ # Corresponds to the JSON property `siteSecretSet`
916
+ # @return [Boolean]
917
+ attr_accessor :site_secret_set
918
+ alias_method :site_secret_set?, :site_secret_set
919
+
920
+ # Specifies the duration for which App Check tokens exchanged from reCAPTCHA
921
+ # tokens will be valid. If unset, a default value of 1 day is assumed. Must be
922
+ # between 30 minutes and 7 days, inclusive.
923
+ # Corresponds to the JSON property `tokenTtl`
924
+ # @return [String]
925
+ attr_accessor :token_ttl
926
+
927
+ def initialize(**args)
928
+ update!(**args)
929
+ end
930
+
931
+ # Update properties of this object
932
+ def update!(**args)
933
+ @name = args[:name] if args.key?(:name)
934
+ @site_secret = args[:site_secret] if args.key?(:site_secret)
935
+ @site_secret_set = args[:site_secret_set] if args.key?(:site_secret_set)
936
+ @token_ttl = args[:token_ttl] if args.key?(:token_ttl)
937
+ end
938
+ end
939
+
940
+ # An app's SafetyNet configuration object. This configuration controls certain
941
+ # properties of the `AppCheckToken` returned by ExchangeSafetyNetToken, such as
942
+ # its ttl. Note that your registered SHA-256 certificate fingerprints are used
943
+ # to validate tokens issued by SafetyNet; please register them via the Firebase
944
+ # Console or programmatically via the [Firebase Management Service](https://
945
+ # firebase.google.com/docs/projects/api/reference/rest/v11/projects.androidApps.
946
+ # sha/create).
947
+ class GoogleFirebaseAppcheckV1SafetyNetConfig
948
+ include Google::Apis::Core::Hashable
949
+
950
+ # Required. The relative resource name of the SafetyNet configuration object, in
951
+ # the format: ``` projects/`project_number`/apps/`app_id`/safetyNetConfig ```
952
+ # Corresponds to the JSON property `name`
953
+ # @return [String]
954
+ attr_accessor :name
955
+
956
+ # Specifies the duration for which App Check tokens exchanged from SafetyNet
957
+ # tokens will be valid. If unset, a default value of 1 hour is assumed. Must be
958
+ # between 30 minutes and 7 days, inclusive.
959
+ # Corresponds to the JSON property `tokenTtl`
960
+ # @return [String]
961
+ attr_accessor :token_ttl
962
+
963
+ def initialize(**args)
964
+ update!(**args)
965
+ end
966
+
967
+ # Update properties of this object
968
+ def update!(**args)
969
+ @name = args[:name] if args.key?(:name)
970
+ @token_ttl = args[:token_ttl] if args.key?(:token_ttl)
971
+ end
972
+ end
973
+
974
+ # The enforcement configuration for a Firebase service supported by App Check.
975
+ class GoogleFirebaseAppcheckV1Service
976
+ include Google::Apis::Core::Hashable
977
+
978
+ # Required. The App Check enforcement mode for this service.
979
+ # Corresponds to the JSON property `enforcementMode`
980
+ # @return [String]
981
+ attr_accessor :enforcement_mode
982
+
983
+ # Required. The relative resource name of the service configuration object, in
984
+ # the format: ``` projects/`project_number`/services/`service_id` ``` Note that
985
+ # the `service_id` element must be a supported service ID. Currently, the
986
+ # following service IDs are supported: * `firebasestorage.googleapis.com` (Cloud
987
+ # Storage for Firebase) * `firebasedatabase.googleapis.com` (Firebase Realtime
988
+ # Database) * `firestore.googleapis.com` (Cloud Firestore)
989
+ # Corresponds to the JSON property `name`
990
+ # @return [String]
991
+ attr_accessor :name
992
+
993
+ def initialize(**args)
994
+ update!(**args)
995
+ end
996
+
997
+ # Update properties of this object
998
+ def update!(**args)
999
+ @enforcement_mode = args[:enforcement_mode] if args.key?(:enforcement_mode)
1000
+ @name = args[:name] if args.key?(:name)
1001
+ end
1002
+ end
1003
+
1004
+ # Request message for the UpdateService method as well as an individual update
1005
+ # message for the BatchUpdateServices method.
1006
+ class GoogleFirebaseAppcheckV1UpdateServiceRequest
1007
+ include Google::Apis::Core::Hashable
1008
+
1009
+ # The enforcement configuration for a Firebase service supported by App Check.
1010
+ # Corresponds to the JSON property `service`
1011
+ # @return [Google::Apis::FirebaseappcheckV1::GoogleFirebaseAppcheckV1Service]
1012
+ attr_accessor :service
1013
+
1014
+ # Required. A comma-separated list of names of fields in the Service to update.
1015
+ # Example: `enforcement_mode`.
1016
+ # Corresponds to the JSON property `updateMask`
1017
+ # @return [String]
1018
+ attr_accessor :update_mask
1019
+
1020
+ def initialize(**args)
1021
+ update!(**args)
1022
+ end
1023
+
1024
+ # Update properties of this object
1025
+ def update!(**args)
1026
+ @service = args[:service] if args.key?(:service)
1027
+ @update_mask = args[:update_mask] if args.key?(:update_mask)
1028
+ end
1029
+ end
1030
+
1031
+ # A generic empty message that you can re-use to avoid defining duplicated empty
1032
+ # messages in your APIs. A typical example is to use it as the request or the
1033
+ # response type of an API method. For instance: service Foo ` rpc Bar(google.
1034
+ # protobuf.Empty) returns (google.protobuf.Empty); `
1035
+ class GoogleProtobufEmpty
1036
+ include Google::Apis::Core::Hashable
1037
+
1038
+ def initialize(**args)
1039
+ update!(**args)
1040
+ end
1041
+
1042
+ # Update properties of this object
1043
+ def update!(**args)
1044
+ end
1045
+ end
24
1046
  end
25
1047
  end
26
1048
  end