google-apis-identitytoolkit_v2 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,2498 @@
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 IdentitytoolkitV2
24
+
25
+ # Configuration options related to authenticating an anonymous user.
26
+ class GoogleCloudIdentitytoolkitAdminV2Anonymous
27
+ include Google::Apis::Core::Hashable
28
+
29
+ # Whether anonymous user auth is enabled for the project or not.
30
+ # Corresponds to the JSON property `enabled`
31
+ # @return [Boolean]
32
+ attr_accessor :enabled
33
+ alias_method :enabled?, :enabled
34
+
35
+ def initialize(**args)
36
+ update!(**args)
37
+ end
38
+
39
+ # Update properties of this object
40
+ def update!(**args)
41
+ @enabled = args[:enabled] if args.key?(:enabled)
42
+ end
43
+ end
44
+
45
+ # Additional config for SignInWithApple.
46
+ class GoogleCloudIdentitytoolkitAdminV2AppleSignInConfig
47
+ include Google::Apis::Core::Hashable
48
+
49
+ # A list of Bundle ID's usable by this project
50
+ # Corresponds to the JSON property `bundleIds`
51
+ # @return [Array<String>]
52
+ attr_accessor :bundle_ids
53
+
54
+ # Additional config for Apple for code flow.
55
+ # Corresponds to the JSON property `codeFlowConfig`
56
+ # @return [Google::Apis::IdentitytoolkitV2::GoogleCloudIdentitytoolkitAdminV2CodeFlowConfig]
57
+ attr_accessor :code_flow_config
58
+
59
+ def initialize(**args)
60
+ update!(**args)
61
+ end
62
+
63
+ # Update properties of this object
64
+ def update!(**args)
65
+ @bundle_ids = args[:bundle_ids] if args.key?(:bundle_ids)
66
+ @code_flow_config = args[:code_flow_config] if args.key?(:code_flow_config)
67
+ end
68
+ end
69
+
70
+ # Configuration related to Blocking Functions.
71
+ class GoogleCloudIdentitytoolkitAdminV2BlockingFunctionsConfig
72
+ include Google::Apis::Core::Hashable
73
+
74
+ # Indicates which credentials to pass to the registered Blocking Functions.
75
+ # Corresponds to the JSON property `forwardInboundCredentials`
76
+ # @return [Google::Apis::IdentitytoolkitV2::GoogleCloudIdentitytoolkitAdminV2ForwardInboundCredentials]
77
+ attr_accessor :forward_inbound_credentials
78
+
79
+ # Map of Trigger to event type. Key should be one of the supported event types: "
80
+ # beforeCreate", "beforeSignIn"
81
+ # Corresponds to the JSON property `triggers`
82
+ # @return [Hash<String,Google::Apis::IdentitytoolkitV2::GoogleCloudIdentitytoolkitAdminV2Trigger>]
83
+ attr_accessor :triggers
84
+
85
+ def initialize(**args)
86
+ update!(**args)
87
+ end
88
+
89
+ # Update properties of this object
90
+ def update!(**args)
91
+ @forward_inbound_credentials = args[:forward_inbound_credentials] if args.key?(:forward_inbound_credentials)
92
+ @triggers = args[:triggers] if args.key?(:triggers)
93
+ end
94
+ end
95
+
96
+ # Options related to how clients making requests on behalf of a project should
97
+ # be configured.
98
+ class GoogleCloudIdentitytoolkitAdminV2ClientConfig
99
+ include Google::Apis::Core::Hashable
100
+
101
+ # Output only. API key that can be used when making requests for this project.
102
+ # Corresponds to the JSON property `apiKey`
103
+ # @return [String]
104
+ attr_accessor :api_key
105
+
106
+ # Output only. Firebase subdomain.
107
+ # Corresponds to the JSON property `firebaseSubdomain`
108
+ # @return [String]
109
+ attr_accessor :firebase_subdomain
110
+
111
+ # Configuration related to restricting a user's ability to affect their account.
112
+ # Corresponds to the JSON property `permissions`
113
+ # @return [Google::Apis::IdentitytoolkitV2::GoogleCloudIdentitytoolkitAdminV2Permissions]
114
+ attr_accessor :permissions
115
+
116
+ def initialize(**args)
117
+ update!(**args)
118
+ end
119
+
120
+ # Update properties of this object
121
+ def update!(**args)
122
+ @api_key = args[:api_key] if args.key?(:api_key)
123
+ @firebase_subdomain = args[:firebase_subdomain] if args.key?(:firebase_subdomain)
124
+ @permissions = args[:permissions] if args.key?(:permissions)
125
+ end
126
+ end
127
+
128
+ # Options related to how clients making requests on behalf of a tenant should be
129
+ # configured.
130
+ class GoogleCloudIdentitytoolkitAdminV2ClientPermissionConfig
131
+ include Google::Apis::Core::Hashable
132
+
133
+ # Configuration related to restricting a user's ability to affect their account.
134
+ # Corresponds to the JSON property `permissions`
135
+ # @return [Google::Apis::IdentitytoolkitV2::GoogleCloudIdentitytoolkitAdminV2ClientPermissions]
136
+ attr_accessor :permissions
137
+
138
+ def initialize(**args)
139
+ update!(**args)
140
+ end
141
+
142
+ # Update properties of this object
143
+ def update!(**args)
144
+ @permissions = args[:permissions] if args.key?(:permissions)
145
+ end
146
+ end
147
+
148
+ # Configuration related to restricting a user's ability to affect their account.
149
+ class GoogleCloudIdentitytoolkitAdminV2ClientPermissions
150
+ include Google::Apis::Core::Hashable
151
+
152
+ # When true, end users cannot delete their account on the associated project
153
+ # through any of our API methods
154
+ # Corresponds to the JSON property `disabledUserDeletion`
155
+ # @return [Boolean]
156
+ attr_accessor :disabled_user_deletion
157
+ alias_method :disabled_user_deletion?, :disabled_user_deletion
158
+
159
+ # When true, end users cannot sign up for a new account on the associated
160
+ # project through any of our API methods
161
+ # Corresponds to the JSON property `disabledUserSignup`
162
+ # @return [Boolean]
163
+ attr_accessor :disabled_user_signup
164
+ alias_method :disabled_user_signup?, :disabled_user_signup
165
+
166
+ def initialize(**args)
167
+ update!(**args)
168
+ end
169
+
170
+ # Update properties of this object
171
+ def update!(**args)
172
+ @disabled_user_deletion = args[:disabled_user_deletion] if args.key?(:disabled_user_deletion)
173
+ @disabled_user_signup = args[:disabled_user_signup] if args.key?(:disabled_user_signup)
174
+ end
175
+ end
176
+
177
+ # Additional config for Apple for code flow.
178
+ class GoogleCloudIdentitytoolkitAdminV2CodeFlowConfig
179
+ include Google::Apis::Core::Hashable
180
+
181
+ # Key ID for the private key.
182
+ # Corresponds to the JSON property `keyId`
183
+ # @return [String]
184
+ attr_accessor :key_id
185
+
186
+ # Private key used for signing the client secret JWT.
187
+ # Corresponds to the JSON property `privateKey`
188
+ # @return [String]
189
+ attr_accessor :private_key
190
+
191
+ # Apple Developer Team ID.
192
+ # Corresponds to the JSON property `teamId`
193
+ # @return [String]
194
+ attr_accessor :team_id
195
+
196
+ def initialize(**args)
197
+ update!(**args)
198
+ end
199
+
200
+ # Update properties of this object
201
+ def update!(**args)
202
+ @key_id = args[:key_id] if args.key?(:key_id)
203
+ @private_key = args[:private_key] if args.key?(:private_key)
204
+ @team_id = args[:team_id] if args.key?(:team_id)
205
+ end
206
+ end
207
+
208
+ # Represents an Identity Toolkit project.
209
+ class GoogleCloudIdentitytoolkitAdminV2Config
210
+ include Google::Apis::Core::Hashable
211
+
212
+ # List of domains authorized for OAuth redirects
213
+ # Corresponds to the JSON property `authorizedDomains`
214
+ # @return [Array<String>]
215
+ attr_accessor :authorized_domains
216
+
217
+ # Whether anonymous users will be auto-deleted after a period of 30 days.
218
+ # Corresponds to the JSON property `autodeleteAnonymousUsers`
219
+ # @return [Boolean]
220
+ attr_accessor :autodelete_anonymous_users
221
+ alias_method :autodelete_anonymous_users?, :autodelete_anonymous_users
222
+
223
+ # Configuration related to Blocking Functions.
224
+ # Corresponds to the JSON property `blockingFunctions`
225
+ # @return [Google::Apis::IdentitytoolkitV2::GoogleCloudIdentitytoolkitAdminV2BlockingFunctionsConfig]
226
+ attr_accessor :blocking_functions
227
+
228
+ # Options related to how clients making requests on behalf of a project should
229
+ # be configured.
230
+ # Corresponds to the JSON property `client`
231
+ # @return [Google::Apis::IdentitytoolkitV2::GoogleCloudIdentitytoolkitAdminV2ClientConfig]
232
+ attr_accessor :client
233
+
234
+ # Options related to MultiFactor Authentication for the project.
235
+ # Corresponds to the JSON property `mfa`
236
+ # @return [Google::Apis::IdentitytoolkitV2::GoogleCloudIdentitytoolkitAdminV2MultiFactorAuthConfig]
237
+ attr_accessor :mfa
238
+
239
+ # Configuration related to monitoring project activity.
240
+ # Corresponds to the JSON property `monitoring`
241
+ # @return [Google::Apis::IdentitytoolkitV2::GoogleCloudIdentitytoolkitAdminV2MonitoringConfig]
242
+ attr_accessor :monitoring
243
+
244
+ # Configuration related to multi-tenant functionality.
245
+ # Corresponds to the JSON property `multiTenant`
246
+ # @return [Google::Apis::IdentitytoolkitV2::GoogleCloudIdentitytoolkitAdminV2MultiTenantConfig]
247
+ attr_accessor :multi_tenant
248
+
249
+ # Output only. The name of the Config resource. Example: "projects/my-awesome-
250
+ # project/config"
251
+ # Corresponds to the JSON property `name`
252
+ # @return [String]
253
+ attr_accessor :name
254
+
255
+ # Configuration related to sending notifications to users.
256
+ # Corresponds to the JSON property `notification`
257
+ # @return [Google::Apis::IdentitytoolkitV2::GoogleCloudIdentitytoolkitAdminV2NotificationConfig]
258
+ attr_accessor :notification
259
+
260
+ # Configuration related to quotas.
261
+ # Corresponds to the JSON property `quota`
262
+ # @return [Google::Apis::IdentitytoolkitV2::GoogleCloudIdentitytoolkitAdminV2QuotaConfig]
263
+ attr_accessor :quota
264
+
265
+ # Configuration related to local sign in methods.
266
+ # Corresponds to the JSON property `signIn`
267
+ # @return [Google::Apis::IdentitytoolkitV2::GoogleCloudIdentitytoolkitAdminV2SignInConfig]
268
+ attr_accessor :sign_in
269
+
270
+ # Output only. The subtype of this config.
271
+ # Corresponds to the JSON property `subtype`
272
+ # @return [String]
273
+ attr_accessor :subtype
274
+
275
+ def initialize(**args)
276
+ update!(**args)
277
+ end
278
+
279
+ # Update properties of this object
280
+ def update!(**args)
281
+ @authorized_domains = args[:authorized_domains] if args.key?(:authorized_domains)
282
+ @autodelete_anonymous_users = args[:autodelete_anonymous_users] if args.key?(:autodelete_anonymous_users)
283
+ @blocking_functions = args[:blocking_functions] if args.key?(:blocking_functions)
284
+ @client = args[:client] if args.key?(:client)
285
+ @mfa = args[:mfa] if args.key?(:mfa)
286
+ @monitoring = args[:monitoring] if args.key?(:monitoring)
287
+ @multi_tenant = args[:multi_tenant] if args.key?(:multi_tenant)
288
+ @name = args[:name] if args.key?(:name)
289
+ @notification = args[:notification] if args.key?(:notification)
290
+ @quota = args[:quota] if args.key?(:quota)
291
+ @sign_in = args[:sign_in] if args.key?(:sign_in)
292
+ @subtype = args[:subtype] if args.key?(:subtype)
293
+ end
294
+ end
295
+
296
+ # Standard Identity Toolkit-trusted IDPs.
297
+ class GoogleCloudIdentitytoolkitAdminV2DefaultSupportedIdp
298
+ include Google::Apis::Core::Hashable
299
+
300
+ # Description of the Idp
301
+ # Corresponds to the JSON property `description`
302
+ # @return [String]
303
+ attr_accessor :description
304
+
305
+ # Id the of Idp
306
+ # Corresponds to the JSON property `idpId`
307
+ # @return [String]
308
+ attr_accessor :idp_id
309
+
310
+ def initialize(**args)
311
+ update!(**args)
312
+ end
313
+
314
+ # Update properties of this object
315
+ def update!(**args)
316
+ @description = args[:description] if args.key?(:description)
317
+ @idp_id = args[:idp_id] if args.key?(:idp_id)
318
+ end
319
+ end
320
+
321
+ # Configurations options for authenticating with a the standard set of Identity
322
+ # Toolkit-trusted IDPs.
323
+ class GoogleCloudIdentitytoolkitAdminV2DefaultSupportedIdpConfig
324
+ include Google::Apis::Core::Hashable
325
+
326
+ # Additional config for SignInWithApple.
327
+ # Corresponds to the JSON property `appleSignInConfig`
328
+ # @return [Google::Apis::IdentitytoolkitV2::GoogleCloudIdentitytoolkitAdminV2AppleSignInConfig]
329
+ attr_accessor :apple_sign_in_config
330
+
331
+ # OAuth client ID.
332
+ # Corresponds to the JSON property `clientId`
333
+ # @return [String]
334
+ attr_accessor :client_id
335
+
336
+ # OAuth client secret.
337
+ # Corresponds to the JSON property `clientSecret`
338
+ # @return [String]
339
+ attr_accessor :client_secret
340
+
341
+ # True if allows the user to sign in with the provider.
342
+ # Corresponds to the JSON property `enabled`
343
+ # @return [Boolean]
344
+ attr_accessor :enabled
345
+ alias_method :enabled?, :enabled
346
+
347
+ # The name of the DefaultSupportedIdpConfig resource, for example: "projects/my-
348
+ # awesome-project/defaultSupportedIdpConfigs/google.com"
349
+ # Corresponds to the JSON property `name`
350
+ # @return [String]
351
+ attr_accessor :name
352
+
353
+ def initialize(**args)
354
+ update!(**args)
355
+ end
356
+
357
+ # Update properties of this object
358
+ def update!(**args)
359
+ @apple_sign_in_config = args[:apple_sign_in_config] if args.key?(:apple_sign_in_config)
360
+ @client_id = args[:client_id] if args.key?(:client_id)
361
+ @client_secret = args[:client_secret] if args.key?(:client_secret)
362
+ @enabled = args[:enabled] if args.key?(:enabled)
363
+ @name = args[:name] if args.key?(:name)
364
+ end
365
+ end
366
+
367
+ # Information of custom domain DNS verification. By default, default_domain will
368
+ # be used. A custom domain can be configured using VerifyCustomDomain.
369
+ class GoogleCloudIdentitytoolkitAdminV2DnsInfo
370
+ include Google::Apis::Core::Hashable
371
+
372
+ # Output only. The applied verified custom domain.
373
+ # Corresponds to the JSON property `customDomain`
374
+ # @return [String]
375
+ attr_accessor :custom_domain
376
+
377
+ # Output only. The current verification state of the custom domain. The custom
378
+ # domain will only be used once the domain verification is successful.
379
+ # Corresponds to the JSON property `customDomainState`
380
+ # @return [String]
381
+ attr_accessor :custom_domain_state
382
+
383
+ # Output only. The timestamp of initial request for the current domain
384
+ # verification.
385
+ # Corresponds to the JSON property `domainVerificationRequestTime`
386
+ # @return [String]
387
+ attr_accessor :domain_verification_request_time
388
+
389
+ # Output only. The custom domain that's to be verified.
390
+ # Corresponds to the JSON property `pendingCustomDomain`
391
+ # @return [String]
392
+ attr_accessor :pending_custom_domain
393
+
394
+ # Whether to use custom domain.
395
+ # Corresponds to the JSON property `useCustomDomain`
396
+ # @return [Boolean]
397
+ attr_accessor :use_custom_domain
398
+ alias_method :use_custom_domain?, :use_custom_domain
399
+
400
+ def initialize(**args)
401
+ update!(**args)
402
+ end
403
+
404
+ # Update properties of this object
405
+ def update!(**args)
406
+ @custom_domain = args[:custom_domain] if args.key?(:custom_domain)
407
+ @custom_domain_state = args[:custom_domain_state] if args.key?(:custom_domain_state)
408
+ @domain_verification_request_time = args[:domain_verification_request_time] if args.key?(:domain_verification_request_time)
409
+ @pending_custom_domain = args[:pending_custom_domain] if args.key?(:pending_custom_domain)
410
+ @use_custom_domain = args[:use_custom_domain] if args.key?(:use_custom_domain)
411
+ end
412
+ end
413
+
414
+ # Configuration options related to authenticating a user by their email address.
415
+ class GoogleCloudIdentitytoolkitAdminV2Email
416
+ include Google::Apis::Core::Hashable
417
+
418
+ # Whether email auth is enabled for the project or not.
419
+ # Corresponds to the JSON property `enabled`
420
+ # @return [Boolean]
421
+ attr_accessor :enabled
422
+ alias_method :enabled?, :enabled
423
+
424
+ # Whether a password is required for email auth or not. If true, both an email
425
+ # and password must be provided to sign in. If false, a user may sign in via
426
+ # either email/password or email link.
427
+ # Corresponds to the JSON property `passwordRequired`
428
+ # @return [Boolean]
429
+ attr_accessor :password_required
430
+ alias_method :password_required?, :password_required
431
+
432
+ def initialize(**args)
433
+ update!(**args)
434
+ end
435
+
436
+ # Update properties of this object
437
+ def update!(**args)
438
+ @enabled = args[:enabled] if args.key?(:enabled)
439
+ @password_required = args[:password_required] if args.key?(:password_required)
440
+ end
441
+ end
442
+
443
+ # Email template. The subject and body fields can contain the following
444
+ # placeholders which will be replaced with the appropriate values: %LINK% - The
445
+ # link to use to redeem the send OOB code. %EMAIL% - The email where the email
446
+ # is being sent. %NEW_EMAIL% - The new email being set for the account (when
447
+ # applicable). %APP_NAME% - The GCP project's display name. %DISPLAY_NAME% - The
448
+ # user's display name.
449
+ class GoogleCloudIdentitytoolkitAdminV2EmailTemplate
450
+ include Google::Apis::Core::Hashable
451
+
452
+ # Email body
453
+ # Corresponds to the JSON property `body`
454
+ # @return [String]
455
+ attr_accessor :body
456
+
457
+ # Email body format
458
+ # Corresponds to the JSON property `bodyFormat`
459
+ # @return [String]
460
+ attr_accessor :body_format
461
+
462
+ # Output only. Whether the body or subject of the email is customized.
463
+ # Corresponds to the JSON property `customized`
464
+ # @return [Boolean]
465
+ attr_accessor :customized
466
+ alias_method :customized?, :customized
467
+
468
+ # Reply-to address
469
+ # Corresponds to the JSON property `replyTo`
470
+ # @return [String]
471
+ attr_accessor :reply_to
472
+
473
+ # Sender display name
474
+ # Corresponds to the JSON property `senderDisplayName`
475
+ # @return [String]
476
+ attr_accessor :sender_display_name
477
+
478
+ # Local part of From address
479
+ # Corresponds to the JSON property `senderLocalPart`
480
+ # @return [String]
481
+ attr_accessor :sender_local_part
482
+
483
+ # Subject of the email
484
+ # Corresponds to the JSON property `subject`
485
+ # @return [String]
486
+ attr_accessor :subject
487
+
488
+ def initialize(**args)
489
+ update!(**args)
490
+ end
491
+
492
+ # Update properties of this object
493
+ def update!(**args)
494
+ @body = args[:body] if args.key?(:body)
495
+ @body_format = args[:body_format] if args.key?(:body_format)
496
+ @customized = args[:customized] if args.key?(:customized)
497
+ @reply_to = args[:reply_to] if args.key?(:reply_to)
498
+ @sender_display_name = args[:sender_display_name] if args.key?(:sender_display_name)
499
+ @sender_local_part = args[:sender_local_part] if args.key?(:sender_local_part)
500
+ @subject = args[:subject] if args.key?(:subject)
501
+ end
502
+ end
503
+
504
+ # Indicates which credentials to pass to the registered Blocking Functions.
505
+ class GoogleCloudIdentitytoolkitAdminV2ForwardInboundCredentials
506
+ include Google::Apis::Core::Hashable
507
+
508
+ # Whether to pass the user's OAuth identity provider's access token.
509
+ # Corresponds to the JSON property `accessToken`
510
+ # @return [Boolean]
511
+ attr_accessor :access_token
512
+ alias_method :access_token?, :access_token
513
+
514
+ # Whether to pass the user's OIDC identity provider's ID token.
515
+ # Corresponds to the JSON property `idToken`
516
+ # @return [Boolean]
517
+ attr_accessor :id_token
518
+ alias_method :id_token?, :id_token
519
+
520
+ # Whether to pass the user's OAuth identity provider's refresh token.
521
+ # Corresponds to the JSON property `refreshToken`
522
+ # @return [Boolean]
523
+ attr_accessor :refresh_token
524
+ alias_method :refresh_token?, :refresh_token
525
+
526
+ def initialize(**args)
527
+ update!(**args)
528
+ end
529
+
530
+ # Update properties of this object
531
+ def update!(**args)
532
+ @access_token = args[:access_token] if args.key?(:access_token)
533
+ @id_token = args[:id_token] if args.key?(:id_token)
534
+ @refresh_token = args[:refresh_token] if args.key?(:refresh_token)
535
+ end
536
+ end
537
+
538
+ # History information of the hash algorithm and key. Different accounts'
539
+ # passwords may be generated by different version.
540
+ class GoogleCloudIdentitytoolkitAdminV2HashConfig
541
+ include Google::Apis::Core::Hashable
542
+
543
+ # Output only. Different password hash algorithms used in Identity Toolkit.
544
+ # Corresponds to the JSON property `algorithm`
545
+ # @return [String]
546
+ attr_accessor :algorithm
547
+
548
+ # Output only. Memory cost for hash calculation. Used by scrypt and other
549
+ # similar password derivation algorithms. See https://tools.ietf.org/html/
550
+ # rfc7914 for explanation of field.
551
+ # Corresponds to the JSON property `memoryCost`
552
+ # @return [Fixnum]
553
+ attr_accessor :memory_cost
554
+
555
+ # Output only. How many rounds for hash calculation. Used by scrypt and other
556
+ # similar password derivation algorithms.
557
+ # Corresponds to the JSON property `rounds`
558
+ # @return [Fixnum]
559
+ attr_accessor :rounds
560
+
561
+ # Output only. Non-printable character to be inserted between the salt and plain
562
+ # text password in base64.
563
+ # Corresponds to the JSON property `saltSeparator`
564
+ # @return [String]
565
+ attr_accessor :salt_separator
566
+
567
+ # Output only. Signer key in base64.
568
+ # Corresponds to the JSON property `signerKey`
569
+ # @return [String]
570
+ attr_accessor :signer_key
571
+
572
+ def initialize(**args)
573
+ update!(**args)
574
+ end
575
+
576
+ # Update properties of this object
577
+ def update!(**args)
578
+ @algorithm = args[:algorithm] if args.key?(:algorithm)
579
+ @memory_cost = args[:memory_cost] if args.key?(:memory_cost)
580
+ @rounds = args[:rounds] if args.key?(:rounds)
581
+ @salt_separator = args[:salt_separator] if args.key?(:salt_separator)
582
+ @signer_key = args[:signer_key] if args.key?(:signer_key)
583
+ end
584
+ end
585
+
586
+ # The IDP's certificate data to verify the signature in the SAMLResponse issued
587
+ # by the IDP.
588
+ class GoogleCloudIdentitytoolkitAdminV2IdpCertificate
589
+ include Google::Apis::Core::Hashable
590
+
591
+ # The x509 certificate
592
+ # Corresponds to the JSON property `x509Certificate`
593
+ # @return [String]
594
+ attr_accessor :x509_certificate
595
+
596
+ def initialize(**args)
597
+ update!(**args)
598
+ end
599
+
600
+ # Update properties of this object
601
+ def update!(**args)
602
+ @x509_certificate = args[:x509_certificate] if args.key?(:x509_certificate)
603
+ end
604
+ end
605
+
606
+ # The SAML IdP (Identity Provider) configuration when the project acts as the
607
+ # relying party.
608
+ class GoogleCloudIdentitytoolkitAdminV2IdpConfig
609
+ include Google::Apis::Core::Hashable
610
+
611
+ # IDP's public keys for verifying signature in the assertions.
612
+ # Corresponds to the JSON property `idpCertificates`
613
+ # @return [Array<Google::Apis::IdentitytoolkitV2::GoogleCloudIdentitytoolkitAdminV2IdpCertificate>]
614
+ attr_accessor :idp_certificates
615
+
616
+ # Unique identifier for all SAML entities.
617
+ # Corresponds to the JSON property `idpEntityId`
618
+ # @return [String]
619
+ attr_accessor :idp_entity_id
620
+
621
+ # Indicates if outbounding SAMLRequest should be signed.
622
+ # Corresponds to the JSON property `signRequest`
623
+ # @return [Boolean]
624
+ attr_accessor :sign_request
625
+ alias_method :sign_request?, :sign_request
626
+
627
+ # URL to send Authentication request to.
628
+ # Corresponds to the JSON property `ssoUrl`
629
+ # @return [String]
630
+ attr_accessor :sso_url
631
+
632
+ def initialize(**args)
633
+ update!(**args)
634
+ end
635
+
636
+ # Update properties of this object
637
+ def update!(**args)
638
+ @idp_certificates = args[:idp_certificates] if args.key?(:idp_certificates)
639
+ @idp_entity_id = args[:idp_entity_id] if args.key?(:idp_entity_id)
640
+ @sign_request = args[:sign_request] if args.key?(:sign_request)
641
+ @sso_url = args[:sso_url] if args.key?(:sso_url)
642
+ end
643
+ end
644
+
645
+ # A pair of SAML RP-IDP configurations when the project acts as the relying
646
+ # party.
647
+ class GoogleCloudIdentitytoolkitAdminV2InboundSamlConfig
648
+ include Google::Apis::Core::Hashable
649
+
650
+ # The config's display name set by developers.
651
+ # Corresponds to the JSON property `displayName`
652
+ # @return [String]
653
+ attr_accessor :display_name
654
+
655
+ # True if allows the user to sign in with the provider.
656
+ # Corresponds to the JSON property `enabled`
657
+ # @return [Boolean]
658
+ attr_accessor :enabled
659
+ alias_method :enabled?, :enabled
660
+
661
+ # The SAML IdP (Identity Provider) configuration when the project acts as the
662
+ # relying party.
663
+ # Corresponds to the JSON property `idpConfig`
664
+ # @return [Google::Apis::IdentitytoolkitV2::GoogleCloudIdentitytoolkitAdminV2IdpConfig]
665
+ attr_accessor :idp_config
666
+
667
+ # The name of the InboundSamlConfig resource, for example: 'projects/my-awesome-
668
+ # project/inboundSamlConfigs/my-config-id'. Ignored during create requests.
669
+ # Corresponds to the JSON property `name`
670
+ # @return [String]
671
+ attr_accessor :name
672
+
673
+ # The SAML SP (Service Provider) configuration when the project acts as the
674
+ # relying party to receive and accept an authentication assertion issued by a
675
+ # SAML identity provider.
676
+ # Corresponds to the JSON property `spConfig`
677
+ # @return [Google::Apis::IdentitytoolkitV2::GoogleCloudIdentitytoolkitAdminV2SpConfig]
678
+ attr_accessor :sp_config
679
+
680
+ def initialize(**args)
681
+ update!(**args)
682
+ end
683
+
684
+ # Update properties of this object
685
+ def update!(**args)
686
+ @display_name = args[:display_name] if args.key?(:display_name)
687
+ @enabled = args[:enabled] if args.key?(:enabled)
688
+ @idp_config = args[:idp_config] if args.key?(:idp_config)
689
+ @name = args[:name] if args.key?(:name)
690
+ @sp_config = args[:sp_config] if args.key?(:sp_config)
691
+ end
692
+ end
693
+
694
+ # Settings that the tenants will inherit from project level.
695
+ class GoogleCloudIdentitytoolkitAdminV2Inheritance
696
+ include Google::Apis::Core::Hashable
697
+
698
+ # Whether to allow the tenant to inherit custom domains, email templates, and
699
+ # custom SMTP settings. If true, email sent from tenant will follow the project
700
+ # level email sending configurations. If false (by default), emails will go with
701
+ # the default settings with no customizations.
702
+ # Corresponds to the JSON property `emailSendingConfig`
703
+ # @return [Boolean]
704
+ attr_accessor :email_sending_config
705
+ alias_method :email_sending_config?, :email_sending_config
706
+
707
+ def initialize(**args)
708
+ update!(**args)
709
+ end
710
+
711
+ # Update properties of this object
712
+ def update!(**args)
713
+ @email_sending_config = args[:email_sending_config] if args.key?(:email_sending_config)
714
+ end
715
+ end
716
+
717
+ # Response for DefaultSupportedIdpConfigs
718
+ class GoogleCloudIdentitytoolkitAdminV2ListDefaultSupportedIdpConfigsResponse
719
+ include Google::Apis::Core::Hashable
720
+
721
+ # The set of configs.
722
+ # Corresponds to the JSON property `defaultSupportedIdpConfigs`
723
+ # @return [Array<Google::Apis::IdentitytoolkitV2::GoogleCloudIdentitytoolkitAdminV2DefaultSupportedIdpConfig>]
724
+ attr_accessor :default_supported_idp_configs
725
+
726
+ # Token to retrieve the next page of results, or empty if there are no more
727
+ # results in the list.
728
+ # Corresponds to the JSON property `nextPageToken`
729
+ # @return [String]
730
+ attr_accessor :next_page_token
731
+
732
+ def initialize(**args)
733
+ update!(**args)
734
+ end
735
+
736
+ # Update properties of this object
737
+ def update!(**args)
738
+ @default_supported_idp_configs = args[:default_supported_idp_configs] if args.key?(:default_supported_idp_configs)
739
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
740
+ end
741
+ end
742
+
743
+ # Response for ListDefaultSupportedIdps
744
+ class GoogleCloudIdentitytoolkitAdminV2ListDefaultSupportedIdpsResponse
745
+ include Google::Apis::Core::Hashable
746
+
747
+ # The set of configs.
748
+ # Corresponds to the JSON property `defaultSupportedIdps`
749
+ # @return [Array<Google::Apis::IdentitytoolkitV2::GoogleCloudIdentitytoolkitAdminV2DefaultSupportedIdp>]
750
+ attr_accessor :default_supported_idps
751
+
752
+ # Token to retrieve the next page of results, or empty if there are no more
753
+ # results in the list.
754
+ # Corresponds to the JSON property `nextPageToken`
755
+ # @return [String]
756
+ attr_accessor :next_page_token
757
+
758
+ def initialize(**args)
759
+ update!(**args)
760
+ end
761
+
762
+ # Update properties of this object
763
+ def update!(**args)
764
+ @default_supported_idps = args[:default_supported_idps] if args.key?(:default_supported_idps)
765
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
766
+ end
767
+ end
768
+
769
+ # Response for ListInboundSamlConfigs
770
+ class GoogleCloudIdentitytoolkitAdminV2ListInboundSamlConfigsResponse
771
+ include Google::Apis::Core::Hashable
772
+
773
+ # The set of configs.
774
+ # Corresponds to the JSON property `inboundSamlConfigs`
775
+ # @return [Array<Google::Apis::IdentitytoolkitV2::GoogleCloudIdentitytoolkitAdminV2InboundSamlConfig>]
776
+ attr_accessor :inbound_saml_configs
777
+
778
+ # Token to retrieve the next page of results, or empty if there are no more
779
+ # results in the list.
780
+ # Corresponds to the JSON property `nextPageToken`
781
+ # @return [String]
782
+ attr_accessor :next_page_token
783
+
784
+ def initialize(**args)
785
+ update!(**args)
786
+ end
787
+
788
+ # Update properties of this object
789
+ def update!(**args)
790
+ @inbound_saml_configs = args[:inbound_saml_configs] if args.key?(:inbound_saml_configs)
791
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
792
+ end
793
+ end
794
+
795
+ # Response for ListOAuthIdpConfigs
796
+ class GoogleCloudIdentitytoolkitAdminV2ListOAuthIdpConfigsResponse
797
+ include Google::Apis::Core::Hashable
798
+
799
+ # Token to retrieve the next page of results, or empty if there are no more
800
+ # results in the list.
801
+ # Corresponds to the JSON property `nextPageToken`
802
+ # @return [String]
803
+ attr_accessor :next_page_token
804
+
805
+ # The set of configs.
806
+ # Corresponds to the JSON property `oauthIdpConfigs`
807
+ # @return [Array<Google::Apis::IdentitytoolkitV2::GoogleCloudIdentitytoolkitAdminV2OAuthIdpConfig>]
808
+ attr_accessor :oauth_idp_configs
809
+
810
+ def initialize(**args)
811
+ update!(**args)
812
+ end
813
+
814
+ # Update properties of this object
815
+ def update!(**args)
816
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
817
+ @oauth_idp_configs = args[:oauth_idp_configs] if args.key?(:oauth_idp_configs)
818
+ end
819
+ end
820
+
821
+ # Response message for ListTenants.
822
+ class GoogleCloudIdentitytoolkitAdminV2ListTenantsResponse
823
+ include Google::Apis::Core::Hashable
824
+
825
+ # The token to get the next page of results.
826
+ # Corresponds to the JSON property `nextPageToken`
827
+ # @return [String]
828
+ attr_accessor :next_page_token
829
+
830
+ # A list of tenants under the given agent project.
831
+ # Corresponds to the JSON property `tenants`
832
+ # @return [Array<Google::Apis::IdentitytoolkitV2::GoogleCloudIdentitytoolkitAdminV2Tenant>]
833
+ attr_accessor :tenants
834
+
835
+ def initialize(**args)
836
+ update!(**args)
837
+ end
838
+
839
+ # Update properties of this object
840
+ def update!(**args)
841
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
842
+ @tenants = args[:tenants] if args.key?(:tenants)
843
+ end
844
+ end
845
+
846
+ # Configuration related to monitoring project activity.
847
+ class GoogleCloudIdentitytoolkitAdminV2MonitoringConfig
848
+ include Google::Apis::Core::Hashable
849
+
850
+ # Configuration for logging requests made to this project to Stackdriver Logging
851
+ # Corresponds to the JSON property `requestLogging`
852
+ # @return [Google::Apis::IdentitytoolkitV2::GoogleCloudIdentitytoolkitAdminV2RequestLogging]
853
+ attr_accessor :request_logging
854
+
855
+ def initialize(**args)
856
+ update!(**args)
857
+ end
858
+
859
+ # Update properties of this object
860
+ def update!(**args)
861
+ @request_logging = args[:request_logging] if args.key?(:request_logging)
862
+ end
863
+ end
864
+
865
+ # Options related to MultiFactor Authentication for the project.
866
+ class GoogleCloudIdentitytoolkitAdminV2MultiFactorAuthConfig
867
+ include Google::Apis::Core::Hashable
868
+
869
+ # A list of usable second factors for this project.
870
+ # Corresponds to the JSON property `enabledProviders`
871
+ # @return [Array<String>]
872
+ attr_accessor :enabled_providers
873
+
874
+ # Whether MultiFactor Authentication has been enabled for this project.
875
+ # Corresponds to the JSON property `state`
876
+ # @return [String]
877
+ attr_accessor :state
878
+
879
+ def initialize(**args)
880
+ update!(**args)
881
+ end
882
+
883
+ # Update properties of this object
884
+ def update!(**args)
885
+ @enabled_providers = args[:enabled_providers] if args.key?(:enabled_providers)
886
+ @state = args[:state] if args.key?(:state)
887
+ end
888
+ end
889
+
890
+ # Configuration related to multi-tenant functionality.
891
+ class GoogleCloudIdentitytoolkitAdminV2MultiTenantConfig
892
+ include Google::Apis::Core::Hashable
893
+
894
+ # Whether this project can have tenants or not.
895
+ # Corresponds to the JSON property `allowTenants`
896
+ # @return [Boolean]
897
+ attr_accessor :allow_tenants
898
+ alias_method :allow_tenants?, :allow_tenants
899
+
900
+ # The default cloud parent org or folder that the tenant project should be
901
+ # created under. The parent resource name should be in the format of "/", such
902
+ # as "folders/123" or "organizations/456". If the value is not set, the tenant
903
+ # will be created under the same organization or folder as the agent project.
904
+ # Corresponds to the JSON property `defaultTenantLocation`
905
+ # @return [String]
906
+ attr_accessor :default_tenant_location
907
+
908
+ def initialize(**args)
909
+ update!(**args)
910
+ end
911
+
912
+ # Update properties of this object
913
+ def update!(**args)
914
+ @allow_tenants = args[:allow_tenants] if args.key?(:allow_tenants)
915
+ @default_tenant_location = args[:default_tenant_location] if args.key?(:default_tenant_location)
916
+ end
917
+ end
918
+
919
+ # Configuration related to sending notifications to users.
920
+ class GoogleCloudIdentitytoolkitAdminV2NotificationConfig
921
+ include Google::Apis::Core::Hashable
922
+
923
+ # Default locale used for email and SMS in IETF BCP 47 format.
924
+ # Corresponds to the JSON property `defaultLocale`
925
+ # @return [String]
926
+ attr_accessor :default_locale
927
+
928
+ # Options for email sending.
929
+ # Corresponds to the JSON property `sendEmail`
930
+ # @return [Google::Apis::IdentitytoolkitV2::GoogleCloudIdentitytoolkitAdminV2SendEmail]
931
+ attr_accessor :send_email
932
+
933
+ # Options for SMS sending.
934
+ # Corresponds to the JSON property `sendSms`
935
+ # @return [Google::Apis::IdentitytoolkitV2::GoogleCloudIdentitytoolkitAdminV2SendSms]
936
+ attr_accessor :send_sms
937
+
938
+ def initialize(**args)
939
+ update!(**args)
940
+ end
941
+
942
+ # Update properties of this object
943
+ def update!(**args)
944
+ @default_locale = args[:default_locale] if args.key?(:default_locale)
945
+ @send_email = args[:send_email] if args.key?(:send_email)
946
+ @send_sms = args[:send_sms] if args.key?(:send_sms)
947
+ end
948
+ end
949
+
950
+ # Configuration options for authenticating with an OAuth IDP.
951
+ class GoogleCloudIdentitytoolkitAdminV2OAuthIdpConfig
952
+ include Google::Apis::Core::Hashable
953
+
954
+ # The client id of an OAuth client.
955
+ # Corresponds to the JSON property `clientId`
956
+ # @return [String]
957
+ attr_accessor :client_id
958
+
959
+ # The client secret of the OAuth client, to enable OIDC code flow.
960
+ # Corresponds to the JSON property `clientSecret`
961
+ # @return [String]
962
+ attr_accessor :client_secret
963
+
964
+ # The config's display name set by developers.
965
+ # Corresponds to the JSON property `displayName`
966
+ # @return [String]
967
+ attr_accessor :display_name
968
+
969
+ # True if allows the user to sign in with the provider.
970
+ # Corresponds to the JSON property `enabled`
971
+ # @return [Boolean]
972
+ attr_accessor :enabled
973
+ alias_method :enabled?, :enabled
974
+
975
+ # For OIDC Idps, the issuer identifier.
976
+ # Corresponds to the JSON property `issuer`
977
+ # @return [String]
978
+ attr_accessor :issuer
979
+
980
+ # The name of the OAuthIdpConfig resource, for example: 'projects/my-awesome-
981
+ # project/oauthIdpConfigs/oauth-config-id'. Ignored during create requests.
982
+ # Corresponds to the JSON property `name`
983
+ # @return [String]
984
+ attr_accessor :name
985
+
986
+ # The response type to request for in the OAuth authorization flow. You can set
987
+ # either `id_token` or `code` to true, but not both. Setting both types to be
988
+ # simultaneously true (``code: true, id_token: true``) is not yet supported. See
989
+ # https://openid.net/specs/openid-connect-core-1_0.html#Authentication for a
990
+ # mapping of response type to OAuth 2.0 flow.
991
+ # Corresponds to the JSON property `responseType`
992
+ # @return [Google::Apis::IdentitytoolkitV2::GoogleCloudIdentitytoolkitAdminV2OAuthResponseType]
993
+ attr_accessor :response_type
994
+
995
+ def initialize(**args)
996
+ update!(**args)
997
+ end
998
+
999
+ # Update properties of this object
1000
+ def update!(**args)
1001
+ @client_id = args[:client_id] if args.key?(:client_id)
1002
+ @client_secret = args[:client_secret] if args.key?(:client_secret)
1003
+ @display_name = args[:display_name] if args.key?(:display_name)
1004
+ @enabled = args[:enabled] if args.key?(:enabled)
1005
+ @issuer = args[:issuer] if args.key?(:issuer)
1006
+ @name = args[:name] if args.key?(:name)
1007
+ @response_type = args[:response_type] if args.key?(:response_type)
1008
+ end
1009
+ end
1010
+
1011
+ # The response type to request for in the OAuth authorization flow. You can set
1012
+ # either `id_token` or `code` to true, but not both. Setting both types to be
1013
+ # simultaneously true (``code: true, id_token: true``) is not yet supported. See
1014
+ # https://openid.net/specs/openid-connect-core-1_0.html#Authentication for a
1015
+ # mapping of response type to OAuth 2.0 flow.
1016
+ class GoogleCloudIdentitytoolkitAdminV2OAuthResponseType
1017
+ include Google::Apis::Core::Hashable
1018
+
1019
+ # If true, authorization code is returned from IdP's authorization endpoint.
1020
+ # Corresponds to the JSON property `code`
1021
+ # @return [Boolean]
1022
+ attr_accessor :code
1023
+ alias_method :code?, :code
1024
+
1025
+ # If true, ID token is returned from IdP's authorization endpoint.
1026
+ # Corresponds to the JSON property `idToken`
1027
+ # @return [Boolean]
1028
+ attr_accessor :id_token
1029
+ alias_method :id_token?, :id_token
1030
+
1031
+ # Do not use. The `token` response type is not supported at the moment.
1032
+ # Corresponds to the JSON property `token`
1033
+ # @return [Boolean]
1034
+ attr_accessor :token
1035
+ alias_method :token?, :token
1036
+
1037
+ def initialize(**args)
1038
+ update!(**args)
1039
+ end
1040
+
1041
+ # Update properties of this object
1042
+ def update!(**args)
1043
+ @code = args[:code] if args.key?(:code)
1044
+ @id_token = args[:id_token] if args.key?(:id_token)
1045
+ @token = args[:token] if args.key?(:token)
1046
+ end
1047
+ end
1048
+
1049
+ # Configuration related to restricting a user's ability to affect their account.
1050
+ class GoogleCloudIdentitytoolkitAdminV2Permissions
1051
+ include Google::Apis::Core::Hashable
1052
+
1053
+ # When true, end users cannot delete their account on the associated project
1054
+ # through any of our API methods
1055
+ # Corresponds to the JSON property `disabledUserDeletion`
1056
+ # @return [Boolean]
1057
+ attr_accessor :disabled_user_deletion
1058
+ alias_method :disabled_user_deletion?, :disabled_user_deletion
1059
+
1060
+ # When true, end users cannot sign up for a new account on the associated
1061
+ # project through any of our API methods
1062
+ # Corresponds to the JSON property `disabledUserSignup`
1063
+ # @return [Boolean]
1064
+ attr_accessor :disabled_user_signup
1065
+ alias_method :disabled_user_signup?, :disabled_user_signup
1066
+
1067
+ def initialize(**args)
1068
+ update!(**args)
1069
+ end
1070
+
1071
+ # Update properties of this object
1072
+ def update!(**args)
1073
+ @disabled_user_deletion = args[:disabled_user_deletion] if args.key?(:disabled_user_deletion)
1074
+ @disabled_user_signup = args[:disabled_user_signup] if args.key?(:disabled_user_signup)
1075
+ end
1076
+ end
1077
+
1078
+ # Configuration options related to authenticated a user by their phone number.
1079
+ class GoogleCloudIdentitytoolkitAdminV2PhoneNumber
1080
+ include Google::Apis::Core::Hashable
1081
+
1082
+ # Whether phone number auth is enabled for the project or not.
1083
+ # Corresponds to the JSON property `enabled`
1084
+ # @return [Boolean]
1085
+ attr_accessor :enabled
1086
+ alias_method :enabled?, :enabled
1087
+
1088
+ # A map of that can be used for phone auth testing.
1089
+ # Corresponds to the JSON property `testPhoneNumbers`
1090
+ # @return [Hash<String,String>]
1091
+ attr_accessor :test_phone_numbers
1092
+
1093
+ def initialize(**args)
1094
+ update!(**args)
1095
+ end
1096
+
1097
+ # Update properties of this object
1098
+ def update!(**args)
1099
+ @enabled = args[:enabled] if args.key?(:enabled)
1100
+ @test_phone_numbers = args[:test_phone_numbers] if args.key?(:test_phone_numbers)
1101
+ end
1102
+ end
1103
+
1104
+ # Configuration related to quotas.
1105
+ class GoogleCloudIdentitytoolkitAdminV2QuotaConfig
1106
+ include Google::Apis::Core::Hashable
1107
+
1108
+ # Temporary quota increase / decrease
1109
+ # Corresponds to the JSON property `signUpQuotaConfig`
1110
+ # @return [Google::Apis::IdentitytoolkitV2::GoogleCloudIdentitytoolkitAdminV2TemporaryQuota]
1111
+ attr_accessor :sign_up_quota_config
1112
+
1113
+ def initialize(**args)
1114
+ update!(**args)
1115
+ end
1116
+
1117
+ # Update properties of this object
1118
+ def update!(**args)
1119
+ @sign_up_quota_config = args[:sign_up_quota_config] if args.key?(:sign_up_quota_config)
1120
+ end
1121
+ end
1122
+
1123
+ # Configuration for logging requests made to this project to Stackdriver Logging
1124
+ class GoogleCloudIdentitytoolkitAdminV2RequestLogging
1125
+ include Google::Apis::Core::Hashable
1126
+
1127
+ # Whether logging is enabled for this project or not.
1128
+ # Corresponds to the JSON property `enabled`
1129
+ # @return [Boolean]
1130
+ attr_accessor :enabled
1131
+ alias_method :enabled?, :enabled
1132
+
1133
+ def initialize(**args)
1134
+ update!(**args)
1135
+ end
1136
+
1137
+ # Update properties of this object
1138
+ def update!(**args)
1139
+ @enabled = args[:enabled] if args.key?(:enabled)
1140
+ end
1141
+ end
1142
+
1143
+ # Options for email sending.
1144
+ class GoogleCloudIdentitytoolkitAdminV2SendEmail
1145
+ include Google::Apis::Core::Hashable
1146
+
1147
+ # action url in email template.
1148
+ # Corresponds to the JSON property `callbackUri`
1149
+ # @return [String]
1150
+ attr_accessor :callback_uri
1151
+
1152
+ # Email template. The subject and body fields can contain the following
1153
+ # placeholders which will be replaced with the appropriate values: %LINK% - The
1154
+ # link to use to redeem the send OOB code. %EMAIL% - The email where the email
1155
+ # is being sent. %NEW_EMAIL% - The new email being set for the account (when
1156
+ # applicable). %APP_NAME% - The GCP project's display name. %DISPLAY_NAME% - The
1157
+ # user's display name.
1158
+ # Corresponds to the JSON property `changeEmailTemplate`
1159
+ # @return [Google::Apis::IdentitytoolkitV2::GoogleCloudIdentitytoolkitAdminV2EmailTemplate]
1160
+ attr_accessor :change_email_template
1161
+
1162
+ # Information of custom domain DNS verification. By default, default_domain will
1163
+ # be used. A custom domain can be configured using VerifyCustomDomain.
1164
+ # Corresponds to the JSON property `dnsInfo`
1165
+ # @return [Google::Apis::IdentitytoolkitV2::GoogleCloudIdentitytoolkitAdminV2DnsInfo]
1166
+ attr_accessor :dns_info
1167
+
1168
+ # Email template. The subject and body fields can contain the following
1169
+ # placeholders which will be replaced with the appropriate values: %LINK% - The
1170
+ # link to use to redeem the send OOB code. %EMAIL% - The email where the email
1171
+ # is being sent. %NEW_EMAIL% - The new email being set for the account (when
1172
+ # applicable). %APP_NAME% - The GCP project's display name. %DISPLAY_NAME% - The
1173
+ # user's display name.
1174
+ # Corresponds to the JSON property `legacyResetPasswordTemplate`
1175
+ # @return [Google::Apis::IdentitytoolkitV2::GoogleCloudIdentitytoolkitAdminV2EmailTemplate]
1176
+ attr_accessor :legacy_reset_password_template
1177
+
1178
+ # The method used for sending an email.
1179
+ # Corresponds to the JSON property `method`
1180
+ # @return [String]
1181
+ attr_accessor :method_prop
1182
+
1183
+ # Email template. The subject and body fields can contain the following
1184
+ # placeholders which will be replaced with the appropriate values: %LINK% - The
1185
+ # link to use to redeem the send OOB code. %EMAIL% - The email where the email
1186
+ # is being sent. %NEW_EMAIL% - The new email being set for the account (when
1187
+ # applicable). %APP_NAME% - The GCP project's display name. %DISPLAY_NAME% - The
1188
+ # user's display name.
1189
+ # Corresponds to the JSON property `resetPasswordTemplate`
1190
+ # @return [Google::Apis::IdentitytoolkitV2::GoogleCloudIdentitytoolkitAdminV2EmailTemplate]
1191
+ attr_accessor :reset_password_template
1192
+
1193
+ # Email template. The subject and body fields can contain the following
1194
+ # placeholders which will be replaced with the appropriate values: %LINK% - The
1195
+ # link to use to redeem the send OOB code. %EMAIL% - The email where the email
1196
+ # is being sent. %NEW_EMAIL% - The new email being set for the account (when
1197
+ # applicable). %APP_NAME% - The GCP project's display name. %DISPLAY_NAME% - The
1198
+ # user's display name.
1199
+ # Corresponds to the JSON property `revertSecondFactorAdditionTemplate`
1200
+ # @return [Google::Apis::IdentitytoolkitV2::GoogleCloudIdentitytoolkitAdminV2EmailTemplate]
1201
+ attr_accessor :revert_second_factor_addition_template
1202
+
1203
+ # Configuration for SMTP relay
1204
+ # Corresponds to the JSON property `smtp`
1205
+ # @return [Google::Apis::IdentitytoolkitV2::GoogleCloudIdentitytoolkitAdminV2Smtp]
1206
+ attr_accessor :smtp
1207
+
1208
+ # Email template. The subject and body fields can contain the following
1209
+ # placeholders which will be replaced with the appropriate values: %LINK% - The
1210
+ # link to use to redeem the send OOB code. %EMAIL% - The email where the email
1211
+ # is being sent. %NEW_EMAIL% - The new email being set for the account (when
1212
+ # applicable). %APP_NAME% - The GCP project's display name. %DISPLAY_NAME% - The
1213
+ # user's display name.
1214
+ # Corresponds to the JSON property `verifyEmailTemplate`
1215
+ # @return [Google::Apis::IdentitytoolkitV2::GoogleCloudIdentitytoolkitAdminV2EmailTemplate]
1216
+ attr_accessor :verify_email_template
1217
+
1218
+ def initialize(**args)
1219
+ update!(**args)
1220
+ end
1221
+
1222
+ # Update properties of this object
1223
+ def update!(**args)
1224
+ @callback_uri = args[:callback_uri] if args.key?(:callback_uri)
1225
+ @change_email_template = args[:change_email_template] if args.key?(:change_email_template)
1226
+ @dns_info = args[:dns_info] if args.key?(:dns_info)
1227
+ @legacy_reset_password_template = args[:legacy_reset_password_template] if args.key?(:legacy_reset_password_template)
1228
+ @method_prop = args[:method_prop] if args.key?(:method_prop)
1229
+ @reset_password_template = args[:reset_password_template] if args.key?(:reset_password_template)
1230
+ @revert_second_factor_addition_template = args[:revert_second_factor_addition_template] if args.key?(:revert_second_factor_addition_template)
1231
+ @smtp = args[:smtp] if args.key?(:smtp)
1232
+ @verify_email_template = args[:verify_email_template] if args.key?(:verify_email_template)
1233
+ end
1234
+ end
1235
+
1236
+ # Options for SMS sending.
1237
+ class GoogleCloudIdentitytoolkitAdminV2SendSms
1238
+ include Google::Apis::Core::Hashable
1239
+
1240
+ # The template to use when sending an SMS.
1241
+ # Corresponds to the JSON property `smsTemplate`
1242
+ # @return [Google::Apis::IdentitytoolkitV2::GoogleCloudIdentitytoolkitAdminV2SmsTemplate]
1243
+ attr_accessor :sms_template
1244
+
1245
+ # Whether to use the accept_language header for SMS.
1246
+ # Corresponds to the JSON property `useDeviceLocale`
1247
+ # @return [Boolean]
1248
+ attr_accessor :use_device_locale
1249
+ alias_method :use_device_locale?, :use_device_locale
1250
+
1251
+ def initialize(**args)
1252
+ update!(**args)
1253
+ end
1254
+
1255
+ # Update properties of this object
1256
+ def update!(**args)
1257
+ @sms_template = args[:sms_template] if args.key?(:sms_template)
1258
+ @use_device_locale = args[:use_device_locale] if args.key?(:use_device_locale)
1259
+ end
1260
+ end
1261
+
1262
+ # Configuration related to local sign in methods.
1263
+ class GoogleCloudIdentitytoolkitAdminV2SignInConfig
1264
+ include Google::Apis::Core::Hashable
1265
+
1266
+ # Whether to allow more than one account to have the same email.
1267
+ # Corresponds to the JSON property `allowDuplicateEmails`
1268
+ # @return [Boolean]
1269
+ attr_accessor :allow_duplicate_emails
1270
+ alias_method :allow_duplicate_emails?, :allow_duplicate_emails
1271
+
1272
+ # Configuration options related to authenticating an anonymous user.
1273
+ # Corresponds to the JSON property `anonymous`
1274
+ # @return [Google::Apis::IdentitytoolkitV2::GoogleCloudIdentitytoolkitAdminV2Anonymous]
1275
+ attr_accessor :anonymous
1276
+
1277
+ # Configuration options related to authenticating a user by their email address.
1278
+ # Corresponds to the JSON property `email`
1279
+ # @return [Google::Apis::IdentitytoolkitV2::GoogleCloudIdentitytoolkitAdminV2Email]
1280
+ attr_accessor :email
1281
+
1282
+ # History information of the hash algorithm and key. Different accounts'
1283
+ # passwords may be generated by different version.
1284
+ # Corresponds to the JSON property `hashConfig`
1285
+ # @return [Google::Apis::IdentitytoolkitV2::GoogleCloudIdentitytoolkitAdminV2HashConfig]
1286
+ attr_accessor :hash_config
1287
+
1288
+ # Configuration options related to authenticated a user by their phone number.
1289
+ # Corresponds to the JSON property `phoneNumber`
1290
+ # @return [Google::Apis::IdentitytoolkitV2::GoogleCloudIdentitytoolkitAdminV2PhoneNumber]
1291
+ attr_accessor :phone_number
1292
+
1293
+ def initialize(**args)
1294
+ update!(**args)
1295
+ end
1296
+
1297
+ # Update properties of this object
1298
+ def update!(**args)
1299
+ @allow_duplicate_emails = args[:allow_duplicate_emails] if args.key?(:allow_duplicate_emails)
1300
+ @anonymous = args[:anonymous] if args.key?(:anonymous)
1301
+ @email = args[:email] if args.key?(:email)
1302
+ @hash_config = args[:hash_config] if args.key?(:hash_config)
1303
+ @phone_number = args[:phone_number] if args.key?(:phone_number)
1304
+ end
1305
+ end
1306
+
1307
+ # The template to use when sending an SMS.
1308
+ class GoogleCloudIdentitytoolkitAdminV2SmsTemplate
1309
+ include Google::Apis::Core::Hashable
1310
+
1311
+ # Output only. The SMS's content. Can contain the following placeholders which
1312
+ # will be replaced with the appropriate values: %APP_NAME% - For Android or iOS
1313
+ # apps, the app's display name. For web apps, the domain hosting the application.
1314
+ # %LOGIN_CODE% - The OOB code being sent in the SMS.
1315
+ # Corresponds to the JSON property `content`
1316
+ # @return [String]
1317
+ attr_accessor :content
1318
+
1319
+ def initialize(**args)
1320
+ update!(**args)
1321
+ end
1322
+
1323
+ # Update properties of this object
1324
+ def update!(**args)
1325
+ @content = args[:content] if args.key?(:content)
1326
+ end
1327
+ end
1328
+
1329
+ # Configuration for SMTP relay
1330
+ class GoogleCloudIdentitytoolkitAdminV2Smtp
1331
+ include Google::Apis::Core::Hashable
1332
+
1333
+ # SMTP relay host
1334
+ # Corresponds to the JSON property `host`
1335
+ # @return [String]
1336
+ attr_accessor :host
1337
+
1338
+ # SMTP relay password
1339
+ # Corresponds to the JSON property `password`
1340
+ # @return [String]
1341
+ attr_accessor :password
1342
+
1343
+ # SMTP relay port
1344
+ # Corresponds to the JSON property `port`
1345
+ # @return [Fixnum]
1346
+ attr_accessor :port
1347
+
1348
+ # SMTP security mode.
1349
+ # Corresponds to the JSON property `securityMode`
1350
+ # @return [String]
1351
+ attr_accessor :security_mode
1352
+
1353
+ # Sender email for the SMTP relay
1354
+ # Corresponds to the JSON property `senderEmail`
1355
+ # @return [String]
1356
+ attr_accessor :sender_email
1357
+
1358
+ # SMTP relay username
1359
+ # Corresponds to the JSON property `username`
1360
+ # @return [String]
1361
+ attr_accessor :username
1362
+
1363
+ def initialize(**args)
1364
+ update!(**args)
1365
+ end
1366
+
1367
+ # Update properties of this object
1368
+ def update!(**args)
1369
+ @host = args[:host] if args.key?(:host)
1370
+ @password = args[:password] if args.key?(:password)
1371
+ @port = args[:port] if args.key?(:port)
1372
+ @security_mode = args[:security_mode] if args.key?(:security_mode)
1373
+ @sender_email = args[:sender_email] if args.key?(:sender_email)
1374
+ @username = args[:username] if args.key?(:username)
1375
+ end
1376
+ end
1377
+
1378
+ # The SP's certificate data for IDP to verify the SAMLRequest generated by the
1379
+ # SP.
1380
+ class GoogleCloudIdentitytoolkitAdminV2SpCertificate
1381
+ include Google::Apis::Core::Hashable
1382
+
1383
+ # Timestamp of the cert expiration instance.
1384
+ # Corresponds to the JSON property `expiresAt`
1385
+ # @return [String]
1386
+ attr_accessor :expires_at
1387
+
1388
+ # Self-signed public certificate.
1389
+ # Corresponds to the JSON property `x509Certificate`
1390
+ # @return [String]
1391
+ attr_accessor :x509_certificate
1392
+
1393
+ def initialize(**args)
1394
+ update!(**args)
1395
+ end
1396
+
1397
+ # Update properties of this object
1398
+ def update!(**args)
1399
+ @expires_at = args[:expires_at] if args.key?(:expires_at)
1400
+ @x509_certificate = args[:x509_certificate] if args.key?(:x509_certificate)
1401
+ end
1402
+ end
1403
+
1404
+ # The SAML SP (Service Provider) configuration when the project acts as the
1405
+ # relying party to receive and accept an authentication assertion issued by a
1406
+ # SAML identity provider.
1407
+ class GoogleCloudIdentitytoolkitAdminV2SpConfig
1408
+ include Google::Apis::Core::Hashable
1409
+
1410
+ # Callback URI where responses from IDP are handled.
1411
+ # Corresponds to the JSON property `callbackUri`
1412
+ # @return [String]
1413
+ attr_accessor :callback_uri
1414
+
1415
+ # Output only. Public certificates generated by the server to verify the
1416
+ # signature in SAMLRequest in the SP-initiated flow.
1417
+ # Corresponds to the JSON property `spCertificates`
1418
+ # @return [Array<Google::Apis::IdentitytoolkitV2::GoogleCloudIdentitytoolkitAdminV2SpCertificate>]
1419
+ attr_accessor :sp_certificates
1420
+
1421
+ # Unique identifier for all SAML entities.
1422
+ # Corresponds to the JSON property `spEntityId`
1423
+ # @return [String]
1424
+ attr_accessor :sp_entity_id
1425
+
1426
+ def initialize(**args)
1427
+ update!(**args)
1428
+ end
1429
+
1430
+ # Update properties of this object
1431
+ def update!(**args)
1432
+ @callback_uri = args[:callback_uri] if args.key?(:callback_uri)
1433
+ @sp_certificates = args[:sp_certificates] if args.key?(:sp_certificates)
1434
+ @sp_entity_id = args[:sp_entity_id] if args.key?(:sp_entity_id)
1435
+ end
1436
+ end
1437
+
1438
+ # Temporary quota increase / decrease
1439
+ class GoogleCloudIdentitytoolkitAdminV2TemporaryQuota
1440
+ include Google::Apis::Core::Hashable
1441
+
1442
+ # Corresponds to the 'refill_token_count' field in QuotaServer config
1443
+ # Corresponds to the JSON property `quota`
1444
+ # @return [Fixnum]
1445
+ attr_accessor :quota
1446
+
1447
+ # How long this quota will be active for
1448
+ # Corresponds to the JSON property `quotaDuration`
1449
+ # @return [String]
1450
+ attr_accessor :quota_duration
1451
+
1452
+ # When this quota will take affect
1453
+ # Corresponds to the JSON property `startTime`
1454
+ # @return [String]
1455
+ attr_accessor :start_time
1456
+
1457
+ def initialize(**args)
1458
+ update!(**args)
1459
+ end
1460
+
1461
+ # Update properties of this object
1462
+ def update!(**args)
1463
+ @quota = args[:quota] if args.key?(:quota)
1464
+ @quota_duration = args[:quota_duration] if args.key?(:quota_duration)
1465
+ @start_time = args[:start_time] if args.key?(:start_time)
1466
+ end
1467
+ end
1468
+
1469
+ # A Tenant contains configuration for the tenant in a multi-tenant project.
1470
+ class GoogleCloudIdentitytoolkitAdminV2Tenant
1471
+ include Google::Apis::Core::Hashable
1472
+
1473
+ # Whether to allow email/password user authentication.
1474
+ # Corresponds to the JSON property `allowPasswordSignup`
1475
+ # @return [Boolean]
1476
+ attr_accessor :allow_password_signup
1477
+ alias_method :allow_password_signup?, :allow_password_signup
1478
+
1479
+ # Whether anonymous users will be auto-deleted after a period of 30 days.
1480
+ # Corresponds to the JSON property `autodeleteAnonymousUsers`
1481
+ # @return [Boolean]
1482
+ attr_accessor :autodelete_anonymous_users
1483
+ alias_method :autodelete_anonymous_users?, :autodelete_anonymous_users
1484
+
1485
+ # Options related to how clients making requests on behalf of a tenant should be
1486
+ # configured.
1487
+ # Corresponds to the JSON property `client`
1488
+ # @return [Google::Apis::IdentitytoolkitV2::GoogleCloudIdentitytoolkitAdminV2ClientPermissionConfig]
1489
+ attr_accessor :client
1490
+
1491
+ # Whether authentication is disabled for the tenant. If true, the users under
1492
+ # the disabled tenant are not allowed to sign-in. Admins of the disabled tenant
1493
+ # are not able to manage its users.
1494
+ # Corresponds to the JSON property `disableAuth`
1495
+ # @return [Boolean]
1496
+ attr_accessor :disable_auth
1497
+ alias_method :disable_auth?, :disable_auth
1498
+
1499
+ # Display name of the tenant.
1500
+ # Corresponds to the JSON property `displayName`
1501
+ # @return [String]
1502
+ attr_accessor :display_name
1503
+
1504
+ # Whether to enable anonymous user authentication.
1505
+ # Corresponds to the JSON property `enableAnonymousUser`
1506
+ # @return [Boolean]
1507
+ attr_accessor :enable_anonymous_user
1508
+ alias_method :enable_anonymous_user?, :enable_anonymous_user
1509
+
1510
+ # Whether to enable email link user authentication.
1511
+ # Corresponds to the JSON property `enableEmailLinkSignin`
1512
+ # @return [Boolean]
1513
+ attr_accessor :enable_email_link_signin
1514
+ alias_method :enable_email_link_signin?, :enable_email_link_signin
1515
+
1516
+ # History information of the hash algorithm and key. Different accounts'
1517
+ # passwords may be generated by different version.
1518
+ # Corresponds to the JSON property `hashConfig`
1519
+ # @return [Google::Apis::IdentitytoolkitV2::GoogleCloudIdentitytoolkitAdminV2HashConfig]
1520
+ attr_accessor :hash_config
1521
+
1522
+ # Settings that the tenants will inherit from project level.
1523
+ # Corresponds to the JSON property `inheritance`
1524
+ # @return [Google::Apis::IdentitytoolkitV2::GoogleCloudIdentitytoolkitAdminV2Inheritance]
1525
+ attr_accessor :inheritance
1526
+
1527
+ # Options related to MultiFactor Authentication for the project.
1528
+ # Corresponds to the JSON property `mfaConfig`
1529
+ # @return [Google::Apis::IdentitytoolkitV2::GoogleCloudIdentitytoolkitAdminV2MultiFactorAuthConfig]
1530
+ attr_accessor :mfa_config
1531
+
1532
+ # Output only. Resource name of a tenant. For example: "projects/`project-id`/
1533
+ # tenants/`tenant-id`"
1534
+ # Corresponds to the JSON property `name`
1535
+ # @return [String]
1536
+ attr_accessor :name
1537
+
1538
+ # A map of pairs that can be used for MFA. The phone number should be in E.164
1539
+ # format (https://www.itu.int/rec/T-REC-E.164/) and a maximum of 10 pairs can be
1540
+ # added (error will be thrown once exceeded).
1541
+ # Corresponds to the JSON property `testPhoneNumbers`
1542
+ # @return [Hash<String,String>]
1543
+ attr_accessor :test_phone_numbers
1544
+
1545
+ def initialize(**args)
1546
+ update!(**args)
1547
+ end
1548
+
1549
+ # Update properties of this object
1550
+ def update!(**args)
1551
+ @allow_password_signup = args[:allow_password_signup] if args.key?(:allow_password_signup)
1552
+ @autodelete_anonymous_users = args[:autodelete_anonymous_users] if args.key?(:autodelete_anonymous_users)
1553
+ @client = args[:client] if args.key?(:client)
1554
+ @disable_auth = args[:disable_auth] if args.key?(:disable_auth)
1555
+ @display_name = args[:display_name] if args.key?(:display_name)
1556
+ @enable_anonymous_user = args[:enable_anonymous_user] if args.key?(:enable_anonymous_user)
1557
+ @enable_email_link_signin = args[:enable_email_link_signin] if args.key?(:enable_email_link_signin)
1558
+ @hash_config = args[:hash_config] if args.key?(:hash_config)
1559
+ @inheritance = args[:inheritance] if args.key?(:inheritance)
1560
+ @mfa_config = args[:mfa_config] if args.key?(:mfa_config)
1561
+ @name = args[:name] if args.key?(:name)
1562
+ @test_phone_numbers = args[:test_phone_numbers] if args.key?(:test_phone_numbers)
1563
+ end
1564
+ end
1565
+
1566
+ # Synchronous Cloud Function with HTTP Trigger
1567
+ class GoogleCloudIdentitytoolkitAdminV2Trigger
1568
+ include Google::Apis::Core::Hashable
1569
+
1570
+ # HTTP URI trigger for the Cloud Function.
1571
+ # Corresponds to the JSON property `functionUri`
1572
+ # @return [String]
1573
+ attr_accessor :function_uri
1574
+
1575
+ # When the trigger was changed.
1576
+ # Corresponds to the JSON property `updateTime`
1577
+ # @return [String]
1578
+ attr_accessor :update_time
1579
+
1580
+ def initialize(**args)
1581
+ update!(**args)
1582
+ end
1583
+
1584
+ # Update properties of this object
1585
+ def update!(**args)
1586
+ @function_uri = args[:function_uri] if args.key?(:function_uri)
1587
+ @update_time = args[:update_time] if args.key?(:update_time)
1588
+ end
1589
+ end
1590
+
1591
+ # The information required to auto-retrieve an SMS.
1592
+ class GoogleCloudIdentitytoolkitV2AutoRetrievalInfo
1593
+ include Google::Apis::Core::Hashable
1594
+
1595
+ # The Android app's signature hash for Google Play Service's SMS Retriever API.
1596
+ # Corresponds to the JSON property `appSignatureHash`
1597
+ # @return [String]
1598
+ attr_accessor :app_signature_hash
1599
+
1600
+ def initialize(**args)
1601
+ update!(**args)
1602
+ end
1603
+
1604
+ # Update properties of this object
1605
+ def update!(**args)
1606
+ @app_signature_hash = args[:app_signature_hash] if args.key?(:app_signature_hash)
1607
+ end
1608
+ end
1609
+
1610
+ # Finishes enrolling a second factor for the user.
1611
+ class GoogleCloudIdentitytoolkitV2FinalizeMfaEnrollmentRequest
1612
+ include Google::Apis::Core::Hashable
1613
+
1614
+ # Display name which is entered by users to distinguish between different second
1615
+ # factors with same type or different type.
1616
+ # Corresponds to the JSON property `displayName`
1617
+ # @return [String]
1618
+ attr_accessor :display_name
1619
+
1620
+ # Required. ID token.
1621
+ # Corresponds to the JSON property `idToken`
1622
+ # @return [String]
1623
+ attr_accessor :id_token
1624
+
1625
+ # Phone Verification info for a FinalizeMfa request.
1626
+ # Corresponds to the JSON property `phoneVerificationInfo`
1627
+ # @return [Google::Apis::IdentitytoolkitV2::GoogleCloudIdentitytoolkitV2FinalizeMfaPhoneRequestInfo]
1628
+ attr_accessor :phone_verification_info
1629
+
1630
+ # The ID of the Identity Platform tenant that the user enrolling MFA belongs to.
1631
+ # If not set, the user belongs to the default Identity Platform project.
1632
+ # Corresponds to the JSON property `tenantId`
1633
+ # @return [String]
1634
+ attr_accessor :tenant_id
1635
+
1636
+ def initialize(**args)
1637
+ update!(**args)
1638
+ end
1639
+
1640
+ # Update properties of this object
1641
+ def update!(**args)
1642
+ @display_name = args[:display_name] if args.key?(:display_name)
1643
+ @id_token = args[:id_token] if args.key?(:id_token)
1644
+ @phone_verification_info = args[:phone_verification_info] if args.key?(:phone_verification_info)
1645
+ @tenant_id = args[:tenant_id] if args.key?(:tenant_id)
1646
+ end
1647
+ end
1648
+
1649
+ # FinalizeMfaEnrollment response.
1650
+ class GoogleCloudIdentitytoolkitV2FinalizeMfaEnrollmentResponse
1651
+ include Google::Apis::Core::Hashable
1652
+
1653
+ # ID token updated to reflect MFA enrollment.
1654
+ # Corresponds to the JSON property `idToken`
1655
+ # @return [String]
1656
+ attr_accessor :id_token
1657
+
1658
+ # Phone Verification info for a FinalizeMfa response.
1659
+ # Corresponds to the JSON property `phoneAuthInfo`
1660
+ # @return [Google::Apis::IdentitytoolkitV2::GoogleCloudIdentitytoolkitV2FinalizeMfaPhoneResponseInfo]
1661
+ attr_accessor :phone_auth_info
1662
+
1663
+ # Refresh token updated to reflect MFA enrollment.
1664
+ # Corresponds to the JSON property `refreshToken`
1665
+ # @return [String]
1666
+ attr_accessor :refresh_token
1667
+
1668
+ def initialize(**args)
1669
+ update!(**args)
1670
+ end
1671
+
1672
+ # Update properties of this object
1673
+ def update!(**args)
1674
+ @id_token = args[:id_token] if args.key?(:id_token)
1675
+ @phone_auth_info = args[:phone_auth_info] if args.key?(:phone_auth_info)
1676
+ @refresh_token = args[:refresh_token] if args.key?(:refresh_token)
1677
+ end
1678
+ end
1679
+
1680
+ # Phone Verification info for a FinalizeMfa request.
1681
+ class GoogleCloudIdentitytoolkitV2FinalizeMfaPhoneRequestInfo
1682
+ include Google::Apis::Core::Hashable
1683
+
1684
+ # Android only. Uses for "instant" phone number verification though GmsCore.
1685
+ # Corresponds to the JSON property `androidVerificationProof`
1686
+ # @return [String]
1687
+ attr_accessor :android_verification_proof
1688
+
1689
+ # User-entered verification code.
1690
+ # Corresponds to the JSON property `code`
1691
+ # @return [String]
1692
+ attr_accessor :code
1693
+
1694
+ # Required if Android verification proof is presented.
1695
+ # Corresponds to the JSON property `phoneNumber`
1696
+ # @return [String]
1697
+ attr_accessor :phone_number
1698
+
1699
+ # An opaque string that represents the enrollment session.
1700
+ # Corresponds to the JSON property `sessionInfo`
1701
+ # @return [String]
1702
+ attr_accessor :session_info
1703
+
1704
+ def initialize(**args)
1705
+ update!(**args)
1706
+ end
1707
+
1708
+ # Update properties of this object
1709
+ def update!(**args)
1710
+ @android_verification_proof = args[:android_verification_proof] if args.key?(:android_verification_proof)
1711
+ @code = args[:code] if args.key?(:code)
1712
+ @phone_number = args[:phone_number] if args.key?(:phone_number)
1713
+ @session_info = args[:session_info] if args.key?(:session_info)
1714
+ end
1715
+ end
1716
+
1717
+ # Phone Verification info for a FinalizeMfa response.
1718
+ class GoogleCloudIdentitytoolkitV2FinalizeMfaPhoneResponseInfo
1719
+ include Google::Apis::Core::Hashable
1720
+
1721
+ # Android only. Long-lived replacement for valid code tied to android device.
1722
+ # Corresponds to the JSON property `androidVerificationProof`
1723
+ # @return [String]
1724
+ attr_accessor :android_verification_proof
1725
+
1726
+ # Android only. Expiration time of verification proof in seconds.
1727
+ # Corresponds to the JSON property `androidVerificationProofExpireTime`
1728
+ # @return [String]
1729
+ attr_accessor :android_verification_proof_expire_time
1730
+
1731
+ # For Android verification proof.
1732
+ # Corresponds to the JSON property `phoneNumber`
1733
+ # @return [String]
1734
+ attr_accessor :phone_number
1735
+
1736
+ def initialize(**args)
1737
+ update!(**args)
1738
+ end
1739
+
1740
+ # Update properties of this object
1741
+ def update!(**args)
1742
+ @android_verification_proof = args[:android_verification_proof] if args.key?(:android_verification_proof)
1743
+ @android_verification_proof_expire_time = args[:android_verification_proof_expire_time] if args.key?(:android_verification_proof_expire_time)
1744
+ @phone_number = args[:phone_number] if args.key?(:phone_number)
1745
+ end
1746
+ end
1747
+
1748
+ # Finalizes sign-in by verifying MFA challenge.
1749
+ class GoogleCloudIdentitytoolkitV2FinalizeMfaSignInRequest
1750
+ include Google::Apis::Core::Hashable
1751
+
1752
+ # Required. Pending credential from first factor sign-in.
1753
+ # Corresponds to the JSON property `mfaPendingCredential`
1754
+ # @return [String]
1755
+ attr_accessor :mfa_pending_credential
1756
+
1757
+ # Phone Verification info for a FinalizeMfa request.
1758
+ # Corresponds to the JSON property `phoneVerificationInfo`
1759
+ # @return [Google::Apis::IdentitytoolkitV2::GoogleCloudIdentitytoolkitV2FinalizeMfaPhoneRequestInfo]
1760
+ attr_accessor :phone_verification_info
1761
+
1762
+ # The ID of the Identity Platform tenant the user is signing in to. If not set,
1763
+ # the user will sign in to the default Identity Platform project.
1764
+ # Corresponds to the JSON property `tenantId`
1765
+ # @return [String]
1766
+ attr_accessor :tenant_id
1767
+
1768
+ def initialize(**args)
1769
+ update!(**args)
1770
+ end
1771
+
1772
+ # Update properties of this object
1773
+ def update!(**args)
1774
+ @mfa_pending_credential = args[:mfa_pending_credential] if args.key?(:mfa_pending_credential)
1775
+ @phone_verification_info = args[:phone_verification_info] if args.key?(:phone_verification_info)
1776
+ @tenant_id = args[:tenant_id] if args.key?(:tenant_id)
1777
+ end
1778
+ end
1779
+
1780
+ # FinalizeMfaSignIn response.
1781
+ class GoogleCloudIdentitytoolkitV2FinalizeMfaSignInResponse
1782
+ include Google::Apis::Core::Hashable
1783
+
1784
+ # ID token for the authenticated user.
1785
+ # Corresponds to the JSON property `idToken`
1786
+ # @return [String]
1787
+ attr_accessor :id_token
1788
+
1789
+ # Phone Verification info for a FinalizeMfa response.
1790
+ # Corresponds to the JSON property `phoneAuthInfo`
1791
+ # @return [Google::Apis::IdentitytoolkitV2::GoogleCloudIdentitytoolkitV2FinalizeMfaPhoneResponseInfo]
1792
+ attr_accessor :phone_auth_info
1793
+
1794
+ # Refresh token for the authenticated user.
1795
+ # Corresponds to the JSON property `refreshToken`
1796
+ # @return [String]
1797
+ attr_accessor :refresh_token
1798
+
1799
+ def initialize(**args)
1800
+ update!(**args)
1801
+ end
1802
+
1803
+ # Update properties of this object
1804
+ def update!(**args)
1805
+ @id_token = args[:id_token] if args.key?(:id_token)
1806
+ @phone_auth_info = args[:phone_auth_info] if args.key?(:phone_auth_info)
1807
+ @refresh_token = args[:refresh_token] if args.key?(:refresh_token)
1808
+ end
1809
+ end
1810
+
1811
+ # Sends MFA enrollment verification SMS for a user.
1812
+ class GoogleCloudIdentitytoolkitV2StartMfaEnrollmentRequest
1813
+ include Google::Apis::Core::Hashable
1814
+
1815
+ # Required. User's ID token.
1816
+ # Corresponds to the JSON property `idToken`
1817
+ # @return [String]
1818
+ attr_accessor :id_token
1819
+
1820
+ # App Verification info for a StartMfa request.
1821
+ # Corresponds to the JSON property `phoneEnrollmentInfo`
1822
+ # @return [Google::Apis::IdentitytoolkitV2::GoogleCloudIdentitytoolkitV2StartMfaPhoneRequestInfo]
1823
+ attr_accessor :phone_enrollment_info
1824
+
1825
+ # The ID of the Identity Platform tenant that the user enrolling MFA belongs to.
1826
+ # If not set, the user belongs to the default Identity Platform project.
1827
+ # Corresponds to the JSON property `tenantId`
1828
+ # @return [String]
1829
+ attr_accessor :tenant_id
1830
+
1831
+ def initialize(**args)
1832
+ update!(**args)
1833
+ end
1834
+
1835
+ # Update properties of this object
1836
+ def update!(**args)
1837
+ @id_token = args[:id_token] if args.key?(:id_token)
1838
+ @phone_enrollment_info = args[:phone_enrollment_info] if args.key?(:phone_enrollment_info)
1839
+ @tenant_id = args[:tenant_id] if args.key?(:tenant_id)
1840
+ end
1841
+ end
1842
+
1843
+ # StartMfaEnrollment response.
1844
+ class GoogleCloudIdentitytoolkitV2StartMfaEnrollmentResponse
1845
+ include Google::Apis::Core::Hashable
1846
+
1847
+ # Phone Verification info for a StartMfa response.
1848
+ # Corresponds to the JSON property `phoneSessionInfo`
1849
+ # @return [Google::Apis::IdentitytoolkitV2::GoogleCloudIdentitytoolkitV2StartMfaPhoneResponseInfo]
1850
+ attr_accessor :phone_session_info
1851
+
1852
+ def initialize(**args)
1853
+ update!(**args)
1854
+ end
1855
+
1856
+ # Update properties of this object
1857
+ def update!(**args)
1858
+ @phone_session_info = args[:phone_session_info] if args.key?(:phone_session_info)
1859
+ end
1860
+ end
1861
+
1862
+ # App Verification info for a StartMfa request.
1863
+ class GoogleCloudIdentitytoolkitV2StartMfaPhoneRequestInfo
1864
+ include Google::Apis::Core::Hashable
1865
+
1866
+ # The information required to auto-retrieve an SMS.
1867
+ # Corresponds to the JSON property `autoRetrievalInfo`
1868
+ # @return [Google::Apis::IdentitytoolkitV2::GoogleCloudIdentitytoolkitV2AutoRetrievalInfo]
1869
+ attr_accessor :auto_retrieval_info
1870
+
1871
+ # iOS only. Receipt of successful app token validation with APNS.
1872
+ # Corresponds to the JSON property `iosReceipt`
1873
+ # @return [String]
1874
+ attr_accessor :ios_receipt
1875
+
1876
+ # iOS only. Secret delivered to iOS app via APNS.
1877
+ # Corresponds to the JSON property `iosSecret`
1878
+ # @return [String]
1879
+ attr_accessor :ios_secret
1880
+
1881
+ # Required for enrollment. Phone number to be enrolled as MFA.
1882
+ # Corresponds to the JSON property `phoneNumber`
1883
+ # @return [String]
1884
+ attr_accessor :phone_number
1885
+
1886
+ # Web only. Recaptcha solution.
1887
+ # Corresponds to the JSON property `recaptchaToken`
1888
+ # @return [String]
1889
+ attr_accessor :recaptcha_token
1890
+
1891
+ # Android only. Used to assert application identity in place of a recaptcha
1892
+ # token. A SafetyNet Token can be generated via the [SafetyNet Android
1893
+ # Attestation API](https://developer.android.com/training/safetynet/attestation.
1894
+ # html), with the Base64 encoding of the `phone_number` field as the nonce.
1895
+ # Corresponds to the JSON property `safetyNetToken`
1896
+ # @return [String]
1897
+ attr_accessor :safety_net_token
1898
+
1899
+ def initialize(**args)
1900
+ update!(**args)
1901
+ end
1902
+
1903
+ # Update properties of this object
1904
+ def update!(**args)
1905
+ @auto_retrieval_info = args[:auto_retrieval_info] if args.key?(:auto_retrieval_info)
1906
+ @ios_receipt = args[:ios_receipt] if args.key?(:ios_receipt)
1907
+ @ios_secret = args[:ios_secret] if args.key?(:ios_secret)
1908
+ @phone_number = args[:phone_number] if args.key?(:phone_number)
1909
+ @recaptcha_token = args[:recaptcha_token] if args.key?(:recaptcha_token)
1910
+ @safety_net_token = args[:safety_net_token] if args.key?(:safety_net_token)
1911
+ end
1912
+ end
1913
+
1914
+ # Phone Verification info for a StartMfa response.
1915
+ class GoogleCloudIdentitytoolkitV2StartMfaPhoneResponseInfo
1916
+ include Google::Apis::Core::Hashable
1917
+
1918
+ # An opaque string that represents the enrollment session.
1919
+ # Corresponds to the JSON property `sessionInfo`
1920
+ # @return [String]
1921
+ attr_accessor :session_info
1922
+
1923
+ def initialize(**args)
1924
+ update!(**args)
1925
+ end
1926
+
1927
+ # Update properties of this object
1928
+ def update!(**args)
1929
+ @session_info = args[:session_info] if args.key?(:session_info)
1930
+ end
1931
+ end
1932
+
1933
+ # Starts multi-factor sign-in by sending the multi-factor auth challenge.
1934
+ class GoogleCloudIdentitytoolkitV2StartMfaSignInRequest
1935
+ include Google::Apis::Core::Hashable
1936
+
1937
+ # Required. MFA enrollment id from the user's list of current MFA enrollments.
1938
+ # Corresponds to the JSON property `mfaEnrollmentId`
1939
+ # @return [String]
1940
+ attr_accessor :mfa_enrollment_id
1941
+
1942
+ # Required. Pending credential from first factor sign-in.
1943
+ # Corresponds to the JSON property `mfaPendingCredential`
1944
+ # @return [String]
1945
+ attr_accessor :mfa_pending_credential
1946
+
1947
+ # App Verification info for a StartMfa request.
1948
+ # Corresponds to the JSON property `phoneSignInInfo`
1949
+ # @return [Google::Apis::IdentitytoolkitV2::GoogleCloudIdentitytoolkitV2StartMfaPhoneRequestInfo]
1950
+ attr_accessor :phone_sign_in_info
1951
+
1952
+ # The ID of the Identity Platform tenant the user is signing in to. If not set,
1953
+ # the user will sign in to the default Identity Platform project.
1954
+ # Corresponds to the JSON property `tenantId`
1955
+ # @return [String]
1956
+ attr_accessor :tenant_id
1957
+
1958
+ def initialize(**args)
1959
+ update!(**args)
1960
+ end
1961
+
1962
+ # Update properties of this object
1963
+ def update!(**args)
1964
+ @mfa_enrollment_id = args[:mfa_enrollment_id] if args.key?(:mfa_enrollment_id)
1965
+ @mfa_pending_credential = args[:mfa_pending_credential] if args.key?(:mfa_pending_credential)
1966
+ @phone_sign_in_info = args[:phone_sign_in_info] if args.key?(:phone_sign_in_info)
1967
+ @tenant_id = args[:tenant_id] if args.key?(:tenant_id)
1968
+ end
1969
+ end
1970
+
1971
+ # StartMfaSignIn response.
1972
+ class GoogleCloudIdentitytoolkitV2StartMfaSignInResponse
1973
+ include Google::Apis::Core::Hashable
1974
+
1975
+ # Phone Verification info for a StartMfa response.
1976
+ # Corresponds to the JSON property `phoneResponseInfo`
1977
+ # @return [Google::Apis::IdentitytoolkitV2::GoogleCloudIdentitytoolkitV2StartMfaPhoneResponseInfo]
1978
+ attr_accessor :phone_response_info
1979
+
1980
+ def initialize(**args)
1981
+ update!(**args)
1982
+ end
1983
+
1984
+ # Update properties of this object
1985
+ def update!(**args)
1986
+ @phone_response_info = args[:phone_response_info] if args.key?(:phone_response_info)
1987
+ end
1988
+ end
1989
+
1990
+ # Withdraws MFA.
1991
+ class GoogleCloudIdentitytoolkitV2WithdrawMfaRequest
1992
+ include Google::Apis::Core::Hashable
1993
+
1994
+ # Required. User's ID token.
1995
+ # Corresponds to the JSON property `idToken`
1996
+ # @return [String]
1997
+ attr_accessor :id_token
1998
+
1999
+ # Required. MFA enrollment id from a current MFA enrollment.
2000
+ # Corresponds to the JSON property `mfaEnrollmentId`
2001
+ # @return [String]
2002
+ attr_accessor :mfa_enrollment_id
2003
+
2004
+ # The ID of the Identity Platform tenant that the user unenrolling MFA belongs
2005
+ # to. If not set, the user belongs to the default Identity Platform project.
2006
+ # Corresponds to the JSON property `tenantId`
2007
+ # @return [String]
2008
+ attr_accessor :tenant_id
2009
+
2010
+ def initialize(**args)
2011
+ update!(**args)
2012
+ end
2013
+
2014
+ # Update properties of this object
2015
+ def update!(**args)
2016
+ @id_token = args[:id_token] if args.key?(:id_token)
2017
+ @mfa_enrollment_id = args[:mfa_enrollment_id] if args.key?(:mfa_enrollment_id)
2018
+ @tenant_id = args[:tenant_id] if args.key?(:tenant_id)
2019
+ end
2020
+ end
2021
+
2022
+ # Withdraws MultiFactorAuth response.
2023
+ class GoogleCloudIdentitytoolkitV2WithdrawMfaResponse
2024
+ include Google::Apis::Core::Hashable
2025
+
2026
+ # ID token updated to reflect removal of the second factor.
2027
+ # Corresponds to the JSON property `idToken`
2028
+ # @return [String]
2029
+ attr_accessor :id_token
2030
+
2031
+ # Refresh token updated to reflect removal of the second factor.
2032
+ # Corresponds to the JSON property `refreshToken`
2033
+ # @return [String]
2034
+ attr_accessor :refresh_token
2035
+
2036
+ def initialize(**args)
2037
+ update!(**args)
2038
+ end
2039
+
2040
+ # Update properties of this object
2041
+ def update!(**args)
2042
+ @id_token = args[:id_token] if args.key?(:id_token)
2043
+ @refresh_token = args[:refresh_token] if args.key?(:refresh_token)
2044
+ end
2045
+ end
2046
+
2047
+ # Specifies the audit configuration for a service. The configuration determines
2048
+ # which permission types are logged, and what identities, if any, are exempted
2049
+ # from logging. An AuditConfig must have one or more AuditLogConfigs. If there
2050
+ # are AuditConfigs for both `allServices` and a specific service, the union of
2051
+ # the two AuditConfigs is used for that service: the log_types specified in each
2052
+ # AuditConfig are enabled, and the exempted_members in each AuditLogConfig are
2053
+ # exempted. Example Policy with multiple AuditConfigs: ` "audit_configs": [ ` "
2054
+ # service": "allServices", "audit_log_configs": [ ` "log_type": "DATA_READ", "
2055
+ # exempted_members": [ "user:jose@example.com" ] `, ` "log_type": "DATA_WRITE" `,
2056
+ # ` "log_type": "ADMIN_READ" ` ] `, ` "service": "sampleservice.googleapis.com",
2057
+ # "audit_log_configs": [ ` "log_type": "DATA_READ" `, ` "log_type": "DATA_WRITE"
2058
+ # , "exempted_members": [ "user:aliya@example.com" ] ` ] ` ] ` For sampleservice,
2059
+ # this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also
2060
+ # exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com`
2061
+ # from DATA_WRITE logging.
2062
+ class GoogleIamV1AuditConfig
2063
+ include Google::Apis::Core::Hashable
2064
+
2065
+ # The configuration for logging of each type of permission.
2066
+ # Corresponds to the JSON property `auditLogConfigs`
2067
+ # @return [Array<Google::Apis::IdentitytoolkitV2::GoogleIamV1AuditLogConfig>]
2068
+ attr_accessor :audit_log_configs
2069
+
2070
+ # Specifies a service that will be enabled for audit logging. For example, `
2071
+ # storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special
2072
+ # value that covers all services.
2073
+ # Corresponds to the JSON property `service`
2074
+ # @return [String]
2075
+ attr_accessor :service
2076
+
2077
+ def initialize(**args)
2078
+ update!(**args)
2079
+ end
2080
+
2081
+ # Update properties of this object
2082
+ def update!(**args)
2083
+ @audit_log_configs = args[:audit_log_configs] if args.key?(:audit_log_configs)
2084
+ @service = args[:service] if args.key?(:service)
2085
+ end
2086
+ end
2087
+
2088
+ # Provides the configuration for logging a type of permissions. Example: ` "
2089
+ # audit_log_configs": [ ` "log_type": "DATA_READ", "exempted_members": [ "user:
2090
+ # jose@example.com" ] `, ` "log_type": "DATA_WRITE" ` ] ` This enables '
2091
+ # DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from
2092
+ # DATA_READ logging.
2093
+ class GoogleIamV1AuditLogConfig
2094
+ include Google::Apis::Core::Hashable
2095
+
2096
+ # Specifies the identities that do not cause logging for this type of permission.
2097
+ # Follows the same format of Binding.members.
2098
+ # Corresponds to the JSON property `exemptedMembers`
2099
+ # @return [Array<String>]
2100
+ attr_accessor :exempted_members
2101
+
2102
+ # The log type that this config enables.
2103
+ # Corresponds to the JSON property `logType`
2104
+ # @return [String]
2105
+ attr_accessor :log_type
2106
+
2107
+ def initialize(**args)
2108
+ update!(**args)
2109
+ end
2110
+
2111
+ # Update properties of this object
2112
+ def update!(**args)
2113
+ @exempted_members = args[:exempted_members] if args.key?(:exempted_members)
2114
+ @log_type = args[:log_type] if args.key?(:log_type)
2115
+ end
2116
+ end
2117
+
2118
+ # Associates `members`, or principals, with a `role`.
2119
+ class GoogleIamV1Binding
2120
+ include Google::Apis::Core::Hashable
2121
+
2122
+ # Represents a textual expression in the Common Expression Language (CEL) syntax.
2123
+ # CEL is a C-like expression language. The syntax and semantics of CEL are
2124
+ # documented at https://github.com/google/cel-spec. Example (Comparison): title:
2125
+ # "Summary size limit" description: "Determines if a summary is less than 100
2126
+ # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
2127
+ # Requestor is owner" description: "Determines if requestor is the document
2128
+ # owner" expression: "document.owner == request.auth.claims.email" Example (
2129
+ # Logic): title: "Public documents" description: "Determine whether the document
2130
+ # should be publicly visible" expression: "document.type != 'private' &&
2131
+ # document.type != 'internal'" Example (Data Manipulation): title: "Notification
2132
+ # string" description: "Create a notification string with a timestamp."
2133
+ # expression: "'New message received at ' + string(document.create_time)" The
2134
+ # exact variables and functions that may be referenced within an expression are
2135
+ # determined by the service that evaluates it. See the service documentation for
2136
+ # additional information.
2137
+ # Corresponds to the JSON property `condition`
2138
+ # @return [Google::Apis::IdentitytoolkitV2::GoogleTypeExpr]
2139
+ attr_accessor :condition
2140
+
2141
+ # Specifies the principals requesting access for a Google Cloud resource. `
2142
+ # members` can have the following values: * `allUsers`: A special identifier
2143
+ # that represents anyone who is on the internet; with or without a Google
2144
+ # account. * `allAuthenticatedUsers`: A special identifier that represents
2145
+ # anyone who is authenticated with a Google account or a service account. * `
2146
+ # user:`emailid``: An email address that represents a specific Google account.
2147
+ # For example, `alice@example.com` . * `serviceAccount:`emailid``: An email
2148
+ # address that represents a Google service account. For example, `my-other-app@
2149
+ # appspot.gserviceaccount.com`. * `serviceAccount:`projectid`.svc.id.goog[`
2150
+ # namespace`/`kubernetes-sa`]`: An identifier for a [Kubernetes service account](
2151
+ # https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-
2152
+ # accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`
2153
+ # . * `group:`emailid``: An email address that represents a Google group. For
2154
+ # example, `admins@example.com`. * `deleted:user:`emailid`?uid=`uniqueid``: An
2155
+ # email address (plus unique identifier) representing a user that has been
2156
+ # recently deleted. For example, `alice@example.com?uid=123456789012345678901`.
2157
+ # If the user is recovered, this value reverts to `user:`emailid`` and the
2158
+ # recovered user retains the role in the binding. * `deleted:serviceAccount:`
2159
+ # emailid`?uid=`uniqueid``: An email address (plus unique identifier)
2160
+ # representing a service account that has been recently deleted. For example, `
2161
+ # my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the
2162
+ # service account is undeleted, this value reverts to `serviceAccount:`emailid``
2163
+ # and the undeleted service account retains the role in the binding. * `deleted:
2164
+ # group:`emailid`?uid=`uniqueid``: An email address (plus unique identifier)
2165
+ # representing a Google group that has been recently deleted. For example, `
2166
+ # admins@example.com?uid=123456789012345678901`. If the group is recovered, this
2167
+ # value reverts to `group:`emailid`` and the recovered group retains the role in
2168
+ # the binding. * `domain:`domain``: The G Suite domain (primary) that represents
2169
+ # all the users of that domain. For example, `google.com` or `example.com`.
2170
+ # Corresponds to the JSON property `members`
2171
+ # @return [Array<String>]
2172
+ attr_accessor :members
2173
+
2174
+ # Role that is assigned to the list of `members`, or principals. For example, `
2175
+ # roles/viewer`, `roles/editor`, or `roles/owner`.
2176
+ # Corresponds to the JSON property `role`
2177
+ # @return [String]
2178
+ attr_accessor :role
2179
+
2180
+ def initialize(**args)
2181
+ update!(**args)
2182
+ end
2183
+
2184
+ # Update properties of this object
2185
+ def update!(**args)
2186
+ @condition = args[:condition] if args.key?(:condition)
2187
+ @members = args[:members] if args.key?(:members)
2188
+ @role = args[:role] if args.key?(:role)
2189
+ end
2190
+ end
2191
+
2192
+ # Request message for `GetIamPolicy` method.
2193
+ class GoogleIamV1GetIamPolicyRequest
2194
+ include Google::Apis::Core::Hashable
2195
+
2196
+ # Encapsulates settings provided to GetIamPolicy.
2197
+ # Corresponds to the JSON property `options`
2198
+ # @return [Google::Apis::IdentitytoolkitV2::GoogleIamV1GetPolicyOptions]
2199
+ attr_accessor :options
2200
+
2201
+ def initialize(**args)
2202
+ update!(**args)
2203
+ end
2204
+
2205
+ # Update properties of this object
2206
+ def update!(**args)
2207
+ @options = args[:options] if args.key?(:options)
2208
+ end
2209
+ end
2210
+
2211
+ # Encapsulates settings provided to GetIamPolicy.
2212
+ class GoogleIamV1GetPolicyOptions
2213
+ include Google::Apis::Core::Hashable
2214
+
2215
+ # Optional. The maximum policy version that will be used to format the policy.
2216
+ # Valid values are 0, 1, and 3. Requests specifying an invalid value will be
2217
+ # rejected. Requests for policies with any conditional role bindings must
2218
+ # specify version 3. Policies with no conditional role bindings may specify any
2219
+ # valid value or leave the field unset. The policy in the response might use the
2220
+ # policy version that you specified, or it might use a lower policy version. For
2221
+ # example, if you specify version 3, but the policy has no conditional role
2222
+ # bindings, the response uses version 1. To learn which resources support
2223
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
2224
+ # google.com/iam/help/conditions/resource-policies).
2225
+ # Corresponds to the JSON property `requestedPolicyVersion`
2226
+ # @return [Fixnum]
2227
+ attr_accessor :requested_policy_version
2228
+
2229
+ def initialize(**args)
2230
+ update!(**args)
2231
+ end
2232
+
2233
+ # Update properties of this object
2234
+ def update!(**args)
2235
+ @requested_policy_version = args[:requested_policy_version] if args.key?(:requested_policy_version)
2236
+ end
2237
+ end
2238
+
2239
+ # An Identity and Access Management (IAM) policy, which specifies access
2240
+ # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
2241
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
2242
+ # Principals can be user accounts, service accounts, Google groups, and domains (
2243
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
2244
+ # an IAM predefined role or a user-created custom role. For some types of Google
2245
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
2246
+ # logical expression that allows access to a resource only if the expression
2247
+ # evaluates to `true`. A condition can add constraints based on attributes of
2248
+ # the request, the resource, or both. To learn which resources support
2249
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
2250
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
2251
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
2252
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
2253
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
2254
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
2255
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
2256
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
2257
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
2258
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
2259
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
2260
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
2261
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
2262
+ # access description: Does not grant access after Sep 2020 expression: request.
2263
+ # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
2264
+ # a description of IAM and its features, see the [IAM documentation](https://
2265
+ # cloud.google.com/iam/docs/).
2266
+ class GoogleIamV1Policy
2267
+ include Google::Apis::Core::Hashable
2268
+
2269
+ # Specifies cloud audit logging configuration for this policy.
2270
+ # Corresponds to the JSON property `auditConfigs`
2271
+ # @return [Array<Google::Apis::IdentitytoolkitV2::GoogleIamV1AuditConfig>]
2272
+ attr_accessor :audit_configs
2273
+
2274
+ # Associates a list of `members`, or principals, with a `role`. Optionally, may
2275
+ # specify a `condition` that determines how and when the `bindings` are applied.
2276
+ # Each of the `bindings` must contain at least one principal. The `bindings` in
2277
+ # a `Policy` can refer to up to 1,500 principals; up to 250 of these principals
2278
+ # can be Google groups. Each occurrence of a principal counts towards these
2279
+ # limits. For example, if the `bindings` grant 50 different roles to `user:alice@
2280
+ # example.com`, and not to any other principal, then you can add another 1,450
2281
+ # principals to the `bindings` in the `Policy`.
2282
+ # Corresponds to the JSON property `bindings`
2283
+ # @return [Array<Google::Apis::IdentitytoolkitV2::GoogleIamV1Binding>]
2284
+ attr_accessor :bindings
2285
+
2286
+ # `etag` is used for optimistic concurrency control as a way to help prevent
2287
+ # simultaneous updates of a policy from overwriting each other. It is strongly
2288
+ # suggested that systems make use of the `etag` in the read-modify-write cycle
2289
+ # to perform policy updates in order to avoid race conditions: An `etag` is
2290
+ # returned in the response to `getIamPolicy`, and systems are expected to put
2291
+ # that etag in the request to `setIamPolicy` to ensure that their change will be
2292
+ # applied to the same version of the policy. **Important:** If you use IAM
2293
+ # Conditions, you must include the `etag` field whenever you call `setIamPolicy`.
2294
+ # If you omit this field, then IAM allows you to overwrite a version `3` policy
2295
+ # with a version `1` policy, and all of the conditions in the version `3` policy
2296
+ # are lost.
2297
+ # Corresponds to the JSON property `etag`
2298
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
2299
+ # @return [String]
2300
+ attr_accessor :etag
2301
+
2302
+ # Specifies the format of the policy. Valid values are `0`, `1`, and `3`.
2303
+ # Requests that specify an invalid value are rejected. Any operation that
2304
+ # affects conditional role bindings must specify version `3`. This requirement
2305
+ # applies to the following operations: * Getting a policy that includes a
2306
+ # conditional role binding * Adding a conditional role binding to a policy *
2307
+ # Changing a conditional role binding in a policy * Removing any role binding,
2308
+ # with or without a condition, from a policy that includes conditions **
2309
+ # Important:** If you use IAM Conditions, you must include the `etag` field
2310
+ # whenever you call `setIamPolicy`. If you omit this field, then IAM allows you
2311
+ # to overwrite a version `3` policy with a version `1` policy, and all of the
2312
+ # conditions in the version `3` policy are lost. If a policy does not include
2313
+ # any conditions, operations on that policy may specify any valid version or
2314
+ # leave the field unset. To learn which resources support conditions in their
2315
+ # IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/
2316
+ # conditions/resource-policies).
2317
+ # Corresponds to the JSON property `version`
2318
+ # @return [Fixnum]
2319
+ attr_accessor :version
2320
+
2321
+ def initialize(**args)
2322
+ update!(**args)
2323
+ end
2324
+
2325
+ # Update properties of this object
2326
+ def update!(**args)
2327
+ @audit_configs = args[:audit_configs] if args.key?(:audit_configs)
2328
+ @bindings = args[:bindings] if args.key?(:bindings)
2329
+ @etag = args[:etag] if args.key?(:etag)
2330
+ @version = args[:version] if args.key?(:version)
2331
+ end
2332
+ end
2333
+
2334
+ # Request message for `SetIamPolicy` method.
2335
+ class GoogleIamV1SetIamPolicyRequest
2336
+ include Google::Apis::Core::Hashable
2337
+
2338
+ # An Identity and Access Management (IAM) policy, which specifies access
2339
+ # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
2340
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
2341
+ # Principals can be user accounts, service accounts, Google groups, and domains (
2342
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
2343
+ # an IAM predefined role or a user-created custom role. For some types of Google
2344
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
2345
+ # logical expression that allows access to a resource only if the expression
2346
+ # evaluates to `true`. A condition can add constraints based on attributes of
2347
+ # the request, the resource, or both. To learn which resources support
2348
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
2349
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
2350
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
2351
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
2352
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
2353
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
2354
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
2355
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
2356
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
2357
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
2358
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
2359
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
2360
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
2361
+ # access description: Does not grant access after Sep 2020 expression: request.
2362
+ # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
2363
+ # a description of IAM and its features, see the [IAM documentation](https://
2364
+ # cloud.google.com/iam/docs/).
2365
+ # Corresponds to the JSON property `policy`
2366
+ # @return [Google::Apis::IdentitytoolkitV2::GoogleIamV1Policy]
2367
+ attr_accessor :policy
2368
+
2369
+ # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
2370
+ # the fields in the mask will be modified. If no mask is provided, the following
2371
+ # default mask is used: `paths: "bindings, etag"`
2372
+ # Corresponds to the JSON property `updateMask`
2373
+ # @return [String]
2374
+ attr_accessor :update_mask
2375
+
2376
+ def initialize(**args)
2377
+ update!(**args)
2378
+ end
2379
+
2380
+ # Update properties of this object
2381
+ def update!(**args)
2382
+ @policy = args[:policy] if args.key?(:policy)
2383
+ @update_mask = args[:update_mask] if args.key?(:update_mask)
2384
+ end
2385
+ end
2386
+
2387
+ # Request message for `TestIamPermissions` method.
2388
+ class GoogleIamV1TestIamPermissionsRequest
2389
+ include Google::Apis::Core::Hashable
2390
+
2391
+ # The set of permissions to check for the `resource`. Permissions with wildcards
2392
+ # (such as `*` or `storage.*`) are not allowed. For more information see [IAM
2393
+ # Overview](https://cloud.google.com/iam/docs/overview#permissions).
2394
+ # Corresponds to the JSON property `permissions`
2395
+ # @return [Array<String>]
2396
+ attr_accessor :permissions
2397
+
2398
+ def initialize(**args)
2399
+ update!(**args)
2400
+ end
2401
+
2402
+ # Update properties of this object
2403
+ def update!(**args)
2404
+ @permissions = args[:permissions] if args.key?(:permissions)
2405
+ end
2406
+ end
2407
+
2408
+ # Response message for `TestIamPermissions` method.
2409
+ class GoogleIamV1TestIamPermissionsResponse
2410
+ include Google::Apis::Core::Hashable
2411
+
2412
+ # A subset of `TestPermissionsRequest.permissions` that the caller is allowed.
2413
+ # Corresponds to the JSON property `permissions`
2414
+ # @return [Array<String>]
2415
+ attr_accessor :permissions
2416
+
2417
+ def initialize(**args)
2418
+ update!(**args)
2419
+ end
2420
+
2421
+ # Update properties of this object
2422
+ def update!(**args)
2423
+ @permissions = args[:permissions] if args.key?(:permissions)
2424
+ end
2425
+ end
2426
+
2427
+ # A generic empty message that you can re-use to avoid defining duplicated empty
2428
+ # messages in your APIs. A typical example is to use it as the request or the
2429
+ # response type of an API method. For instance: service Foo ` rpc Bar(google.
2430
+ # protobuf.Empty) returns (google.protobuf.Empty); `
2431
+ class GoogleProtobufEmpty
2432
+ include Google::Apis::Core::Hashable
2433
+
2434
+ def initialize(**args)
2435
+ update!(**args)
2436
+ end
2437
+
2438
+ # Update properties of this object
2439
+ def update!(**args)
2440
+ end
2441
+ end
2442
+
2443
+ # Represents a textual expression in the Common Expression Language (CEL) syntax.
2444
+ # CEL is a C-like expression language. The syntax and semantics of CEL are
2445
+ # documented at https://github.com/google/cel-spec. Example (Comparison): title:
2446
+ # "Summary size limit" description: "Determines if a summary is less than 100
2447
+ # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
2448
+ # Requestor is owner" description: "Determines if requestor is the document
2449
+ # owner" expression: "document.owner == request.auth.claims.email" Example (
2450
+ # Logic): title: "Public documents" description: "Determine whether the document
2451
+ # should be publicly visible" expression: "document.type != 'private' &&
2452
+ # document.type != 'internal'" Example (Data Manipulation): title: "Notification
2453
+ # string" description: "Create a notification string with a timestamp."
2454
+ # expression: "'New message received at ' + string(document.create_time)" The
2455
+ # exact variables and functions that may be referenced within an expression are
2456
+ # determined by the service that evaluates it. See the service documentation for
2457
+ # additional information.
2458
+ class GoogleTypeExpr
2459
+ include Google::Apis::Core::Hashable
2460
+
2461
+ # Optional. Description of the expression. This is a longer text which describes
2462
+ # the expression, e.g. when hovered over it in a UI.
2463
+ # Corresponds to the JSON property `description`
2464
+ # @return [String]
2465
+ attr_accessor :description
2466
+
2467
+ # Textual representation of an expression in Common Expression Language syntax.
2468
+ # Corresponds to the JSON property `expression`
2469
+ # @return [String]
2470
+ attr_accessor :expression
2471
+
2472
+ # Optional. String indicating the location of the expression for error reporting,
2473
+ # e.g. a file name and a position in the file.
2474
+ # Corresponds to the JSON property `location`
2475
+ # @return [String]
2476
+ attr_accessor :location
2477
+
2478
+ # Optional. Title for the expression, i.e. a short string describing its purpose.
2479
+ # This can be used e.g. in UIs which allow to enter the expression.
2480
+ # Corresponds to the JSON property `title`
2481
+ # @return [String]
2482
+ attr_accessor :title
2483
+
2484
+ def initialize(**args)
2485
+ update!(**args)
2486
+ end
2487
+
2488
+ # Update properties of this object
2489
+ def update!(**args)
2490
+ @description = args[:description] if args.key?(:description)
2491
+ @expression = args[:expression] if args.key?(:expression)
2492
+ @location = args[:location] if args.key?(:location)
2493
+ @title = args[:title] if args.key?(:title)
2494
+ end
2495
+ end
2496
+ end
2497
+ end
2498
+ end