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.
- aws_cdk/__init__.py +69 -35
- aws_cdk/_jsii/__init__.py +1 -2
- aws_cdk/_jsii/{aws-cdk-lib@2.178.1.jsii.tgz → aws-cdk-lib@2.179.0.jsii.tgz} +0 -0
- aws_cdk/aws_apigateway/__init__.py +170 -29
- aws_cdk/aws_apigatewayv2/__init__.py +151 -32
- aws_cdk/aws_apigatewayv2_integrations/__init__.py +348 -0
- aws_cdk/aws_applicationautoscaling/__init__.py +8 -8
- aws_cdk/aws_appsync/__init__.py +6 -4
- aws_cdk/aws_cloudfront/__init__.py +5 -5
- aws_cdk/aws_codebuild/__init__.py +216 -0
- aws_cdk/aws_codepipeline/__init__.py +89 -28
- aws_cdk/aws_codepipeline_actions/__init__.py +526 -62
- aws_cdk/aws_cognito/__init__.py +676 -20
- aws_cdk/aws_ec2/__init__.py +25 -9
- aws_cdk/aws_ecs/__init__.py +8 -8
- aws_cdk/aws_eks/__init__.py +555 -179
- aws_cdk/aws_elasticloadbalancingv2/__init__.py +99 -0
- aws_cdk/aws_events/__init__.py +9 -15
- aws_cdk/aws_events_targets/__init__.py +303 -16
- aws_cdk/aws_iam/__init__.py +3 -3
- aws_cdk/aws_ivs/__init__.py +241 -73
- aws_cdk/aws_logs/__init__.py +62 -13
- aws_cdk/aws_pinpoint/__init__.py +14 -9
- aws_cdk/aws_rds/__init__.py +168 -24
- aws_cdk/aws_s3/__init__.py +9 -9
- aws_cdk/aws_stepfunctions_tasks/__init__.py +127 -21
- aws_cdk/pipelines/__init__.py +2 -2
- {aws_cdk_lib-2.178.1.dist-info → aws_cdk_lib-2.179.0.dist-info}/METADATA +1 -2
- {aws_cdk_lib-2.178.1.dist-info → aws_cdk_lib-2.179.0.dist-info}/RECORD +33 -34
- aws_cdk/lambda_layer_kubectl/__init__.py +0 -107
- {aws_cdk_lib-2.178.1.dist-info → aws_cdk_lib-2.179.0.dist-info}/LICENSE +0 -0
- {aws_cdk_lib-2.178.1.dist-info → aws_cdk_lib-2.179.0.dist-info}/NOTICE +0 -0
- {aws_cdk_lib-2.178.1.dist-info → aws_cdk_lib-2.179.0.dist-info}/WHEEL +0 -0
- {aws_cdk_lib-2.178.1.dist-info → aws_cdk_lib-2.179.0.dist-info}/top_level.txt +0 -0
aws_cdk/aws_cognito/__init__.py
CHANGED
|
@@ -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
|
-
|
|
1606
|
-
|
|
1607
|
-
|
|
1608
|
-
|
|
1609
|
-
|
|
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
|
-
|
|
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
|
-
|
|
18221
|
-
|
|
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
|
-
|
|
20690
|
-
|
|
20691
|
-
|
|
20692
|
-
|
|
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,
|