google-apis-identitytoolkit_v2 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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