google-apis-firebaseappcheck_v1 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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