aws-cdk-lib 2.178.1__py3-none-any.whl → 2.179.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 (34) hide show
  1. aws_cdk/__init__.py +69 -35
  2. aws_cdk/_jsii/__init__.py +1 -2
  3. aws_cdk/_jsii/{aws-cdk-lib@2.178.1.jsii.tgz → aws-cdk-lib@2.179.0.jsii.tgz} +0 -0
  4. aws_cdk/aws_apigateway/__init__.py +170 -29
  5. aws_cdk/aws_apigatewayv2/__init__.py +151 -32
  6. aws_cdk/aws_apigatewayv2_integrations/__init__.py +348 -0
  7. aws_cdk/aws_applicationautoscaling/__init__.py +8 -8
  8. aws_cdk/aws_appsync/__init__.py +6 -4
  9. aws_cdk/aws_cloudfront/__init__.py +5 -5
  10. aws_cdk/aws_codebuild/__init__.py +216 -0
  11. aws_cdk/aws_codepipeline/__init__.py +89 -28
  12. aws_cdk/aws_codepipeline_actions/__init__.py +526 -62
  13. aws_cdk/aws_cognito/__init__.py +676 -20
  14. aws_cdk/aws_ec2/__init__.py +25 -9
  15. aws_cdk/aws_ecs/__init__.py +8 -8
  16. aws_cdk/aws_eks/__init__.py +555 -179
  17. aws_cdk/aws_elasticloadbalancingv2/__init__.py +99 -0
  18. aws_cdk/aws_events/__init__.py +9 -15
  19. aws_cdk/aws_events_targets/__init__.py +303 -16
  20. aws_cdk/aws_iam/__init__.py +3 -3
  21. aws_cdk/aws_ivs/__init__.py +241 -73
  22. aws_cdk/aws_logs/__init__.py +62 -13
  23. aws_cdk/aws_pinpoint/__init__.py +14 -9
  24. aws_cdk/aws_rds/__init__.py +168 -24
  25. aws_cdk/aws_s3/__init__.py +9 -9
  26. aws_cdk/aws_stepfunctions_tasks/__init__.py +127 -21
  27. aws_cdk/pipelines/__init__.py +2 -2
  28. {aws_cdk_lib-2.178.1.dist-info → aws_cdk_lib-2.179.0.dist-info}/METADATA +1 -2
  29. {aws_cdk_lib-2.178.1.dist-info → aws_cdk_lib-2.179.0.dist-info}/RECORD +33 -34
  30. aws_cdk/lambda_layer_kubectl/__init__.py +0 -107
  31. {aws_cdk_lib-2.178.1.dist-info → aws_cdk_lib-2.179.0.dist-info}/LICENSE +0 -0
  32. {aws_cdk_lib-2.178.1.dist-info → aws_cdk_lib-2.179.0.dist-info}/NOTICE +0 -0
  33. {aws_cdk_lib-2.178.1.dist-info → aws_cdk_lib-2.179.0.dist-info}/WHEEL +0 -0
  34. {aws_cdk_lib-2.178.1.dist-info → aws_cdk_lib-2.179.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)
@@ -13810,6 +14210,16 @@ class FeaturePlan(enum.Enum):
13810
14210
  '''The user pool feature plan, or tier.
13811
14211
 
13812
14212
  :see: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-sign-in-feature-plans.html
14213
+ :exampleMetadata: infused
14214
+
14215
+ Example::
14216
+
14217
+ cognito.UserPool(self, "myuserpool",
14218
+ sign_in_policy=cognito.SignInPolicy(
14219
+ allowed_first_auth_factors=cognito.AllowedFirstAuthFactors(password=True)
14220
+ ),
14221
+ feature_plan=cognito.FeaturePlan.LITE
14222
+ )
13813
14223
  '''
13814
14224
 
13815
14225
  LITE = "LITE"
@@ -13887,6 +14297,7 @@ class IUserPool(_IResource_c80c4260, typing_extensions.Protocol):
13887
14297
  id: builtins.str,
13888
14298
  *,
13889
14299
  access_token_validity: typing.Optional[_Duration_4839e8c3] = None,
14300
+ analytics: typing.Optional[typing.Union[AnalyticsConfiguration, typing.Dict[builtins.str, typing.Any]]] = None,
13890
14301
  auth_flows: typing.Optional[typing.Union[AuthFlow, typing.Dict[builtins.str, typing.Any]]] = None,
13891
14302
  auth_session_validity: typing.Optional[_Duration_4839e8c3] = None,
13892
14303
  disable_o_auth: typing.Optional[builtins.bool] = None,
@@ -13906,6 +14317,7 @@ class IUserPool(_IResource_c80c4260, typing_extensions.Protocol):
13906
14317
 
13907
14318
  :param id: -
13908
14319
  :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)
14320
+ :param analytics: The analytics configuration for this client. Default: - no analytics configuration
13909
14321
  :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
14322
  :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
14323
  :param disable_o_auth: Turns off all OAuth interactions for this client. Default: false
