aws-cdk-lib 2.178.2__py3-none-any.whl → 2.180.0__py3-none-any.whl

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.

Potentially problematic release.


This version of aws-cdk-lib might be problematic. Click here for more details.

Files changed (70) hide show
  1. aws_cdk/__init__.py +83 -41
  2. aws_cdk/_jsii/__init__.py +1 -2
  3. aws_cdk/_jsii/{aws-cdk-lib@2.178.2.jsii.tgz → aws-cdk-lib@2.180.0.jsii.tgz} +0 -0
  4. aws_cdk/aws_acmpca/__init__.py +47 -0
  5. aws_cdk/aws_apigateway/__init__.py +176 -35
  6. aws_cdk/aws_apigatewayv2/__init__.py +151 -32
  7. aws_cdk/aws_apigatewayv2_integrations/__init__.py +348 -0
  8. aws_cdk/aws_applicationautoscaling/__init__.py +8 -8
  9. aws_cdk/aws_appsync/__init__.py +10 -7
  10. aws_cdk/aws_backup/__init__.py +89 -0
  11. aws_cdk/aws_batch/__init__.py +89 -50
  12. aws_cdk/aws_bedrock/__init__.py +506 -62
  13. aws_cdk/aws_cloudfront/__init__.py +1037 -146
  14. aws_cdk/aws_cloudfront_origins/__init__.py +1338 -144
  15. aws_cdk/aws_cloudtrail/__init__.py +4 -8
  16. aws_cdk/aws_cloudwatch/__init__.py +1 -1
  17. aws_cdk/aws_codebuild/__init__.py +218 -2
  18. aws_cdk/aws_codepipeline/__init__.py +113 -28
  19. aws_cdk/aws_codepipeline_actions/__init__.py +554 -63
  20. aws_cdk/aws_codestar/__init__.py +2 -1
  21. aws_cdk/aws_cognito/__init__.py +676 -29
  22. aws_cdk/aws_connect/__init__.py +257 -0
  23. aws_cdk/aws_datasync/__init__.py +279 -50
  24. aws_cdk/aws_deadline/__init__.py +683 -6
  25. aws_cdk/aws_directoryservice/__init__.py +9 -4
  26. aws_cdk/aws_dlm/__init__.py +2 -2
  27. aws_cdk/aws_dms/__init__.py +3 -3
  28. aws_cdk/aws_dynamodb/__init__.py +0 -54
  29. aws_cdk/aws_ec2/__init__.py +402 -130
  30. aws_cdk/aws_ecs/__init__.py +28 -43
  31. aws_cdk/aws_efs/__init__.py +1 -1
  32. aws_cdk/aws_eks/__init__.py +560 -182
  33. aws_cdk/aws_elasticloadbalancingv2/__init__.py +112 -27
  34. aws_cdk/aws_emrcontainers/__init__.py +44 -1
  35. aws_cdk/aws_events/__init__.py +17 -26
  36. aws_cdk/aws_events_targets/__init__.py +303 -16
  37. aws_cdk/aws_fms/__init__.py +5 -5
  38. aws_cdk/aws_fsx/__init__.py +5 -4
  39. aws_cdk/aws_glue/__init__.py +161 -0
  40. aws_cdk/aws_groundstation/__init__.py +23 -1
  41. aws_cdk/aws_iam/__init__.py +15 -15
  42. aws_cdk/aws_iot/__init__.py +7 -0
  43. aws_cdk/aws_ivs/__init__.py +254 -77
  44. aws_cdk/aws_kinesis/__init__.py +689 -35
  45. aws_cdk/aws_lambda/__init__.py +10 -15
  46. aws_cdk/aws_lambda_event_sources/__init__.py +175 -2
  47. aws_cdk/aws_logs/__init__.py +62 -13
  48. aws_cdk/aws_medialive/__init__.py +314 -4
  49. aws_cdk/aws_opensearchserverless/__init__.py +19 -0
  50. aws_cdk/aws_pinpoint/__init__.py +14 -9
  51. aws_cdk/aws_rds/__init__.py +246 -82
  52. aws_cdk/aws_s3/__init__.py +287 -9
  53. aws_cdk/aws_s3objectlambda/__init__.py +2 -2
  54. aws_cdk/aws_ses/__init__.py +228 -8
  55. aws_cdk/aws_ssm/__init__.py +4 -5
  56. aws_cdk/aws_stepfunctions/__init__.py +301 -70
  57. aws_cdk/aws_stepfunctions_tasks/__init__.py +269 -163
  58. aws_cdk/aws_supportapp/__init__.py +7 -7
  59. aws_cdk/aws_transfer/__init__.py +820 -2
  60. aws_cdk/aws_wafv2/__init__.py +17 -9
  61. aws_cdk/custom_resources/__init__.py +23 -26
  62. aws_cdk/cx_api/__init__.py +16 -0
  63. aws_cdk/pipelines/__init__.py +2 -2
  64. {aws_cdk_lib-2.178.2.dist-info → aws_cdk_lib-2.180.0.dist-info}/METADATA +1 -2
  65. {aws_cdk_lib-2.178.2.dist-info → aws_cdk_lib-2.180.0.dist-info}/RECORD +69 -70
  66. aws_cdk/lambda_layer_kubectl/__init__.py +0 -107
  67. {aws_cdk_lib-2.178.2.dist-info → aws_cdk_lib-2.180.0.dist-info}/LICENSE +0 -0
  68. {aws_cdk_lib-2.178.2.dist-info → aws_cdk_lib-2.180.0.dist-info}/NOTICE +0 -0
  69. {aws_cdk_lib-2.178.2.dist-info → aws_cdk_lib-2.180.0.dist-info}/WHEEL +0 -0
  70. {aws_cdk_lib-2.178.2.dist-info → aws_cdk_lib-2.180.0.dist-info}/top_level.txt +0 -0
