firebase-tools 15.19.1 → 15.21.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.
Files changed (61) hide show
  1. package/lib/appdistribution/client.js +6 -5
  2. package/lib/appdistribution/options-parser-util.js +21 -0
  3. package/lib/apphosting/constants.js +2 -1
  4. package/lib/apphosting/localbuilds.js +4 -2
  5. package/lib/archiveDirectory.js +2 -2
  6. package/lib/auth.js +2 -3
  7. package/lib/bin/cli.js +26 -18
  8. package/lib/commands/appdistribution-distribute.js +13 -4
  9. package/lib/commands/apptesting.js +18 -3
  10. package/lib/commands/crashlytics-symbols-upload.js +2 -2
  11. package/lib/crashlytics/sourcemap.js +3 -4
  12. package/lib/database/import.js +2 -2
  13. package/lib/dataconnect/build.js +6 -6
  14. package/lib/deploy/apphosting/util.js +9 -1
  15. package/lib/deploy/dataconnect/context.js +0 -2
  16. package/lib/deploy/dataconnect/deploy.js +0 -19
  17. package/lib/deploy/functions/prepare.js +47 -107
  18. package/lib/deploy/functions/prepareFunctionsUpload.js +1 -2
  19. package/lib/deploy/functions/release/index.js +0 -5
  20. package/lib/deploy/functions/services/ailogic.js +17 -10
  21. package/lib/deploy/functions/services/auth.js +3 -0
  22. package/lib/deploy/functions/services/database.js +18 -0
  23. package/lib/deploy/functions/services/dataconnect.js +20 -0
  24. package/lib/deploy/functions/services/firestore.js +12 -0
  25. package/lib/deploy/functions/services/index.js +18 -7
  26. package/lib/deploy/functions/services/storage.js +14 -0
  27. package/lib/deploy/functions/triggerRegionHelper.js +2 -4
  28. package/lib/emulator/auth/apiSpec.js +307 -33
  29. package/lib/emulator/auth/cloudFunctions.js +2 -2
  30. package/lib/emulator/auth/operations.js +99 -9
  31. package/lib/emulator/auth/state.js +27 -0
  32. package/lib/emulator/downloadableEmulatorInfo.json +24 -24
  33. package/lib/emulator/functionsEmulatorShell.js +4 -4
  34. package/lib/emulator/functionsRuntimeWorker.js +2 -2
  35. package/lib/emulator/pubsubEmulator.js +3 -3
  36. package/lib/emulator/storage/apis/firebase.js +2 -2
  37. package/lib/emulator/storage/cloudFunctions.js +2 -2
  38. package/lib/emulator/storage/metadata.js +1 -2
  39. package/lib/emulator/storage/persistence.js +2 -2
  40. package/lib/emulator/storage/upload.js +3 -3
  41. package/lib/env.js +20 -4
  42. package/lib/experiments.js +1 -2
  43. package/lib/frameworks/angular/index.js +3 -2
  44. package/lib/frameworks/angular/utils.js +100 -2
  45. package/lib/frameworks/astro/index.js +1 -1
  46. package/lib/frameworks/astro/utils.js +1 -1
  47. package/lib/functions/python.js +4 -4
  48. package/lib/gcp/location.js +16 -1
  49. package/lib/hosting/cloudRunProxy.js +8 -0
  50. package/lib/index.js +2 -2
  51. package/lib/init/features/apphosting.js +8 -1
  52. package/lib/init/features/dataconnect/create_app.js +3 -4
  53. package/lib/init/features/dataconnect/sdk.js +2 -2
  54. package/lib/init/features/functions/python.js +32 -20
  55. package/lib/localFunction.js +4 -2
  56. package/lib/mcp/tools/apptesting/tests.js +3 -1
  57. package/lib/track.js +2 -2
  58. package/lib/tsconfig.compile.tsbuildinfo +1 -1
  59. package/lib/tsconfig.publish.tsbuildinfo +1 -1
  60. package/lib/utils.js +70 -0
  61. package/package.json +1 -6
