aws-cdk-lib 2.178.2__py3-none-any.whl → 2.180.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of aws-cdk-lib might be problematic. Click here for more details.
- aws_cdk/__init__.py +83 -41
- aws_cdk/_jsii/__init__.py +1 -2
- aws_cdk/_jsii/{aws-cdk-lib@2.178.2.jsii.tgz → aws-cdk-lib@2.180.0.jsii.tgz} +0 -0
- aws_cdk/aws_acmpca/__init__.py +47 -0
- aws_cdk/aws_apigateway/__init__.py +176 -35
- 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 +10 -7
- aws_cdk/aws_backup/__init__.py +89 -0
- aws_cdk/aws_batch/__init__.py +89 -50
- aws_cdk/aws_bedrock/__init__.py +506 -62
- aws_cdk/aws_cloudfront/__init__.py +1037 -146
- aws_cdk/aws_cloudfront_origins/__init__.py +1338 -144
- aws_cdk/aws_cloudtrail/__init__.py +4 -8
- aws_cdk/aws_cloudwatch/__init__.py +1 -1
- aws_cdk/aws_codebuild/__init__.py +218 -2
- aws_cdk/aws_codepipeline/__init__.py +113 -28
- aws_cdk/aws_codepipeline_actions/__init__.py +554 -63
- aws_cdk/aws_codestar/__init__.py +2 -1
- aws_cdk/aws_cognito/__init__.py +676 -29
- aws_cdk/aws_connect/__init__.py +257 -0
- aws_cdk/aws_datasync/__init__.py +279 -50
- aws_cdk/aws_deadline/__init__.py +683 -6
- aws_cdk/aws_directoryservice/__init__.py +9 -4
- aws_cdk/aws_dlm/__init__.py +2 -2
- aws_cdk/aws_dms/__init__.py +3 -3
- aws_cdk/aws_dynamodb/__init__.py +0 -54
- aws_cdk/aws_ec2/__init__.py +402 -130
- aws_cdk/aws_ecs/__init__.py +28 -43
- aws_cdk/aws_efs/__init__.py +1 -1
- aws_cdk/aws_eks/__init__.py +560 -182
- aws_cdk/aws_elasticloadbalancingv2/__init__.py +112 -27
- aws_cdk/aws_emrcontainers/__init__.py +44 -1
- aws_cdk/aws_events/__init__.py +17 -26
- aws_cdk/aws_events_targets/__init__.py +303 -16
- aws_cdk/aws_fms/__init__.py +5 -5
- aws_cdk/aws_fsx/__init__.py +5 -4
- aws_cdk/aws_glue/__init__.py +161 -0
- aws_cdk/aws_groundstation/__init__.py +23 -1
- aws_cdk/aws_iam/__init__.py +15 -15
- aws_cdk/aws_iot/__init__.py +7 -0
- aws_cdk/aws_ivs/__init__.py +254 -77
- aws_cdk/aws_kinesis/__init__.py +689 -35
- aws_cdk/aws_lambda/__init__.py +10 -15
- aws_cdk/aws_lambda_event_sources/__init__.py +175 -2
- aws_cdk/aws_logs/__init__.py +62 -13
- aws_cdk/aws_medialive/__init__.py +314 -4
- aws_cdk/aws_opensearchserverless/__init__.py +19 -0
- aws_cdk/aws_pinpoint/__init__.py +14 -9
- aws_cdk/aws_rds/__init__.py +246 -82
- aws_cdk/aws_s3/__init__.py +287 -9
- aws_cdk/aws_s3objectlambda/__init__.py +2 -2
- aws_cdk/aws_ses/__init__.py +228 -8
- aws_cdk/aws_ssm/__init__.py +4 -5
- aws_cdk/aws_stepfunctions/__init__.py +301 -70
- aws_cdk/aws_stepfunctions_tasks/__init__.py +269 -163
- aws_cdk/aws_supportapp/__init__.py +7 -7
- aws_cdk/aws_transfer/__init__.py +820 -2
- aws_cdk/aws_wafv2/__init__.py +17 -9
- aws_cdk/custom_resources/__init__.py +23 -26
- aws_cdk/cx_api/__init__.py +16 -0
- aws_cdk/pipelines/__init__.py +2 -2
- {aws_cdk_lib-2.178.2.dist-info → aws_cdk_lib-2.180.0.dist-info}/METADATA +1 -2
- {aws_cdk_lib-2.178.2.dist-info → aws_cdk_lib-2.180.0.dist-info}/RECORD +69 -70
- aws_cdk/lambda_layer_kubectl/__init__.py +0 -107
- {aws_cdk_lib-2.178.2.dist-info → aws_cdk_lib-2.180.0.dist-info}/LICENSE +0 -0
- {aws_cdk_lib-2.178.2.dist-info → aws_cdk_lib-2.180.0.dist-info}/NOTICE +0 -0
- {aws_cdk_lib-2.178.2.dist-info → aws_cdk_lib-2.180.0.dist-info}/WHEEL +0 -0
- {aws_cdk_lib-2.178.2.dist-info → aws_cdk_lib-2.180.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)
|
|
@@ -9040,15 +9440,6 @@ class CfnUserPoolDomain(
|
|
|
9040
9440
|
'''
|
|
9041
9441
|
return typing.cast(builtins.str, jsii.get(self, "attrCloudFrontDistribution"))
|
|
9042
9442
|
|
|
9043
|
-
@builtins.property
|
|
9044
|
-
@jsii.member(jsii_name="attrId")
|
|
9045
|
-
def attr_id(self) -> builtins.str:
|
|
9046
|
-
'''The resource ID.
|
|
9047
|
-
|
|
9048
|
-
:cloudformationAttribute: Id
|
|
9049
|
-
'''
|
|
9050
|
-
return typing.cast(builtins.str, jsii.get(self, "attrId"))
|
|
9051
|
-
|
|
9052
9443
|
@builtins.property
|
|
9053
9444
|
@jsii.member(jsii_name="cfnProperties")
|
|
9054
9445
|
def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
|
|
@@ -13810,6 +14201,16 @@ class FeaturePlan(enum.Enum):
|
|
|
13810
14201
|
'''The user pool feature plan, or tier.
|
|
13811
14202
|
|
|
13812
14203
|
:see: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-sign-in-feature-plans.html
|
|
14204
|
+
:exampleMetadata: infused
|
|
14205
|
+
|
|
14206
|
+
Example::
|
|
14207
|
+
|
|
14208
|
+
cognito.UserPool(self, "myuserpool",
|
|
14209
|
+
sign_in_policy=cognito.SignInPolicy(
|
|
14210
|
+
allowed_first_auth_factors=cognito.AllowedFirstAuthFactors(password=True)
|
|
14211
|
+
),
|
|
14212
|
+
feature_plan=cognito.FeaturePlan.LITE
|
|
14213
|
+
)
|
|
13813
14214
|
'''
|
|
13814
14215
|
|
|
13815
14216
|
LITE = "LITE"
|
|
@@ -13887,6 +14288,7 @@ class IUserPool(_IResource_c80c4260, typing_extensions.Protocol):
|
|
|
13887
14288
|
id: builtins.str,
|
|
13888
14289
|
*,
|
|
13889
14290
|
access_token_validity: typing.Optional[_Duration_4839e8c3] = None,
|
|
14291
|
+
analytics: typing.Optional[typing.Union[AnalyticsConfiguration, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
13890
14292
|
auth_flows: typing.Optional[typing.Union[AuthFlow, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
13891
14293
|
auth_session_validity: typing.Optional[_Duration_4839e8c3] = None,
|
|
13892
14294
|
disable_o_auth: typing.Optional[builtins.bool] = None,
|
|
@@ -13906,6 +14308,7 @@ class IUserPool(_IResource_c80c4260, typing_extensions.Protocol):
|
|
|
13906
14308
|
|
|
13907
14309
|
:param id: -
|
|
13908
14310
|
:param access_token_validity: Validity of the access token. Values between 5 minutes and 1 day are valid. The duration can not be longer than the refresh token validity. Default: Duration.minutes(60)
|
|
14311
|
+
:param analytics: The analytics configuration for this client. Default: - no analytics configuration
|
|
13909
14312
|
:param auth_flows: The set of OAuth authentication flows to enable on the client. Default: - If you don't specify a value, your user client supports ALLOW_REFRESH_TOKEN_AUTH, ALLOW_USER_SRP_AUTH, and ALLOW_CUSTOM_AUTH.
|
|
13910
14313
|
:param auth_session_validity: Cognito creates a session token for each API request in an authentication flow. AuthSessionValidity is the duration, in minutes, of that session token. see defaults in ``AuthSessionValidity``. Valid duration is from 3 to 15 minutes. Default: - Duration.minutes(3)
|
|
13911
14314
|
:param disable_o_auth: Turns off all OAuth interactions for this client. Default: false
|
|
@@ -14055,6 +14458,7 @@ class _IUserPoolProxy(
|
|
|
14055
14458
|
id: builtins.str,
|
|
14056
14459
|
*,
|
|
14057
14460
|
access_token_validity: typing.Optional[_Duration_4839e8c3] = None,
|
|
14461
|
+
analytics: typing.Optional[typing.Union[AnalyticsConfiguration, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
14058
14462
|
auth_flows: typing.Optional[typing.Union[AuthFlow, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
14059
14463
|
auth_session_validity: typing.Optional[_Duration_4839e8c3] = None,
|
|
14060
14464
|
disable_o_auth: typing.Optional[builtins.bool] = None,
|
|
@@ -14074,6 +14478,7 @@ class _IUserPoolProxy(
|
|
|
14074
14478
|
|
|
14075
14479
|
:param id: -
|
|
14076
14480
|
:param access_token_validity: Validity of the access token. Values between 5 minutes and 1 day are valid. The duration can not be longer than the refresh token validity. Default: Duration.minutes(60)
|
|
14481
|
+
:param analytics: The analytics configuration for this client. Default: - no analytics configuration
|
|
14077
14482
|
:param auth_flows: The set of OAuth authentication flows to enable on the client. Default: - If you don't specify a value, your user client supports ALLOW_REFRESH_TOKEN_AUTH, ALLOW_USER_SRP_AUTH, and ALLOW_CUSTOM_AUTH.
|
|
14078
14483
|
:param auth_session_validity: Cognito creates a session token for each API request in an authentication flow. AuthSessionValidity is the duration, in minutes, of that session token. see defaults in ``AuthSessionValidity``. Valid duration is from 3 to 15 minutes. Default: - Duration.minutes(3)
|
|
14079
14484
|
:param disable_o_auth: Turns off all OAuth interactions for this client. Default: false
|
|
@@ -14096,6 +14501,7 @@ class _IUserPoolProxy(
|
|
|
14096
14501
|
check_type(argname="argument id", value=id, expected_type=type_hints["id"])
|
|
14097
14502
|
options = UserPoolClientOptions(
|
|
14098
14503
|
access_token_validity=access_token_validity,
|
|
14504
|
+
analytics=analytics,
|
|
14099
14505
|
auth_flows=auth_flows,
|
|
14100
14506
|
auth_session_validity=auth_session_validity,
|
|
14101
14507
|
disable_o_auth=disable_o_auth,
|
|
@@ -15382,6 +15788,30 @@ class OidcEndpoints:
|
|
|
15382
15788
|
)
|
|
15383
15789
|
|
|
15384
15790
|
|
|
15791
|
+
@jsii.enum(jsii_type="aws-cdk-lib.aws_cognito.PasskeyUserVerification")
|
|
15792
|
+
class PasskeyUserVerification(enum.Enum):
|
|
15793
|
+
'''The user-pool treatment for MFA with a passkey.
|
|
15794
|
+
|
|
15795
|
+
:see: https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-authentication-flow-methods.html#amazon-cognito-user-pools-authentication-flow-methods-passkey
|
|
15796
|
+
:exampleMetadata: infused
|
|
15797
|
+
|
|
15798
|
+
Example::
|
|
15799
|
+
|
|
15800
|
+
cognito.UserPool(self, "myuserpool",
|
|
15801
|
+
sign_in_policy=cognito.SignInPolicy(
|
|
15802
|
+
allowed_first_auth_factors=cognito.AllowedFirstAuthFactors(password=True, passkey=True)
|
|
15803
|
+
),
|
|
15804
|
+
passkey_relying_party_id="auth.example.com",
|
|
15805
|
+
passkey_user_verification=cognito.PasskeyUserVerification.REQUIRED
|
|
15806
|
+
)
|
|
15807
|
+
'''
|
|
15808
|
+
|
|
15809
|
+
PREFERRED = "PREFERRED"
|
|
15810
|
+
'''Passkey MFA is preferred.'''
|
|
15811
|
+
REQUIRED = "REQUIRED"
|
|
15812
|
+
'''Passkey MFA is required.'''
|
|
15813
|
+
|
|
15814
|
+
|
|
15385
15815
|
@jsii.data_type(
|
|
15386
15816
|
jsii_type="aws-cdk-lib.aws_cognito.PasswordPolicy",
|
|
15387
15817
|
jsii_struct_bases=[],
|
|
@@ -16003,6 +16433,65 @@ class SignInAliases:
|
|
|
16003
16433
|
)
|
|
16004
16434
|
|
|
16005
16435
|
|
|
16436
|
+
@jsii.data_type(
|
|
16437
|
+
jsii_type="aws-cdk-lib.aws_cognito.SignInPolicy",
|
|
16438
|
+
jsii_struct_bases=[],
|
|
16439
|
+
name_mapping={"allowed_first_auth_factors": "allowedFirstAuthFactors"},
|
|
16440
|
+
)
|
|
16441
|
+
class SignInPolicy:
|
|
16442
|
+
def __init__(
|
|
16443
|
+
self,
|
|
16444
|
+
*,
|
|
16445
|
+
allowed_first_auth_factors: typing.Optional[typing.Union[AllowedFirstAuthFactors, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
16446
|
+
) -> None:
|
|
16447
|
+
'''Sign-in policy for User Pools.
|
|
16448
|
+
|
|
16449
|
+
:param allowed_first_auth_factors: The types of authentication that you want to allow for users' first authentication prompt. Default: - Password only
|
|
16450
|
+
|
|
16451
|
+
:exampleMetadata: infused
|
|
16452
|
+
|
|
16453
|
+
Example::
|
|
16454
|
+
|
|
16455
|
+
cognito.UserPool(self, "myuserpool",
|
|
16456
|
+
sign_in_policy=cognito.SignInPolicy(
|
|
16457
|
+
allowed_first_auth_factors=cognito.AllowedFirstAuthFactors(password=True, passkey=True)
|
|
16458
|
+
),
|
|
16459
|
+
passkey_relying_party_id="auth.example.com",
|
|
16460
|
+
passkey_user_verification=cognito.PasskeyUserVerification.REQUIRED
|
|
16461
|
+
)
|
|
16462
|
+
'''
|
|
16463
|
+
if isinstance(allowed_first_auth_factors, dict):
|
|
16464
|
+
allowed_first_auth_factors = AllowedFirstAuthFactors(**allowed_first_auth_factors)
|
|
16465
|
+
if __debug__:
|
|
16466
|
+
type_hints = typing.get_type_hints(_typecheckingstub__5bda8a1a812b13ba6dfe14c09bb234238503bd86905d8f363571b49c270280f4)
|
|
16467
|
+
check_type(argname="argument allowed_first_auth_factors", value=allowed_first_auth_factors, expected_type=type_hints["allowed_first_auth_factors"])
|
|
16468
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {}
|
|
16469
|
+
if allowed_first_auth_factors is not None:
|
|
16470
|
+
self._values["allowed_first_auth_factors"] = allowed_first_auth_factors
|
|
16471
|
+
|
|
16472
|
+
@builtins.property
|
|
16473
|
+
def allowed_first_auth_factors(self) -> typing.Optional[AllowedFirstAuthFactors]:
|
|
16474
|
+
'''The types of authentication that you want to allow for users' first authentication prompt.
|
|
16475
|
+
|
|
16476
|
+
:default: - Password only
|
|
16477
|
+
|
|
16478
|
+
:see: https://docs.aws.amazon.com/cognito/latest/developerguide/authentication-flows-selection-sdk.html#authentication-flows-selection-choice
|
|
16479
|
+
'''
|
|
16480
|
+
result = self._values.get("allowed_first_auth_factors")
|
|
16481
|
+
return typing.cast(typing.Optional[AllowedFirstAuthFactors], result)
|
|
16482
|
+
|
|
16483
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
16484
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
16485
|
+
|
|
16486
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
16487
|
+
return not (rhs == self)
|
|
16488
|
+
|
|
16489
|
+
def __repr__(self) -> str:
|
|
16490
|
+
return "SignInPolicy(%s)" % ", ".join(
|
|
16491
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
16492
|
+
)
|
|
16493
|
+
|
|
16494
|
+
|
|
16006
16495
|
@jsii.data_type(
|
|
16007
16496
|
jsii_type="aws-cdk-lib.aws_cognito.SignInUrlOptions",
|
|
16008
16497
|
jsii_struct_bases=[BaseUrlOptions],
|
|
@@ -17248,11 +17737,14 @@ class UserPool(
|
|
|
17248
17737
|
mfa: typing.Optional[Mfa] = None,
|
|
17249
17738
|
mfa_message: typing.Optional[builtins.str] = None,
|
|
17250
17739
|
mfa_second_factor: typing.Optional[typing.Union[MfaSecondFactor, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
17740
|
+
passkey_relying_party_id: typing.Optional[builtins.str] = None,
|
|
17741
|
+
passkey_user_verification: typing.Optional[PasskeyUserVerification] = None,
|
|
17251
17742
|
password_policy: typing.Optional[typing.Union[PasswordPolicy, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
17252
17743
|
removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
|
|
17253
17744
|
self_sign_up_enabled: typing.Optional[builtins.bool] = None,
|
|
17254
17745
|
sign_in_aliases: typing.Optional[typing.Union[SignInAliases, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
17255
17746
|
sign_in_case_sensitive: typing.Optional[builtins.bool] = None,
|
|
17747
|
+
sign_in_policy: typing.Optional[typing.Union[SignInPolicy, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
17256
17748
|
sms_role: typing.Optional[_IRole_235f5d8e] = None,
|
|
17257
17749
|
sms_role_external_id: typing.Optional[builtins.str] = None,
|
|
17258
17750
|
sns_region: typing.Optional[builtins.str] = None,
|
|
@@ -17279,11 +17771,14 @@ class UserPool(
|
|
|
17279
17771
|
:param mfa: Configure whether users of this user pool can or are required use MFA to sign in. Default: Mfa.OFF
|
|
17280
17772
|
:param mfa_message: The SMS message template sent during MFA verification. Use '{####}' in the template where Cognito should insert the verification code. Default: 'Your authentication code is {####}.'
|
|
17281
17773
|
:param mfa_second_factor: Configure the MFA types that users can use in this user pool. Ignored if ``mfa`` is set to ``OFF``. Default: - { sms: true, otp: false, email: false }, if ``mfa`` is set to ``OPTIONAL`` or ``REQUIRED``. { sms: false, otp: false, email:false }, otherwise
|
|
17774
|
+
:param passkey_relying_party_id: The authentication domain that passkey providers must use as a relying party (RP) in their configuration. Under the following conditions, the passkey relying party ID must be the fully-qualified domain name of your custom domain: - The user pool is configured for passkey authentication. - The user pool has a custom domain, whether or not it also has a prefix domain. - Your application performs authentication with managed login or the classic hosted UI. Default: - No authentication domain
|
|
17775
|
+
:param passkey_user_verification: Your user-pool treatment for MFA with a passkey. You can override other MFA options and require passkey MFA, or you can set it as preferred. When passkey MFA is preferred, the hosted UI encourages users to register a passkey at sign-in. Default: - Cognito default setting is PasskeyUserVerification.PREFERRED
|
|
17282
17776
|
:param password_policy: Password policy for this user pool. Default: - see defaults on each property of PasswordPolicy.
|
|
17283
17777
|
:param removal_policy: Policy to apply when the user pool is removed from the stack. Default: RemovalPolicy.RETAIN
|
|
17284
17778
|
:param self_sign_up_enabled: Whether self sign-up should be enabled. To configure self sign-up configuration use the ``userVerification`` property. Default: - false
|
|
17285
17779
|
:param sign_in_aliases: Methods in which a user registers or signs in to a user pool. Allows either username with aliases OR sign in with email, phone, or both. Read the sections on usernames and aliases to learn more - https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-attributes.html To match with 'Option 1' in the above link, with a verified email, this property should be set to ``{ username: true, email: true }``. To match with 'Option 2' in the above link with both a verified email and phone number, this property should be set to ``{ email: true, phone: true }``. Default: { username: true }
|
|
17286
17780
|
:param sign_in_case_sensitive: Whether sign-in aliases should be evaluated with case sensitivity. For example, when this option is set to false, users will be able to sign in using either ``MyUsername`` or ``myusername``. Default: true
|
|
17781
|
+
:param sign_in_policy: Sign-in policy for this user pool. Default: - see defaults on each property of SignInPolicy.
|
|
17287
17782
|
:param sms_role: The IAM role that Cognito will assume while sending SMS messages. Default: - a new IAM role is created.
|
|
17288
17783
|
:param sms_role_external_id: The 'ExternalId' that Cognito service must be using when assuming the ``smsRole``, if the role is restricted with an 'sts:ExternalId' conditional. Learn more about ExternalId here - https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html This property will be ignored if ``smsRole`` is not specified. Default: - No external id will be configured.
|
|
17289
17784
|
:param sns_region: The region to integrate with SNS to send SMS messages. This property will do nothing if SMS configuration is not configured. Default: - The same region as the user pool, with a few exceptions - https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-sms-settings.html#user-pool-sms-settings-first-time
|
|
@@ -17312,11 +17807,14 @@ class UserPool(
|
|
|
17312
17807
|
mfa=mfa,
|
|
17313
17808
|
mfa_message=mfa_message,
|
|
17314
17809
|
mfa_second_factor=mfa_second_factor,
|
|
17810
|
+
passkey_relying_party_id=passkey_relying_party_id,
|
|
17811
|
+
passkey_user_verification=passkey_user_verification,
|
|
17315
17812
|
password_policy=password_policy,
|
|
17316
17813
|
removal_policy=removal_policy,
|
|
17317
17814
|
self_sign_up_enabled=self_sign_up_enabled,
|
|
17318
17815
|
sign_in_aliases=sign_in_aliases,
|
|
17319
17816
|
sign_in_case_sensitive=sign_in_case_sensitive,
|
|
17817
|
+
sign_in_policy=sign_in_policy,
|
|
17320
17818
|
sms_role=sms_role,
|
|
17321
17819
|
sms_role_external_id=sms_role_external_id,
|
|
17322
17820
|
sns_region=sns_region,
|
|
@@ -17376,6 +17874,7 @@ class UserPool(
|
|
|
17376
17874
|
id: builtins.str,
|
|
17377
17875
|
*,
|
|
17378
17876
|
access_token_validity: typing.Optional[_Duration_4839e8c3] = None,
|
|
17877
|
+
analytics: typing.Optional[typing.Union[AnalyticsConfiguration, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
17379
17878
|
auth_flows: typing.Optional[typing.Union[AuthFlow, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
17380
17879
|
auth_session_validity: typing.Optional[_Duration_4839e8c3] = None,
|
|
17381
17880
|
disable_o_auth: typing.Optional[builtins.bool] = None,
|
|
@@ -17395,6 +17894,7 @@ class UserPool(
|
|
|
17395
17894
|
|
|
17396
17895
|
:param id: -
|
|
17397
17896
|
:param access_token_validity: Validity of the access token. Values between 5 minutes and 1 day are valid. The duration can not be longer than the refresh token validity. Default: Duration.minutes(60)
|
|
17897
|
+
:param analytics: The analytics configuration for this client. Default: - no analytics configuration
|
|
17398
17898
|
:param auth_flows: The set of OAuth authentication flows to enable on the client. Default: - If you don't specify a value, your user client supports ALLOW_REFRESH_TOKEN_AUTH, ALLOW_USER_SRP_AUTH, and ALLOW_CUSTOM_AUTH.
|
|
17399
17899
|
:param auth_session_validity: Cognito creates a session token for each API request in an authentication flow. AuthSessionValidity is the duration, in minutes, of that session token. see defaults in ``AuthSessionValidity``. Valid duration is from 3 to 15 minutes. Default: - Duration.minutes(3)
|
|
17400
17900
|
:param disable_o_auth: Turns off all OAuth interactions for this client. Default: false
|
|
@@ -17415,6 +17915,7 @@ class UserPool(
|
|
|
17415
17915
|
check_type(argname="argument id", value=id, expected_type=type_hints["id"])
|
|
17416
17916
|
options = UserPoolClientOptions(
|
|
17417
17917
|
access_token_validity=access_token_validity,
|
|
17918
|
+
analytics=analytics,
|
|
17418
17919
|
auth_flows=auth_flows,
|
|
17419
17920
|
auth_session_validity=auth_session_validity,
|
|
17420
17921
|
disable_o_auth=disable_o_auth,
|
|
@@ -17639,6 +18140,7 @@ class UserPoolClient(
|
|
|
17639
18140
|
*,
|
|
17640
18141
|
user_pool: IUserPool,
|
|
17641
18142
|
access_token_validity: typing.Optional[_Duration_4839e8c3] = None,
|
|
18143
|
+
analytics: typing.Optional[typing.Union[AnalyticsConfiguration, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
17642
18144
|
auth_flows: typing.Optional[typing.Union[AuthFlow, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
17643
18145
|
auth_session_validity: typing.Optional[_Duration_4839e8c3] = None,
|
|
17644
18146
|
disable_o_auth: typing.Optional[builtins.bool] = None,
|
|
@@ -17659,6 +18161,7 @@ class UserPoolClient(
|
|
|
17659
18161
|
:param id: -
|
|
17660
18162
|
:param user_pool: The UserPool resource this client will have access to.
|
|
17661
18163
|
:param access_token_validity: Validity of the access token. Values between 5 minutes and 1 day are valid. The duration can not be longer than the refresh token validity. Default: Duration.minutes(60)
|
|
18164
|
+
:param analytics: The analytics configuration for this client. Default: - no analytics configuration
|
|
17662
18165
|
:param auth_flows: The set of OAuth authentication flows to enable on the client. Default: - If you don't specify a value, your user client supports ALLOW_REFRESH_TOKEN_AUTH, ALLOW_USER_SRP_AUTH, and ALLOW_CUSTOM_AUTH.
|
|
17663
18166
|
:param auth_session_validity: Cognito creates a session token for each API request in an authentication flow. AuthSessionValidity is the duration, in minutes, of that session token. see defaults in ``AuthSessionValidity``. Valid duration is from 3 to 15 minutes. Default: - Duration.minutes(3)
|
|
17664
18167
|
:param disable_o_auth: Turns off all OAuth interactions for this client. Default: false
|
|
@@ -17681,6 +18184,7 @@ class UserPoolClient(
|
|
|
17681
18184
|
props = UserPoolClientProps(
|
|
17682
18185
|
user_pool=user_pool,
|
|
17683
18186
|
access_token_validity=access_token_validity,
|
|
18187
|
+
analytics=analytics,
|
|
17684
18188
|
auth_flows=auth_flows,
|
|
17685
18189
|
auth_session_validity=auth_session_validity,
|
|
17686
18190
|
disable_o_auth=disable_o_auth,
|
|
@@ -17832,6 +18336,7 @@ class UserPoolClientIdentityProvider(
|
|
|
17832
18336
|
jsii_struct_bases=[],
|
|
17833
18337
|
name_mapping={
|
|
17834
18338
|
"access_token_validity": "accessTokenValidity",
|
|
18339
|
+
"analytics": "analytics",
|
|
17835
18340
|
"auth_flows": "authFlows",
|
|
17836
18341
|
"auth_session_validity": "authSessionValidity",
|
|
17837
18342
|
"disable_o_auth": "disableOAuth",
|
|
@@ -17853,6 +18358,7 @@ class UserPoolClientOptions:
|
|
|
17853
18358
|
self,
|
|
17854
18359
|
*,
|
|
17855
18360
|
access_token_validity: typing.Optional[_Duration_4839e8c3] = None,
|
|
18361
|
+
analytics: typing.Optional[typing.Union[AnalyticsConfiguration, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
17856
18362
|
auth_flows: typing.Optional[typing.Union[AuthFlow, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
17857
18363
|
auth_session_validity: typing.Optional[_Duration_4839e8c3] = None,
|
|
17858
18364
|
disable_o_auth: typing.Optional[builtins.bool] = None,
|
|
@@ -17871,6 +18377,7 @@ class UserPoolClientOptions:
|
|
|
17871
18377
|
'''Options to create a UserPoolClient.
|
|
17872
18378
|
|
|
17873
18379
|
:param access_token_validity: Validity of the access token. Values between 5 minutes and 1 day are valid. The duration can not be longer than the refresh token validity. Default: Duration.minutes(60)
|
|
18380
|
+
:param analytics: The analytics configuration for this client. Default: - no analytics configuration
|
|
17874
18381
|
:param auth_flows: The set of OAuth authentication flows to enable on the client. Default: - If you don't specify a value, your user client supports ALLOW_REFRESH_TOKEN_AUTH, ALLOW_USER_SRP_AUTH, and ALLOW_CUSTOM_AUTH.
|
|
17875
18382
|
:param auth_session_validity: Cognito creates a session token for each API request in an authentication flow. AuthSessionValidity is the duration, in minutes, of that session token. see defaults in ``AuthSessionValidity``. Valid duration is from 3 to 15 minutes. Default: - Duration.minutes(3)
|
|
17876
18383
|
:param disable_o_auth: Turns off all OAuth interactions for this client. Default: false
|
|
@@ -17902,6 +18409,8 @@ class UserPoolClientOptions:
|
|
|
17902
18409
|
)
|
|
17903
18410
|
)
|
|
17904
18411
|
'''
|
|
18412
|
+
if isinstance(analytics, dict):
|
|
18413
|
+
analytics = AnalyticsConfiguration(**analytics)
|
|
17905
18414
|
if isinstance(auth_flows, dict):
|
|
17906
18415
|
auth_flows = AuthFlow(**auth_flows)
|
|
17907
18416
|
if isinstance(o_auth, dict):
|
|
@@ -17909,6 +18418,7 @@ class UserPoolClientOptions:
|
|
|
17909
18418
|
if __debug__:
|
|
17910
18419
|
type_hints = typing.get_type_hints(_typecheckingstub__80185296586b917ea24ebc48255c627ce95ec5c85ae2ab4e52736240b27429fc)
|
|
17911
18420
|
check_type(argname="argument access_token_validity", value=access_token_validity, expected_type=type_hints["access_token_validity"])
|
|
18421
|
+
check_type(argname="argument analytics", value=analytics, expected_type=type_hints["analytics"])
|
|
17912
18422
|
check_type(argname="argument auth_flows", value=auth_flows, expected_type=type_hints["auth_flows"])
|
|
17913
18423
|
check_type(argname="argument auth_session_validity", value=auth_session_validity, expected_type=type_hints["auth_session_validity"])
|
|
17914
18424
|
check_type(argname="argument disable_o_auth", value=disable_o_auth, expected_type=type_hints["disable_o_auth"])
|
|
@@ -17926,6 +18436,8 @@ class UserPoolClientOptions:
|
|
|
17926
18436
|
self._values: typing.Dict[builtins.str, typing.Any] = {}
|
|
17927
18437
|
if access_token_validity is not None:
|
|
17928
18438
|
self._values["access_token_validity"] = access_token_validity
|
|
18439
|
+
if analytics is not None:
|
|
18440
|
+
self._values["analytics"] = analytics
|
|
17929
18441
|
if auth_flows is not None:
|
|
17930
18442
|
self._values["auth_flows"] = auth_flows
|
|
17931
18443
|
if auth_session_validity is not None:
|
|
@@ -17968,6 +18480,15 @@ class UserPoolClientOptions:
|
|
|
17968
18480
|
result = self._values.get("access_token_validity")
|
|
17969
18481
|
return typing.cast(typing.Optional[_Duration_4839e8c3], result)
|
|
17970
18482
|
|
|
18483
|
+
@builtins.property
|
|
18484
|
+
def analytics(self) -> typing.Optional[AnalyticsConfiguration]:
|
|
18485
|
+
'''The analytics configuration for this client.
|
|
18486
|
+
|
|
18487
|
+
:default: - no analytics configuration
|
|
18488
|
+
'''
|
|
18489
|
+
result = self._values.get("analytics")
|
|
18490
|
+
return typing.cast(typing.Optional[AnalyticsConfiguration], result)
|
|
18491
|
+
|
|
17971
18492
|
@builtins.property
|
|
17972
18493
|
def auth_flows(self) -> typing.Optional[AuthFlow]:
|
|
17973
18494
|
'''The set of OAuth authentication flows to enable on the client.
|
|
@@ -18148,6 +18669,7 @@ class UserPoolClientOptions:
|
|
|
18148
18669
|
jsii_struct_bases=[UserPoolClientOptions],
|
|
18149
18670
|
name_mapping={
|
|
18150
18671
|
"access_token_validity": "accessTokenValidity",
|
|
18672
|
+
"analytics": "analytics",
|
|
18151
18673
|
"auth_flows": "authFlows",
|
|
18152
18674
|
"auth_session_validity": "authSessionValidity",
|
|
18153
18675
|
"disable_o_auth": "disableOAuth",
|
|
@@ -18170,6 +18692,7 @@ class UserPoolClientProps(UserPoolClientOptions):
|
|
|
18170
18692
|
self,
|
|
18171
18693
|
*,
|
|
18172
18694
|
access_token_validity: typing.Optional[_Duration_4839e8c3] = None,
|
|
18695
|
+
analytics: typing.Optional[typing.Union[AnalyticsConfiguration, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
18173
18696
|
auth_flows: typing.Optional[typing.Union[AuthFlow, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
18174
18697
|
auth_session_validity: typing.Optional[_Duration_4839e8c3] = None,
|
|
18175
18698
|
disable_o_auth: typing.Optional[builtins.bool] = None,
|
|
@@ -18189,6 +18712,7 @@ class UserPoolClientProps(UserPoolClientOptions):
|
|
|
18189
18712
|
'''Properties for the UserPoolClient construct.
|
|
18190
18713
|
|
|
18191
18714
|
:param access_token_validity: Validity of the access token. Values between 5 minutes and 1 day are valid. The duration can not be longer than the refresh token validity. Default: Duration.minutes(60)
|
|
18715
|
+
:param analytics: The analytics configuration for this client. Default: - no analytics configuration
|
|
18192
18716
|
:param auth_flows: The set of OAuth authentication flows to enable on the client. Default: - If you don't specify a value, your user client supports ALLOW_REFRESH_TOKEN_AUTH, ALLOW_USER_SRP_AUTH, and ALLOW_CUSTOM_AUTH.
|
|
18193
18717
|
:param auth_session_validity: Cognito creates a session token for each API request in an authentication flow. AuthSessionValidity is the duration, in minutes, of that session token. see defaults in ``AuthSessionValidity``. Valid duration is from 3 to 15 minutes. Default: - Duration.minutes(3)
|
|
18194
18718
|
:param disable_o_auth: Turns off all OAuth interactions for this client. Default: false
|
|
@@ -18209,17 +18733,32 @@ class UserPoolClientProps(UserPoolClientOptions):
|
|
|
18209
18733
|
|
|
18210
18734
|
Example::
|
|
18211
18735
|
|
|
18212
|
-
|
|
18736
|
+
import aws_cdk.aws_pinpoint as pinpoint
|
|
18213
18737
|
|
|
18738
|
+
# user_pool: cognito.UserPool
|
|
18739
|
+
# pinpoint_app: pinpoint.CfnApp
|
|
18740
|
+
# pinpoint_role: iam.Role
|
|
18214
18741
|
|
|
18215
|
-
user_pool_client = cognito.UserPoolClient(self, "UserPoolClient",
|
|
18216
|
-
user_pool=imported_pool,
|
|
18217
|
-
generate_secret=True
|
|
18218
|
-
)
|
|
18219
18742
|
|
|
18220
|
-
|
|
18221
|
-
|
|
18743
|
+
cognito.UserPoolClient(self, "Client",
|
|
18744
|
+
user_pool=user_pool,
|
|
18745
|
+
analytics=cognito.AnalyticsConfiguration(
|
|
18746
|
+
# Your Pinpoint project ID
|
|
18747
|
+
application_id=pinpoint_app.ref,
|
|
18748
|
+
|
|
18749
|
+
# External ID for the IAM role
|
|
18750
|
+
external_id="sample-external-id",
|
|
18751
|
+
|
|
18752
|
+
# IAM role that Cognito can assume to publish to Pinpoint
|
|
18753
|
+
role=pinpoint_role,
|
|
18754
|
+
|
|
18755
|
+
# Whether to include user data in analytics events
|
|
18756
|
+
share_user_data=True
|
|
18757
|
+
)
|
|
18758
|
+
)
|
|
18222
18759
|
'''
|
|
18760
|
+
if isinstance(analytics, dict):
|
|
18761
|
+
analytics = AnalyticsConfiguration(**analytics)
|
|
18223
18762
|
if isinstance(auth_flows, dict):
|
|
18224
18763
|
auth_flows = AuthFlow(**auth_flows)
|
|
18225
18764
|
if isinstance(o_auth, dict):
|
|
@@ -18227,6 +18766,7 @@ class UserPoolClientProps(UserPoolClientOptions):
|
|
|
18227
18766
|
if __debug__:
|
|
18228
18767
|
type_hints = typing.get_type_hints(_typecheckingstub__95c8cad8419f2fd5def82ad39281b322b9ec6b2f7d891de939bf1e9036145948)
|
|
18229
18768
|
check_type(argname="argument access_token_validity", value=access_token_validity, expected_type=type_hints["access_token_validity"])
|
|
18769
|
+
check_type(argname="argument analytics", value=analytics, expected_type=type_hints["analytics"])
|
|
18230
18770
|
check_type(argname="argument auth_flows", value=auth_flows, expected_type=type_hints["auth_flows"])
|
|
18231
18771
|
check_type(argname="argument auth_session_validity", value=auth_session_validity, expected_type=type_hints["auth_session_validity"])
|
|
18232
18772
|
check_type(argname="argument disable_o_auth", value=disable_o_auth, expected_type=type_hints["disable_o_auth"])
|
|
@@ -18247,6 +18787,8 @@ class UserPoolClientProps(UserPoolClientOptions):
|
|
|
18247
18787
|
}
|
|
18248
18788
|
if access_token_validity is not None:
|
|
18249
18789
|
self._values["access_token_validity"] = access_token_validity
|
|
18790
|
+
if analytics is not None:
|
|
18791
|
+
self._values["analytics"] = analytics
|
|
18250
18792
|
if auth_flows is not None:
|
|
18251
18793
|
self._values["auth_flows"] = auth_flows
|
|
18252
18794
|
if auth_session_validity is not None:
|
|
@@ -18289,6 +18831,15 @@ class UserPoolClientProps(UserPoolClientOptions):
|
|
|
18289
18831
|
result = self._values.get("access_token_validity")
|
|
18290
18832
|
return typing.cast(typing.Optional[_Duration_4839e8c3], result)
|
|
18291
18833
|
|
|
18834
|
+
@builtins.property
|
|
18835
|
+
def analytics(self) -> typing.Optional[AnalyticsConfiguration]:
|
|
18836
|
+
'''The analytics configuration for this client.
|
|
18837
|
+
|
|
18838
|
+
:default: - no analytics configuration
|
|
18839
|
+
'''
|
|
18840
|
+
result = self._values.get("analytics")
|
|
18841
|
+
return typing.cast(typing.Optional[AnalyticsConfiguration], result)
|
|
18842
|
+
|
|
18292
18843
|
@builtins.property
|
|
18293
18844
|
def auth_flows(self) -> typing.Optional[AuthFlow]:
|
|
18294
18845
|
'''The set of OAuth authentication flows to enable on the client.
|
|
@@ -20604,11 +21155,14 @@ class UserPoolOperation(
|
|
|
20604
21155
|
"mfa": "mfa",
|
|
20605
21156
|
"mfa_message": "mfaMessage",
|
|
20606
21157
|
"mfa_second_factor": "mfaSecondFactor",
|
|
21158
|
+
"passkey_relying_party_id": "passkeyRelyingPartyId",
|
|
21159
|
+
"passkey_user_verification": "passkeyUserVerification",
|
|
20607
21160
|
"password_policy": "passwordPolicy",
|
|
20608
21161
|
"removal_policy": "removalPolicy",
|
|
20609
21162
|
"self_sign_up_enabled": "selfSignUpEnabled",
|
|
20610
21163
|
"sign_in_aliases": "signInAliases",
|
|
20611
21164
|
"sign_in_case_sensitive": "signInCaseSensitive",
|
|
21165
|
+
"sign_in_policy": "signInPolicy",
|
|
20612
21166
|
"sms_role": "smsRole",
|
|
20613
21167
|
"sms_role_external_id": "smsRoleExternalId",
|
|
20614
21168
|
"sns_region": "snsRegion",
|
|
@@ -20637,11 +21191,14 @@ class UserPoolProps:
|
|
|
20637
21191
|
mfa: typing.Optional[Mfa] = None,
|
|
20638
21192
|
mfa_message: typing.Optional[builtins.str] = None,
|
|
20639
21193
|
mfa_second_factor: typing.Optional[typing.Union[MfaSecondFactor, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
21194
|
+
passkey_relying_party_id: typing.Optional[builtins.str] = None,
|
|
21195
|
+
passkey_user_verification: typing.Optional[PasskeyUserVerification] = None,
|
|
20640
21196
|
password_policy: typing.Optional[typing.Union[PasswordPolicy, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
20641
21197
|
removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
|
|
20642
21198
|
self_sign_up_enabled: typing.Optional[builtins.bool] = None,
|
|
20643
21199
|
sign_in_aliases: typing.Optional[typing.Union[SignInAliases, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
20644
21200
|
sign_in_case_sensitive: typing.Optional[builtins.bool] = None,
|
|
21201
|
+
sign_in_policy: typing.Optional[typing.Union[SignInPolicy, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
20645
21202
|
sms_role: typing.Optional[_IRole_235f5d8e] = None,
|
|
20646
21203
|
sms_role_external_id: typing.Optional[builtins.str] = None,
|
|
20647
21204
|
sns_region: typing.Optional[builtins.str] = None,
|
|
@@ -20667,11 +21224,14 @@ class UserPoolProps:
|
|
|
20667
21224
|
:param mfa: Configure whether users of this user pool can or are required use MFA to sign in. Default: Mfa.OFF
|
|
20668
21225
|
:param mfa_message: The SMS message template sent during MFA verification. Use '{####}' in the template where Cognito should insert the verification code. Default: 'Your authentication code is {####}.'
|
|
20669
21226
|
:param mfa_second_factor: Configure the MFA types that users can use in this user pool. Ignored if ``mfa`` is set to ``OFF``. Default: - { sms: true, otp: false, email: false }, if ``mfa`` is set to ``OPTIONAL`` or ``REQUIRED``. { sms: false, otp: false, email:false }, otherwise
|
|
21227
|
+
:param passkey_relying_party_id: The authentication domain that passkey providers must use as a relying party (RP) in their configuration. Under the following conditions, the passkey relying party ID must be the fully-qualified domain name of your custom domain: - The user pool is configured for passkey authentication. - The user pool has a custom domain, whether or not it also has a prefix domain. - Your application performs authentication with managed login or the classic hosted UI. Default: - No authentication domain
|
|
21228
|
+
:param passkey_user_verification: Your user-pool treatment for MFA with a passkey. You can override other MFA options and require passkey MFA, or you can set it as preferred. When passkey MFA is preferred, the hosted UI encourages users to register a passkey at sign-in. Default: - Cognito default setting is PasskeyUserVerification.PREFERRED
|
|
20670
21229
|
:param password_policy: Password policy for this user pool. Default: - see defaults on each property of PasswordPolicy.
|
|
20671
21230
|
:param removal_policy: Policy to apply when the user pool is removed from the stack. Default: RemovalPolicy.RETAIN
|
|
20672
21231
|
:param self_sign_up_enabled: Whether self sign-up should be enabled. To configure self sign-up configuration use the ``userVerification`` property. Default: - false
|
|
20673
21232
|
:param sign_in_aliases: Methods in which a user registers or signs in to a user pool. Allows either username with aliases OR sign in with email, phone, or both. Read the sections on usernames and aliases to learn more - https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-attributes.html To match with 'Option 1' in the above link, with a verified email, this property should be set to ``{ username: true, email: true }``. To match with 'Option 2' in the above link with both a verified email and phone number, this property should be set to ``{ email: true, phone: true }``. Default: { username: true }
|
|
20674
21233
|
:param sign_in_case_sensitive: Whether sign-in aliases should be evaluated with case sensitivity. For example, when this option is set to false, users will be able to sign in using either ``MyUsername`` or ``myusername``. Default: true
|
|
21234
|
+
:param sign_in_policy: Sign-in policy for this user pool. Default: - see defaults on each property of SignInPolicy.
|
|
20675
21235
|
:param sms_role: The IAM role that Cognito will assume while sending SMS messages. Default: - a new IAM role is created.
|
|
20676
21236
|
:param sms_role_external_id: The 'ExternalId' that Cognito service must be using when assuming the ``smsRole``, if the role is restricted with an 'sts:ExternalId' conditional. Learn more about ExternalId here - https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html This property will be ignored if ``smsRole`` is not specified. Default: - No external id will be configured.
|
|
20677
21237
|
:param sns_region: The region to integrate with SNS to send SMS messages. This property will do nothing if SMS configuration is not configured. Default: - The same region as the user pool, with a few exceptions - https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-sms-settings.html#user-pool-sms-settings-first-time
|
|
@@ -20685,14 +21245,11 @@ class UserPoolProps:
|
|
|
20685
21245
|
Example::
|
|
20686
21246
|
|
|
20687
21247
|
cognito.UserPool(self, "myuserpool",
|
|
20688
|
-
|
|
20689
|
-
|
|
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
|
-
)
|
|
21248
|
+
sign_in_policy=cognito.SignInPolicy(
|
|
21249
|
+
allowed_first_auth_factors=cognito.AllowedFirstAuthFactors(password=True, passkey=True)
|
|
21250
|
+
),
|
|
21251
|
+
passkey_relying_party_id="auth.example.com",
|
|
21252
|
+
passkey_user_verification=cognito.PasskeyUserVerification.REQUIRED
|
|
20696
21253
|
)
|
|
20697
21254
|
'''
|
|
20698
21255
|
if isinstance(auto_verify, dict):
|
|
@@ -20709,6 +21266,8 @@ class UserPoolProps:
|
|
|
20709
21266
|
password_policy = PasswordPolicy(**password_policy)
|
|
20710
21267
|
if isinstance(sign_in_aliases, dict):
|
|
20711
21268
|
sign_in_aliases = SignInAliases(**sign_in_aliases)
|
|
21269
|
+
if isinstance(sign_in_policy, dict):
|
|
21270
|
+
sign_in_policy = SignInPolicy(**sign_in_policy)
|
|
20712
21271
|
if isinstance(standard_attributes, dict):
|
|
20713
21272
|
standard_attributes = StandardAttributes(**standard_attributes)
|
|
20714
21273
|
if isinstance(user_invitation, dict):
|
|
@@ -20732,11 +21291,14 @@ class UserPoolProps:
|
|
|
20732
21291
|
check_type(argname="argument mfa", value=mfa, expected_type=type_hints["mfa"])
|
|
20733
21292
|
check_type(argname="argument mfa_message", value=mfa_message, expected_type=type_hints["mfa_message"])
|
|
20734
21293
|
check_type(argname="argument mfa_second_factor", value=mfa_second_factor, expected_type=type_hints["mfa_second_factor"])
|
|
21294
|
+
check_type(argname="argument passkey_relying_party_id", value=passkey_relying_party_id, expected_type=type_hints["passkey_relying_party_id"])
|
|
21295
|
+
check_type(argname="argument passkey_user_verification", value=passkey_user_verification, expected_type=type_hints["passkey_user_verification"])
|
|
20735
21296
|
check_type(argname="argument password_policy", value=password_policy, expected_type=type_hints["password_policy"])
|
|
20736
21297
|
check_type(argname="argument removal_policy", value=removal_policy, expected_type=type_hints["removal_policy"])
|
|
20737
21298
|
check_type(argname="argument self_sign_up_enabled", value=self_sign_up_enabled, expected_type=type_hints["self_sign_up_enabled"])
|
|
20738
21299
|
check_type(argname="argument sign_in_aliases", value=sign_in_aliases, expected_type=type_hints["sign_in_aliases"])
|
|
20739
21300
|
check_type(argname="argument sign_in_case_sensitive", value=sign_in_case_sensitive, expected_type=type_hints["sign_in_case_sensitive"])
|
|
21301
|
+
check_type(argname="argument sign_in_policy", value=sign_in_policy, expected_type=type_hints["sign_in_policy"])
|
|
20740
21302
|
check_type(argname="argument sms_role", value=sms_role, expected_type=type_hints["sms_role"])
|
|
20741
21303
|
check_type(argname="argument sms_role_external_id", value=sms_role_external_id, expected_type=type_hints["sms_role_external_id"])
|
|
20742
21304
|
check_type(argname="argument sns_region", value=sns_region, expected_type=type_hints["sns_region"])
|
|
@@ -20775,6 +21337,10 @@ class UserPoolProps:
|
|
|
20775
21337
|
self._values["mfa_message"] = mfa_message
|
|
20776
21338
|
if mfa_second_factor is not None:
|
|
20777
21339
|
self._values["mfa_second_factor"] = mfa_second_factor
|
|
21340
|
+
if passkey_relying_party_id is not None:
|
|
21341
|
+
self._values["passkey_relying_party_id"] = passkey_relying_party_id
|
|
21342
|
+
if passkey_user_verification is not None:
|
|
21343
|
+
self._values["passkey_user_verification"] = passkey_user_verification
|
|
20778
21344
|
if password_policy is not None:
|
|
20779
21345
|
self._values["password_policy"] = password_policy
|
|
20780
21346
|
if removal_policy is not None:
|
|
@@ -20785,6 +21351,8 @@ class UserPoolProps:
|
|
|
20785
21351
|
self._values["sign_in_aliases"] = sign_in_aliases
|
|
20786
21352
|
if sign_in_case_sensitive is not None:
|
|
20787
21353
|
self._values["sign_in_case_sensitive"] = sign_in_case_sensitive
|
|
21354
|
+
if sign_in_policy is not None:
|
|
21355
|
+
self._values["sign_in_policy"] = sign_in_policy
|
|
20788
21356
|
if sms_role is not None:
|
|
20789
21357
|
self._values["sms_role"] = sms_role
|
|
20790
21358
|
if sms_role_external_id is not None:
|
|
@@ -20965,6 +21533,33 @@ class UserPoolProps:
|
|
|
20965
21533
|
result = self._values.get("mfa_second_factor")
|
|
20966
21534
|
return typing.cast(typing.Optional[MfaSecondFactor], result)
|
|
20967
21535
|
|
|
21536
|
+
@builtins.property
|
|
21537
|
+
def passkey_relying_party_id(self) -> typing.Optional[builtins.str]:
|
|
21538
|
+
'''The authentication domain that passkey providers must use as a relying party (RP) in their configuration.
|
|
21539
|
+
|
|
21540
|
+
Under the following conditions, the passkey relying party ID must be the fully-qualified domain name of your custom domain:
|
|
21541
|
+
|
|
21542
|
+
- The user pool is configured for passkey authentication.
|
|
21543
|
+
- The user pool has a custom domain, whether or not it also has a prefix domain.
|
|
21544
|
+
- Your application performs authentication with managed login or the classic hosted UI.
|
|
21545
|
+
|
|
21546
|
+
:default: - No authentication domain
|
|
21547
|
+
'''
|
|
21548
|
+
result = self._values.get("passkey_relying_party_id")
|
|
21549
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
21550
|
+
|
|
21551
|
+
@builtins.property
|
|
21552
|
+
def passkey_user_verification(self) -> typing.Optional[PasskeyUserVerification]:
|
|
21553
|
+
'''Your user-pool treatment for MFA with a passkey.
|
|
21554
|
+
|
|
21555
|
+
You can override other MFA options and require passkey MFA, or you can set it as preferred.
|
|
21556
|
+
When passkey MFA is preferred, the hosted UI encourages users to register a passkey at sign-in.
|
|
21557
|
+
|
|
21558
|
+
:default: - Cognito default setting is PasskeyUserVerification.PREFERRED
|
|
21559
|
+
'''
|
|
21560
|
+
result = self._values.get("passkey_user_verification")
|
|
21561
|
+
return typing.cast(typing.Optional[PasskeyUserVerification], result)
|
|
21562
|
+
|
|
20968
21563
|
@builtins.property
|
|
20969
21564
|
def password_policy(self) -> typing.Optional[PasswordPolicy]:
|
|
20970
21565
|
'''Password policy for this user pool.
|
|
@@ -21023,6 +21618,15 @@ class UserPoolProps:
|
|
|
21023
21618
|
result = self._values.get("sign_in_case_sensitive")
|
|
21024
21619
|
return typing.cast(typing.Optional[builtins.bool], result)
|
|
21025
21620
|
|
|
21621
|
+
@builtins.property
|
|
21622
|
+
def sign_in_policy(self) -> typing.Optional[SignInPolicy]:
|
|
21623
|
+
'''Sign-in policy for this user pool.
|
|
21624
|
+
|
|
21625
|
+
:default: - see defaults on each property of SignInPolicy.
|
|
21626
|
+
'''
|
|
21627
|
+
result = self._values.get("sign_in_policy")
|
|
21628
|
+
return typing.cast(typing.Optional[SignInPolicy], result)
|
|
21629
|
+
|
|
21026
21630
|
@builtins.property
|
|
21027
21631
|
def sms_role(self) -> typing.Optional[_IRole_235f5d8e]:
|
|
21028
21632
|
'''The IAM role that Cognito will assume while sending SMS messages.
|
|
@@ -22918,6 +23522,8 @@ class UserPoolIdentityProviderOidcProps(UserPoolIdentityProviderProps):
|
|
|
22918
23522
|
__all__ = [
|
|
22919
23523
|
"AccountRecovery",
|
|
22920
23524
|
"AdvancedSecurityMode",
|
|
23525
|
+
"AllowedFirstAuthFactors",
|
|
23526
|
+
"AnalyticsConfiguration",
|
|
22921
23527
|
"AttributeMapping",
|
|
22922
23528
|
"AuthFlow",
|
|
22923
23529
|
"AutoVerifiedAttrs",
|
|
@@ -22982,11 +23588,13 @@ __all__ = [
|
|
|
22982
23588
|
"OAuthSettings",
|
|
22983
23589
|
"OidcAttributeRequestMethod",
|
|
22984
23590
|
"OidcEndpoints",
|
|
23591
|
+
"PasskeyUserVerification",
|
|
22985
23592
|
"PasswordPolicy",
|
|
22986
23593
|
"ProviderAttribute",
|
|
22987
23594
|
"ResourceServerScope",
|
|
22988
23595
|
"ResourceServerScopeProps",
|
|
22989
23596
|
"SignInAliases",
|
|
23597
|
+
"SignInPolicy",
|
|
22990
23598
|
"SignInUrlOptions",
|
|
22991
23599
|
"SigningAlgorithm",
|
|
22992
23600
|
"StandardAttribute",
|
|
@@ -23038,6 +23646,27 @@ __all__ = [
|
|
|
23038
23646
|
|
|
23039
23647
|
publication.publish()
|
|
23040
23648
|
|
|
23649
|
+
def _typecheckingstub__8a30a69cc954e920b5bb7f1163c7b6bd8507e3477eca92e83467d77025b4258f(
|
|
23650
|
+
*,
|
|
23651
|
+
password: builtins.bool,
|
|
23652
|
+
email_otp: typing.Optional[builtins.bool] = None,
|
|
23653
|
+
passkey: typing.Optional[builtins.bool] = None,
|
|
23654
|
+
sms_otp: typing.Optional[builtins.bool] = None,
|
|
23655
|
+
) -> None:
|
|
23656
|
+
"""Type checking stubs"""
|
|
23657
|
+
pass
|
|
23658
|
+
|
|
23659
|
+
def _typecheckingstub__f67277ee392b3c256b3bd87e4afcb7bb83df8d226097757f9c92610348c4456b(
|
|
23660
|
+
*,
|
|
23661
|
+
application: typing.Optional[_CfnApp_e8bac60b] = None,
|
|
23662
|
+
application_id: typing.Optional[builtins.str] = None,
|
|
23663
|
+
external_id: typing.Optional[builtins.str] = None,
|
|
23664
|
+
role: typing.Optional[_IRole_235f5d8e] = None,
|
|
23665
|
+
share_user_data: typing.Optional[builtins.bool] = None,
|
|
23666
|
+
) -> None:
|
|
23667
|
+
"""Type checking stubs"""
|
|
23668
|
+
pass
|
|
23669
|
+
|
|
23041
23670
|
def _typecheckingstub__1994c9f3057f350dfde37c21bef42d2ad1a87ae2900a0e48fd7c2506ddbeca5d(
|
|
23042
23671
|
*,
|
|
23043
23672
|
address: typing.Optional[ProviderAttribute] = None,
|
|
@@ -24876,6 +25505,7 @@ def _typecheckingstub__6eaa0ebaf797c6ac4bac11bd73d9ad61c50892a9450e0ff5880903434
|
|
|
24876
25505
|
id: builtins.str,
|
|
24877
25506
|
*,
|
|
24878
25507
|
access_token_validity: typing.Optional[_Duration_4839e8c3] = None,
|
|
25508
|
+
analytics: typing.Optional[typing.Union[AnalyticsConfiguration, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
24879
25509
|
auth_flows: typing.Optional[typing.Union[AuthFlow, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
24880
25510
|
auth_session_validity: typing.Optional[_Duration_4839e8c3] = None,
|
|
24881
25511
|
disable_o_auth: typing.Optional[builtins.bool] = None,
|
|
@@ -25052,6 +25682,13 @@ def _typecheckingstub__1f85eb7769fbc2d73d7ddedb7d58312be06c85b0446415fcf926cc1e5
|
|
|
25052
25682
|
"""Type checking stubs"""
|
|
25053
25683
|
pass
|
|
25054
25684
|
|
|
25685
|
+
def _typecheckingstub__5bda8a1a812b13ba6dfe14c09bb234238503bd86905d8f363571b49c270280f4(
|
|
25686
|
+
*,
|
|
25687
|
+
allowed_first_auth_factors: typing.Optional[typing.Union[AllowedFirstAuthFactors, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
25688
|
+
) -> None:
|
|
25689
|
+
"""Type checking stubs"""
|
|
25690
|
+
pass
|
|
25691
|
+
|
|
25055
25692
|
def _typecheckingstub__27aae9c398fe91d31540649394c2469df625de6993272c3b3cff19edc49ec8fa(
|
|
25056
25693
|
*,
|
|
25057
25694
|
fips: typing.Optional[builtins.bool] = None,
|
|
@@ -25162,11 +25799,14 @@ def _typecheckingstub__677a8ec9a3f2a22d2dfde6fd6818121e4a071dc4e942f6bbe219e5a9b
|
|
|
25162
25799
|
mfa: typing.Optional[Mfa] = None,
|
|
25163
25800
|
mfa_message: typing.Optional[builtins.str] = None,
|
|
25164
25801
|
mfa_second_factor: typing.Optional[typing.Union[MfaSecondFactor, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
25802
|
+
passkey_relying_party_id: typing.Optional[builtins.str] = None,
|
|
25803
|
+
passkey_user_verification: typing.Optional[PasskeyUserVerification] = None,
|
|
25165
25804
|
password_policy: typing.Optional[typing.Union[PasswordPolicy, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
25166
25805
|
removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
|
|
25167
25806
|
self_sign_up_enabled: typing.Optional[builtins.bool] = None,
|
|
25168
25807
|
sign_in_aliases: typing.Optional[typing.Union[SignInAliases, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
25169
25808
|
sign_in_case_sensitive: typing.Optional[builtins.bool] = None,
|
|
25809
|
+
sign_in_policy: typing.Optional[typing.Union[SignInPolicy, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
25170
25810
|
sms_role: typing.Optional[_IRole_235f5d8e] = None,
|
|
25171
25811
|
sms_role_external_id: typing.Optional[builtins.str] = None,
|
|
25172
25812
|
sns_region: typing.Optional[builtins.str] = None,
|
|
@@ -25198,6 +25838,7 @@ def _typecheckingstub__b4ce1f762a6eeaca3920ca827a1685cfa2b670f96aa13d8cfdded4055
|
|
|
25198
25838
|
id: builtins.str,
|
|
25199
25839
|
*,
|
|
25200
25840
|
access_token_validity: typing.Optional[_Duration_4839e8c3] = None,
|
|
25841
|
+
analytics: typing.Optional[typing.Union[AnalyticsConfiguration, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
25201
25842
|
auth_flows: typing.Optional[typing.Union[AuthFlow, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
25202
25843
|
auth_session_validity: typing.Optional[_Duration_4839e8c3] = None,
|
|
25203
25844
|
disable_o_auth: typing.Optional[builtins.bool] = None,
|
|
@@ -25274,6 +25915,7 @@ def _typecheckingstub__e654de9921a676ab8214720f2ab2c7f212d67a62531595c721560e88c
|
|
|
25274
25915
|
*,
|
|
25275
25916
|
user_pool: IUserPool,
|
|
25276
25917
|
access_token_validity: typing.Optional[_Duration_4839e8c3] = None,
|
|
25918
|
+
analytics: typing.Optional[typing.Union[AnalyticsConfiguration, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
25277
25919
|
auth_flows: typing.Optional[typing.Union[AuthFlow, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
25278
25920
|
auth_session_validity: typing.Optional[_Duration_4839e8c3] = None,
|
|
25279
25921
|
disable_o_auth: typing.Optional[builtins.bool] = None,
|
|
@@ -25309,6 +25951,7 @@ def _typecheckingstub__14e7f4addf6b16821bea1f99db58ec36907e80587b70ed61044c1372d
|
|
|
25309
25951
|
def _typecheckingstub__80185296586b917ea24ebc48255c627ce95ec5c85ae2ab4e52736240b27429fc(
|
|
25310
25952
|
*,
|
|
25311
25953
|
access_token_validity: typing.Optional[_Duration_4839e8c3] = None,
|
|
25954
|
+
analytics: typing.Optional[typing.Union[AnalyticsConfiguration, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
25312
25955
|
auth_flows: typing.Optional[typing.Union[AuthFlow, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
25313
25956
|
auth_session_validity: typing.Optional[_Duration_4839e8c3] = None,
|
|
25314
25957
|
disable_o_auth: typing.Optional[builtins.bool] = None,
|
|
@@ -25330,6 +25973,7 @@ def _typecheckingstub__80185296586b917ea24ebc48255c627ce95ec5c85ae2ab4e52736240b
|
|
|
25330
25973
|
def _typecheckingstub__95c8cad8419f2fd5def82ad39281b322b9ec6b2f7d891de939bf1e9036145948(
|
|
25331
25974
|
*,
|
|
25332
25975
|
access_token_validity: typing.Optional[_Duration_4839e8c3] = None,
|
|
25976
|
+
analytics: typing.Optional[typing.Union[AnalyticsConfiguration, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
25333
25977
|
auth_flows: typing.Optional[typing.Union[AuthFlow, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
25334
25978
|
auth_session_validity: typing.Optional[_Duration_4839e8c3] = None,
|
|
25335
25979
|
disable_o_auth: typing.Optional[builtins.bool] = None,
|
|
@@ -25615,11 +26259,14 @@ def _typecheckingstub__754b1af40b4712720733e130c63a8ec0ca9a35d4cfb25450725d5aa02
|
|
|
25615
26259
|
mfa: typing.Optional[Mfa] = None,
|
|
25616
26260
|
mfa_message: typing.Optional[builtins.str] = None,
|
|
25617
26261
|
mfa_second_factor: typing.Optional[typing.Union[MfaSecondFactor, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
26262
|
+
passkey_relying_party_id: typing.Optional[builtins.str] = None,
|
|
26263
|
+
passkey_user_verification: typing.Optional[PasskeyUserVerification] = None,
|
|
25618
26264
|
password_policy: typing.Optional[typing.Union[PasswordPolicy, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
25619
26265
|
removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
|
|
25620
26266
|
self_sign_up_enabled: typing.Optional[builtins.bool] = None,
|
|
25621
26267
|
sign_in_aliases: typing.Optional[typing.Union[SignInAliases, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
25622
26268
|
sign_in_case_sensitive: typing.Optional[builtins.bool] = None,
|
|
26269
|
+
sign_in_policy: typing.Optional[typing.Union[SignInPolicy, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
25623
26270
|
sms_role: typing.Optional[_IRole_235f5d8e] = None,
|
|
25624
26271
|
sms_role_external_id: typing.Optional[builtins.str] = None,
|
|
25625
26272
|
sns_region: typing.Optional[builtins.str] = None,
|