@@ -14055,6 +14467,7 @@ class _IUserPoolProxy(
14055
14467
  id: builtins.str,
14056
14468
  *,
14057
14469
  access_token_validity: typing.Optional[_Duration_4839e8c3] = None,
14470
+ analytics: typing.Optional[typing.Union[AnalyticsConfiguration, typing.Dict[builtins.str, typing.Any]]] = None,
14058
14471
  auth_flows: typing.Optional[typing.Union[AuthFlow, typing.Dict[builtins.str, typing.Any]]] = None,
14059
14472
  auth_session_validity: typing.Optional[_Duration_4839e8c3] = None,
14060
14473
  disable_o_auth: typing.Optional[builtins.bool] = None,
@@ -14074,6 +14487,7 @@ class _IUserPoolProxy(
14074
14487
 
14075
14488
  :param id: -
14076
14489
  :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)
14490
+ :param analytics: The analytics configuration for this client. Default: - no analytics configuration
14077
14491
  :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
14492
  :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
14493
  :param disable_o_auth: Turns off all OAuth interactions for this client. Default: false
@@ -14096,6 +14510,7 @@ class _IUserPoolProxy(
14096
14510
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
14097
14511
  options = UserPoolClientOptions(
14098
14512
  access_token_validity=access_token_validity,
14513
+ analytics=analytics,
14099
14514
  auth_flows=auth_flows,
14100
14515
  auth_session_validity=auth_session_validity,
14101
14516
  disable_o_auth=disable_o_auth,
@@ -15382,6 +15797,30 @@ class OidcEndpoints:
15382
15797
  )
15383
15798
 
15384
15799
 
15800
+ @jsii.enum(jsii_type="aws-cdk-lib.aws_cognito.PasskeyUserVerification")
15801
+ class PasskeyUserVerification(enum.Enum):
15802
+ '''The user-pool treatment for MFA with a passkey.
15803
+
15804
+ :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
15805
+ :exampleMetadata: infused
15806
+
15807
+ Example::
15808
+
15809
+ cognito.UserPool(self, "myuserpool",
15810
+ sign_in_policy=cognito.SignInPolicy(
15811
+ allowed_first_auth_factors=cognito.AllowedFirstAuthFactors(password=True, passkey=True)
15812
+ ),
15813
+ passkey_relying_party_id="auth.example.com",
15814
+ passkey_user_verification=cognito.PasskeyUserVerification.REQUIRED
15815
+ )
15816
+ '''
15817
+
15818
+ PREFERRED = "PREFERRED"
15819
+ '''Passkey MFA is preferred.'''
15820
+ REQUIRED = "REQUIRED"
15821
+ '''Passkey MFA is required.'''
15822
+
15823
+
15385
15824
  @jsii.data_type(
15386
15825
  jsii_type="aws-cdk-lib.aws_cognito.PasswordPolicy",
15387
15826
  jsii_struct_bases=[],
@@ -16003,6 +16442,65 @@ class SignInAliases:
16003
16442
  )
16004
16443
 
16005
16444
 
16445
+ @jsii.data_type(
16446
+ jsii_type="aws-cdk-lib.aws_cognito.SignInPolicy",
16447
+ jsii_struct_bases=[],
16448
+ name_mapping={"allowed_first_auth_factors": "allowedFirstAuthFactors"},
16449
+ )
16450
+ class SignInPolicy:
16451
+ def __init__(
16452
+ self,
16453
+ *,
16454
+ allowed_first_auth_factors: typing.Optional[typing.Union[AllowedFirstAuthFactors, typing.Dict[builtins.str, typing.Any]]] = None,
16455
+ ) -> None:
16456
+ '''Sign-in policy for User Pools.
16457
+
16458
+ :param allowed_first_auth_factors: The types of authentication that you want to allow for users' first authentication prompt. Default: - Password only
16459
+
16460
+ :exampleMetadata: infused
16461
+
16462
+ Example::
16463
+
16464
+ cognito.UserPool(self, "myuserpool",
16465
+ sign_in_policy=cognito.SignInPolicy(
16466
+ allowed_first_auth_factors=cognito.AllowedFirstAuthFactors(password=True, passkey=True)
16467
+ ),
16468
+ passkey_relying_party_id="auth.example.com",
16469
+ passkey_user_verification=cognito.PasskeyUserVerification.REQUIRED
16470
+ )
16471
+ '''
16472
+ if isinstance(allowed_first_auth_factors, dict):
16473
+ allowed_first_auth_factors = AllowedFirstAuthFactors(**allowed_first_auth_factors)
16474
+ if __debug__:
16475
+ type_hints = typing.get_type_hints(_typecheckingstub__5bda8a1a812b13ba6dfe14c09bb234238503bd86905d8f363571b49c270280f4)
16476
+ check_type(argname="argument allowed_first_auth_factors", value=allowed_first_auth_factors, expected_type=type_hints["allowed_first_auth_factors"])
16477
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
16478
+ if allowed_first_auth_factors is not None:
16479
+ self._values["allowed_first_auth_factors"] = allowed_first_auth_factors
16480
+
16481
+ @builtins.property
16482
+ def allowed_first_auth_factors(self) -> typing.Optional[AllowedFirstAuthFactors]:
16483
+ '''The types of authentication that you want to allow for users' first authentication prompt.
16484
+
16485
+ :default: - Password only
16486
+
16487
+ :see: https://docs.aws.amazon.com/cognito/latest/developerguide/authentication-flows-selection-sdk.html#authentication-flows-selection-choice
16488
+ '''
16489
+ result = self._values.get("allowed_first_auth_factors")
16490
+ return typing.cast(typing.Optional[AllowedFirstAuthFactors], result)
16491
+
16492
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
16493
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
16494
+
16495
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
16496
+ return not (rhs == self)
16497
+
16498
+ def __repr__(self) -> str:
16499
+ return "SignInPolicy(%s)" % ", ".join(
16500
+ k + "=" + repr(v) for k, v in self._values.items()
16501
+ )
16502
+
16503
+
16006
16504
  @jsii.data_type(
16007
16505
  jsii_type="aws-cdk-lib.aws_cognito.SignInUrlOptions",
16008
16506
  jsii_struct_bases=[BaseUrlOptions],
@@ -17248,11 +17746,14 @@ class UserPool(
17248
17746
  mfa: typing.Optional[Mfa] = None,
17249
17747
  mfa_message: typing.Optional[builtins.str] = None,
17250
17748
  mfa_second_factor: typing.Optional[typing.Union[MfaSecondFactor, typing.Dict[builtins.str, typing.Any]]] = None,
17749
+ passkey_relying_party_id: typing.Optional[builtins.str] = None,
17750
+ passkey_user_verification: typing.Optional[PasskeyUserVerification] = None,
17251
17751
  password_policy: typing.Optional[typing.Union[PasswordPolicy, typing.Dict[builtins.str, typing.Any]]] = None,
17252
17752
  removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
17253
17753
  self_sign_up_enabled: typing.Optional[builtins.bool] = None,
17254
17754
  sign_in_aliases: typing.Optional[typing.Union[SignInAliases, typing.Dict[builtins.str, typing.Any]]] = None,
17255
17755
  sign_in_case_sensitive: typing.Optional[builtins.bool] = None,
17756
+ sign_in_policy: typing.Optional[typing.Union[SignInPolicy, typing.Dict[builtins.str, typing.Any]]] = None,
17256
17757
  sms_role: typing.Optional[_IRole_235f5d8e] = None,
17257
17758
  sms_role_external_id: typing.Optional[builtins.str] = None,
17258
17759
  sns_region: typing.Optional[builtins.str] = None,
@@ -17279,11 +17780,14 @@ class UserPool(
17279
17780
  :param mfa: Configure whether users of this user pool can or are required use MFA to sign in. Default: Mfa.OFF
17280
17781
  :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
17782
  :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
17783
+ :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
17784
+ :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
17785
  :param password_policy: Password policy for this user pool. Default: - see defaults on each property of PasswordPolicy.
17283
17786
  :param removal_policy: Policy to apply when the user pool is removed from the stack. Default: RemovalPolicy.RETAIN
17284
17787
  :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
17788
  :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
17789
  :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
17790
+ :param sign_in_policy: Sign-in policy for this user pool. Default: - see defaults on each property of SignInPolicy.
17287
17791
  :param sms_role: The IAM role that Cognito will assume while sending SMS messages. Default: - a new IAM role is created.
17288
17792
  :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
17793
  :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 +17816,14 @@ class UserPool(
17312
17816
  mfa=mfa,
17313
17817
  mfa_message=mfa_message,
17314
17818
  mfa_second_factor=mfa_second_factor,
17819
+ passkey_relying_party_id=passkey_relying_party_id,
17820
+ passkey_user_verification=passkey_user_verification,
17315
17821
  password_policy=password_policy,
17316
17822
  removal_policy=removal_policy,
17317
17823
  self_sign_up_enabled=self_sign_up_enabled,
17318
17824
  sign_in_aliases=sign_in_aliases,
17319
17825
  sign_in_case_sensitive=sign_in_case_sensitive,
17826
+ sign_in_policy=sign_in_policy,
17320
17827
  sms_role=sms_role,
17321
17828
  sms_role_external_id=sms_role_external_id,
17322
17829
  sns_region=sns_region,
@@ -17376,6 +17883,7 @@ class UserPool(
17376
17883
  id: builtins.str,
17377
17884
  *,
17378
17885
  access_token_validity: typing.Optional[_Duration_4839e8c3] = None,
17886
+ analytics: typing.Optional[typing.Union[AnalyticsConfiguration, typing.Dict[builtins.str, typing.Any]]] = None,
17379
17887
  auth_flows: typing.Optional[typing.Union[AuthFlow, typing.Dict[builtins.str, typing.Any]]] = None,
17380
17888
  auth_session_validity: typing.Optional[_Duration_4839e8c3] = None,
17381
17889
  disable_o_auth: typing.Optional[builtins.bool] = None,
@@ -17395,6 +17903,7 @@ class UserPool(
17395
17903
 
17396
17904
  :param id: -
17397
17905
  :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)
17906
+ :param analytics: The analytics configuration for this client. Default: - no analytics configuration
17398
17907
  :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
17908
  :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
17909
  :param disable_o_auth: Turns off all OAuth interactions for this client. Default: false
@@ -17415,6 +17924,7 @@ class UserPool(
17415
17924
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
17416
17925
  options = UserPoolClientOptions(
17417
17926
  access_token_validity=access_token_validity,
17927
+ analytics=analytics,
17418
17928
  auth_flows=auth_flows,
17419
17929
  auth_session_validity=auth_session_validity,
17420
17930
  disable_o_auth=disable_o_auth,
@@ -17639,6 +18149,7 @@ class UserPoolClient(
17639
18149
  *,
17640
18150
  user_pool: IUserPool,
17641
18151
  access_token_validity: typing.Optional[_Duration_4839e8c3] = None,
18152
+ analytics: typing.Optional[typing.Union[AnalyticsConfiguration, typing.Dict[builtins.str, typing.Any]]] = None,
17642
18153
  auth_flows: typing.Optional[typing.Union[AuthFlow, typing.Dict[builtins.str, typing.Any]]] = None,
17643
18154
  auth_session_validity: typing.Optional[_Duration_4839e8c3] = None,
17644
18155
  disable_o_auth: typing.Optional[builtins.bool] = None,
@@ -17659,6 +18170,7 @@ class UserPoolClient(
17659
18170
  :param id: -
17660
18171
  :param user_pool: The UserPool resource this client will have access to.
17661
18172
  :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)
18173
+ :param analytics: The analytics configuration for this client. Default: - no analytics configuration
17662
18174
  :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
18175
  :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
18176
  :param disable_o_auth: Turns off all OAuth interactions for this client. Default: false
@@ -17681,6 +18193,7 @@ class UserPoolClient(
17681
18193
  props = UserPoolClientProps(
17682
18194
  user_pool=user_pool,
17683
18195
  access_token_validity=access_token_validity,
18196
+ analytics=analytics,
17684
18197
  auth_flows=auth_flows,
17685
18198
  auth_session_validity=auth_session_validity,
17686
18199
  disable_o_auth=disable_o_auth,
@@ -17832,6 +18345,7 @@ class UserPoolClientIdentityProvider(
17832
18345
  jsii_struct_bases=[],
17833
18346
  name_mapping={
17834
18347
  "access_token_validity": "accessTokenValidity",
18348
+ "analytics": "analytics",
17835
18349
  "auth_flows": "authFlows",
17836
18350
  "auth_session_validity": "authSessionValidity",
17837
18351
  "disable_o_auth": "disableOAuth",
@@ -17853,6 +18367,7 @@ class UserPoolClientOptions:
17853
18367
  self,
17854
18368
  *,
17855
18369
  access_token_validity: typing.Optional[_Duration_4839e8c3] = None,
18370
+ analytics: typing.Optional[typing.Union[AnalyticsConfiguration, typing.Dict[builtins.str, typing.Any]]] = None,
17856
18371
  auth_flows: typing.Optional[typing.Union[AuthFlow, typing.Dict[builtins.str, typing.Any]]] = None,
17857
18372
  auth_session_validity: typing.Optional[_Duration_4839e8c3] = None,
17858
18373
  disable_o_auth: typing.Optional[builtins.bool] = None,
@@ -17871,6 +18386,7 @@ class UserPoolClientOptions:
17871
18386
  '''Options to create a UserPoolClient.
17872
18387
 
17873
18388
  :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)
18389
+ :param analytics: The analytics configuration for this client. Default: - no analytics configuration
17874
18390
  :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
18391
  :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
18392
  :param disable_o_auth: Turns off all OAuth interactions for this client. Default: false
@@ -17902,6 +18418,8 @@ class UserPoolClientOptions:
17902
18418
  )
17903
18419
  )
17904
18420
  '''
18421
+ if isinstance(analytics, dict):
18422
+ analytics = AnalyticsConfiguration(**analytics)
17905
18423
  if isinstance(auth_flows, dict):
17906
18424
  auth_flows = AuthFlow(**auth_flows)
17907
18425
  if isinstance(o_auth, dict):
@@ -17909,6 +18427,7 @@ class UserPoolClientOptions:
17909
18427
  if __debug__:
17910
18428
  type_hints = typing.get_type_hints(_typecheckingstub__80185296586b917ea24ebc48255c627ce95ec5c85ae2ab4e52736240b27429fc)
17911
18429
  check_type(argname="argument access_token_validity", value=access_token_validity, expected_type=type_hints["access_token_validity"])
18430
+ check_type(argname="argument analytics", value=analytics, expected_type=type_hints["analytics"])
17912
18431
  check_type(argname="argument auth_flows", value=auth_flows, expected_type=type_hints["auth_flows"])
17913
18432
  check_type(argname="argument auth_session_validity", value=auth_session_validity, expected_type=type_hints["auth_session_validity"])
17914
18433
  check_type(argname="argument disable_o_auth", value=disable_o_auth, expected_type=type_hints["disable_o_auth"])
@@ -17926,6 +18445,8 @@ class UserPoolClientOptions:
17926
18445
  self._values: typing.Dict[builtins.str, typing.Any] = {}
17927
18446
  if access_token_validity is not None:
17928
18447
  self._values["access_token_validity"] = access_token_validity
18448
+ if analytics is not None:
18449
+ self._values["analytics"] = analytics
17929
18450
  if auth_flows is not None:
17930
18451
  self._values["auth_flows"] = auth_flows
17931
18452
  if auth_session_validity is not None:
@@ -17968,6 +18489,15 @@ class UserPoolClientOptions:
17968
18489
  result = self._values.get("access_token_validity")
17969
18490
  return typing.cast(typing.Optional[_Duration_4839e8c3], result)
17970
18491
 
18492
+ @builtins.property
18493
+ def analytics(self) -> typing.Optional[AnalyticsConfiguration]:
18494
+ '''The analytics configuration for this client.
18495
+
18496
+ :default: - no analytics configuration
18497
+ '''
18498
+ result = self._values.get("analytics")
18499
+ return typing.cast(typing.Optional[AnalyticsConfiguration], result)
18500
+
17971
18501
  @builtins.property
17972
18502
  def auth_flows(self) -> typing.Optional[AuthFlow]:
17973
18503
  '''The set of OAuth authentication flows to enable on the client.
@@ -18148,6 +18678,7 @@ class UserPoolClientOptions:
18148
18678
  jsii_struct_bases=[UserPoolClientOptions],
18149
18679
  name_mapping={
18150
18680
  "access_token_validity": "accessTokenValidity",
18681
+ "analytics": "analytics",
18151
18682
  "auth_flows": "authFlows",
18152
18683
  "auth_session_validity": "authSessionValidity",
18153
18684
  "disable_o_auth": "disableOAuth",
@@ -18170,6 +18701,7 @@ class UserPoolClientProps(UserPoolClientOptions):
18170
18701
  self,
18171
18702
  *,
18172
18703
  access_token_validity: typing.Optional[_Duration_4839e8c3] = None,
18704
+ analytics: typing.Optional[typing.Union[AnalyticsConfiguration, typing.Dict[builtins.str, typing.Any]]] = None,
18173
18705
  auth_flows: typing.Optional[typing.Union[AuthFlow, typing.Dict[builtins.str, typing.Any]]] = None,
18174
18706
  auth_session_validity: typing.Optional[_Duration_4839e8c3] = None,
18175
18707
  disable_o_auth: typing.Optional[builtins.bool] = None,
@@ -18189,6 +18721,7 @@ class UserPoolClientProps(UserPoolClientOptions):
18189
18721
  '''Properties for the UserPoolClient construct.
18190
18722
 
18191
18723
  :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)
18724
+ :param analytics: The analytics configuration for this client. Default: - no analytics configuration
18192
18725
  :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
18726
  :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
18727
  :param disable_o_auth: Turns off all OAuth interactions for this client. Default: false
@@ -18209,17 +18742,32 @@ class UserPoolClientProps(UserPoolClientOptions):
18209
18742
 
18210
18743
  Example::
18211
18744
 
18212
- # imported_pool: cognito.UserPool
18745
+ import aws_cdk.aws_pinpoint as pinpoint
18213
18746
 
18747
+ # user_pool: cognito.UserPool
18748
+ # pinpoint_app: pinpoint.CfnApp
18749
+ # pinpoint_role: iam.Role
18214
18750
 
18215
- user_pool_client = cognito.UserPoolClient(self, "UserPoolClient",
18216
- user_pool=imported_pool,
18217
- generate_secret=True
18218
- )
18219
18751
 
18220
- # Allows you to pass the generated secret to other pieces of infrastructure
18221
- secret = user_pool_client.user_pool_client_secret
18752
+ cognito.UserPoolClient(self, "Client",
18753
+ user_pool=user_pool,
18754
+ analytics=cognito.AnalyticsConfiguration(
18755
+ # Your Pinpoint project ID
18756
+ application_id=pinpoint_app.ref,
18757
+
18758
+ # External ID for the IAM role
18759
+ external_id="sample-external-id",
18760
+
18761
+ # IAM role that Cognito can assume to publish to Pinpoint
18762
+ role=pinpoint_role,
18763
+
18764
+ # Whether to include user data in analytics events
18765
+ share_user_data=True
18766
+ )
18767
+ )
18222
18768
  '''
18769
+ if isinstance(analytics, dict):
18770
+ analytics = AnalyticsConfiguration(**analytics)
18223
18771
  if isinstance(auth_flows, dict):
18224
18772
  auth_flows = AuthFlow(**auth_flows)
18225
18773
  if isinstance(o_auth, dict):
@@ -18227,6 +18775,7 @@ class UserPoolClientProps(UserPoolClientOptions):
18227
18775
  if __debug__:
18228
18776
  type_hints = typing.get_type_hints(_typecheckingstub__95c8cad8419f2fd5def82ad39281b322b9ec6b2f7d891de939bf1e9036145948)
18229
18777
  check_type(argname="argument access_token_validity", value=access_token_validity, expected_type=type_hints["access_token_validity"])
18778
+ check_type(argname="argument analytics", value=analytics, expected_type=type_hints["analytics"])
18230
18779
  check_type(argname="argument auth_flows", value=auth_flows, expected_type=type_hints["auth_flows"])
18231
18780
  check_type(argname="argument auth_session_validity", value=auth_session_validity, expected_type=type_hints["auth_session_validity"])
18232
18781
  check_type(argname="argument disable_o_auth", value=disable_o_auth, expected_type=type_hints["disable_o_auth"])
@@ -18247,6 +18796,8 @@ class UserPoolClientProps(UserPoolClientOptions):
18247
18796
  }
18248
18797
  if access_token_validity is not None:
18249
18798
  self._values["access_token_validity"] = access_token_validity
18799
+ if analytics is not None:
18800
+ self._values["analytics"] = analytics
18250
18801
  if auth_flows is not None:
18251
18802
  self._values["auth_flows"] = auth_flows
18252
18803
  if auth_session_validity is not None:
@@ -18289,6 +18840,15 @@ class UserPoolClientProps(UserPoolClientOptions):
18289
18840
  result = self._values.get("access_token_validity")
18290
18841
  return typing.cast(typing.Optional[_Duration_4839e8c3], result)
18291
18842
 
18843
+ @builtins.property
18844
+ def analytics(self) -> typing.Optional[AnalyticsConfiguration]:
18845
+ '''The analytics configuration for this client.
18846
+
18847
+ :default: - no analytics configuration
18848
+ '''
18849
+ result = self._values.get("analytics")
18850
+ return typing.cast(typing.Optional[AnalyticsConfiguration], result)
18851
+
18292
18852
  @builtins.property
18293
18853
  def auth_flows(self) -> typing.Optional[AuthFlow]:
18294
18854
  '''The set of OAuth authentication flows to enable on the client.
@@ -20604,11 +21164,14 @@ class UserPoolOperation(
20604
21164
  "mfa": "mfa",
20605
21165
  "mfa_message": "mfaMessage",
20606
21166
  "mfa_second_factor": "mfaSecondFactor",
21167
+ "passkey_relying_party_id": "passkeyRelyingPartyId",
21168
+ "passkey_user_verification": "passkeyUserVerification",
20607
21169
  "password_policy": "passwordPolicy",
20608
21170
  "removal_policy": "removalPolicy",
20609
21171
  "self_sign_up_enabled": "selfSignUpEnabled",
20610
21172
  "sign_in_aliases": "signInAliases",
20611
21173
  "sign_in_case_sensitive": "signInCaseSensitive",
21174
+ "sign_in_policy": "signInPolicy",
20612
21175
  "sms_role": "smsRole",
20613
21176
  "sms_role_external_id": "smsRoleExternalId",
20614
21177
  "sns_region": "snsRegion",
@@ -20637,11 +21200,14 @@ class UserPoolProps:
20637
21200
  mfa: typing.Optional[Mfa] = None,
20638
21201
  mfa_message: typing.Optional[builtins.str] = None,
20639
21202
  mfa_second_factor: typing.Optional[typing.Union[MfaSecondFactor, typing.Dict[builtins.str, typing.Any]]] = None,
21203
+ passkey_relying_party_id: typing.Optional[builtins.str] = None,
21204
+ passkey_user_verification: typing.Optional[PasskeyUserVerification] = None,
20640
21205
  password_policy: typing.Optional[typing.Union[PasswordPolicy, typing.Dict[builtins.str, typing.Any]]] = None,
20641
21206
  removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
20642
21207
  self_sign_up_enabled: typing.Optional[builtins.bool] = None,
20643
21208
  sign_in_aliases: typing.Optional[typing.Union[SignInAliases, typing.Dict[builtins.str, typing.Any]]] = None,
20644
21209
  sign_in_case_sensitive: typing.Optional[builtins.bool] = None,
21210
+ sign_in_policy: typing.Optional[typing.Union[SignInPolicy, typing.Dict[builtins.str, typing.Any]]] = None,
20645
21211
  sms_role: typing.Optional[_IRole_235f5d8e] = None,
20646
21212
  sms_role_external_id: typing.Optional[builtins.str] = None,
20647
21213
  sns_region: typing.Optional[builtins.str] = None,
@@ -20667,11 +21233,14 @@ class UserPoolProps:
20667
21233
  :param mfa: Configure whether users of this user pool can or are required use MFA to sign in. Default: Mfa.OFF
20668
21234
  :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
21235
  :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
21236
+ :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
21237
+ :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
21238
  :param password_policy: Password policy for this user pool. Default: - see defaults on each property of PasswordPolicy.
20671
21239
  :param removal_policy: Policy to apply when the user pool is removed from the stack. Default: RemovalPolicy.RETAIN
20672
21240
  :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
21241
  :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
21242
  :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
21243
+ :param sign_in_policy: Sign-in policy for this user pool. Default: - see defaults on each property of SignInPolicy.
20675
21244
  :param sms_role: The IAM role that Cognito will assume while sending SMS messages. Default: - a new IAM role is created.
20676
21245
  :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
21246
  :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 +21254,11 @@ class UserPoolProps:
20685
21254
  Example::
20686
21255
 
20687
21256
  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
- )
21257
+ sign_in_policy=cognito.SignInPolicy(
21258
+ allowed_first_auth_factors=cognito.AllowedFirstAuthFactors(password=True, passkey=True)
21259
+ ),
21260
+ passkey_relying_party_id="auth.example.com",
21261
+ passkey_user_verification=cognito.PasskeyUserVerification.REQUIRED
20696
21262
  )
20697
21263
  '''
20698
21264
  if isinstance(auto_verify, dict):
@@ -20709,6 +21275,8 @@ class UserPoolProps:
20709
21275
  password_policy = PasswordPolicy(**password_policy)
20710
21276
  if isinstance(sign_in_aliases, dict):
20711
21277
  sign_in_aliases = SignInAliases(**sign_in_aliases)
21278
+ if isinstance(sign_in_policy, dict):
21279
+ sign_in_policy = SignInPolicy(**sign_in_policy)
20712
21280
  if isinstance(standard_attributes, dict):
20713
21281
  standard_attributes = StandardAttributes(**standard_attributes)
20714
21282
  if isinstance(user_invitation, dict):
@@ -20732,11 +21300,14 @@ class UserPoolProps:
20732
21300
  check_type(argname="argument mfa", value=mfa, expected_type=type_hints["mfa"])
20733
21301
  check_type(argname="argument mfa_message", value=mfa_message, expected_type=type_hints["mfa_message"])
20734
21302
  check_type(argname="argument mfa_second_factor", value=mfa_second_factor, expected_type=type_hints["mfa_second_factor"])
21303
+ check_type(argname="argument passkey_relying_party_id", value=passkey_relying_party_id, expected_type=type_hints["passkey_relying_party_id"])
21304
+ check_type(argname="argument passkey_user_verification", value=passkey_user_verification, expected_type=type_hints["passkey_user_verification"])
20735
21305
  check_type(argname="argument password_policy", value=password_policy, expected_type=type_hints["password_policy"])
20736
21306
  check_type(argname="argument removal_policy", value=removal_policy, expected_type=type_hints["removal_policy"])
20737
21307
  check_type(argname="argument self_sign_up_enabled", value=self_sign_up_enabled, expected_type=type_hints["self_sign_up_enabled"])
20738
21308
  check_type(argname="argument sign_in_aliases", value=sign_in_aliases, expected_type=type_hints["sign_in_aliases"])
20739
21309
  check_type(argname="argument sign_in_case_sensitive", value=sign_in_case_sensitive, expected_type=type_hints["sign_in_case_sensitive"])
21310
+ check_type(argname="argument sign_in_policy", value=sign_in_policy, expected_type=type_hints["sign_in_policy"])
20740
21311
  check_type(argname="argument sms_role", value=sms_role, expected_type=type_hints["sms_role"])
20741
21312
  check_type(argname="argument sms_role_external_id", value=sms_role_external_id, expected_type=type_hints["sms_role_external_id"])
20742
21313
  check_type(argname="argument sns_region", value=sns_region, expected_type=type_hints["sns_region"])
@@ -20775,6 +21346,10 @@ class UserPoolProps:
20775
21346
  self._values["mfa_message"] = mfa_message
20776
21347
  if mfa_second_factor is not None:
20777
21348
  self._values["mfa_second_factor"] = mfa_second_factor
21349
+ if passkey_relying_party_id is not None:
21350
+ self._values["passkey_relying_party_id"] = passkey_relying_party_id
21351
+ if passkey_user_verification is not None:
21352
+ self._values["passkey_user_verification"] = passkey_user_verification
20778
21353
  if password_policy is not None:
20779
21354
  self._values["password_policy"] = password_policy
20780
21355
  if removal_policy is not None:
@@ -20785,6 +21360,8 @@ class UserPoolProps:
20785
21360
  self._values["sign_in_aliases"] = sign_in_aliases
20786
21361
  if sign_in_case_sensitive is not None:
20787
21362
  self._values["sign_in_case_sensitive"] = sign_in_case_sensitive
21363
+ if sign_in_policy is not None:
21364
+ self._values["sign_in_policy"] = sign_in_policy
20788
21365
  if sms_role is not None:
20789
21366
  self._values["sms_role"] = sms_role
20790
21367
  if sms_role_external_id is not None:
@@ -20965,6 +21542,33 @@ class UserPoolProps:
20965
21542
  result = self._values.get("mfa_second_factor")
20966
21543
  return typing.cast(typing.Optional[MfaSecondFactor], result)
20967
21544
 
21545
+ @builtins.property
21546
+ def passkey_relying_party_id(self) -> typing.Optional[builtins.str]:
21547
+ '''The authentication domain that passkey providers must use as a relying party (RP) in their configuration.
21548
+
21549
+ Under the following conditions, the passkey relying party ID must be the fully-qualified domain name of your custom domain:
21550
+
21551
+ - The user pool is configured for passkey authentication.
21552
+ - The user pool has a custom domain, whether or not it also has a prefix domain.
21553
+ - Your application performs authentication with managed login or the classic hosted UI.
21554
+
21555
+ :default: - No authentication domain
21556
+ '''
21557
+ result = self._values.get("passkey_relying_party_id")
21558
+ return typing.cast(typing.Optional[builtins.str], result)
21559
+
21560
+ @builtins.property
21561
+ def passkey_user_verification(self) -> typing.Optional[PasskeyUserVerification]:
21562
+ '''Your user-pool treatment for MFA with a passkey.
21563
+
21564
+ You can override other MFA options and require passkey MFA, or you can set it as preferred.
21565
+ When passkey MFA is preferred, the hosted UI encourages users to register a passkey at sign-in.
21566
+
21567
+ :default: - Cognito default setting is PasskeyUserVerification.PREFERRED
21568
+ '''
21569
+ result = self._values.get("passkey_user_verification")
21570
+ return typing.cast(typing.Optional[PasskeyUserVerification], result)
21571
+
20968
21572
  @builtins.property
20969
21573
  def password_policy(self) -> typing.Optional[PasswordPolicy]:
20970
21574
  '''Password policy for this user pool.
@@ -21023,6 +21627,15 @@ class UserPoolProps:
21023
21627
  result = self._values.get("sign_in_case_sensitive")
21024
21628
  return typing.cast(typing.Optional[builtins.bool], result)
21025
21629
 
21630
+ @builtins.property
21631
+ def sign_in_policy(self) -> typing.Optional[SignInPolicy]:
21632
+ '''Sign-in policy for this user pool.
21633
+
21634
+ :default: - see defaults on each property of SignInPolicy.
21635
+ '''
21636
+ result = self._values.get("sign_in_policy")
21637
+ return typing.cast(typing.Optional[SignInPolicy], result)
21638
+
21026
21639
  @builtins.property
21027
21640
  def sms_role(self) -> typing.Optional[_IRole_235f5d8e]:
21028
21641
  '''The IAM role that Cognito will assume while sending SMS messages.
@@ -22918,6 +23531,8 @@ class UserPoolIdentityProviderOidcProps(UserPoolIdentityProviderProps):
22918
23531
  __all__ = [
22919
23532
  "AccountRecovery",
22920
23533
  "AdvancedSecurityMode",
23534
+ "AllowedFirstAuthFactors",
23535
+ "AnalyticsConfiguration",
22921
23536
  "AttributeMapping",
22922
23537
  "AuthFlow",
22923
23538
  "AutoVerifiedAttrs",
@@ -22982,11 +23597,13 @@ __all__ = [
22982
23597
  "OAuthSettings",
22983
23598
  "OidcAttributeRequestMethod",
22984
23599
  "OidcEndpoints",
23600
+ "PasskeyUserVerification",
22985
23601
  "PasswordPolicy",
22986
23602
  "ProviderAttribute",
22987
23603
  "ResourceServerScope",
22988
23604
  "ResourceServerScopeProps",
22989
23605
  "SignInAliases",
23606
+ "SignInPolicy",
22990
23607
  "SignInUrlOptions",
22991
23608
  "SigningAlgorithm",
22992
23609
  "StandardAttribute",
@@ -23038,6 +23655,27 @@ __all__ = [
23038
23655
 
23039
23656
  publication.publish()
23040
23657
 
23658
+ def _typecheckingstub__8a30a69cc954e920b5bb7f1163c7b6bd8507e3477eca92e83467d77025b4258f(
23659
+ *,
23660
+ password: builtins.bool,
23661
+ email_otp: typing.Optional[builtins.bool] = None,
23662
+ passkey: typing.Optional[builtins.bool] = None,
23663
+ sms_otp: typing.Optional[builtins.bool] = None,
23664
+ ) -> None:
23665
+ """Type checking stubs"""
23666
+ pass
23667
+
23668
+ def _typecheckingstub__f67277ee392b3c256b3bd87e4afcb7bb83df8d226097757f9c92610348c4456b(
23669
+ *,
23670
+ application: typing.Optional[_CfnApp_e8bac60b] = None,
23671
+ application_id: typing.Optional[builtins.str] = None,
23672
+ external_id: typing.Optional[builtins.str] = None,
23673
+ role: typing.Optional[_IRole_235f5d8e] = None,
23674
+ share_user_data: typing.Optional[builtins.bool] = None,
23675
+ ) -> None:
23676
+ """Type checking stubs"""
23677
+ pass
23678
+
23041
23679
  def _typecheckingstub__1994c9f3057f350dfde37c21bef42d2ad1a87ae2900a0e48fd7c2506ddbeca5d(
23042
23680
  *,
23043
23681
  address: typing.Optional[ProviderAttribute] = None,
@@ -24876,6 +25514,7 @@ def _typecheckingstub__6eaa0ebaf797c6ac4bac11bd73d9ad61c50892a9450e0ff5880903434
24876
25514
  id: builtins.str,
24877
25515
  *,
24878
25516
  access_token_validity: typing.Optional[_Duration_4839e8c3] = None,
25517
+ analytics: typing.Optional[typing.Union[AnalyticsConfiguration, typing.Dict[builtins.str, typing.Any]]] = None,
24879
25518
  auth_flows: typing.Optional[typing.Union[AuthFlow, typing.Dict[builtins.str, typing.Any]]] = None,
24880
25519
  auth_session_validity: typing.Optional[_Duration_4839e8c3] = None,
24881
25520
  disable_o_auth: typing.Optional[builtins.bool] = None,
@@ -25052,6 +25691,13 @@ def _typecheckingstub__1f85eb7769fbc2d73d7ddedb7d58312be06c85b0446415fcf926cc1e5
25052
25691
  """Type checking stubs"""
25053
25692
  pass
25054
25693
 
25694
+ def _typecheckingstub__5bda8a1a812b13ba6dfe14c09bb234238503bd86905d8f363571b49c270280f4(
25695
+ *,
25696
+ allowed_first_auth_factors: typing.Optional[typing.Union[AllowedFirstAuthFactors, typing.Dict[builtins.str, typing.Any]]] = None,
25697
+ ) -> None:
25698
+ """Type checking stubs"""
25699
+ pass
25700
+
25055
25701
  def _typecheckingstub__27aae9c398fe91d31540649394c2469df625de6993272c3b3cff19edc49ec8fa(
25056
25702
  *,
25057
25703
  fips: typing.Optional[builtins.bool] = None,
@@ -25162,11 +25808,14 @@ def _typecheckingstub__677a8ec9a3f2a22d2dfde6fd6818121e4a071dc4e942f6bbe219e5a9b
25162
25808
  mfa: typing.Optional[Mfa] = None,
25163
25809
  mfa_message: typing.Optional[builtins.str] = None,
25164
25810
  mfa_second_factor: typing.Optional[typing.Union[MfaSecondFactor, typing.Dict[builtins.str, typing.Any]]] = None,
25811
+ passkey_relying_party_id: typing.Optional[builtins.str] = None,
25812
+ passkey_user_verification: typing.Optional[PasskeyUserVerification] = None,
25165
25813
  password_policy: typing.Optional[typing.Union[PasswordPolicy, typing.Dict[builtins.str, typing.Any]]] = None,
25166
25814
  removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
25167
25815
  self_sign_up_enabled: typing.Optional[builtins.bool] = None,
25168
25816
  sign_in_aliases: typing.Optional[typing.Union[SignInAliases, typing.Dict[builtins.str, typing.Any]]] = None,
25169
25817
  sign_in_case_sensitive: typing.Optional[builtins.bool] = None,
25818
+ sign_in_policy: typing.Optional[typing.Union[SignInPolicy, typing.Dict[builtins.str, typing.Any]]] = None,
25170
25819
  sms_role: typing.Optional[_IRole_235f5d8e] = None,
25171
25820
  sms_role_external_id: typing.Optional[builtins.str] = None,
25172
25821
  sns_region: typing.Optional[builtins.str] = None,
@@ -25198,6 +25847,7 @@ def _typecheckingstub__b4ce1f762a6eeaca3920ca827a1685cfa2b670f96aa13d8cfdded4055
25198
25847
  id: builtins.str,
25199
25848
  *,
25200
25849
  access_token_validity: typing.Optional[_Duration_4839e8c3] = None,
25850
+ analytics: typing.Optional[typing.Union[AnalyticsConfiguration, typing.Dict[builtins.str, typing.Any]]] = None,
25201
25851
  auth_flows: typing.Optional[typing.Union[AuthFlow, typing.Dict[builtins.str, typing.Any]]] = None,
25202
25852
  auth_session_validity: typing.Optional[_Duration_4839e8c3] = None,
25203
25853
  disable_o_auth: typing.Optional[builtins.bool] = None,
@@ -25274,6 +25924,7 @@ def _typecheckingstub__e654de9921a676ab8214720f2ab2c7f212d67a62531595c721560e88c
25274
25924
  *,
25275
25925
  user_pool: IUserPool,
25276
25926
  access_token_validity: typing.Optional[_Duration_4839e8c3] = None,
25927
+ analytics: typing.Optional[typing.Union[AnalyticsConfiguration, typing.Dict[builtins.str, typing.Any]]] = None,
25277
25928
  auth_flows: typing.Optional[typing.Union[AuthFlow, typing.Dict[builtins.str, typing.Any]]] = None,
25278
25929
  auth_session_validity: typing.Optional[_Duration_4839e8c3] = None,
25279
25930
  disable_o_auth: typing.Optional[builtins.bool] = None,
@@ -25309,6 +25960,7 @@ def _typecheckingstub__14e7f4addf6b16821bea1f99db58ec36907e80587b70ed61044c1372d
25309
25960
  def _typecheckingstub__80185296586b917ea24ebc48255c627ce95ec5c85ae2ab4e52736240b27429fc(
25310
25961
  *,
25311
25962
  access_token_validity: typing.Optional[_Duration_4839e8c3] = None,
25963
+ analytics: typing.Optional[typing.Union[AnalyticsConfiguration, typing.Dict[builtins.str, typing.Any]]] = None,
25312
25964
  auth_flows: typing.Optional[typing.Union[AuthFlow, typing.Dict[builtins.str, typing.Any]]] = None,
25313
25965
  auth_session_validity: typing.Optional[_Duration_4839e8c3] = None,
25314
25966
  disable_o_auth: typing.Optional[builtins.bool] = None,
@@ -25330,6 +25982,7 @@ def _typecheckingstub__80185296586b917ea24ebc48255c627ce95ec5c85ae2ab4e52736240b
25330
25982
  def _typecheckingstub__95c8cad8419f2fd5def82ad39281b322b9ec6b2f7d891de939bf1e9036145948(
25331
25983
  *,
25332
25984
  access_token_validity: typing.Optional[_Duration_4839e8c3] = None,
25985
+ analytics: typing.Optional[typing.Union[AnalyticsConfiguration, typing.Dict[builtins.str, typing.Any]]] = None,
25333
25986
  auth_flows: typing.Optional[typing.Union[AuthFlow, typing.Dict[builtins.str, typing.Any]]] = None,
25334
25987
  auth_session_validity: typing.Optional[_Duration_4839e8c3] = None,
25335
25988
  disable_o_auth: typing.Optional[builtins.bool] = None,
@@ -25615,11 +26268,14 @@ def _typecheckingstub__754b1af40b4712720733e130c63a8ec0ca9a35d4cfb25450725d5aa02
25615
26268
  mfa: typing.Optional[Mfa] = None,
25616
26269
  mfa_message: typing.Optional[builtins.str] = None,
25617
26270
  mfa_second_factor: typing.Optional[typing.Union[MfaSecondFactor, typing.Dict[builtins.str, typing.Any]]] = None,
26271
+ passkey_relying_party_id: typing.Optional[builtins.str] = None,
26272
+ passkey_user_verification: typing.Optional[PasskeyUserVerification] = None,
25618
26273
  password_policy: typing.Optional[typing.Union[PasswordPolicy, typing.Dict[builtins.str, typing.Any]]] = None,
25619
26274
  removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
25620
26275
  self_sign_up_enabled: typing.Optional[builtins.bool] = None,
25621
26276
  sign_in_aliases: typing.Optional[typing.Union[SignInAliases, typing.Dict[builtins.str, typing.Any]]] = None,
25622
26277
  sign_in_case_sensitive: typing.Optional[builtins.bool] = None,
26278
+ sign_in_policy: typing.Optional[typing.Union[SignInPolicy, typing.Dict[builtins.str, typing.Any]]] = None,
25623
26279
  sms_role: typing.Optional[_IRole_235f5d8e] = None,
25624
26280
  sms_role_external_id: typing.Optional[builtins.str] = None,
25625
26281
  sns_region: typing.Optional[builtins.str] = None,