@@ -27,7 +27,7 @@ exports.default = {
27
27
  paths: {
28
28
  "/v1/accounts:createAuthUri": {
29
29
  post: {
30
- description: "If an email identifier is specified, checks and returns if any user account is registered with the email. If there is a registered account, fetches all providers associated with the account's email. If the provider ID of an Identity Provider (IdP) is specified, creates an authorization URI for the IdP. The user can be directed to this URI to sign in with the IdP. An [API key](https://cloud.google.com/docs/authentication/api-keys) is required in the request in order to identify the Google Cloud project.",
30
+ description: "If an email identifier is specified, checks and returns if any user account is registered with the email. If there is a registered account, fetches all providers associated with the account's email. If [email enumeration protection](https://cloud.google.com/identity-platform/docs/admin/email-enumeration-protection) is enabled, this method returns an empty list. If the provider ID of an Identity Provider (IdP) is specified, creates an authorization URI for the IdP. The user can be directed to this URI to sign in with the IdP. An [API key](https://cloud.google.com/docs/authentication/api-keys) is required in the request in order to identify the Google Cloud project.",
31
31
  operationId: "identitytoolkit.accounts.createAuthUri",
32
32
  responses: {
33
33
  "200": {
@@ -273,7 +273,7 @@ exports.default = {
273
273
  },
274
274
  "/v1/accounts:sendVerificationCode": {
275
275
  post: {
276
- description: "Sends a SMS verification code for phone number sign-in. An [API key](https://cloud.google.com/docs/authentication/api-keys) is required in the request in order to identify the Google Cloud project.",
276
+ description: "Sends a SMS verification code for phone number sign-in. To localize the text of the SMS sent to the user, set the HTTP header `X-Firebase-Locale` to the language code that corresponds with the user's locale. An [API key](https://cloud.google.com/docs/authentication/api-keys) is required in the request in order to identify the Google Cloud project.",
277
277
  operationId: "identitytoolkit.accounts.sendVerificationCode",
278
278
  responses: {
279
279
  "200": {
@@ -537,7 +537,7 @@ exports.default = {
537
537
  },
538
538
  "/v1/accounts:signInWithPhoneNumber": {
539
539
  post: {
540
- description: "Completes a phone number authentication attempt. If a user already exists with the given phone number, an ID token is minted for that user. Otherwise, a new user is created and associated with the phone number. This method may also be used to link a phone number to an existing user. An [API key](https://cloud.google.com/docs/authentication/api-keys) is required in the request in order to identify the Google Cloud project.",
540
+ description: "Completes a phone number authentication attempt. If a user already exists with the given phone number, an ID token is minted for that user. Otherwise, a new user is created and associated with the phone number. This method may also be used to link a phone number to an existing user. To localize the text of the SMS sent to the user, set the HTTP header `X-Firebase-Locale` to the language code that corresponds with the user's locale. An [API key](https://cloud.google.com/docs/authentication/api-keys) is required in the request in order to identify the Google Cloud project.",
541
541
  operationId: "identitytoolkit.accounts.signInWithPhoneNumber",
542
542
  responses: {
543
543
  "200": {
@@ -4180,6 +4180,118 @@ exports.default = {
4180
4180
  tags: ["emulator"],
4181
4181
  },
4182
4182
  },
4183
+ "/v2/accounts/passkeyEnrollment:start": {
4184
+ post: {
4185
+ description: "Start passkey enrollment.",
4186
+ operationId: "identitytoolkit.accounts.passkeyEnrollment.start",
4187
+ requestBody: {
4188
+ content: {
4189
+ "application/json": {
4190
+ schema: {
4191
+ $ref: "#/components/schemas/GoogleCloudIdentitytoolkitV2StartPasskeyEnrollmentRequest",
4192
+ },
4193
+ },
4194
+ },
4195
+ },
4196
+ responses: {
4197
+ "200": {
4198
+ description: "Successful response",
4199
+ content: {
4200
+ "application/json": {
4201
+ schema: {
4202
+ $ref: "#/components/schemas/GoogleCloudIdentitytoolkitV2StartPasskeyEnrollmentResponse",
4203
+ },
4204
+ },
4205
+ },
4206
+ },
4207
+ },
4208
+ security: [{ apiKeyQuery: [] }, { apiKeyHeader: [] }],
4209
+ },
4210
+ },
4211
+ "/v2/accounts/passkeyEnrollment:finalize": {
4212
+ post: {
4213
+ description: "Finalize passkey enrollment.",
4214
+ operationId: "identitytoolkit.accounts.passkeyEnrollment.finalize",
4215
+ requestBody: {
4216
+ content: {
4217
+ "application/json": {
4218
+ schema: {
4219
+ $ref: "#/components/schemas/GoogleCloudIdentitytoolkitV2FinalizePasskeyEnrollmentRequest",
4220
+ },
4221
+ },
4222
+ },
4223
+ },
4224
+ responses: {
4225
+ "200": {
4226
+ description: "Successful response",
4227
+ content: {
4228
+ "application/json": {
4229
+ schema: {
4230
+ $ref: "#/components/schemas/GoogleCloudIdentitytoolkitV2FinalizePasskeyEnrollmentResponse",
4231
+ },
4232
+ },
4233
+ },
4234
+ },
4235
+ },
4236
+ security: [{ apiKeyQuery: [] }, { apiKeyHeader: [] }],
4237
+ },
4238
+ },
4239
+ "/v2/accounts/passkeySignIn:start": {
4240
+ post: {
4241
+ description: "Start passkey sign-in.",
4242
+ operationId: "identitytoolkit.accounts.passkeySignIn.start",
4243
+ requestBody: {
4244
+ content: {
4245
+ "application/json": {
4246
+ schema: {
4247
+ $ref: "#/components/schemas/GoogleCloudIdentitytoolkitV2StartPasskeySignInRequest",
4248
+ },
4249
+ },
4250
+ },
4251
+ },
4252
+ responses: {
4253
+ "200": {
4254
+ description: "Successful response",
4255
+ content: {
4256
+ "application/json": {
4257
+ schema: {
4258
+ $ref: "#/components/schemas/GoogleCloudIdentitytoolkitV2StartPasskeySignInResponse",
4259
+ },
4260
+ },
4261
+ },
4262
+ },
4263
+ },
4264
+ security: [{ apiKeyQuery: [] }, { apiKeyHeader: [] }],
4265
+ },
4266
+ },
4267
+ "/v2/accounts/passkeySignIn:finalize": {
4268
+ post: {
4269
+ description: "Finalize passkey sign-in.",
4270
+ operationId: "identitytoolkit.accounts.passkeySignIn.finalize",
4271
+ requestBody: {
4272
+ content: {
4273
+ "application/json": {
4274
+ schema: {
4275
+ $ref: "#/components/schemas/GoogleCloudIdentitytoolkitV2FinalizePasskeySignInRequest",
4276
+ },
4277
+ },
4278
+ },
4279
+ },
4280
+ responses: {
4281
+ "200": {
4282
+ description: "Successful response",
4283
+ content: {
4284
+ "application/json": {
4285
+ schema: {
4286
+ $ref: "#/components/schemas/GoogleCloudIdentitytoolkitV2FinalizePasskeySignInResponse",
4287
+ },
4288
+ },
4289
+ },
4290
+ },
4291
+ },
4292
+ security: [{ apiKeyQuery: [] }, { apiKeyHeader: [] }],
4293
+ },
4294
+ },
4183
4295
  },
4184
4296
  components: {
4185
4297
  schemas: {
@@ -4360,7 +4472,7 @@ exports.default = {
4360
4472
  type: "string",
4361
4473
  },
4362
4474
  signinMethods: {
4363
- description: "The list of sign-in methods that the user has previously used. Each element is one of `password`, `emailLink`, or the provider ID of an IdP. Present only when a registered email identifier is set in the request.",
4475
+ description: "The list of sign-in methods that the user has previously used. Each element is one of `password`, `emailLink`, or the provider ID of an IdP. Present only when a registered email identifier is set in the request. If [email enumeration protection](https://cloud.google.com/identity-platform/docs/admin/email-enumeration-protection) is enabled, this method returns an empty list.",
4364
4476
  items: { type: "string" },
4365
4477
  type: "array",
4366
4478
  },
@@ -4512,7 +4624,6 @@ exports.default = {
4512
4624
  type: "array",
4513
4625
  },
4514
4626
  federatedUserId: {
4515
- description: "The federated user identifier of one or more accounts to fetch. Should only be specified by authenticated requests bearing a Google OAuth 2.0 credential with proper [permissions](https://cloud.google.com/identity-platform/docs/access-control).",
4516
4627
  items: {
4517
4628
  $ref: "#/components/schemas/GoogleCloudIdentitytoolkitV1FederatedUserIdentifier",
4518
4629
  },
@@ -4618,6 +4729,10 @@ exports.default = {
4618
4729
  description: "An ID token for the account. It is required for VERIFY_AND_CHANGE_EMAIL and VERIFY_EMAIL requests unless return_oob_link is set to true.",
4619
4730
  type: "string",
4620
4731
  },
4732
+ linkDomain: {
4733
+ description: "Optional. In order to ensure that the url used can be easily opened in iOS or Android, we create a Hosting link '/__/auth/links'. This optional field contains the domain to use when constructing a Hosting link. If not set, '.firebaseapp.com' domain will be used.",
4734
+ type: "string",
4735
+ },
4621
4736
  newEmail: {
4622
4737
  description: "The email address the account is being updated to. Required only for VERIFY_AND_CHANGE_EMAIL requests.",
4623
4738
  type: "string",
@@ -4777,7 +4892,6 @@ exports.default = {
4777
4892
  type: "integer",
4778
4893
  },
4779
4894
  provider: {
4780
- description: "Name of the identity provider.",
4781
4895
  enum: [
4782
4896
  "PROVIDER_UNSPECIFIED",
4783
4897
  "MSLIVE",
@@ -4948,7 +5062,6 @@ exports.default = {
4948
5062
  description: "Request message for QueryUserInfo.",
4949
5063
  properties: {
4950
5064
  expression: {
4951
- description: "Query conditions used to filter results. If more than one is passed, only the first SqlExpression is evaluated.",
4952
5065
  items: { $ref: "#/components/schemas/GoogleCloudIdentitytoolkitV1SqlExpression" },
4953
5066
  type: "array",
4954
5067
  },
@@ -4962,17 +5075,12 @@ exports.default = {
4962
5075
  format: "int64",
4963
5076
  type: "string",
4964
5077
  },
4965
- order: {
4966
- description: "The order for sorting query result. Defaults to __ascending__ order. Only valid when `return_user_info` is set to `true`.",
4967
- enum: ["ORDER_UNSPECIFIED", "ASC", "DESC"],
4968
- type: "string",
4969
- },
5078
+ order: { enum: ["ORDER_UNSPECIFIED", "ASC", "DESC"], type: "string" },
4970
5079
  returnUserInfo: {
4971
5080
  description: "If `true`, this request will return the accounts matching the query. If `false`, only the __count__ of accounts matching the query will be returned. Defaults to `true`.",
4972
5081
  type: "boolean",
4973
5082
  },
4974
5083
  sortBy: {
4975
- description: "The field to use for sorting user accounts. Defaults to `USER_ID`. Note: when `phone_number` is specified in `expression`, the result ignores the sorting. Only valid when `return_user_info` is set to `true`.",
4976
5084
  enum: [
4977
5085
  "SORT_BY_FIELD_UNSPECIFIED",
4978
5086
  "USER_ID",
@@ -5010,7 +5118,7 @@ exports.default = {
5010
5118
  description: "Request message for ResetPassword.",
5011
5119
  properties: {
5012
5120
  email: {
5013
- description: "The email of the account to be modified. Specify this and the old password in order to change an account's password without using an out-of-band code.",
5121
+ description: "Optional. The email of the account to be modified. Specify this and the old password in order to change an account's password without using an out-of-band code.",
5014
5122
  type: "string",
5015
5123
  },
5016
5124
  newPassword: {
@@ -5026,7 +5134,7 @@ exports.default = {
5026
5134
  type: "string",
5027
5135
  },
5028
5136
  tenantId: {
5029
- description: "The tenant ID of the Identity Platform tenant the account belongs to.",
5137
+ description: "Optional. The tenant ID of the Identity Platform tenant the account belongs to.",
5030
5138
  type: "string",
5031
5139
  },
5032
5140
  },
@@ -5061,13 +5169,27 @@ exports.default = {
5061
5169
  type: "object",
5062
5170
  },
5063
5171
  GoogleCloudIdentitytoolkitV1SendVerificationCodeRequest: {
5064
- description: "Request message for SendVerificationCode. At least one of (`ios_receipt` and `ios_secret`), `recaptcha_token`, or `safety_net_token` must be specified to verify the verification code is being sent on behalf of a real app and not an emulator.",
5172
+ description: "Request message for SendVerificationCode. 'captcha_response' is required when reCAPTCHA enterprise is enabled, or otherwise at least one of (`ios_receipt` and `ios_secret`), `recaptcha_token`, or `play_integrity_token` must be specified to verify the verification code is being sent on behalf of a real app and not an emulator.",
5065
5173
  properties: {
5066
5174
  autoRetrievalInfo: {
5067
5175
  $ref: "#/components/schemas/GoogleCloudIdentitytoolkitV1AutoRetrievalInfo",
5068
5176
  },
5177
+ captchaResponse: {
5178
+ description: "Optional. The reCAPTCHA Enterprise token provided by the reCAPTCHA client-side integration. Required when reCAPTCHA enterprise is enabled.",
5179
+ type: "string",
5180
+ },
5181
+ clientType: {
5182
+ description: "Optional. The client type, web, android or ios. Required when reCAPTCHA Enterprise is enabled.",
5183
+ enum: [
5184
+ "CLIENT_TYPE_UNSPECIFIED",
5185
+ "CLIENT_TYPE_WEB",
5186
+ "CLIENT_TYPE_ANDROID",
5187
+ "CLIENT_TYPE_IOS",
5188
+ ],
5189
+ type: "string",
5190
+ },
5069
5191
  iosReceipt: {
5070
- description: "Receipt of successful iOS app token validation. At least one of (`ios_receipt` and `ios_secret`), `recaptcha_token`, or `safety_net_token` must be specified to verify the verification code is being sent on behalf of a real app and not an emulator. This should come from the response of verifyIosClient. If present, the caller should also provide the `ios_secret`, as well as a bundle ID in the `x-ios-bundle-identifier` header, which must match the bundle ID from the verifyIosClient request.",
5192
+ description: "Receipt of successful iOS app token validation. At least one of (`ios_receipt` and `ios_secret`), `recaptcha_token`, or `play_integrity_token` must be specified to verify the verification code is being sent on behalf of a real app and not an emulator, if 'captcha_response' is not used (reCAPTCHA enterprise is not enabled). This should come from the response of verifyIosClient. If present, the caller should also provide the `ios_secret`, as well as a bundle ID in the `x-ios-bundle-identifier` header, which must match the bundle ID from the verifyIosClient request.",
5071
5193
  type: "string",
5072
5194
  },
5073
5195
  iosSecret: {
@@ -5079,15 +5201,20 @@ exports.default = {
5079
5201
  type: "string",
5080
5202
  },
5081
5203
  playIntegrityToken: {
5082
- description: "Android only. Used to assert application identity in place of a recaptcha token (and safety_net_token). At least one of (`ios_receipt` and `ios_secret`), `recaptcha_token`, , or `play_integrity_token` must be specified to verify the verification code is being sent on behalf of a real app and not an emulator. A Play Integrity Token can be generated via the [PlayIntegrity API](https://developer.android.com/google/play/integrity) with applying SHA256 to the `phone_number` field as the nonce.",
5204
+ description: "Android only. Used to assert application identity in place of a recaptcha token (and safety_net_token). At least one of (`ios_receipt` and `ios_secret`), `recaptcha_token`, , or `play_integrity_token` must be specified to verify the verification code is being sent on behalf of a real app and not an emulator, if 'captcha_response' is not used (reCAPTCHA enterprise is not enabled). A Play Integrity Token can be generated via the [PlayIntegrity API](https://developer.android.com/google/play/integrity) with applying SHA256 to the `phone_number` field as the nonce.",
5083
5205
  type: "string",
5084
5206
  },
5085
5207
  recaptchaToken: {
5086
- description: "Recaptcha token for app verification. At least one of (`ios_receipt` and `ios_secret`), `recaptcha_token`, or `safety_net_token` must be specified to verify the verification code is being sent on behalf of a real app and not an emulator. The recaptcha should be generated by calling getRecaptchaParams and the recaptcha token will be generated on user completion of the recaptcha challenge.",
5208
+ description: "Recaptcha token for app verification. At least one of (`ios_receipt` and `ios_secret`), `recaptcha_token`, or `play_integrity_token` must be specified to verify the verification code is being sent on behalf of a real app and not an emulator, if 'captcha_response' is not used (reCAPTCHA enterprise is not enabled). The recaptcha should be generated by calling getRecaptchaParams and the recaptcha token will be generated on user completion of the recaptcha challenge.",
5209
+ type: "string",
5210
+ },
5211
+ recaptchaVersion: {
5212
+ description: "Optional. The reCAPTCHA version of the reCAPTCHA token in the captcha_response. Required when reCAPTCHA Enterprise is enabled.",
5213
+ enum: ["RECAPTCHA_VERSION_UNSPECIFIED", "RECAPTCHA_ENTERPRISE"],
5087
5214
  type: "string",
5088
5215
  },
5089
5216
  safetyNetToken: {
5090
- description: "Android only. Used to assert application identity in place of a recaptcha token. At least one of (`ios_receipt` and `ios_secret`), `recaptcha_token`, or `safety_net_token` must be specified to verify the verification code is being sent on behalf of a real app and not an emulator. A SafetyNet Token can be generated via the [SafetyNet Android Attestation API](https://developer.android.com/training/safetynet/attestation.html), with the Base64 encoding of the `phone_number` field as the nonce.",
5217
+ description: "Android only. Safety Net has been deprecated. Use play_integrity_token instead.",
5091
5218
  type: "string",
5092
5219
  },
5093
5220
  tenantId: {
@@ -5126,7 +5253,6 @@ exports.default = {
5126
5253
  },
5127
5254
  delegatedProjectNumber: { deprecated: true, format: "int64", type: "string" },
5128
5255
  deleteAttribute: {
5129
- description: "The account's attributes to be deleted.",
5130
5256
  items: {
5131
5257
  enum: [
5132
5258
  "USER_ATTRIBUTE_NAME_UNSPECIFIED",
@@ -5155,7 +5281,7 @@ exports.default = {
5155
5281
  type: "string",
5156
5282
  },
5157
5283
  email: {
5158
- description: "The user's new email to be updated in the account's attributes. The length of email should be less than 256 characters and in the format of `name@domain.tld`. The email should also match the [RFC 822](https://tools.ietf.org/html/rfc822) addr-spec production.",
5284
+ description: "The user's new email to be updated in the account's attributes. The length of email should be less than 256 characters and in the format of `name@domain.tld`. The email should also match the [RFC 822](https://tools.ietf.org/html/rfc822) addr-spec production. If [email enumeration protection](https://cloud.google.com/identity-platform/docs/admin/email-enumeration-protection) is enabled, the email cannot be changed by the user without verifying the email first, but it can be changed by an administrator.",
5159
5285
  type: "string",
5160
5286
  },
5161
5287
  emailVerified: {
@@ -5222,6 +5348,11 @@ exports.default = {
5222
5348
  format: "int64",
5223
5349
  type: "string",
5224
5350
  },
5351
+ deletePasskey: {
5352
+ type: "array",
5353
+ items: { type: "string" },
5354
+ description: "Credential IDs of passkeys to delete.",
5355
+ },
5225
5356
  },
5226
5357
  type: "object",
5227
5358
  },
@@ -5585,7 +5716,7 @@ exports.default = {
5585
5716
  type: "string",
5586
5717
  },
5587
5718
  needConfirmation: {
5588
- description: 'Whether or not there is an existing Identity Platform user account with the same email address as the current account signed in at the IdP, and the account\'s email addresss is not verified at the IdP. The user will need to sign in to the existing Identity Platform account and then link the current credential from the IdP to it. Only present if the "One account per email address" setting is enabled.',
5719
+ description: 'Whether or not there is an existing Identity Platform user account with the same email address as the current account signed in at the IdP, and the account\'s email address is not verified at the IdP. The user will need to sign in to the existing Identity Platform account and then link the current credential from the IdP to it. Only present if the "One account per email address" setting is enabled.',
5589
5720
  type: "boolean",
5590
5721
  },
5591
5722
  needEmail: { deprecated: true, type: "boolean" },
@@ -6017,7 +6148,6 @@ exports.default = {
6017
6148
  type: "integer",
6018
6149
  },
6019
6150
  passwordHashOrder: {
6020
- description: "Password and salt order when verify password.",
6021
6151
  enum: ["UNSPECIFIED_ORDER", "SALT_AND_PASSWORD", "PASSWORD_AND_SALT"],
6022
6152
  type: "string",
6023
6153
  },
@@ -6185,6 +6315,11 @@ exports.default = {
6185
6315
  format: "int32",
6186
6316
  type: "integer",
6187
6317
  },
6318
+ passkeyInfo: {
6319
+ type: "array",
6320
+ items: { $ref: "#/components/schemas/GoogleCloudIdentitytoolkitV1PasskeyInfo" },
6321
+ description: "Passkeys enrolled for this user.",
6322
+ },
6188
6323
  },
6189
6324
  type: "object",
6190
6325
  },
@@ -6369,12 +6504,20 @@ exports.default = {
6369
6504
  $ref: "#/components/schemas/GoogleCloudIdentitytoolkitAdminV2BlockingFunctionsConfig",
6370
6505
  },
6371
6506
  client: { $ref: "#/components/schemas/GoogleCloudIdentitytoolkitAdminV2ClientConfig" },
6507
+ defaultHostingSite: {
6508
+ description: "Output only. Default Firebase hosting site name",
6509
+ readOnly: true,
6510
+ type: "string",
6511
+ },
6372
6512
  emailPrivacyConfig: {
6373
6513
  $ref: "#/components/schemas/GoogleCloudIdentitytoolkitAdminV2EmailPrivacyConfig",
6374
6514
  },
6375
6515
  mfa: {
6376
6516
  $ref: "#/components/schemas/GoogleCloudIdentitytoolkitAdminV2MultiFactorAuthConfig",
6377
6517
  },
6518
+ mobileLinksConfig: {
6519
+ $ref: "#/components/schemas/GoogleCloudIdentitytoolkitAdminV2MobileLinksConfig",
6520
+ },
6378
6521
  monitoring: {
6379
6522
  $ref: "#/components/schemas/GoogleCloudIdentitytoolkitAdminV2MonitoringConfig",
6380
6523
  },
@@ -6528,7 +6671,7 @@ exports.default = {
6528
6671
  type: "object",
6529
6672
  },
6530
6673
  GoogleCloudIdentitytoolkitAdminV2EmailTemplate: {
6531
- description: "Email template. The subject and body fields can contain the following placeholders which will be replaced with the appropriate values: %LINK% - The link to use to redeem the send OOB code. %EMAIL% - The email where the email is being sent. %NEW_EMAIL% - The new email being set for the account (when applicable). %APP_NAME% - The GCP project's display name. %DISPLAY_NAME% - The user's display name.",
6674
+ description: "Email template. The subject and body fields can contain the following placeholders which will be replaced with the appropriate values: %LINK% - The link to use to redeem the send OOB code. %EMAIL% - The email where the email is being sent. %NEW_EMAIL% - The new email being set for the account (when applicable). %APP_NAME% - The Google Cloud project's display name. %DISPLAY_NAME% - The user's display name.",
6532
6675
  properties: {
6533
6676
  body: { description: "Email body", type: "string" },
6534
6677
  bodyFormat: {
@@ -6758,6 +6901,17 @@ exports.default = {
6758
6901
  },
6759
6902
  type: "object",
6760
6903
  },
6904
+ GoogleCloudIdentitytoolkitAdminV2MobileLinksConfig: {
6905
+ description: "Configuration mobile links.",
6906
+ properties: {
6907
+ domain: {
6908
+ description: "Open code in app domain to use for app links and universal links.",
6909
+ enum: ["DOMAIN_UNSPECIFIED", "FIREBASE_DYNAMIC_LINK_DOMAIN", "HOSTING_DOMAIN"],
6910
+ type: "string",
6911
+ },
6912
+ },
6913
+ type: "object",
6914
+ },
6761
6915
  GoogleCloudIdentitytoolkitAdminV2MonitoringConfig: {
6762
6916
  description: "Configuration related to monitoring project activity.",
6763
6917
  properties: {
@@ -6959,7 +7113,7 @@ exports.default = {
6959
7113
  description: "The reCAPTCHA Enterprise integration config.",
6960
7114
  properties: {
6961
7115
  emailPasswordEnforcementState: {
6962
- description: "The reCAPTCHA config for email/password provider, containing the enforcement status. The email/password provider contains all related user flows protected by reCAPTCHA.",
7116
+ description: "The reCAPTCHA config for email/password provider, containing the enforcement status. The email/password provider contains all email related user flows protected by reCAPTCHA.",
6963
7117
  enum: ["RECAPTCHA_PROVIDER_ENFORCEMENT_STATE_UNSPECIFIED", "OFF", "AUDIT", "ENFORCE"],
6964
7118
  type: "string",
6965
7119
  },
@@ -6970,16 +7124,35 @@ exports.default = {
6970
7124
  },
6971
7125
  type: "array",
6972
7126
  },
7127
+ phoneEnforcementState: {
7128
+ description: "The reCAPTCHA config for phone provider, containing the enforcement status. The phone provider contains all SMS related user flows protected by reCAPTCHA.",
7129
+ enum: ["RECAPTCHA_PROVIDER_ENFORCEMENT_STATE_UNSPECIFIED", "OFF", "AUDIT", "ENFORCE"],
7130
+ type: "string",
7131
+ },
6973
7132
  recaptchaKeys: {
6974
- description: "Output only. The reCAPTCHA keys.",
7133
+ description: "The reCAPTCHA keys.",
6975
7134
  items: { $ref: "#/components/schemas/GoogleCloudIdentitytoolkitAdminV2RecaptchaKey" },
6976
- readOnly: true,
7135
+ type: "array",
7136
+ },
7137
+ tollFraudManagedRules: {
7138
+ description: "The managed rules for the authentication action based on reCAPTCHA toll fraud risk scores. Toll fraud managed rules will only take effect when the phone_enforcement_state is AUDIT or ENFORCE and use_sms_toll_fraud_protection is true.",
7139
+ items: {
7140
+ $ref: "#/components/schemas/GoogleCloudIdentitytoolkitAdminV2RecaptchaTollFraudManagedRule",
7141
+ },
6977
7142
  type: "array",
6978
7143
  },
6979
7144
  useAccountDefender: {
6980
7145
  description: "Whether to use the account defender for reCAPTCHA assessment. Defaults to `false`.",
6981
7146
  type: "boolean",
6982
7147
  },
7148
+ useSmsBotScore: {
7149
+ description: "Whether to use the rCE bot score for reCAPTCHA phone provider. Can only be true when the phone_enforcement_state is AUDIT or ENFORCE.",
7150
+ type: "boolean",
7151
+ },
7152
+ useSmsTollFraudProtection: {
7153
+ description: "Whether to use the rCE sms toll fraud protection risk score for reCAPTCHA phone provider. Can only be true when the phone_enforcement_state is AUDIT or ENFORCE.",
7154
+ type: "boolean",
7155
+ },
6983
7156
  },
6984
7157
  type: "object",
6985
7158
  },
@@ -7014,6 +7187,22 @@ exports.default = {
7014
7187
  },
7015
7188
  type: "object",
7016
7189
  },
7190
+ GoogleCloudIdentitytoolkitAdminV2RecaptchaTollFraudManagedRule: {
7191
+ description: "The config for a reCAPTCHA toll fraud assessment managed rule. Models a single interval [start_score, end_score]. The end_score is implicit. It is either the closest smaller end_score (if one is available) or 0. Intervals in aggregate span [0, 1] without overlapping.",
7192
+ properties: {
7193
+ action: {
7194
+ description: "The action taken if the reCAPTCHA score of a request is within the interval [start_score, end_score].",
7195
+ enum: ["RECAPTCHA_ACTION_UNSPECIFIED", "BLOCK"],
7196
+ type: "string",
7197
+ },
7198
+ startScore: {
7199
+ description: "The start score (inclusive) for an action. Must be a value between 0.0 and 1.0, at 11 discrete values; e.g. 0, 0.1, 0.2, 0.3, ... 0.9, 1.0. A score of 0.0 indicates the safest request (likely legitimate), whereas 1.0 indicates the riskiest request (likely toll fraud). See https://cloud.google.com/recaptcha-enterprise/docs/sms-fraud-detection#create-assessment-sms.",
7200
+ format: "float",
7201
+ type: "number",
7202
+ },
7203
+ },
7204
+ type: "object",
7205
+ },
7017
7206
  GoogleCloudIdentitytoolkitAdminV2RequestLogging: {
7018
7207
  description: "Configuration for logging requests made to this project to Stackdriver Logging",
7019
7208
  properties: {
@@ -7164,7 +7353,7 @@ exports.default = {
7164
7353
  type: "string",
7165
7354
  },
7166
7355
  startTime: {
7167
- description: "When this quota will take affect",
7356
+ description: "When this quota will take effect",
7168
7357
  format: "google-datetime",
7169
7358
  type: "string",
7170
7359
  },
@@ -7208,6 +7397,9 @@ exports.default = {
7208
7397
  mfaConfig: {
7209
7398
  $ref: "#/components/schemas/GoogleCloudIdentitytoolkitAdminV2MultiFactorAuthConfig",
7210
7399
  },
7400
+ mobileLinksConfig: {
7401
+ $ref: "#/components/schemas/GoogleCloudIdentitytoolkitAdminV2MobileLinksConfig",
7402
+ },
7211
7403
  monitoring: {
7212
7404
  $ref: "#/components/schemas/GoogleCloudIdentitytoolkitAdminV2MonitoringConfig",
7213
7405
  },
@@ -7477,6 +7669,14 @@ exports.default = {
7477
7669
  description: 'The reCAPTCHA Enterprise key resource name, e.g. "projects/{project}/keys/{key}". This will only be returned when the reCAPTCHA enforcement state is AUDIT or ENFORCE on at least one of the reCAPTCHA providers.',
7478
7670
  type: "string",
7479
7671
  },
7672
+ useSmsBotScore: {
7673
+ description: "Whether to use the rCE bot score for reCAPTCHA phone provider.",
7674
+ type: "boolean",
7675
+ },
7676
+ useSmsTollFraudProtection: {
7677
+ description: "Whether to use the rCE sms toll fraud protection risk score for reCAPTCHA phone provider.",
7678
+ type: "boolean",
7679
+ },
7480
7680
  },
7481
7681
  type: "object",
7482
7682
  },
@@ -7490,7 +7690,7 @@ exports.default = {
7490
7690
  },
7491
7691
  provider: {
7492
7692
  description: "The provider that has reCAPTCHA protection.",
7493
- enum: ["RECAPTCHA_PROVIDER_UNSPECIFIED", "EMAIL_PASSWORD_PROVIDER"],
7693
+ enum: ["RECAPTCHA_PROVIDER_UNSPECIFIED", "EMAIL_PASSWORD_PROVIDER", "PHONE_PROVIDER"],
7494
7694
  type: "string",
7495
7695
  },
7496
7696
  },
@@ -7567,6 +7767,20 @@ exports.default = {
7567
7767
  autoRetrievalInfo: {
7568
7768
  $ref: "#/components/schemas/GoogleCloudIdentitytoolkitV2AutoRetrievalInfo",
7569
7769
  },
7770
+ captchaResponse: {
7771
+ description: "The reCAPTCHA Enterprise token provided by the reCAPTCHA client-side integration. Required when reCAPTCHA enterprise is enabled.",
7772
+ type: "string",
7773
+ },
7774
+ clientType: {
7775
+ description: "The client type, web, android or ios. Required when reCAPTCHA Enterprise is enabled.",
7776
+ enum: [
7777
+ "CLIENT_TYPE_UNSPECIFIED",
7778
+ "CLIENT_TYPE_WEB",
7779
+ "CLIENT_TYPE_ANDROID",
7780
+ "CLIENT_TYPE_IOS",
7781
+ ],
7782
+ type: "string",
7783
+ },
7570
7784
  iosReceipt: {
7571
7785
  description: "iOS only. Receipt of successful app token validation with APNS.",
7572
7786
  type: "string",
@@ -7584,6 +7798,11 @@ exports.default = {
7584
7798
  type: "string",
7585
7799
  },
7586
7800
  recaptchaToken: { description: "Web only. Recaptcha solution.", type: "string" },
7801
+ recaptchaVersion: {
7802
+ description: "The reCAPTCHA version of the reCAPTCHA token in the captcha_response. Required when reCAPTCHA Enterprise is enabled.",
7803
+ enum: ["RECAPTCHA_VERSION_UNSPECIFIED", "RECAPTCHA_ENTERPRISE"],
7804
+ type: "string",
7805
+ },
7587
7806
  safetyNetToken: {
7588
7807
  description: "Android only. Used to assert application identity in place of a recaptcha token. A SafetyNet Token can be generated via the [SafetyNet Android Attestation API](https://developer.android.com/training/safetynet/attestation.html), with the Base64 encoding of the `phone_number` field as the nonce.",
7589
7808
  type: "string",
@@ -7734,12 +7953,12 @@ exports.default = {
7734
7953
  properties: {
7735
7954
  condition: { $ref: "#/components/schemas/GoogleTypeExpr" },
7736
7955
  members: {
7737
- description: "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.",
7956
+ description: "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.",
7738
7957
  items: { type: "string" },
7739
7958
  type: "array",
7740
7959
  },
7741
7960
  role: {
7742
- description: "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.",
7961
+ description: "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).",
7743
7962
  type: "string",
7744
7963
  },
7745
7964
  },
@@ -7762,7 +7981,7 @@ exports.default = {
7762
7981
  type: "object",
7763
7982
  },
7764
7983
  GoogleIamV1Policy: {
7765
- description: 'An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members`, or principals, to a single `role`. Principals can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { "bindings": [ { "role": "roles/resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@appspot.gserviceaccount.com" ] }, { "role": "roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com" ], "condition": { "title": "expirable access", "description": "Does not grant access after Sep 2020", "expression": "request.time < timestamp(\'2020-10-01T00:00:00.000Z\')", } } ], "etag": "BwWWja0YfJA=", "version": 3 } **YAML example:** bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time < timestamp(\'2020-10-01T00:00:00.000Z\') etag: BwWWja0YfJA= version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).',
7984
+ description: 'An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members`, or principals, to a single `role`. Principals can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** ``` { "bindings": [ { "role": "roles/resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@appspot.gserviceaccount.com" ] }, { "role": "roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com" ], "condition": { "title": "expirable access", "description": "Does not grant access after Sep 2020", "expression": "request.time < timestamp(\'2020-10-01T00:00:00.000Z\')", } } ], "etag": "BwWWja0YfJA=", "version": 3 } ``` **YAML example:** ``` bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time < timestamp(\'2020-10-01T00:00:00.000Z\') etag: BwWWja0YfJA= version: 3 ``` For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).',
7766
7985
  properties: {
7767
7986
  auditConfigs: {
7768
7987
  description: "Specifies cloud audit logging configuration for this policy.",
@@ -7897,6 +8116,10 @@ exports.default = {
7897
8116
  description: "Emulator-specific configuration.",
7898
8117
  properties: {
7899
8118
  signIn: { properties: { allowDuplicateEmails: { type: "boolean" } }, type: "object" },
8119
+ emailPrivacyConfig: {
8120
+ properties: { enableImprovedEmailPrivacy: { type: "boolean" } },
8121
+ type: "object",
8122
+ },
7900
8123
  },
7901
8124
  },
7902
8125
  EmulatorV1ProjectsOobCodes: {
@@ -7934,6 +8157,57 @@ exports.default = {
7934
8157
  },
7935
8158
  },
7936
8159
  },
8160
+ GoogleCloudIdentitytoolkitV1PasskeyInfo: {
8161
+ type: "object",
8162
+ properties: { credentialId: { type: "string" }, name: { type: "string" } },
8163
+ },
8164
+ GoogleCloudIdentitytoolkitV2StartPasskeyEnrollmentRequest: {
8165
+ type: "object",
8166
+ properties: { idToken: { type: "string" }, tenantId: { type: "string" } },
8167
+ },
8168
+ GoogleCloudIdentitytoolkitV2StartPasskeyEnrollmentResponse: {
8169
+ type: "object",
8170
+ properties: { credentialCreationOptions: { type: "object" } },
8171
+ },
8172
+ GoogleCloudIdentitytoolkitV2FinalizePasskeyEnrollmentRequest: {
8173
+ type: "object",
8174
+ properties: {
8175
+ idToken: { type: "string" },
8176
+ tenantId: { type: "string" },
8177
+ authenticatorRegistrationResponse: { type: "object" },
8178
+ name: { type: "string" },
8179
+ displayName: { type: "string" },
8180
+ },
8181
+ },
8182
+ GoogleCloudIdentitytoolkitV2FinalizePasskeyEnrollmentResponse: {
8183
+ type: "object",
8184
+ properties: {
8185
+ localId: { type: "string" },
8186
+ idToken: { type: "string" },
8187
+ refreshToken: { type: "string" },
8188
+ },
8189
+ },
8190
+ GoogleCloudIdentitytoolkitV2StartPasskeySignInRequest: {
8191
+ type: "object",
8192
+ properties: { tenantId: { type: "string" } },
8193
+ },
8194
+ GoogleCloudIdentitytoolkitV2StartPasskeySignInResponse: {
8195
+ type: "object",
8196
+ properties: { credentialRequestOptions: { type: "object" } },
8197
+ },
8198
+ GoogleCloudIdentitytoolkitV2FinalizePasskeySignInRequest: {
8199
+ type: "object",
8200
+ properties: {
8201
+ tenantId: { type: "string" },
8202
+ authenticatorAuthenticationResponse: { type: "object" },
8203
+ name: { type: "string" },
8204
+ displayName: { type: "string" },
8205
+ },
8206
+ },
8207
+ GoogleCloudIdentitytoolkitV2FinalizePasskeySignInResponse: {
8208
+ type: "object",
8209
+ properties: { idToken: { type: "string" }, refreshToken: { type: "string" } },
8210
+ },
7937
8211
  },
7938
8212
  parameters: {
7939
8213
  access_token: {