@@ -26,6 +26,8 @@ This module is part of the [AWS Cloud Development Kit](https://github.com/aws/aw
26
26
  * [Code Verification](#code-verification)
27
27
  * [Link Verification](#link-verification)
28
28
  * [Sign In](#sign-in)
29
+
30
+ * [Choise-based authentication](#choice-based-authentication-passwordless-sign-in--passkey-sign-in)
29
31
  * [Attributes](#attributes)
30
32
  * [Attribute verification](#attribute-verification)
31
33
  * [Security](#security)
@@ -44,6 +46,10 @@ This module is part of the [AWS Cloud Development Kit](https://github.com/aws/aw
44
46
  * [Resource Servers](#resource-servers)
45
47
  * [Domains](#domains)
46
48
  * [Deletion protection](#deletion-protection)
49
+ * [Analytics Configuration](#analytics-configuration)
50
+
51
+ * [When specifying a Pinpoint application from the same account](#when-specifying-a-pinpoint-application-from-the-same-account)
52
+ * [When specifying a Pinpoint application from a different account](#when-specifying-a-pinpoint-application-from-a-different-account)
47
53
 
48
54
  ## User Pools
49
55
 
@@ -214,6 +220,85 @@ cognito.UserPool(self, "myuserpool",
214
220
  A user pool can optionally ignore case when evaluating sign-ins. When `signInCaseSensitive` is false, Cognito will not
215
221
  check the capitalization of the alias when signing in. Default is true.
216
222
 
223
+ #### Choice-based authentication: passwordless sign-in / passkey sign-in
224
+
225
+ User pools can be configured to allow the following authentication methods in choice-based authentication:
226
+
227
+ * Passwordless sign-in with email message one-time password
228
+ * Passwordless sign-in with SMS message one-time password
229
+ * Passkey (WebAuthn) sign-in
230
+
231
+ To use choice-based authentication, [User pool feature plan](#user-pool-feature-plans) should be Essentials or higher.
232
+
233
+ For details of authentication methods and client implementation, see [Manage authentication methods in AWS SDKs](https://docs.aws.amazon.com/cognito/latest/developerguide/authentication-flows-selection-sdk.html).
234
+
235
+ The following code configures a user pool with choice-based authentication enabled:
236
+
237
+ ```python
238
+ user_pool = cognito.UserPool(self, "myuserpool",
239
+ sign_in_policy=cognito.SignInPolicy(
240
+ allowed_first_auth_factors=cognito.AllowedFirstAuthFactors(
241
+ password=True, # password authentication must be enabled
242
+ email_otp=True, # enables email message one-time password
243
+ sms_otp=True, # enables SMS message one-time password
244
+ passkey=True
245
+ )
246
+ )
247
+ )
248
+
249
+ # You should also configure the user pool client with USER_AUTH authentication flow allowed
250
+ user_pool.add_client("myclient",
251
+ auth_flows=cognito.AuthFlow(user=True)
252
+ )
253
+ ```
254
+
255
+ ⚠️ Enabling SMS message one-time password requires the AWS account be activated to SMS message sending.
256
+ Learn more about [SMS message settings for Amazon Cognito user pools](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-sms-settings.html).
257
+
258
+ When enabling passkey sign-in, you should specify the authentication domain used as the relying party ID.
259
+ Learn more about [passkey sign-in of user pools](https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-authentication-flow-methods.html#amazon-cognito-user-pools-authentication-flow-methods-passkey) and [Web Authentication API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Authentication_API).
260
+
261
+ ```python
262
+ # Use the hosted Amazon Cognito domain as the relying party ID
263
+ cognito.UserPool(self, "myuserpool",
264
+ sign_in_policy=cognito.SignInPolicy(
265
+ allowed_first_auth_factors=cognito.AllowedFirstAuthFactors(password=True, passkey=True)
266
+ ),
267
+ passkey_relying_party_id="myclientname.auth.region-name.amazoncognito.com"
268
+ )
269
+
270
+ # Use the custom domain as the relying party ID
271
+ cognito.UserPool(self, "myuserpool",
272
+ sign_in_policy=cognito.SignInPolicy(
273
+ allowed_first_auth_factors=cognito.AllowedFirstAuthFactors(password=True, passkey=True)
274
+ ),
275
+ passkey_relying_party_id="auth.example.com"
276
+ )
277
+ ```
278
+
279
+ You can configure user verification to be preferred (default) or required. When you set user verification to preferred, users can set up authenticators that don't have the user verification capability, and registration and authentication operations can succeed without user verification. To mandate user verification in passkey registration and authentication, specify `passkeyUserVerification` to `PasskeyUserVerification.REQUIRED`.
280
+
281
+ ```python
282
+ cognito.UserPool(self, "myuserpool",
283
+ sign_in_policy=cognito.SignInPolicy(
284
+ allowed_first_auth_factors=cognito.AllowedFirstAuthFactors(password=True, passkey=True)
285
+ ),
286
+ passkey_relying_party_id="auth.example.com",
287
+ passkey_user_verification=cognito.PasskeyUserVerification.REQUIRED
288
+ )
289
+ ```
290
+
291
+ To disable choice-based authentication explicitly, specify `password` only.
292
+
293
+ ```python
294
+ cognito.UserPool(self, "myuserpool",
295
+ sign_in_policy=cognito.SignInPolicy(
296
+ allowed_first_auth_factors=cognito.AllowedFirstAuthFactors(password=True)
297
+ ),
298
+ feature_plan=cognito.FeaturePlan.LITE
299
+ )
300
+ ```
301
+
217
302
  ### Attributes
218
303
 
219
304
  Attributes represent the various properties of each user that's collected and stored in the user pool. Cognito
@@ -1102,6 +1187,71 @@ user_pool.add_group("AnotherUserPoolGroup",
1102
1187
  group_name="another-group-name"
1103
1188
  )
1104
1189
  ```
1190
+
1191
+ ### Analytics Configuration
1192
+
1193
+ User pool clients can be configured with Amazon Pinpoint analytics to collect user activity metrics. This integration enables you to track user engagement and campaign effectiveness.
1194
+
1195
+ 📝 Note: Amazon Pinpoint isn't available in all AWS Regions. For a list of available Regions, see [Amazon Cognito and Amazon Pinpoint Region availability](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-pinpoint-integration.html#cognito-user-pools-find-region-mappings).
1196
+
1197
+ The following example shows how to configure analytics for a user pool client:
1198
+
1199
+ #### When specifying a Pinpoint application from the same account
1200
+
1201
+ If you specify the `application` property, do not specify the `applicationId`, `externalId`, or `roleArn` properties.
1202
+
1203
+ ```python
1204
+ import aws_cdk.aws_pinpoint as pinpoint
1205
+
1206
+ # user_pool: cognito.UserPool
1207
+ # pinpoint_app: pinpoint.CfnApp
1208
+ # pinpoint_role: iam.Role
1209
+
1210
+
1211
+ cognito.UserPoolClient(self, "Client",
1212
+ user_pool=user_pool,
1213
+ analytics=cognito.AnalyticsConfiguration(
1214
+ # Your Pinpoint project
1215
+ application=pinpoint_app,
1216
+
1217
+ # Whether to include user data in analytics events
1218
+ share_user_data=True
1219
+ )
1220
+ )
1221
+ ```
1222
+
1223
+ #### When specifying a Pinpoint application from a different account
1224
+
1225
+ If you specify the `applicationId`, `externalId`, or `roleArn` properties, do not specify the `application` property.
1226
+ (In this case, the `applicationId`, `externalId`, and `roleArn` must all be specified.)
1227
+
1228
+ Those three attributes are for the cases when Cognito user pool need to be connected to Pinpoint app in other account.
1229
+
1230
+ ```python
1231
+ import aws_cdk.aws_pinpoint as pinpoint
1232
+
1233
+ # user_pool: cognito.UserPool
1234
+ # pinpoint_app: pinpoint.CfnApp
1235
+ # pinpoint_role: iam.Role
1236
+
1237
+
1238
+ cognito.UserPoolClient(self, "Client",
1239
+ user_pool=user_pool,
1240
+ analytics=cognito.AnalyticsConfiguration(
1241
+ # Your Pinpoint project ID
1242
+ application_id=pinpoint_app.ref,
1243
+
1244
+ # External ID for the IAM role
1245
+ external_id="sample-external-id",
1246
+
1247
+ # IAM role that Cognito can assume to publish to Pinpoint
1248
+ role=pinpoint_role,
1249
+
1250
+ # Whether to include user data in analytics events
1251
+ share_user_data=True
1252
+ )
1253
+ )
1254
+ ```
1105
1255
  '''
1106
1256
  from pkgutil import extend_path
1107
1257
  __path__ = extend_path(__path__, __name__)
@@ -1159,6 +1309,7 @@ from ..aws_iam import (
1159
1309
  )
1160
1310
  from ..aws_kms import IKey as _IKey_5f11635f
1161
1311
  from ..aws_lambda import IFunction as _IFunction_6adb0ab8
1312
+ from ..aws_pinpoint import CfnApp as _CfnApp_e8bac60b
1162
1313
 
1163
1314
 
1164
1315
  @jsii.enum(jsii_type="aws-cdk-lib.aws_cognito.AccountRecovery")
@@ -1231,6 +1382,247 @@ class AdvancedSecurityMode(enum.Enum):
1231
1382
  '''
1232
1383
 
1233
1384
 
1385
+ @jsii.data_type(
1386
+ jsii_type="aws-cdk-lib.aws_cognito.AllowedFirstAuthFactors",
1387
+ jsii_struct_bases=[],
1388
+ name_mapping={
1389
+ "password": "password",
1390
+ "email_otp": "emailOtp",
1391
+ "passkey": "passkey",
1392
+ "sms_otp": "smsOtp",
1393
+ },
1394
+ )
1395
+ class AllowedFirstAuthFactors:
1396
+ def __init__(
1397
+ self,
1398
+ *,
1399
+ password: builtins.bool,
1400
+ email_otp: typing.Optional[builtins.bool] = None,
1401
+ passkey: typing.Optional[builtins.bool] = None,
1402
+ sms_otp: typing.Optional[builtins.bool] = None,
1403
+ ) -> None:
1404
+ '''The types of authentication that you want to allow for users' first authentication prompt.
1405
+
1406
+ :param password: Whether the password authentication is allowed. This must be true.
1407
+ :param email_otp: Whether the email message one-time password is allowed. Default: false
1408
+ :param passkey: Whether the Passkey (WebAuthn) is allowed. Default: false
1409
+ :param sms_otp: Whether the SMS message one-time password is allowed. Default: false
1410
+
1411
+ :see: https://docs.aws.amazon.com/cognito/latest/developerguide/authentication-flows-selection-sdk.html#authentication-flows-selection-choice
1412
+ :exampleMetadata: infused
1413
+
1414
+ Example::
1415
+
1416
+ cognito.UserPool(self, "myuserpool",
1417
+ sign_in_policy=cognito.SignInPolicy(
1418
+ allowed_first_auth_factors=cognito.AllowedFirstAuthFactors(password=True, passkey=True)
1419
+ ),
1420
+ passkey_relying_party_id="auth.example.com",
1421
+ passkey_user_verification=cognito.PasskeyUserVerification.REQUIRED
1422
+ )
1423
+ '''
1424
+ if __debug__:
1425
+ type_hints = typing.get_type_hints(_typecheckingstub__8a30a69cc954e920b5bb7f1163c7b6bd8507e3477eca92e83467d77025b4258f)
1426
+ check_type(argname="argument password", value=password, expected_type=type_hints["password"])
1427
+ check_type(argname="argument email_otp", value=email_otp, expected_type=type_hints["email_otp"])
1428
+ check_type(argname="argument passkey", value=passkey, expected_type=type_hints["passkey"])
1429
+ check_type(argname="argument sms_otp", value=sms_otp, expected_type=type_hints["sms_otp"])
1430
+ self._values: typing.Dict[builtins.str, typing.Any] = {
1431
+ "password": password,
1432
+ }
1433
+ if email_otp is not None:
1434
+ self._values["email_otp"] = email_otp
1435
+ if passkey is not None:
1436
+ self._values["passkey"] = passkey
1437
+ if sms_otp is not None:
1438
+ self._values["sms_otp"] = sms_otp
1439
+
1440
+ @builtins.property
1441
+ def password(self) -> builtins.bool:
1442
+ '''Whether the password authentication is allowed.
1443
+
1444
+ This must be true.
1445
+ '''
1446
+ result = self._values.get("password")
1447
+ assert result is not None, "Required property 'password' is missing"
1448
+ return typing.cast(builtins.bool, result)
1449
+
1450
+ @builtins.property
1451
+ def email_otp(self) -> typing.Optional[builtins.bool]:
1452
+ '''Whether the email message one-time password is allowed.
1453
+
1454
+ :default: false
1455
+ '''
1456
+ result = self._values.get("email_otp")
1457
+ return typing.cast(typing.Optional[builtins.bool], result)
1458
+
1459
+ @builtins.property
1460
+ def passkey(self) -> typing.Optional[builtins.bool]:
1461
+ '''Whether the Passkey (WebAuthn) is allowed.
1462
+
1463
+ :default: false
1464
+ '''
1465
+ result = self._values.get("passkey")
1466
+ return typing.cast(typing.Optional[builtins.bool], result)
1467
+
1468
+ @builtins.property
1469
+ def sms_otp(self) -> typing.Optional[builtins.bool]:
1470
+ '''Whether the SMS message one-time password is allowed.
1471
+
1472
+ :default: false
1473
+ '''
1474
+ result = self._values.get("sms_otp")
1475
+ return typing.cast(typing.Optional[builtins.bool], result)
1476
+
1477
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
1478
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
1479
+
1480
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
1481
+ return not (rhs == self)
1482
+
1483
+ def __repr__(self) -> str:
1484
+ return "AllowedFirstAuthFactors(%s)" % ", ".join(
1485
+ k + "=" + repr(v) for k, v in self._values.items()
1486
+ )
1487
+
1488
+
1489
+ @jsii.data_type(
1490
+ jsii_type="aws-cdk-lib.aws_cognito.AnalyticsConfiguration",
1491
+ jsii_struct_bases=[],
1492
+ name_mapping={
1493
+ "application": "application",
1494
+ "application_id": "applicationId",
1495
+ "external_id": "externalId",
1496
+ "role": "role",
1497
+ "share_user_data": "shareUserData",
1498
+ },
1499
+ )
1500
+ class AnalyticsConfiguration:
1501
+ def __init__(
1502
+ self,
1503
+ *,
1504
+ application: typing.Optional[_CfnApp_e8bac60b] = None,
1505
+ application_id: typing.Optional[builtins.str] = None,
1506
+ external_id: typing.Optional[builtins.str] = None,
1507
+ role: typing.Optional[_IRole_235f5d8e] = None,
1508
+ share_user_data: typing.Optional[builtins.bool] = None,
1509
+ ) -> None:
1510
+ '''The settings for Amazon Pinpoint analytics configuration.
1511
+
1512
+ With an analytics configuration, your application can collect user-activity metrics for user notifications with an Amazon Pinpoint campaign.
1513
+ Amazon Pinpoint isn't available in all AWS Regions.
1514
+ For a list of available Regions, see Amazon Cognito and Amazon Pinpoint Region availability: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-pinpoint-integration.html#cognito-user-pools-find-region-mappings.
1515
+
1516
+ :param application: The Amazon Pinpoint project that you want to connect to your user pool app client. Amazon Cognito publishes events to the Amazon Pinpoint project. You can also configure your application to pass an endpoint ID in the ``AnalyticsMetadata`` parameter of sign-in operations. The endpoint ID is information about the destination for push notifications. Default: - no configuration, you need to specify either ``application`` or all of ``applicationId``, ``externalId``, and ``role``.
1517
+ :param application_id: Your Amazon Pinpoint project ID. Default: - no configuration, you need to specify either this property along with ``externalId`` and ``role`` or ``application``.
1518
+ :param external_id: The external ID of the role that Amazon Cognito assumes to send analytics data to Amazon Pinpoint. More info here: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html Default: - no configuration, you need to specify either this property along with ``applicationId`` and ``role`` or ``application``.
1519
+ :param role: The IAM role that has the permissions required for Amazon Cognito to publish events to Amazon Pinpoint analytics. Default: - no configuration, you need to specify either this property along with ``applicationId`` and ``externalId`` or ``application``.
1520
+ :param share_user_data: If ``true``, Amazon Cognito includes user data in the events that it publishes to Amazon Pinpoint analytics. Default: - false
1521
+
1522
+ :exampleMetadata: infused
1523
+
1524
+ Example::
1525
+
1526
+ import aws_cdk.aws_pinpoint as pinpoint
1527
+
1528
+ # user_pool: cognito.UserPool
1529
+ # pinpoint_app: pinpoint.CfnApp
1530
+ # pinpoint_role: iam.Role
1531
+
1532
+
1533
+ cognito.UserPoolClient(self, "Client",
1534
+ user_pool=user_pool,
1535
+ analytics=cognito.AnalyticsConfiguration(
1536
+ # Your Pinpoint project
1537
+ application=pinpoint_app,
1538
+
1539
+ # Whether to include user data in analytics events
1540
+ share_user_data=True
1541
+ )
1542
+ )
1543
+ '''
1544
+ if __debug__:
1545
+ type_hints = typing.get_type_hints(_typecheckingstub__f67277ee392b3c256b3bd87e4afcb7bb83df8d226097757f9c92610348c4456b)
1546
+ check_type(argname="argument application", value=application, expected_type=type_hints["application"])
1547
+ check_type(argname="argument application_id", value=application_id, expected_type=type_hints["application_id"])
1548
+ check_type(argname="argument external_id", value=external_id, expected_type=type_hints["external_id"])
1549
+ check_type(argname="argument role", value=role, expected_type=type_hints["role"])
1550
+ check_type(argname="argument share_user_data", value=share_user_data, expected_type=type_hints["share_user_data"])
1551
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
1552
+ if application is not None:
1553
+ self._values["application"] = application
1554
+ if application_id is not None:
1555
+ self._values["application_id"] = application_id
1556
+ if external_id is not None:
1557
+ self._values["external_id"] = external_id
1558
+ if role is not None:
1559
+ self._values["role"] = role
1560
+ if share_user_data is not None:
1561
+ self._values["share_user_data"] = share_user_data
1562
+
1563
+ @builtins.property
1564
+ def application(self) -> typing.Optional[_CfnApp_e8bac60b]:
1565
+ '''The Amazon Pinpoint project that you want to connect to your user pool app client.
1566
+
1567
+ Amazon Cognito publishes events to the Amazon Pinpoint project.
1568
+ You can also configure your application to pass an endpoint ID in the ``AnalyticsMetadata`` parameter of sign-in operations.
1569
+ The endpoint ID is information about the destination for push notifications.
1570
+
1571
+ :default: - no configuration, you need to specify either ``application`` or all of ``applicationId``, ``externalId``, and ``role``.
1572
+ '''
1573
+ result = self._values.get("application")
1574
+ return typing.cast(typing.Optional[_CfnApp_e8bac60b], result)
1575
+
1576
+ @builtins.property
1577
+ def application_id(self) -> typing.Optional[builtins.str]:
1578
+ '''Your Amazon Pinpoint project ID.
1579
+
1580
+ :default: - no configuration, you need to specify either this property along with ``externalId`` and ``role`` or ``application``.
1581
+ '''
1582
+ result = self._values.get("application_id")
1583
+ return typing.cast(typing.Optional[builtins.str], result)
1584
+
1585
+ @builtins.property
1586
+ def external_id(self) -> typing.Optional[builtins.str]:
1587
+ '''The external ID of the role that Amazon Cognito assumes to send analytics data to Amazon Pinpoint.
1588
+
1589
+ More info here: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html
1590
+
1591
+ :default: - no configuration, you need to specify either this property along with ``applicationId`` and ``role`` or ``application``.
1592
+ '''
1593
+ result = self._values.get("external_id")
1594
+ return typing.cast(typing.Optional[builtins.str], result)
1595
+
1596
+ @builtins.property
1597
+ def role(self) -> typing.Optional[_IRole_235f5d8e]:
1598
+ '''The IAM role that has the permissions required for Amazon Cognito to publish events to Amazon Pinpoint analytics.
1599
+
1600
+ :default: - no configuration, you need to specify either this property along with ``applicationId`` and ``externalId`` or ``application``.
1601
+ '''
1602
+ result = self._values.get("role")
1603
+ return typing.cast(typing.Optional[_IRole_235f5d8e], result)
1604
+
1605
+ @builtins.property
1606
+ def share_user_data(self) -> typing.Optional[builtins.bool]:
1607
+ '''If ``true``, Amazon Cognito includes user data in the events that it publishes to Amazon Pinpoint analytics.
1608
+
1609
+ :default: - false
1610
+ '''
1611
+ result = self._values.get("share_user_data")
1612
+ return typing.cast(typing.Optional[builtins.bool], result)
1613
+
1614
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
1615
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
1616
+
1617
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
1618
+ return not (rhs == self)
1619
+
1620
+ def __repr__(self) -> str:
1621
+ return "AnalyticsConfiguration(%s)" % ", ".join(
1622
+ k + "=" + repr(v) for k, v in self._values.items()
1623
+ )
1624
+
1625
+
1234
1626
  @jsii.data_type(
1235
1627
  jsii_type="aws-cdk-lib.aws_cognito.AttributeMapping",
1236
1628
  jsii_struct_bases=[],
@@ -1602,13 +1994,21 @@ class AuthFlow:
1602
1994
 
1603
1995
  Example::
1604
1996
 
1605
- pool = cognito.UserPool(self, "pool")
1606
- pool.add_client("app-client",
1607
- auth_flows=cognito.AuthFlow(
1608
- user_password=True,
1609
- user_srp=True
1997
+ user_pool = cognito.UserPool(self, "myuserpool",
1998
+ sign_in_policy=cognito.SignInPolicy(
1999
+ allowed_first_auth_factors=cognito.AllowedFirstAuthFactors(
2000
+ password=True, # password authentication must be enabled
2001
+ email_otp=True, # enables email message one-time password
2002
+ sms_otp=True, # enables SMS message one-time password
2003
+ passkey=True
2004
+ )
1610
2005
  )
1611
2006
  )
2007
+
2008
+ # You should also configure the user pool client with USER_AUTH authentication flow allowed
2009
+ user_pool.add_client("myclient",
2010
+ auth_flows=cognito.AuthFlow(user=True)
2011
+ )
1612
2012
  '''
1613
2013
  if __debug__:
1614
2014
  type_hints = typing.get_type_hints(_typecheckingstub__3dd38e6e4617deee919f37d20a9ae635331043b4cf42c8d31fdbb0d3c29baeda)
@@ -9040,15 +9440,6 @@ class CfnUserPoolDomain(
9040
9440
  '''
9041
9441
  return typing.cast(builtins.str, jsii.get(self, "attrCloudFrontDistribution"))
9042
9442
 
9043
- @builtins.property
9044
- @jsii.member(jsii_name="attrId")
9045
- def attr_id(self) -> builtins.str:
9046
- '''The resource ID.
9047
-
9048
- :cloudformationAttribute: Id
9049
- '''
9050
- return typing.cast(builtins.str, jsii.get(self, "attrId"))
9051
-
9052
9443
  @builtins.property
9053
9444
  @jsii.member(jsii_name="cfnProperties")
9054
9445
  def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
@@ -13810,6 +14201,16 @@ class FeaturePlan(enum.Enum):
13810
14201
  '''The user pool feature plan, or tier.
13811
14202
 
13812
14203
  :see: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-sign-in-feature-plans.html
14204
+ :exampleMetadata: infused
14205
+
14206
+ Example::
14207
+
14208
+ cognito.UserPool(self, "myuserpool",
14209
+ sign_in_policy=cognito.SignInPolicy(
14210
+ allowed_first_auth_factors=cognito.AllowedFirstAuthFactors(password=True)
14211
+ ),
14212
+ feature_plan=cognito.FeaturePlan.LITE
14213
+ )
13813
14214
  '''
13814
14215
 
13815
14216
  LITE = "LITE"
@@ -13887,6 +14288,7 @@ class IUserPool(_IResource_c80c4260, typing_extensions.Protocol):
13887
14288
  id: builtins.str,
13888
14289
  *,
13889
14290
  access_token_validity: typing.Optional[_Duration_4839e8c3] = None,
14291
+ analytics: typing.Optional[typing.Union[AnalyticsConfiguration, typing.Dict[builtins.str, typing.Any]]] = None,
13890
14292
  auth_flows: typing.Optional[typing.Union[AuthFlow, typing.Dict[builtins.str, typing.Any]]] = None,
13891
14293
  auth_session_validity: typing.Optional[_Duration_4839e8c3] = None,
13892
14294
  disable_o_auth: typing.Optional[builtins.bool] = None,
@@ -13906,6 +14308,7 @@ class IUserPool(_IResource_c80c4260, typing_extensions.Protocol):
13906
14308
 
13907
14309
  :param id: -
13908
14310
  :param access_token_validity: Validity of the access token. Values between 5 minutes and 1 day are valid. The duration can not be longer than the refresh token validity. Default: Duration.minutes(60)
14311
+ :param analytics: The analytics configuration for this client. Default: - no analytics configuration
13909
14312
  :param auth_flows: The set of OAuth authentication flows to enable on the client. Default: - If you don't specify a value, your user client supports ALLOW_REFRESH_TOKEN_AUTH, ALLOW_USER_SRP_AUTH, and ALLOW_CUSTOM_AUTH.
13910
14313
  :param auth_session_validity: Cognito creates a session token for each API request in an authentication flow. AuthSessionValidity is the duration, in minutes, of that session token. see defaults in ``AuthSessionValidity``. Valid duration is from 3 to 15 minutes. Default: - Duration.minutes(3)
13911
14314
  :param disable_o_auth: Turns off all OAuth interactions for this client. Default: false
@@ -14055,6 +14458,7 @@ class _IUserPoolProxy(
14055
14458
  id: builtins.str,
14056
14459
  *,
14057
14460
  access_token_validity: typing.Optional[_Duration_4839e8c3] = None,
14461
+ analytics: typing.Optional[typing.Union[AnalyticsConfiguration, typing.Dict[builtins.str, typing.Any]]] = None,
14058
14462
  auth_flows: typing.Optional[typing.Union[AuthFlow, typing.Dict[builtins.str, typing.Any]]] = None,
14059
14463
  auth_session_validity: typing.Optional[_Duration_4839e8c3] = None,
14060
14464
  disable_o_auth: typing.Optional[builtins.bool] = None,
@@ -14074,6 +14478,7 @@ class _IUserPoolProxy(
14074
14478
 
14075
14479
  :param id: -
14076
14480
  :param access_token_validity: Validity of the access token. Values between 5 minutes and 1 day are valid. The duration can not be longer than the refresh token validity. Default: Duration.minutes(60)
14481
+ :param analytics: The analytics configuration for this client. Default: - no analytics configuration
14077
14482
  :param auth_flows: The set of OAuth authentication flows to enable on the client. Default: - If you don't specify a value, your user client supports ALLOW_REFRESH_TOKEN_AUTH, ALLOW_USER_SRP_AUTH, and ALLOW_CUSTOM_AUTH.
14078
14483
  :param auth_session_validity: Cognito creates a session token for each API request in an authentication flow. AuthSessionValidity is the duration, in minutes, of that session token. see defaults in ``AuthSessionValidity``. Valid duration is from 3 to 15 minutes. Default: - Duration.minutes(3)
14079
14484
  :param disable_o_auth: Turns off all OAuth interactions for this client. Default: false
@@ -14096,6 +14501,7 @@ class _IUserPoolProxy(
14096
14501
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
14097
14502
  options = UserPoolClientOptions(
14098
14503
  access_token_validity=access_token_validity,
14504
+ analytics=analytics,
14099
14505
  auth_flows=auth_flows,
14100
14506
  auth_session_validity=auth_session_validity,
14101
14507
  disable_o_auth=disable_o_auth,
@@ -15382,6 +15788,30 @@ class OidcEndpoints:
15382
15788
  )
15383
15789
 
15384
15790
 
15791
+ @jsii.enum(jsii_type="aws-cdk-lib.aws_cognito.PasskeyUserVerification")
15792
+ class PasskeyUserVerification(enum.Enum):
15793
+ '''The user-pool treatment for MFA with a passkey.
15794
+
15795
+ :see: https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-authentication-flow-methods.html#amazon-cognito-user-pools-authentication-flow-methods-passkey
15796
+ :exampleMetadata: infused
15797
+
15798
+ Example::
15799
+
15800
+ cognito.UserPool(self, "myuserpool",
15801
+ sign_in_policy=cognito.SignInPolicy(
15802
+ allowed_first_auth_factors=cognito.AllowedFirstAuthFactors(password=True, passkey=True)
15803
+ ),
15804
+ passkey_relying_party_id="auth.example.com",
15805
+ passkey_user_verification=cognito.PasskeyUserVerification.REQUIRED
15806
+ )
15807
+ '''
15808
+
15809
+ PREFERRED = "PREFERRED"
15810
+ '''Passkey MFA is preferred.'''
15811
+ REQUIRED = "REQUIRED"
15812
+ '''Passkey MFA is required.'''
15813
+
15814
+
15385
15815
  @jsii.data_type(
15386
15816
  jsii_type="aws-cdk-lib.aws_cognito.PasswordPolicy",
15387
15817
  jsii_struct_bases=[],
@@ -16003,6 +16433,65 @@ class SignInAliases:
16003
16433
  )
16004
16434
 
16005
16435
 
16436
+ @jsii.data_type(
16437
+ jsii_type="aws-cdk-lib.aws_cognito.SignInPolicy",
16438
+ jsii_struct_bases=[],
16439
+ name_mapping={"allowed_first_auth_factors": "allowedFirstAuthFactors"},
16440
+ )
16441
+ class SignInPolicy:
16442
+ def __init__(
16443
+ self,
16444
+ *,
16445
+ allowed_first_auth_factors: typing.Optional[typing.Union[AllowedFirstAuthFactors, typing.Dict[builtins.str, typing.Any]]] = None,
16446
+ ) -> None:
16447
+ '''Sign-in policy for User Pools.
16448
+
16449
+ :param allowed_first_auth_factors: The types of authentication that you want to allow for users' first authentication prompt. Default: - Password only
16450
+
16451
+ :exampleMetadata: infused
16452
+
16453
+ Example::
16454
+
16455
+ cognito.UserPool(self, "myuserpool",
16456
+ sign_in_policy=cognito.SignInPolicy(
16457
+ allowed_first_auth_factors=cognito.AllowedFirstAuthFactors(password=True, passkey=True)
16458
+ ),
16459
+ passkey_relying_party_id="auth.example.com",
16460
+ passkey_user_verification=cognito.PasskeyUserVerification.REQUIRED
16461
+ )
16462
+ '''
16463
+ if isinstance(allowed_first_auth_factors, dict):
16464
+ allowed_first_auth_factors = AllowedFirstAuthFactors(**allowed_first_auth_factors)
16465
+ if __debug__:
16466
+ type_hints = typing.get_type_hints(_typecheckingstub__5bda8a1a812b13ba6dfe14c09bb234238503bd86905d8f363571b49c270280f4)
16467
+ check_type(argname="argument allowed_first_auth_factors", value=allowed_first_auth_factors, expected_type=type_hints["allowed_first_auth_factors"])
16468
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
16469
+ if allowed_first_auth_factors is not None:
16470
+ self._values["allowed_first_auth_factors"] = allowed_first_auth_factors
16471
+
16472
+ @builtins.property
16473
+ def allowed_first_auth_factors(self) -> typing.Optional[AllowedFirstAuthFactors]:
16474
+ '''The types of authentication that you want to allow for users' first authentication prompt.
16475
+
16476
+ :default: - Password only
16477
+
16478
+ :see: https://docs.aws.amazon.com/cognito/latest/developerguide/authentication-flows-selection-sdk.html#authentication-flows-selection-choice
16479
+ '''
16480
+ result = self._values.get("allowed_first_auth_factors")
16481
+ return typing.cast(typing.Optional[AllowedFirstAuthFactors], result)
16482
+
16483
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
16484
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
16485
+
16486
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
16487
+ return not (rhs == self)
16488
+
16489
+ def __repr__(self) -> str:
16490
+ return "SignInPolicy(%s)" % ", ".join(
16491
+ k + "=" + repr(v) for k, v in self._values.items()
16492
+ )
16493
+
16494
+
16006
16495
  @jsii.data_type(
16007
16496
  jsii_type="aws-cdk-lib.aws_cognito.SignInUrlOptions",
16008
16497
  jsii_struct_bases=[BaseUrlOptions],
@@ -17248,11 +17737,14 @@ class UserPool(
17248
17737
  mfa: typing.Optional[Mfa] = None,
17249
17738
  mfa_message: typing.Optional[builtins.str] = None,
17250
17739
  mfa_second_factor: typing.Optional[typing.Union[MfaSecondFactor, typing.Dict[builtins.str, typing.Any]]] = None,
17740
+ passkey_relying_party_id: typing.Optional[builtins.str] = None,
17741
+ passkey_user_verification: typing.Optional[PasskeyUserVerification] = None,
17251
17742
  password_policy: typing.Optional[typing.Union[PasswordPolicy, typing.Dict[builtins.str, typing.Any]]] = None,
17252
17743
  removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
17253
17744
  self_sign_up_enabled: typing.Optional[builtins.bool] = None,
17254
17745
  sign_in_aliases: typing.Optional[typing.Union[SignInAliases, typing.Dict[builtins.str, typing.Any]]] = None,
17255
17746
  sign_in_case_sensitive: typing.Optional[builtins.bool] = None,
17747
+ sign_in_policy: typing.Optional[typing.Union[SignInPolicy, typing.Dict[builtins.str, typing.Any]]] = None,
17256
17748
  sms_role: typing.Optional[_IRole_235f5d8e] = None,
17257
17749
  sms_role_external_id: typing.Optional[builtins.str] = None,
17258
17750
  sns_region: typing.Optional[builtins.str] = None,
@@ -17279,11 +17771,14 @@ class UserPool(
17279
17771
  :param mfa: Configure whether users of this user pool can or are required use MFA to sign in. Default: Mfa.OFF
17280
17772
  :param mfa_message: The SMS message template sent during MFA verification. Use '{####}' in the template where Cognito should insert the verification code. Default: 'Your authentication code is {####}.'
17281
17773
  :param mfa_second_factor: Configure the MFA types that users can use in this user pool. Ignored if ``mfa`` is set to ``OFF``. Default: - { sms: true, otp: false, email: false }, if ``mfa`` is set to ``OPTIONAL`` or ``REQUIRED``. { sms: false, otp: false, email:false }, otherwise
17774
+ :param passkey_relying_party_id: The authentication domain that passkey providers must use as a relying party (RP) in their configuration. Under the following conditions, the passkey relying party ID must be the fully-qualified domain name of your custom domain: - The user pool is configured for passkey authentication. - The user pool has a custom domain, whether or not it also has a prefix domain. - Your application performs authentication with managed login or the classic hosted UI. Default: - No authentication domain
17775
+ :param passkey_user_verification: Your user-pool treatment for MFA with a passkey. You can override other MFA options and require passkey MFA, or you can set it as preferred. When passkey MFA is preferred, the hosted UI encourages users to register a passkey at sign-in. Default: - Cognito default setting is PasskeyUserVerification.PREFERRED
17282
17776
  :param password_policy: Password policy for this user pool. Default: - see defaults on each property of PasswordPolicy.
17283
17777
  :param removal_policy: Policy to apply when the user pool is removed from the stack. Default: RemovalPolicy.RETAIN
17284
17778
  :param self_sign_up_enabled: Whether self sign-up should be enabled. To configure self sign-up configuration use the ``userVerification`` property. Default: - false
17285
17779
  :param sign_in_aliases: Methods in which a user registers or signs in to a user pool. Allows either username with aliases OR sign in with email, phone, or both. Read the sections on usernames and aliases to learn more - https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-attributes.html To match with 'Option 1' in the above link, with a verified email, this property should be set to ``{ username: true, email: true }``. To match with 'Option 2' in the above link with both a verified email and phone number, this property should be set to ``{ email: true, phone: true }``. Default: { username: true }
17286
17780
  :param sign_in_case_sensitive: Whether sign-in aliases should be evaluated with case sensitivity. For example, when this option is set to false, users will be able to sign in using either ``MyUsername`` or ``myusername``. Default: true
17781
+ :param sign_in_policy: Sign-in policy for this user pool. Default: - see defaults on each property of SignInPolicy.
17287
17782
  :param sms_role: The IAM role that Cognito will assume while sending SMS messages. Default: - a new IAM role is created.
17288
17783
  :param sms_role_external_id: The 'ExternalId' that Cognito service must be using when assuming the ``smsRole``, if the role is restricted with an 'sts:ExternalId' conditional. Learn more about ExternalId here - https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html This property will be ignored if ``smsRole`` is not specified. Default: - No external id will be configured.
17289
17784
  :param sns_region: The region to integrate with SNS to send SMS messages. This property will do nothing if SMS configuration is not configured. Default: - The same region as the user pool, with a few exceptions - https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-sms-settings.html#user-pool-sms-settings-first-time
@@ -17312,11 +17807,14 @@ class UserPool(
17312
17807
  mfa=mfa,
17313
17808
  mfa_message=mfa_message,
17314
17809
  mfa_second_factor=mfa_second_factor,
17810
+ passkey_relying_party_id=passkey_relying_party_id,
17811
+ passkey_user_verification=passkey_user_verification,
17315
17812
  password_policy=password_policy,
17316
17813
  removal_policy=removal_policy,
17317
17814
  self_sign_up_enabled=self_sign_up_enabled,
17318
17815
  sign_in_aliases=sign_in_aliases,
17319
17816
  sign_in_case_sensitive=sign_in_case_sensitive,
17817
+ sign_in_policy=sign_in_policy,
17320
17818
  sms_role=sms_role,
17321
17819
  sms_role_external_id=sms_role_external_id,
17322
17820
  sns_region=sns_region,
@@ -17376,6 +17874,7 @@ class UserPool(
17376
17874
  id: builtins.str,
17377
17875
  *,
17378
17876
  access_token_validity: typing.Optional[_Duration_4839e8c3] = None,
17877
+ analytics: typing.Optional[typing.Union[AnalyticsConfiguration, typing.Dict[builtins.str, typing.Any]]] = None,
17379
17878
  auth_flows: typing.Optional[typing.Union[AuthFlow, typing.Dict[builtins.str, typing.Any]]] = None,
17380
17879
  auth_session_validity: typing.Optional[_Duration_4839e8c3] = None,
17381
17880
  disable_o_auth: typing.Optional[builtins.bool] = None,
@@ -17395,6 +17894,7 @@ class UserPool(
17395
17894
 
17396
17895
  :param id: -
17397
17896
  :param access_token_validity: Validity of the access token. Values between 5 minutes and 1 day are valid. The duration can not be longer than the refresh token validity. Default: Duration.minutes(60)
17897
+ :param analytics: The analytics configuration for this client. Default: - no analytics configuration
17398
17898
  :param auth_flows: The set of OAuth authentication flows to enable on the client. Default: - If you don't specify a value, your user client supports ALLOW_REFRESH_TOKEN_AUTH, ALLOW_USER_SRP_AUTH, and ALLOW_CUSTOM_AUTH.
17399
17899
  :param auth_session_validity: Cognito creates a session token for each API request in an authentication flow. AuthSessionValidity is the duration, in minutes, of that session token. see defaults in ``AuthSessionValidity``. Valid duration is from 3 to 15 minutes. Default: - Duration.minutes(3)
17400
17900
  :param disable_o_auth: Turns off all OAuth interactions for this client. Default: false
@@ -17415,6 +17915,7 @@ class UserPool(
17415
17915
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
17416
17916
  options = UserPoolClientOptions(
17417
17917
  access_token_validity=access_token_validity,
17918
+ analytics=analytics,
17418
17919
  auth_flows=auth_flows,
17419
17920
  auth_session_validity=auth_session_validity,
17420
17921
  disable_o_auth=disable_o_auth,
@@ -17639,6 +18140,7 @@ class UserPoolClient(
17639
18140
  *,
17640
18141
  user_pool: IUserPool,
17641
18142
  access_token_validity: typing.Optional[_Duration_4839e8c3] = None,
18143
+ analytics: typing.Optional[typing.Union[AnalyticsConfiguration, typing.Dict[builtins.str, typing.Any]]] = None,
17642
18144
  auth_flows: typing.Optional[typing.Union[AuthFlow, typing.Dict[builtins.str, typing.Any]]] = None,
17643
18145
  auth_session_validity: typing.Optional[_Duration_4839e8c3] = None,
17644
18146
  disable_o_auth: typing.Optional[builtins.bool] = None,
@@ -17659,6 +18161,7 @@ class UserPoolClient(
17659
18161
  :param id: -
17660
18162
  :param user_pool: The UserPool resource this client will have access to.
17661
18163
  :param access_token_validity: Validity of the access token. Values between 5 minutes and 1 day are valid. The duration can not be longer than the refresh token validity. Default: Duration.minutes(60)
18164
+ :param analytics: The analytics configuration for this client. Default: - no analytics configuration
17662
18165
  :param auth_flows: The set of OAuth authentication flows to enable on the client. Default: - If you don't specify a value, your user client supports ALLOW_REFRESH_TOKEN_AUTH, ALLOW_USER_SRP_AUTH, and ALLOW_CUSTOM_AUTH.
17663
18166
  :param auth_session_validity: Cognito creates a session token for each API request in an authentication flow. AuthSessionValidity is the duration, in minutes, of that session token. see defaults in ``AuthSessionValidity``. Valid duration is from 3 to 15 minutes. Default: - Duration.minutes(3)
17664
18167
  :param disable_o_auth: Turns off all OAuth interactions for this client. Default: false
@@ -17681,6 +18184,7 @@ class UserPoolClient(
17681
18184
  props = UserPoolClientProps(
17682
18185
  user_pool=user_pool,
17683
18186
  access_token_validity=access_token_validity,
18187
+ analytics=analytics,
17684
18188
  auth_flows=auth_flows,
17685
18189
  auth_session_validity=auth_session_validity,
17686
18190
  disable_o_auth=disable_o_auth,
@@ -17832,6 +18336,7 @@ class UserPoolClientIdentityProvider(
17832
18336
  jsii_struct_bases=[],
17833
18337
  name_mapping={
17834
18338
  "access_token_validity": "accessTokenValidity",
18339
+ "analytics": "analytics",
17835
18340
  "auth_flows": "authFlows",
17836
18341
  "auth_session_validity": "authSessionValidity",
17837
18342
  "disable_o_auth": "disableOAuth",
@@ -17853,6 +18358,7 @@ class UserPoolClientOptions:
17853
18358
  self,
17854
18359
  *,
17855
18360
  access_token_validity: typing.Optional[_Duration_4839e8c3] = None,
18361
+ analytics: typing.Optional[typing.Union[AnalyticsConfiguration, typing.Dict[builtins.str, typing.Any]]] = None,
17856
18362
  auth_flows: typing.Optional[typing.Union[AuthFlow, typing.Dict[builtins.str, typing.Any]]] = None,
17857
18363
  auth_session_validity: typing.Optional[_Duration_4839e8c3] = None,
17858
18364
  disable_o_auth: typing.Optional[builtins.bool] = None,
@@ -17871,6 +18377,7 @@ class UserPoolClientOptions:
17871
18377
  '''Options to create a UserPoolClient.
17872
18378
 
17873
18379
  :param access_token_validity: Validity of the access token. Values between 5 minutes and 1 day are valid. The duration can not be longer than the refresh token validity. Default: Duration.minutes(60)
18380
+ :param analytics: The analytics configuration for this client. Default: - no analytics configuration
17874
18381
  :param auth_flows: The set of OAuth authentication flows to enable on the client. Default: - If you don't specify a value, your user client supports ALLOW_REFRESH_TOKEN_AUTH, ALLOW_USER_SRP_AUTH, and ALLOW_CUSTOM_AUTH.
17875
18382
  :param auth_session_validity: Cognito creates a session token for each API request in an authentication flow. AuthSessionValidity is the duration, in minutes, of that session token. see defaults in ``AuthSessionValidity``. Valid duration is from 3 to 15 minutes. Default: - Duration.minutes(3)
17876
18383
  :param disable_o_auth: Turns off all OAuth interactions for this client. Default: false
@@ -17902,6 +18409,8 @@ class UserPoolClientOptions:
17902
18409
  )
17903
18410
  )
17904
18411
  '''
18412
+ if isinstance(analytics, dict):
18413
+ analytics = AnalyticsConfiguration(**analytics)
17905
18414
  if isinstance(auth_flows, dict):
17906
18415
  auth_flows = AuthFlow(**auth_flows)
17907
18416
  if isinstance(o_auth, dict):
@@ -17909,6 +18418,7 @@ class UserPoolClientOptions:
17909
18418
  if __debug__:
17910
18419
  type_hints = typing.get_type_hints(_typecheckingstub__80185296586b917ea24ebc48255c627ce95ec5c85ae2ab4e52736240b27429fc)
17911
18420
  check_type(argname="argument access_token_validity", value=access_token_validity, expected_type=type_hints["access_token_validity"])
18421
+ check_type(argname="argument analytics", value=analytics, expected_type=type_hints["analytics"])
17912
18422
  check_type(argname="argument auth_flows", value=auth_flows, expected_type=type_hints["auth_flows"])
17913
18423
  check_type(argname="argument auth_session_validity", value=auth_session_validity, expected_type=type_hints["auth_session_validity"])
17914
18424
  check_type(argname="argument disable_o_auth", value=disable_o_auth, expected_type=type_hints["disable_o_auth"])
@@ -17926,6 +18436,8 @@ class UserPoolClientOptions:
17926
18436
  self._values: typing.Dict[builtins.str, typing.Any] = {}
17927
18437
  if access_token_validity is not None:
17928
18438
  self._values["access_token_validity"] = access_token_validity
18439
+ if analytics is not None:
18440
+ self._values["analytics"] = analytics
17929
18441
  if auth_flows is not None:
17930
18442
  self._values["auth_flows"] = auth_flows
17931
18443
  if auth_session_validity is not None:
@@ -17968,6 +18480,15 @@ class UserPoolClientOptions:
17968
18480
  result = self._values.get("access_token_validity")
17969
18481
  return typing.cast(typing.Optional[_Duration_4839e8c3], result)
17970
18482
 
18483
+ @builtins.property
18484
+ def analytics(self) -> typing.Optional[AnalyticsConfiguration]:
18485
+ '''The analytics configuration for this client.
18486
+
18487
+ :default: - no analytics configuration
18488
+ '''
18489
+ result = self._values.get("analytics")
18490
+ return typing.cast(typing.Optional[AnalyticsConfiguration], result)
18491
+
17971
18492
  @builtins.property
17972
18493
  def auth_flows(self) -> typing.Optional[AuthFlow]:
17973
18494
  '''The set of OAuth authentication flows to enable on the client.
@@ -18148,6 +18669,7 @@ class UserPoolClientOptions:
18148
18669
  jsii_struct_bases=[UserPoolClientOptions],
18149
18670
  name_mapping={
18150
18671
  "access_token_validity": "accessTokenValidity",
18672
+ "analytics": "analytics",
18151
18673
  "auth_flows": "authFlows",
18152
18674
  "auth_session_validity": "authSessionValidity",
18153
18675
  "disable_o_auth": "disableOAuth",
@@ -18170,6 +18692,7 @@ class UserPoolClientProps(UserPoolClientOptions):
18170
18692
  self,
18171
18693
  *,
18172
18694
  access_token_validity: typing.Optional[_Duration_4839e8c3] = None,
18695
+ analytics: typing.Optional[typing.Union[AnalyticsConfiguration, typing.Dict[builtins.str, typing.Any]]] = None,
18173
18696
  auth_flows: typing.Optional[typing.Union[AuthFlow, typing.Dict[builtins.str, typing.Any]]] = None,
18174
18697
  auth_session_validity: typing.Optional[_Duration_4839e8c3] = None,
18175
18698
  disable_o_auth: typing.Optional[builtins.bool] = None,
@@ -18189,6 +18712,7 @@ class UserPoolClientProps(UserPoolClientOptions):
18189
18712
  '''Properties for the UserPoolClient construct.
18190
18713
 
18191
18714
  :param access_token_validity: Validity of the access token. Values between 5 minutes and 1 day are valid. The duration can not be longer than the refresh token validity. Default: Duration.minutes(60)
18715
+ :param analytics: The analytics configuration for this client. Default: - no analytics configuration
18192
18716
  :param auth_flows: The set of OAuth authentication flows to enable on the client. Default: - If you don't specify a value, your user client supports ALLOW_REFRESH_TOKEN_AUTH, ALLOW_USER_SRP_AUTH, and ALLOW_CUSTOM_AUTH.
18193
18717
  :param auth_session_validity: Cognito creates a session token for each API request in an authentication flow. AuthSessionValidity is the duration, in minutes, of that session token. see defaults in ``AuthSessionValidity``. Valid duration is from 3 to 15 minutes. Default: - Duration.minutes(3)
18194
18718
  :param disable_o_auth: Turns off all OAuth interactions for this client. Default: false
@@ -18209,17 +18733,32 @@ class UserPoolClientProps(UserPoolClientOptions):
18209
18733
 
18210
18734
  Example::
18211
18735
 
18212
- # imported_pool: cognito.UserPool
18736
+ import aws_cdk.aws_pinpoint as pinpoint
18213
18737
 
18738
+ # user_pool: cognito.UserPool
18739
+ # pinpoint_app: pinpoint.CfnApp
18740
+ # pinpoint_role: iam.Role
18214
18741
 
18215
- user_pool_client = cognito.UserPoolClient(self, "UserPoolClient",
18216
- user_pool=imported_pool,
18217
- generate_secret=True
18218
- )
18219
18742
 
18220
- # Allows you to pass the generated secret to other pieces of infrastructure
18221
- secret = user_pool_client.user_pool_client_secret
18743
+ cognito.UserPoolClient(self, "Client",
18744
+ user_pool=user_pool,
18745
+ analytics=cognito.AnalyticsConfiguration(
18746
+ # Your Pinpoint project ID
18747
+ application_id=pinpoint_app.ref,
18748
+
18749
+ # External ID for the IAM role
18750
+ external_id="sample-external-id",
18751
+
18752
+ # IAM role that Cognito can assume to publish to Pinpoint
18753
+ role=pinpoint_role,
18754
+
18755
+ # Whether to include user data in analytics events
18756
+ share_user_data=True
18757
+ )
18758
+ )
18222
18759
  '''
18760
+ if isinstance(analytics, dict):
18761
+ analytics = AnalyticsConfiguration(**analytics)
18223
18762
  if isinstance(auth_flows, dict):
18224
18763
  auth_flows = AuthFlow(**auth_flows)
18225
18764
  if isinstance(o_auth, dict):
@@ -18227,6 +18766,7 @@ class UserPoolClientProps(UserPoolClientOptions):
18227
18766
  if __debug__:
18228
18767
  type_hints = typing.get_type_hints(_typecheckingstub__95c8cad8419f2fd5def82ad39281b322b9ec6b2f7d891de939bf1e9036145948)
18229
18768
  check_type(argname="argument access_token_validity", value=access_token_validity, expected_type=type_hints["access_token_validity"])
18769
+ check_type(argname="argument analytics", value=analytics, expected_type=type_hints["analytics"])
18230
18770
  check_type(argname="argument auth_flows", value=auth_flows, expected_type=type_hints["auth_flows"])
18231
18771
  check_type(argname="argument auth_session_validity", value=auth_session_validity, expected_type=type_hints["auth_session_validity"])
18232
18772
  check_type(argname="argument disable_o_auth", value=disable_o_auth, expected_type=type_hints["disable_o_auth"])
@@ -18247,6 +18787,8 @@ class UserPoolClientProps(UserPoolClientOptions):
18247
18787
  }
18248
18788
  if access_token_validity is not None:
18249
18789
  self._values["access_token_validity"] = access_token_validity
18790
+ if analytics is not None:
18791
+ self._values["analytics"] = analytics
18250
18792
  if auth_flows is not None:
18251
18793
  self._values["auth_flows"] = auth_flows
18252
18794
  if auth_session_validity is not None:
@@ -18289,6 +18831,15 @@ class UserPoolClientProps(UserPoolClientOptions):
18289
18831
  result = self._values.get("access_token_validity")
18290
18832
  return typing.cast(typing.Optional[_Duration_4839e8c3], result)
18291
18833
 
18834
+ @builtins.property
18835
+ def analytics(self) -> typing.Optional[AnalyticsConfiguration]:
18836
+ '''The analytics configuration for this client.
18837
+
18838
+ :default: - no analytics configuration
18839
+ '''
18840
+ result = self._values.get("analytics")
18841
+ return typing.cast(typing.Optional[AnalyticsConfiguration], result)
18842
+
18292
18843
  @builtins.property
18293
18844
  def auth_flows(self) -> typing.Optional[AuthFlow]:
18294
18845
  '''The set of OAuth authentication flows to enable on the client.
@@ -20604,11 +21155,14 @@ class UserPoolOperation(
20604
21155
  "mfa": "mfa",
20605
21156
  "mfa_message": "mfaMessage",
20606
21157
  "mfa_second_factor": "mfaSecondFactor",
21158
+ "passkey_relying_party_id": "passkeyRelyingPartyId",
21159
+ "passkey_user_verification": "passkeyUserVerification",
20607
21160
  "password_policy": "passwordPolicy",
20608
21161
  "removal_policy": "removalPolicy",
20609
21162
  "self_sign_up_enabled": "selfSignUpEnabled",
20610
21163
  "sign_in_aliases": "signInAliases",
20611
21164
  "sign_in_case_sensitive": "signInCaseSensitive",
21165
+ "sign_in_policy": "signInPolicy",
20612
21166
  "sms_role": "smsRole",
20613
21167
  "sms_role_external_id": "smsRoleExternalId",
20614
21168
  "sns_region": "snsRegion",
@@ -20637,11 +21191,14 @@ class UserPoolProps:
20637
21191
  mfa: typing.Optional[Mfa] = None,
20638
21192
  mfa_message: typing.Optional[builtins.str] = None,
20639
21193
  mfa_second_factor: typing.Optional[typing.Union[MfaSecondFactor, typing.Dict[builtins.str, typing.Any]]] = None,
21194
+ passkey_relying_party_id: typing.Optional[builtins.str] = None,
21195
+ passkey_user_verification: typing.Optional[PasskeyUserVerification] = None,
20640
21196
  password_policy: typing.Optional[typing.Union[PasswordPolicy, typing.Dict[builtins.str, typing.Any]]] = None,
20641
21197
  removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
20642
21198
  self_sign_up_enabled: typing.Optional[builtins.bool] = None,
20643
21199
  sign_in_aliases: typing.Optional[typing.Union[SignInAliases, typing.Dict[builtins.str, typing.Any]]] = None,
20644
21200
  sign_in_case_sensitive: typing.Optional[builtins.bool] = None,
21201
+ sign_in_policy: typing.Optional[typing.Union[SignInPolicy, typing.Dict[builtins.str, typing.Any]]] = None,
20645
21202
  sms_role: typing.Optional[_IRole_235f5d8e] = None,
20646
21203
  sms_role_external_id: typing.Optional[builtins.str] = None,
20647
21204
  sns_region: typing.Optional[builtins.str] = None,
@@ -20667,11 +21224,14 @@ class UserPoolProps:
20667
21224
  :param mfa: Configure whether users of this user pool can or are required use MFA to sign in. Default: Mfa.OFF
20668
21225
  :param mfa_message: The SMS message template sent during MFA verification. Use '{####}' in the template where Cognito should insert the verification code. Default: 'Your authentication code is {####}.'
20669
21226
  :param mfa_second_factor: Configure the MFA types that users can use in this user pool. Ignored if ``mfa`` is set to ``OFF``. Default: - { sms: true, otp: false, email: false }, if ``mfa`` is set to ``OPTIONAL`` or ``REQUIRED``. { sms: false, otp: false, email:false }, otherwise
21227
+ :param passkey_relying_party_id: The authentication domain that passkey providers must use as a relying party (RP) in their configuration. Under the following conditions, the passkey relying party ID must be the fully-qualified domain name of your custom domain: - The user pool is configured for passkey authentication. - The user pool has a custom domain, whether or not it also has a prefix domain. - Your application performs authentication with managed login or the classic hosted UI. Default: - No authentication domain
21228
+ :param passkey_user_verification: Your user-pool treatment for MFA with a passkey. You can override other MFA options and require passkey MFA, or you can set it as preferred. When passkey MFA is preferred, the hosted UI encourages users to register a passkey at sign-in. Default: - Cognito default setting is PasskeyUserVerification.PREFERRED
20670
21229
  :param password_policy: Password policy for this user pool. Default: - see defaults on each property of PasswordPolicy.
20671
21230
  :param removal_policy: Policy to apply when the user pool is removed from the stack. Default: RemovalPolicy.RETAIN
20672
21231
  :param self_sign_up_enabled: Whether self sign-up should be enabled. To configure self sign-up configuration use the ``userVerification`` property. Default: - false
20673
21232
  :param sign_in_aliases: Methods in which a user registers or signs in to a user pool. Allows either username with aliases OR sign in with email, phone, or both. Read the sections on usernames and aliases to learn more - https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-attributes.html To match with 'Option 1' in the above link, with a verified email, this property should be set to ``{ username: true, email: true }``. To match with 'Option 2' in the above link with both a verified email and phone number, this property should be set to ``{ email: true, phone: true }``. Default: { username: true }
20674
21233
  :param sign_in_case_sensitive: Whether sign-in aliases should be evaluated with case sensitivity. For example, when this option is set to false, users will be able to sign in using either ``MyUsername`` or ``myusername``. Default: true
21234
+ :param sign_in_policy: Sign-in policy for this user pool. Default: - see defaults on each property of SignInPolicy.
20675
21235
  :param sms_role: The IAM role that Cognito will assume while sending SMS messages. Default: - a new IAM role is created.
20676
21236
  :param sms_role_external_id: The 'ExternalId' that Cognito service must be using when assuming the ``smsRole``, if the role is restricted with an 'sts:ExternalId' conditional. Learn more about ExternalId here - https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html This property will be ignored if ``smsRole`` is not specified. Default: - No external id will be configured.
20677
21237
  :param sns_region: The region to integrate with SNS to send SMS messages. This property will do nothing if SMS configuration is not configured. Default: - The same region as the user pool, with a few exceptions - https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-sms-settings.html#user-pool-sms-settings-first-time
@@ -20685,14 +21245,11 @@ class UserPoolProps:
20685
21245
  Example::
20686
21246
 
20687
21247
  cognito.UserPool(self, "myuserpool",
20688
- # ...
20689
- self_sign_up_enabled=True,
20690
- user_verification=cognito.UserVerificationConfig(
20691
- email_subject="Verify your email for our awesome app!",
20692
- email_body="Thanks for signing up to our awesome app! Your verification code is {####}",
20693
- email_style=cognito.VerificationEmailStyle.CODE,
20694
- sms_message="Thanks for signing up to our awesome app! Your verification code is {####}"
20695
- )
21248
+ sign_in_policy=cognito.SignInPolicy(
21249
+ allowed_first_auth_factors=cognito.AllowedFirstAuthFactors(password=True, passkey=True)
21250
+ ),
21251
+ passkey_relying_party_id="auth.example.com",
21252
+ passkey_user_verification=cognito.PasskeyUserVerification.REQUIRED
20696
21253
  )
20697
21254
  '''
20698
21255
  if isinstance(auto_verify, dict):
@@ -20709,6 +21266,8 @@ class UserPoolProps:
20709
21266
  password_policy = PasswordPolicy(**password_policy)
20710
21267
  if isinstance(sign_in_aliases, dict):
20711
21268
  sign_in_aliases = SignInAliases(**sign_in_aliases)
21269
+ if isinstance(sign_in_policy, dict):
21270
+ sign_in_policy = SignInPolicy(**sign_in_policy)
20712
21271
  if isinstance(standard_attributes, dict):
20713
21272
  standard_attributes = StandardAttributes(**standard_attributes)
20714
21273
  if isinstance(user_invitation, dict):
@@ -20732,11 +21291,14 @@ class UserPoolProps:
20732
21291
  check_type(argname="argument mfa", value=mfa, expected_type=type_hints["mfa"])
20733
21292
  check_type(argname="argument mfa_message", value=mfa_message, expected_type=type_hints["mfa_message"])
20734
21293
  check_type(argname="argument mfa_second_factor", value=mfa_second_factor, expected_type=type_hints["mfa_second_factor"])
21294
+ check_type(argname="argument passkey_relying_party_id", value=passkey_relying_party_id, expected_type=type_hints["passkey_relying_party_id"])
21295
+ check_type(argname="argument passkey_user_verification", value=passkey_user_verification, expected_type=type_hints["passkey_user_verification"])
20735
21296
  check_type(argname="argument password_policy", value=password_policy, expected_type=type_hints["password_policy"])
20736
21297
  check_type(argname="argument removal_policy", value=removal_policy, expected_type=type_hints["removal_policy"])
20737
21298
  check_type(argname="argument self_sign_up_enabled", value=self_sign_up_enabled, expected_type=type_hints["self_sign_up_enabled"])
20738
21299
  check_type(argname="argument sign_in_aliases", value=sign_in_aliases, expected_type=type_hints["sign_in_aliases"])
20739
21300
  check_type(argname="argument sign_in_case_sensitive", value=sign_in_case_sensitive, expected_type=type_hints["sign_in_case_sensitive"])
21301
+ check_type(argname="argument sign_in_policy", value=sign_in_policy, expected_type=type_hints["sign_in_policy"])
20740
21302
  check_type(argname="argument sms_role", value=sms_role, expected_type=type_hints["sms_role"])
20741
21303
  check_type(argname="argument sms_role_external_id", value=sms_role_external_id, expected_type=type_hints["sms_role_external_id"])
20742
21304
  check_type(argname="argument sns_region", value=sns_region, expected_type=type_hints["sns_region"])
@@ -20775,6 +21337,10 @@ class UserPoolProps:
20775
21337
  self._values["mfa_message"] = mfa_message
20776
21338
  if mfa_second_factor is not None:
20777
21339
  self._values["mfa_second_factor"] = mfa_second_factor
21340
+ if passkey_relying_party_id is not None:
21341
+ self._values["passkey_relying_party_id"] = passkey_relying_party_id
21342
+ if passkey_user_verification is not None:
21343
+ self._values["passkey_user_verification"] = passkey_user_verification
20778
21344
  if password_policy is not None:
20779
21345
  self._values["password_policy"] = password_policy
20780
21346
  if removal_policy is not None:
@@ -20785,6 +21351,8 @@ class UserPoolProps:
20785
21351
  self._values["sign_in_aliases"] = sign_in_aliases
20786
21352
  if sign_in_case_sensitive is not None:
20787
21353
  self._values["sign_in_case_sensitive"] = sign_in_case_sensitive
21354
+ if sign_in_policy is not None:
21355
+ self._values["sign_in_policy"] = sign_in_policy
20788
21356
  if sms_role is not None:
20789
21357
  self._values["sms_role"] = sms_role
20790
21358
  if sms_role_external_id is not None:
@@ -20965,6 +21533,33 @@ class UserPoolProps:
20965
21533
  result = self._values.get("mfa_second_factor")
20966
21534
  return typing.cast(typing.Optional[MfaSecondFactor], result)
20967
21535
 
21536
+ @builtins.property
21537
+ def passkey_relying_party_id(self) -> typing.Optional[builtins.str]:
21538
+ '''The authentication domain that passkey providers must use as a relying party (RP) in their configuration.
21539
+
21540
+ Under the following conditions, the passkey relying party ID must be the fully-qualified domain name of your custom domain:
21541
+
21542
+ - The user pool is configured for passkey authentication.
21543
+ - The user pool has a custom domain, whether or not it also has a prefix domain.
21544
+ - Your application performs authentication with managed login or the classic hosted UI.
21545
+
21546
+ :default: - No authentication domain
21547
+ '''
21548
+ result = self._values.get("passkey_relying_party_id")
21549
+ return typing.cast(typing.Optional[builtins.str], result)
21550
+
21551
+ @builtins.property
21552
+ def passkey_user_verification(self) -> typing.Optional[PasskeyUserVerification]:
21553
+ '''Your user-pool treatment for MFA with a passkey.
21554
+
21555
+ You can override other MFA options and require passkey MFA, or you can set it as preferred.
21556
+ When passkey MFA is preferred, the hosted UI encourages users to register a passkey at sign-in.
21557
+
21558
+ :default: - Cognito default setting is PasskeyUserVerification.PREFERRED
21559
+ '''
21560
+ result = self._values.get("passkey_user_verification")
21561
+ return typing.cast(typing.Optional[PasskeyUserVerification], result)
21562
+
20968
21563
  @builtins.property
20969
21564
  def password_policy(self) -> typing.Optional[PasswordPolicy]:
20970
21565
  '''Password policy for this user pool.
@@ -21023,6 +21618,15 @@ class UserPoolProps:
21023
21618
  result = self._values.get("sign_in_case_sensitive")
21024
21619
  return typing.cast(typing.Optional[builtins.bool], result)
21025
21620
 
21621
+ @builtins.property
21622
+ def sign_in_policy(self) -> typing.Optional[SignInPolicy]:
21623
+ '''Sign-in policy for this user pool.
21624
+
21625
+ :default: - see defaults on each property of SignInPolicy.
21626
+ '''
21627
+ result = self._values.get("sign_in_policy")
21628
+ return typing.cast(typing.Optional[SignInPolicy], result)
21629
+
21026
21630
  @builtins.property
21027
21631
  def sms_role(self) -> typing.Optional[_IRole_235f5d8e]:
21028
21632
  '''The IAM role that Cognito will assume while sending SMS messages.
@@ -22918,6 +23522,8 @@ class UserPoolIdentityProviderOidcProps(UserPoolIdentityProviderProps):
22918
23522
  __all__ = [
22919
23523
  "AccountRecovery",
22920
23524
  "AdvancedSecurityMode",
23525
+ "AllowedFirstAuthFactors",
23526
+ "AnalyticsConfiguration",
22921
23527
  "AttributeMapping",
22922
23528
  "AuthFlow",
22923
23529
  "AutoVerifiedAttrs",
@@ -22982,11 +23588,13 @@ __all__ = [
22982
23588
  "OAuthSettings",
22983
23589
  "OidcAttributeRequestMethod",
22984
23590
  "OidcEndpoints",
23591
+ "PasskeyUserVerification",
22985
23592
  "PasswordPolicy",
22986
23593
  "ProviderAttribute",
22987
23594
  "ResourceServerScope",
22988
23595
  "ResourceServerScopeProps",
22989
23596
  "SignInAliases",
23597
+ "SignInPolicy",
22990
23598
  "SignInUrlOptions",
22991
23599
  "SigningAlgorithm",
22992
23600
  "StandardAttribute",
@@ -23038,6 +23646,27 @@ __all__ = [
23038
23646
 
23039
23647
  publication.publish()
23040
23648
 
23649
+ def _typecheckingstub__8a30a69cc954e920b5bb7f1163c7b6bd8507e3477eca92e83467d77025b4258f(
23650
+ *,
23651
+ password: builtins.bool,
23652
+ email_otp: typing.Optional[builtins.bool] = None,
23653
+ passkey: typing.Optional[builtins.bool] = None,
23654
+ sms_otp: typing.Optional[builtins.bool] = None,
23655
+ ) -> None:
23656
+ """Type checking stubs"""
23657
+ pass
23658
+
23659
+ def _typecheckingstub__f67277ee392b3c256b3bd87e4afcb7bb83df8d226097757f9c92610348c4456b(
23660
+ *,
23661
+ application: typing.Optional[_CfnApp_e8bac60b] = None,
23662
+ application_id: typing.Optional[builtins.str] = None,
23663
+ external_id: typing.Optional[builtins.str] = None,
23664
+ role: typing.Optional[_IRole_235f5d8e] = None,
23665
+ share_user_data: typing.Optional[builtins.bool] = None,
23666
+ ) -> None:
23667
+ """Type checking stubs"""
23668
+ pass
23669
+
23041
23670
  def _typecheckingstub__1994c9f3057f350dfde37c21bef42d2ad1a87ae2900a0e48fd7c2506ddbeca5d(
23042
23671
  *,
23043
23672
  address: typing.Optional[ProviderAttribute] = None,
@@ -24876,6 +25505,7 @@ def _typecheckingstub__6eaa0ebaf797c6ac4bac11bd73d9ad61c50892a9450e0ff5880903434
24876
25505
  id: builtins.str,
24877
25506
  *,
24878
25507
  access_token_validity: typing.Optional[_Duration_4839e8c3] = None,
25508
+ analytics: typing.Optional[typing.Union[AnalyticsConfiguration, typing.Dict[builtins.str, typing.Any]]] = None,
24879
25509
  auth_flows: typing.Optional[typing.Union[AuthFlow, typing.Dict[builtins.str, typing.Any]]] = None,
24880
25510
  auth_session_validity: typing.Optional[_Duration_4839e8c3] = None,
24881
25511
  disable_o_auth: typing.Optional[builtins.bool] = None,
@@ -25052,6 +25682,13 @@ def _typecheckingstub__1f85eb7769fbc2d73d7ddedb7d58312be06c85b0446415fcf926cc1e5
25052
25682
  """Type checking stubs"""
25053
25683
  pass
25054
25684
 
25685
+ def _typecheckingstub__5bda8a1a812b13ba6dfe14c09bb234238503bd86905d8f363571b49c270280f4(
25686
+ *,
25687
+ allowed_first_auth_factors: typing.Optional[typing.Union[AllowedFirstAuthFactors, typing.Dict[builtins.str, typing.Any]]] = None,
25688
+ ) -> None:
25689
+ """Type checking stubs"""
25690
+ pass
25691
+
25055
25692
  def _typecheckingstub__27aae9c398fe91d31540649394c2469df625de6993272c3b3cff19edc49ec8fa(
25056
25693
  *,
25057
25694
  fips: typing.Optional[builtins.bool] = None,
@@ -25162,11 +25799,14 @@ def _typecheckingstub__677a8ec9a3f2a22d2dfde6fd6818121e4a071dc4e942f6bbe219e5a9b
25162
25799
  mfa: typing.Optional[Mfa] = None,
25163
25800
  mfa_message: typing.Optional[builtins.str] = None,
25164
25801
  mfa_second_factor: typing.Optional[typing.Union[MfaSecondFactor, typing.Dict[builtins.str, typing.Any]]] = None,
25802
+ passkey_relying_party_id: typing.Optional[builtins.str] = None,
25803
+ passkey_user_verification: typing.Optional[PasskeyUserVerification] = None,
25165
25804
  password_policy: typing.Optional[typing.Union[PasswordPolicy, typing.Dict[builtins.str, typing.Any]]] = None,
25166
25805
  removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
25167
25806
  self_sign_up_enabled: typing.Optional[builtins.bool] = None,
25168
25807
  sign_in_aliases: typing.Optional[typing.Union[SignInAliases, typing.Dict[builtins.str, typing.Any]]] = None,
25169
25808
  sign_in_case_sensitive: typing.Optional[builtins.bool] = None,
25809
+ sign_in_policy: typing.Optional[typing.Union[SignInPolicy, typing.Dict[builtins.str, typing.Any]]] = None,
25170
25810
  sms_role: typing.Optional[_IRole_235f5d8e] = None,
25171
25811
  sms_role_external_id: typing.Optional[builtins.str] = None,
25172
25812
  sns_region: typing.Optional[builtins.str] = None,
@@ -25198,6 +25838,7 @@ def _typecheckingstub__b4ce1f762a6eeaca3920ca827a1685cfa2b670f96aa13d8cfdded4055
25198
25838
  id: builtins.str,
25199
25839
  *,
25200
25840
  access_token_validity: typing.Optional[_Duration_4839e8c3] = None,
25841
+ analytics: typing.Optional[typing.Union[AnalyticsConfiguration, typing.Dict[builtins.str, typing.Any]]] = None,
25201
25842
  auth_flows: typing.Optional[typing.Union[AuthFlow, typing.Dict[builtins.str, typing.Any]]] = None,
25202
25843
  auth_session_validity: typing.Optional[_Duration_4839e8c3] = None,
25203
25844
  disable_o_auth: typing.Optional[builtins.bool] = None,
@@ -25274,6 +25915,7 @@ def _typecheckingstub__e654de9921a676ab8214720f2ab2c7f212d67a62531595c721560e88c
25274
25915
  *,
25275
25916
  user_pool: IUserPool,
25276
25917
  access_token_validity: typing.Optional[_Duration_4839e8c3] = None,
25918
+ analytics: typing.Optional[typing.Union[AnalyticsConfiguration, typing.Dict[builtins.str, typing.Any]]] = None,
25277
25919
  auth_flows: typing.Optional[typing.Union[AuthFlow, typing.Dict[builtins.str, typing.Any]]] = None,
25278
25920
  auth_session_validity: typing.Optional[_Duration_4839e8c3] = None,
25279
25921
  disable_o_auth: typing.Optional[builtins.bool] = None,
@@ -25309,6 +25951,7 @@ def _typecheckingstub__14e7f4addf6b16821bea1f99db58ec36907e80587b70ed61044c1372d
25309
25951
  def _typecheckingstub__80185296586b917ea24ebc48255c627ce95ec5c85ae2ab4e52736240b27429fc(
25310
25952
  *,
25311
25953
  access_token_validity: typing.Optional[_Duration_4839e8c3] = None,
25954
+ analytics: typing.Optional[typing.Union[AnalyticsConfiguration, typing.Dict[builtins.str, typing.Any]]] = None,
25312
25955
  auth_flows: typing.Optional[typing.Union[AuthFlow, typing.Dict[builtins.str, typing.Any]]] = None,
25313
25956
  auth_session_validity: typing.Optional[_Duration_4839e8c3] = None,
25314
25957
  disable_o_auth: typing.Optional[builtins.bool] = None,
@@ -25330,6 +25973,7 @@ def _typecheckingstub__80185296586b917ea24ebc48255c627ce95ec5c85ae2ab4e52736240b
25330
25973
  def _typecheckingstub__95c8cad8419f2fd5def82ad39281b322b9ec6b2f7d891de939bf1e9036145948(
25331
25974
  *,
25332
25975
  access_token_validity: typing.Optional[_Duration_4839e8c3] = None,
25976
+ analytics: typing.Optional[typing.Union[AnalyticsConfiguration, typing.Dict[builtins.str, typing.Any]]] = None,
25333
25977
  auth_flows: typing.Optional[typing.Union[AuthFlow, typing.Dict[builtins.str, typing.Any]]] = None,
25334
25978
  auth_session_validity: typing.Optional[_Duration_4839e8c3] = None,
25335
25979
  disable_o_auth: typing.Optional[builtins.bool] = None,
@@ -25615,11 +26259,14 @@ def _typecheckingstub__754b1af40b4712720733e130c63a8ec0ca9a35d4cfb25450725d5aa02
25615
26259
  mfa: typing.Optional[Mfa] = None,
25616
26260
  mfa_message: typing.Optional[builtins.str] = None,
25617
26261
  mfa_second_factor: typing.Optional[typing.Union[MfaSecondFactor, typing.Dict[builtins.str, typing.Any]]] = None,
26262
+ passkey_relying_party_id: typing.Optional[builtins.str] = None,
26263
+ passkey_user_verification: typing.Optional[PasskeyUserVerification] = None,
25618
26264
  password_policy: typing.Optional[typing.Union[PasswordPolicy, typing.Dict[builtins.str, typing.Any]]] = None,
25619
26265
  removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
25620
26266
  self_sign_up_enabled: typing.Optional[builtins.bool] = None,
25621
26267
  sign_in_aliases: typing.Optional[typing.Union[SignInAliases, typing.Dict[builtins.str, typing.Any]]] = None,
25622
26268
  sign_in_case_sensitive: typing.Optional[builtins.bool] = None,
26269
+ sign_in_policy: typing.Optional[typing.Union[SignInPolicy, typing.Dict[builtins.str, typing.Any]]] = None,
25623
26270
  sms_role: typing.Optional[_IRole_235f5d8e] = None,
25624
26271
  sms_role_external_id: typing.Optional[builtins.str] = None,
25625
26272
  sns_region: typing.Optional[builtins.str] = None,