aws-cdk-lib 2.173.3__py3-none-any.whl → 2.174.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


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

Files changed (88) hide show
  1. aws_cdk/__init__.py +210 -181
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.173.3.jsii.tgz → aws-cdk-lib@2.174.0.jsii.tgz} +0 -0
  4. aws_cdk/aws_apigateway/__init__.py +127 -168
  5. aws_cdk/aws_appconfig/__init__.py +498 -1
  6. aws_cdk/aws_applicationautoscaling/__init__.py +4 -1
  7. aws_cdk/aws_appsync/__init__.py +4 -0
  8. aws_cdk/aws_autoscaling/__init__.py +96 -0
  9. aws_cdk/aws_batch/__init__.py +1084 -233
  10. aws_cdk/aws_bedrock/__init__.py +2119 -181
  11. aws_cdk/aws_cassandra/__init__.py +476 -4
  12. aws_cdk/aws_cleanrooms/__init__.py +543 -17
  13. aws_cdk/aws_cloudformation/__init__.py +172 -169
  14. aws_cdk/aws_cloudfront/__init__.py +773 -26
  15. aws_cdk/aws_cloudtrail/__init__.py +8 -2
  16. aws_cdk/aws_codebuild/__init__.py +83 -0
  17. aws_cdk/aws_codepipeline/__init__.py +2 -1
  18. aws_cdk/aws_cognito/__init__.py +232 -200
  19. aws_cdk/aws_connect/__init__.py +187 -36
  20. aws_cdk/aws_connectcampaignsv2/__init__.py +106 -12
  21. aws_cdk/aws_databrew/__init__.py +69 -1
  22. aws_cdk/aws_datasync/__init__.py +33 -28
  23. aws_cdk/aws_datazone/__init__.py +141 -41
  24. aws_cdk/aws_dlm/__init__.py +20 -10
  25. aws_cdk/aws_dms/__init__.py +722 -30
  26. aws_cdk/aws_dynamodb/__init__.py +76 -4
  27. aws_cdk/aws_ec2/__init__.py +1233 -65
  28. aws_cdk/aws_ecr/__init__.py +31 -0
  29. aws_cdk/aws_ecr_assets/__init__.py +5 -0
  30. aws_cdk/aws_ecs/__init__.py +88 -11
  31. aws_cdk/aws_efs/__init__.py +15 -8
  32. aws_cdk/aws_eks/__init__.py +114 -45
  33. aws_cdk/aws_elasticloadbalancingv2/__init__.py +2 -2
  34. aws_cdk/aws_emrserverless/__init__.py +143 -0
  35. aws_cdk/aws_events/__init__.py +50 -30
  36. aws_cdk/aws_fis/__init__.py +33 -33
  37. aws_cdk/aws_fsx/__init__.py +20 -10
  38. aws_cdk/aws_glue/__init__.py +34 -11
  39. aws_cdk/aws_greengrass/__init__.py +8 -8
  40. aws_cdk/aws_guardduty/__init__.py +1 -1
  41. aws_cdk/aws_imagebuilder/__init__.py +45 -47
  42. aws_cdk/aws_internetmonitor/__init__.py +3 -3
  43. aws_cdk/aws_invoicing/__init__.py +55 -30
  44. aws_cdk/aws_iot/__init__.py +1117 -4
  45. aws_cdk/aws_iot1click/__init__.py +17 -7
  46. aws_cdk/aws_kendra/__init__.py +4 -6
  47. aws_cdk/aws_lambda/__init__.py +15 -1
  48. aws_cdk/aws_logs/__init__.py +4011 -86
  49. aws_cdk/aws_m2/__init__.py +41 -0
  50. aws_cdk/aws_mediaconnect/__init__.py +202 -7
  51. aws_cdk/aws_memorydb/__init__.py +22 -22
  52. aws_cdk/aws_networkmanager/__init__.py +758 -0
  53. aws_cdk/aws_opensearchservice/__init__.py +222 -0
  54. aws_cdk/aws_organizations/__init__.py +5 -3
  55. aws_cdk/aws_pcs/__init__.py +3038 -0
  56. aws_cdk/aws_pipes/__init__.py +10 -10
  57. aws_cdk/aws_qbusiness/__init__.py +415 -140
  58. aws_cdk/aws_quicksight/__init__.py +15932 -6448
  59. aws_cdk/aws_ram/__init__.py +5 -11
  60. aws_cdk/aws_rbin/__init__.py +28 -16
  61. aws_cdk/aws_rds/__init__.py +184 -24
  62. aws_cdk/aws_redshiftserverless/__init__.py +156 -0
  63. aws_cdk/aws_resiliencehub/__init__.py +2 -1
  64. aws_cdk/aws_route53_targets/__init__.py +5 -5
  65. aws_cdk/aws_s3/__init__.py +25 -15
  66. aws_cdk/aws_s3express/__init__.py +7 -7
  67. aws_cdk/aws_s3tables/__init__.py +683 -0
  68. aws_cdk/aws_sagemaker/__init__.py +574 -189
  69. aws_cdk/aws_secretsmanager/__init__.py +2 -0
  70. aws_cdk/aws_securityhub/__init__.py +41 -165
  71. aws_cdk/aws_servicediscovery/__init__.py +10 -3
  72. aws_cdk/aws_ses/__init__.py +190 -5
  73. aws_cdk/aws_sns/__init__.py +7 -3
  74. aws_cdk/aws_synthetics/__init__.py +29 -4
  75. aws_cdk/aws_transfer/__init__.py +8 -0
  76. aws_cdk/aws_vpclattice/__init__.py +147 -77
  77. aws_cdk/aws_wafv2/__init__.py +20 -8
  78. aws_cdk/aws_wisdom/__init__.py +162 -111
  79. aws_cdk/aws_workspaces/__init__.py +10 -4
  80. aws_cdk/cloud_assembly_schema/__init__.py +22 -0
  81. aws_cdk/custom_resources/__init__.py +31 -0
  82. aws_cdk/cx_api/__init__.py +19 -0
  83. {aws_cdk_lib-2.173.3.dist-info → aws_cdk_lib-2.174.0.dist-info}/LICENSE +1 -1
  84. {aws_cdk_lib-2.173.3.dist-info → aws_cdk_lib-2.174.0.dist-info}/METADATA +2 -2
  85. {aws_cdk_lib-2.173.3.dist-info → aws_cdk_lib-2.174.0.dist-info}/NOTICE +1 -1
  86. {aws_cdk_lib-2.173.3.dist-info → aws_cdk_lib-2.174.0.dist-info}/RECORD +88 -86
  87. {aws_cdk_lib-2.173.3.dist-info → aws_cdk_lib-2.174.0.dist-info}/WHEEL +0 -0
  88. {aws_cdk_lib-2.173.3.dist-info → aws_cdk_lib-2.174.0.dist-info}/top_level.txt +0 -0
@@ -1479,7 +1479,7 @@ class CfnEmailAddress(
1479
1479
  :param instance_arn: The Amazon Resource Name (ARN) of the instance.
1480
1480
  :param description: The description of the email address.
1481
1481
  :param display_name: The display name of email address.
1482
- :param tags: One or more tags.
1482
+ :param tags: An array of key-value pairs to apply to this resource.
1483
1483
  '''
1484
1484
  if __debug__:
1485
1485
  type_hints = typing.get_type_hints(_typecheckingstub__82663491f0adb2dbe44ce9a95c4b21bf5d7529ba2b8adcceab5da9bedc3d1370)
@@ -1600,7 +1600,7 @@ class CfnEmailAddress(
1600
1600
  @builtins.property
1601
1601
  @jsii.member(jsii_name="tags")
1602
1602
  def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
1603
- '''One or more tags.'''
1603
+ '''An array of key-value pairs to apply to this resource.'''
1604
1604
  return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], jsii.get(self, "tags"))
1605
1605
 
1606
1606
  @tags.setter
@@ -1638,7 +1638,7 @@ class CfnEmailAddressProps:
1638
1638
  :param instance_arn: The Amazon Resource Name (ARN) of the instance.
1639
1639
  :param description: The description of the email address.
1640
1640
  :param display_name: The display name of email address.
1641
- :param tags: One or more tags.
1641
+ :param tags: An array of key-value pairs to apply to this resource.
1642
1642
 
1643
1643
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-emailaddress.html
1644
1644
  :exampleMetadata: fixture=_generated
@@ -1720,7 +1720,7 @@ class CfnEmailAddressProps:
1720
1720
 
1721
1721
  @builtins.property
1722
1722
  def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
1723
- '''One or more tags.
1723
+ '''An array of key-value pairs to apply to this resource.
1724
1724
 
1725
1725
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-emailaddress.html#cfn-connect-emailaddress-tags
1726
1726
  '''
@@ -4375,11 +4375,11 @@ class CfnHoursOfOperation(
4375
4375
  end_time: typing.Union[_IResolvable_da3f097b, typing.Union["CfnHoursOfOperation.OverrideTimeSliceProperty", typing.Dict[builtins.str, typing.Any]]],
4376
4376
  start_time: typing.Union[_IResolvable_da3f097b, typing.Union["CfnHoursOfOperation.OverrideTimeSliceProperty", typing.Dict[builtins.str, typing.Any]]],
4377
4377
  ) -> None:
4378
- '''Contains information about the hours of operation override.
4378
+ '''Information about the hours of operation override config: day, start time, and end time.
4379
4379
 
4380
4380
  :param day: The day that the hours of operation override applies to.
4381
- :param end_time: The start time or end time for an an hours of operation override.
4382
- :param start_time: The start time or end time for an an hours of operation override.
4381
+ :param end_time: The end time that your contact center closes if overrides are applied.
4382
+ :param start_time: The start time when your contact center opens if overrides are applied.
4383
4383
 
4384
4384
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-hoursofoperation-hoursofoperationoverrideconfig.html
4385
4385
  :exampleMetadata: fixture=_generated
@@ -4427,7 +4427,7 @@ class CfnHoursOfOperation(
4427
4427
  def end_time(
4428
4428
  self,
4429
4429
  ) -> typing.Union[_IResolvable_da3f097b, "CfnHoursOfOperation.OverrideTimeSliceProperty"]:
4430
- '''The start time or end time for an an hours of operation override.
4430
+ '''The end time that your contact center closes if overrides are applied.
4431
4431
 
4432
4432
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-hoursofoperation-hoursofoperationoverrideconfig.html#cfn-connect-hoursofoperation-hoursofoperationoverrideconfig-endtime
4433
4433
  '''
@@ -4439,7 +4439,7 @@ class CfnHoursOfOperation(
4439
4439
  def start_time(
4440
4440
  self,
4441
4441
  ) -> typing.Union[_IResolvable_da3f097b, "CfnHoursOfOperation.OverrideTimeSliceProperty"]:
4442
- '''The start time or end time for an an hours of operation override.
4442
+ '''The start time when your contact center opens if overrides are applied.
4443
4443
 
4444
4444
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-hoursofoperation-hoursofoperationoverrideconfig.html#cfn-connect-hoursofoperation-hoursofoperationoverrideconfig-starttime
4445
4445
  '''
@@ -4481,13 +4481,13 @@ class CfnHoursOfOperation(
4481
4481
  hours_of_operation_override_id: typing.Optional[builtins.str] = None,
4482
4482
  override_description: typing.Optional[builtins.str] = None,
4483
4483
  ) -> None:
4484
- '''Overrides attached to the hours of operation.
4484
+ '''Information about the hours of operations override.
4485
4485
 
4486
4486
  :param effective_from: The date from which the hours of operation override would be effective.
4487
4487
  :param effective_till: The date till which the hours of operation override would be effective.
4488
4488
  :param override_config: Configuration information for the hours of operation override: day, start time, and end time.
4489
4489
  :param override_name: The name of the hours of operation override.
4490
- :param hours_of_operation_override_id: The Resource Identifier for the hours of operation override.
4490
+ :param hours_of_operation_override_id: The identifier for the hours of operation override.
4491
4491
  :param override_description: The description of the hours of operation override.
4492
4492
 
4493
4493
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-hoursofoperation-hoursofoperationoverride.html
@@ -4583,7 +4583,7 @@ class CfnHoursOfOperation(
4583
4583
 
4584
4584
  @builtins.property
4585
4585
  def hours_of_operation_override_id(self) -> typing.Optional[builtins.str]:
4586
- '''The Resource Identifier for the hours of operation override.
4586
+ '''The identifier for the hours of operation override.
4587
4587
 
4588
4588
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-hoursofoperation-hoursofoperationoverride.html#cfn-connect-hoursofoperation-hoursofoperationoverride-hoursofoperationoverrideid
4589
4589
  '''
@@ -4683,7 +4683,7 @@ class CfnHoursOfOperation(
4683
4683
  )
4684
4684
  class OverrideTimeSliceProperty:
4685
4685
  def __init__(self, *, hours: jsii.Number, minutes: jsii.Number) -> None:
4686
- '''The start time or end time for an an hours of operation override.
4686
+ '''The start time or end time for an hours of operation override.
4687
4687
 
4688
4688
  :param hours: The hours.
4689
4689
  :param minutes: The minutes.
@@ -7572,6 +7572,9 @@ class CfnQueue(
7572
7572
  outbound_caller_id_number_arn="outboundCallerIdNumberArn",
7573
7573
  outbound_flow_arn="outboundFlowArn"
7574
7574
  ),
7575
+ outbound_email_config=connect.CfnQueue.OutboundEmailConfigProperty(
7576
+ outbound_email_address_id="outboundEmailAddressId"
7577
+ ),
7575
7578
  quick_connect_arns=["quickConnectArns"],
7576
7579
  status="status",
7577
7580
  tags=[CfnTag(
@@ -7592,6 +7595,7 @@ class CfnQueue(
7592
7595
  description: typing.Optional[builtins.str] = None,
7593
7596
  max_contacts: typing.Optional[jsii.Number] = None,
7594
7597
  outbound_caller_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnQueue.OutboundCallerConfigProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
7598
+ outbound_email_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnQueue.OutboundEmailConfigProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
7595
7599
  quick_connect_arns: typing.Optional[typing.Sequence[builtins.str]] = None,
7596
7600
  status: typing.Optional[builtins.str] = None,
7597
7601
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
@@ -7605,6 +7609,7 @@ class CfnQueue(
7605
7609
  :param description: The description of the queue.
7606
7610
  :param max_contacts: The maximum number of contacts that can be in the queue before it is considered full.
7607
7611
  :param outbound_caller_config: The outbound caller ID name, number, and outbound whisper flow.
7612
+ :param outbound_email_config: The outbound email address ID for a specified queue.
7608
7613
  :param quick_connect_arns: The Amazon Resource Names (ARN) of the of the quick connects available to agents who are working the queue.
7609
7614
  :param status: The status of the queue.
7610
7615
  :param tags: The tags used to organize, track, or control access for this resource. For example, { "Tags": {"key1":"value1", "key2":"value2"} }.
@@ -7620,6 +7625,7 @@ class CfnQueue(
7620
7625
  description=description,
7621
7626
  max_contacts=max_contacts,
7622
7627
  outbound_caller_config=outbound_caller_config,
7628
+ outbound_email_config=outbound_email_config,
7623
7629
  quick_connect_arns=quick_connect_arns,
7624
7630
  status=status,
7625
7631
  tags=tags,
@@ -7769,6 +7775,24 @@ class CfnQueue(
7769
7775
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
7770
7776
  jsii.set(self, "outboundCallerConfig", value) # pyright: ignore[reportArgumentType]
7771
7777
 
7778
+ @builtins.property
7779
+ @jsii.member(jsii_name="outboundEmailConfig")
7780
+ def outbound_email_config(
7781
+ self,
7782
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnQueue.OutboundEmailConfigProperty"]]:
7783
+ '''The outbound email address ID for a specified queue.'''
7784
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnQueue.OutboundEmailConfigProperty"]], jsii.get(self, "outboundEmailConfig"))
7785
+
7786
+ @outbound_email_config.setter
7787
+ def outbound_email_config(
7788
+ self,
7789
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnQueue.OutboundEmailConfigProperty"]],
7790
+ ) -> None:
7791
+ if __debug__:
7792
+ type_hints = typing.get_type_hints(_typecheckingstub__d70f8c388583c62795c096506bc0b9a1a53acc5e70c4d0fd320573fd958df7d2)
7793
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
7794
+ jsii.set(self, "outboundEmailConfig", value) # pyright: ignore[reportArgumentType]
7795
+
7772
7796
  @builtins.property
7773
7797
  @jsii.member(jsii_name="quickConnectArns")
7774
7798
  def quick_connect_arns(self) -> typing.Optional[typing.List[builtins.str]]:
@@ -7904,6 +7928,61 @@ class CfnQueue(
7904
7928
  k + "=" + repr(v) for k, v in self._values.items()
7905
7929
  )
7906
7930
 
7931
+ @jsii.data_type(
7932
+ jsii_type="aws-cdk-lib.aws_connect.CfnQueue.OutboundEmailConfigProperty",
7933
+ jsii_struct_bases=[],
7934
+ name_mapping={"outbound_email_address_id": "outboundEmailAddressId"},
7935
+ )
7936
+ class OutboundEmailConfigProperty:
7937
+ def __init__(
7938
+ self,
7939
+ *,
7940
+ outbound_email_address_id: typing.Optional[builtins.str] = None,
7941
+ ) -> None:
7942
+ '''The outbound email address Id.
7943
+
7944
+ :param outbound_email_address_id: The identifier of the email address.
7945
+
7946
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-queue-outboundemailconfig.html
7947
+ :exampleMetadata: fixture=_generated
7948
+
7949
+ Example::
7950
+
7951
+ # The code below shows an example of how to instantiate this type.
7952
+ # The values are placeholders you should change.
7953
+ from aws_cdk import aws_connect as connect
7954
+
7955
+ outbound_email_config_property = connect.CfnQueue.OutboundEmailConfigProperty(
7956
+ outbound_email_address_id="outboundEmailAddressId"
7957
+ )
7958
+ '''
7959
+ if __debug__:
7960
+ type_hints = typing.get_type_hints(_typecheckingstub__6034538ecc5b69375cb012cf0eadba4ed8798c3aa677d36052499166fa552ba8)
7961
+ check_type(argname="argument outbound_email_address_id", value=outbound_email_address_id, expected_type=type_hints["outbound_email_address_id"])
7962
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
7963
+ if outbound_email_address_id is not None:
7964
+ self._values["outbound_email_address_id"] = outbound_email_address_id
7965
+
7966
+ @builtins.property
7967
+ def outbound_email_address_id(self) -> typing.Optional[builtins.str]:
7968
+ '''The identifier of the email address.
7969
+
7970
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-queue-outboundemailconfig.html#cfn-connect-queue-outboundemailconfig-outboundemailaddressid
7971
+ '''
7972
+ result = self._values.get("outbound_email_address_id")
7973
+ return typing.cast(typing.Optional[builtins.str], result)
7974
+
7975
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
7976
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
7977
+
7978
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
7979
+ return not (rhs == self)
7980
+
7981
+ def __repr__(self) -> str:
7982
+ return "OutboundEmailConfigProperty(%s)" % ", ".join(
7983
+ k + "=" + repr(v) for k, v in self._values.items()
7984
+ )
7985
+
7907
7986
 
7908
7987
  @jsii.data_type(
7909
7988
  jsii_type="aws-cdk-lib.aws_connect.CfnQueueProps",
@@ -7915,6 +7994,7 @@ class CfnQueue(
7915
7994
  "description": "description",
7916
7995
  "max_contacts": "maxContacts",
7917
7996
  "outbound_caller_config": "outboundCallerConfig",
7997
+ "outbound_email_config": "outboundEmailConfig",
7918
7998
  "quick_connect_arns": "quickConnectArns",
7919
7999
  "status": "status",
7920
8000
  "tags": "tags",
@@ -7930,6 +8010,7 @@ class CfnQueueProps:
7930
8010
  description: typing.Optional[builtins.str] = None,
7931
8011
  max_contacts: typing.Optional[jsii.Number] = None,
7932
8012
  outbound_caller_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnQueue.OutboundCallerConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
8013
+ outbound_email_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnQueue.OutboundEmailConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
7933
8014
  quick_connect_arns: typing.Optional[typing.Sequence[builtins.str]] = None,
7934
8015
  status: typing.Optional[builtins.str] = None,
7935
8016
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
@@ -7942,6 +8023,7 @@ class CfnQueueProps:
7942
8023
  :param description: The description of the queue.
7943
8024
  :param max_contacts: The maximum number of contacts that can be in the queue before it is considered full.
7944
8025
  :param outbound_caller_config: The outbound caller ID name, number, and outbound whisper flow.
8026
+ :param outbound_email_config: The outbound email address ID for a specified queue.
7945
8027
  :param quick_connect_arns: The Amazon Resource Names (ARN) of the of the quick connects available to agents who are working the queue.
7946
8028
  :param status: The status of the queue.
7947
8029
  :param tags: The tags used to organize, track, or control access for this resource. For example, { "Tags": {"key1":"value1", "key2":"value2"} }.
@@ -7968,6 +8050,9 @@ class CfnQueueProps:
7968
8050
  outbound_caller_id_number_arn="outboundCallerIdNumberArn",
7969
8051
  outbound_flow_arn="outboundFlowArn"
7970
8052
  ),
8053
+ outbound_email_config=connect.CfnQueue.OutboundEmailConfigProperty(
8054
+ outbound_email_address_id="outboundEmailAddressId"
8055
+ ),
7971
8056
  quick_connect_arns=["quickConnectArns"],
7972
8057
  status="status",
7973
8058
  tags=[CfnTag(
@@ -7984,6 +8069,7 @@ class CfnQueueProps:
7984
8069
  check_type(argname="argument description", value=description, expected_type=type_hints["description"])
7985
8070
  check_type(argname="argument max_contacts", value=max_contacts, expected_type=type_hints["max_contacts"])
7986
8071
  check_type(argname="argument outbound_caller_config", value=outbound_caller_config, expected_type=type_hints["outbound_caller_config"])
8072
+ check_type(argname="argument outbound_email_config", value=outbound_email_config, expected_type=type_hints["outbound_email_config"])
7987
8073
  check_type(argname="argument quick_connect_arns", value=quick_connect_arns, expected_type=type_hints["quick_connect_arns"])
7988
8074
  check_type(argname="argument status", value=status, expected_type=type_hints["status"])
7989
8075
  check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
@@ -7998,6 +8084,8 @@ class CfnQueueProps:
7998
8084
  self._values["max_contacts"] = max_contacts
7999
8085
  if outbound_caller_config is not None:
8000
8086
  self._values["outbound_caller_config"] = outbound_caller_config
8087
+ if outbound_email_config is not None:
8088
+ self._values["outbound_email_config"] = outbound_email_config
8001
8089
  if quick_connect_arns is not None:
8002
8090
  self._values["quick_connect_arns"] = quick_connect_arns
8003
8091
  if status is not None:
@@ -8064,6 +8152,17 @@ class CfnQueueProps:
8064
8152
  result = self._values.get("outbound_caller_config")
8065
8153
  return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, CfnQueue.OutboundCallerConfigProperty]], result)
8066
8154
 
8155
+ @builtins.property
8156
+ def outbound_email_config(
8157
+ self,
8158
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnQueue.OutboundEmailConfigProperty]]:
8159
+ '''The outbound email address ID for a specified queue.
8160
+
8161
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-queue.html#cfn-connect-queue-outboundemailconfig
8162
+ '''
8163
+ result = self._values.get("outbound_email_config")
8164
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, CfnQueue.OutboundEmailConfigProperty]], result)
8165
+
8067
8166
  @builtins.property
8068
8167
  def quick_connect_arns(self) -> typing.Optional[typing.List[builtins.str]]:
8069
8168
  '''The Amazon Resource Names (ARN) of the of the quick connects available to agents who are working the queue.
@@ -10117,10 +10216,9 @@ class CfnRule(
10117
10216
  fields: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnRule.FieldProperty", typing.Dict[builtins.str, typing.Any]]]]],
10118
10217
  template_id: builtins.str,
10119
10218
  ) -> None:
10120
- '''The definition for create case action.
10121
-
10219
+ '''
10122
10220
  :param fields: An array of case fields.
10123
- :param template_id: The Id of template.
10221
+ :param template_id:
10124
10222
 
10125
10223
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-rule-createcaseaction.html
10126
10224
  :exampleMetadata: fixture=_generated
@@ -10169,8 +10267,7 @@ class CfnRule(
10169
10267
 
10170
10268
  @builtins.property
10171
10269
  def template_id(self) -> builtins.str:
10172
- '''The Id of template.
10173
-
10270
+ '''
10174
10271
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-rule-createcaseaction.html#cfn-connect-rule-createcaseaction-templateid
10175
10272
  '''
10176
10273
  result = self._values.get("template_id")
@@ -10252,10 +10349,9 @@ class CfnRule(
10252
10349
  id: builtins.str,
10253
10350
  value: typing.Union[_IResolvable_da3f097b, typing.Union["CfnRule.FieldValueProperty", typing.Dict[builtins.str, typing.Any]]],
10254
10351
  ) -> None:
10255
- '''The field of the case.
10256
-
10257
- :param id: The Id of the field.
10258
- :param value: The value of the field.
10352
+ '''
10353
+ :param id:
10354
+ :param value: Object for case field values.
10259
10355
 
10260
10356
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-rule-field.html
10261
10357
  :exampleMetadata: fixture=_generated
@@ -10289,8 +10385,7 @@ class CfnRule(
10289
10385
 
10290
10386
  @builtins.property
10291
10387
  def id(self) -> builtins.str:
10292
- '''The Id of the field.
10293
-
10388
+ '''
10294
10389
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-rule-field.html#cfn-connect-rule-field-id
10295
10390
  '''
10296
10391
  result = self._values.get("id")
@@ -10301,7 +10396,7 @@ class CfnRule(
10301
10396
  def value(
10302
10397
  self,
10303
10398
  ) -> typing.Union[_IResolvable_da3f097b, "CfnRule.FieldValueProperty"]:
10304
- '''The value of the field.
10399
+ '''Object for case field values.
10305
10400
 
10306
10401
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-rule-field.html#cfn-connect-rule-field-value
10307
10402
  '''
@@ -10797,9 +10892,8 @@ class CfnRule(
10797
10892
  )
10798
10893
  class SubmitAutoEvaluationActionProperty:
10799
10894
  def __init__(self, *, evaluation_form_arn: builtins.str) -> None:
10800
- '''The definition of submit auto evaluation action.
10801
-
10802
- :param evaluation_form_arn: The Amazon Resource Name (ARN) of the evaluation form.
10895
+ '''
10896
+ :param evaluation_form_arn:
10803
10897
 
10804
10898
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-rule-submitautoevaluationaction.html
10805
10899
  :exampleMetadata: fixture=_generated
@@ -10823,8 +10917,7 @@ class CfnRule(
10823
10917
 
10824
10918
  @builtins.property
10825
10919
  def evaluation_form_arn(self) -> builtins.str:
10826
- '''The Amazon Resource Name (ARN) of the evaluation form.
10827
-
10920
+ '''
10828
10921
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-rule-submitautoevaluationaction.html#cfn-connect-rule-submitautoevaluationaction-evaluationformarn
10829
10922
  '''
10830
10923
  result = self._values.get("evaluation_form_arn")
@@ -10976,8 +11069,7 @@ class CfnRule(
10976
11069
  *,
10977
11070
  fields: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnRule.FieldProperty", typing.Dict[builtins.str, typing.Any]]]]],
10978
11071
  ) -> None:
10979
- '''The definition for update case action.
10980
-
11072
+ '''
10981
11073
  :param fields: An array of case fields.
10982
11074
 
10983
11075
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-rule-updatecaseaction.html
@@ -12136,6 +12228,7 @@ class CfnTaskTemplate(
12136
12228
  single_select_options=["singleSelectOptions"]
12137
12229
  )],
12138
12230
  name="name",
12231
+ self_assign_contact_flow_arn="selfAssignContactFlowArn",
12139
12232
  status="status",
12140
12233
  tags=[CfnTag(
12141
12234
  key="key",
@@ -12157,6 +12250,7 @@ class CfnTaskTemplate(
12157
12250
  description: typing.Optional[builtins.str] = None,
12158
12251
  fields: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnTaskTemplate.FieldProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
12159
12252
  name: typing.Optional[builtins.str] = None,
12253
+ self_assign_contact_flow_arn: typing.Optional[builtins.str] = None,
12160
12254
  status: typing.Optional[builtins.str] = None,
12161
12255
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
12162
12256
  ) -> None:
@@ -12171,6 +12265,7 @@ class CfnTaskTemplate(
12171
12265
  :param description: The description of the task template.
12172
12266
  :param fields: Fields that are part of the template. A template requires at least one field that has type ``Name`` .
12173
12267
  :param name: The name of the task template.
12268
+ :param self_assign_contact_flow_arn: The Amazon Resource Name (ARN) of the flow.
12174
12269
  :param status: The status of the task template.
12175
12270
  :param tags: The tags used to organize, track, or control access for this resource.
12176
12271
  '''
@@ -12187,6 +12282,7 @@ class CfnTaskTemplate(
12187
12282
  description=description,
12188
12283
  fields=fields,
12189
12284
  name=name,
12285
+ self_assign_contact_flow_arn=self_assign_contact_flow_arn,
12190
12286
  status=status,
12191
12287
  tags=tags,
12192
12288
  )
@@ -12357,6 +12453,22 @@ class CfnTaskTemplate(
12357
12453
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
12358
12454
  jsii.set(self, "name", value) # pyright: ignore[reportArgumentType]
12359
12455
 
12456
+ @builtins.property
12457
+ @jsii.member(jsii_name="selfAssignContactFlowArn")
12458
+ def self_assign_contact_flow_arn(self) -> typing.Optional[builtins.str]:
12459
+ '''The Amazon Resource Name (ARN) of the flow.'''
12460
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "selfAssignContactFlowArn"))
12461
+
12462
+ @self_assign_contact_flow_arn.setter
12463
+ def self_assign_contact_flow_arn(
12464
+ self,
12465
+ value: typing.Optional[builtins.str],
12466
+ ) -> None:
12467
+ if __debug__:
12468
+ type_hints = typing.get_type_hints(_typecheckingstub__f4f85342b0c9d3045140559f3bf20a9f2f9380529654d572b19d6e9d337a816b)
12469
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
12470
+ jsii.set(self, "selfAssignContactFlowArn", value) # pyright: ignore[reportArgumentType]
12471
+
12360
12472
  @builtins.property
12361
12473
  @jsii.member(jsii_name="status")
12362
12474
  def status(self) -> typing.Optional[builtins.str]:
@@ -12924,6 +13036,7 @@ class CfnTaskTemplate(
12924
13036
  "description": "description",
12925
13037
  "fields": "fields",
12926
13038
  "name": "name",
13039
+ "self_assign_contact_flow_arn": "selfAssignContactFlowArn",
12927
13040
  "status": "status",
12928
13041
  "tags": "tags",
12929
13042
  },
@@ -12940,6 +13053,7 @@ class CfnTaskTemplateProps:
12940
13053
  description: typing.Optional[builtins.str] = None,
12941
13054
  fields: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnTaskTemplate.FieldProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
12942
13055
  name: typing.Optional[builtins.str] = None,
13056
+ self_assign_contact_flow_arn: typing.Optional[builtins.str] = None,
12943
13057
  status: typing.Optional[builtins.str] = None,
12944
13058
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
12945
13059
  ) -> None:
@@ -12953,6 +13067,7 @@ class CfnTaskTemplateProps:
12953
13067
  :param description: The description of the task template.
12954
13068
  :param fields: Fields that are part of the template. A template requires at least one field that has type ``Name`` .
12955
13069
  :param name: The name of the task template.
13070
+ :param self_assign_contact_flow_arn: The Amazon Resource Name (ARN) of the flow.
12956
13071
  :param status: The status of the task template.
12957
13072
  :param tags: The tags used to organize, track, or control access for this resource.
12958
13073
 
@@ -12992,6 +13107,7 @@ class CfnTaskTemplateProps:
12992
13107
  single_select_options=["singleSelectOptions"]
12993
13108
  )],
12994
13109
  name="name",
13110
+ self_assign_contact_flow_arn="selfAssignContactFlowArn",
12995
13111
  status="status",
12996
13112
  tags=[CfnTag(
12997
13113
  key="key",
@@ -13009,6 +13125,7 @@ class CfnTaskTemplateProps:
13009
13125
  check_type(argname="argument description", value=description, expected_type=type_hints["description"])
13010
13126
  check_type(argname="argument fields", value=fields, expected_type=type_hints["fields"])
13011
13127
  check_type(argname="argument name", value=name, expected_type=type_hints["name"])
13128
+ check_type(argname="argument self_assign_contact_flow_arn", value=self_assign_contact_flow_arn, expected_type=type_hints["self_assign_contact_flow_arn"])
13012
13129
  check_type(argname="argument status", value=status, expected_type=type_hints["status"])
13013
13130
  check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
13014
13131
  self._values: typing.Dict[builtins.str, typing.Any] = {
@@ -13028,6 +13145,8 @@ class CfnTaskTemplateProps:
13028
13145
  self._values["fields"] = fields
13029
13146
  if name is not None:
13030
13147
  self._values["name"] = name
13148
+ if self_assign_contact_flow_arn is not None:
13149
+ self._values["self_assign_contact_flow_arn"] = self_assign_contact_flow_arn
13031
13150
  if status is not None:
13032
13151
  self._values["status"] = status
13033
13152
  if tags is not None:
@@ -13116,6 +13235,15 @@ class CfnTaskTemplateProps:
13116
13235
  result = self._values.get("name")
13117
13236
  return typing.cast(typing.Optional[builtins.str], result)
13118
13237
 
13238
+ @builtins.property
13239
+ def self_assign_contact_flow_arn(self) -> typing.Optional[builtins.str]:
13240
+ '''The Amazon Resource Name (ARN) of the flow.
13241
+
13242
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-connect-tasktemplate.html#cfn-connect-tasktemplate-selfassigncontactflowarn
13243
+ '''
13244
+ result = self._values.get("self_assign_contact_flow_arn")
13245
+ return typing.cast(typing.Optional[builtins.str], result)
13246
+
13119
13247
  @builtins.property
13120
13248
  def status(self) -> typing.Optional[builtins.str]:
13121
13249
  '''The status of the task template.
@@ -13785,8 +13913,8 @@ class CfnUser(
13785
13913
  For Amazon Connect instances that are created with the ``EXISTING_DIRECTORY`` identity management type, ``FirstName`` , ``LastName`` , and ``Email`` cannot be updated from within Amazon Connect because they are managed by the directory. > The ``FirstName`` and ``LastName`` length constraints below apply only to instances using SAML for identity management. If you are using Amazon Connect for identity management, the length constraints are 1-255 for ``FirstName`` , and 1-256 for ``LastName`` .
13786
13914
 
13787
13915
  :param email: The email address. If you are using SAML for identity management and include this parameter, an error is returned.
13788
- :param first_name: The first name. This is required if you are using Amazon Connect or SAML for identity management.
13789
- :param last_name: The last name. This is required if you are using Amazon Connect or SAML for identity management.
13916
+ :param first_name: The first name. This is required if you are using Amazon Connect or SAML for identity management. Inputs must be in Unicode Normalization Form C (NFC). Text containing characters in a non-NFC form (for example, decomposed characters or combining marks) are not accepted.
13917
+ :param last_name: The last name. This is required if you are using Amazon Connect or SAML for identity management. Inputs must be in Unicode Normalization Form C (NFC). Text containing characters in a non-NFC form (for example, decomposed characters or combining marks) are not accepted.
13790
13918
  :param mobile: The user's mobile number.
13791
13919
  :param secondary_email: The user's secondary email address. If you provide a secondary email, the user receives email notifications -- other than password reset notifications -- to this email address instead of to their primary email address. *Pattern* : ``(?=^.{0,265}$)[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,63}``
13792
13920
 
@@ -13841,7 +13969,7 @@ class CfnUser(
13841
13969
  def first_name(self) -> typing.Optional[builtins.str]:
13842
13970
  '''The first name.
13843
13971
 
13844
- This is required if you are using Amazon Connect or SAML for identity management.
13972
+ This is required if you are using Amazon Connect or SAML for identity management. Inputs must be in Unicode Normalization Form C (NFC). Text containing characters in a non-NFC form (for example, decomposed characters or combining marks) are not accepted.
13845
13973
 
13846
13974
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-user-useridentityinfo.html#cfn-connect-user-useridentityinfo-firstname
13847
13975
  '''
@@ -13852,7 +13980,7 @@ class CfnUser(
13852
13980
  def last_name(self) -> typing.Optional[builtins.str]:
13853
13981
  '''The last name.
13854
13982
 
13855
- This is required if you are using Amazon Connect or SAML for identity management.
13983
+ This is required if you are using Amazon Connect or SAML for identity management. Inputs must be in Unicode Normalization Form C (NFC). Text containing characters in a non-NFC form (for example, decomposed characters or combining marks) are not accepted.
13856
13984
 
13857
13985
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-connect-user-useridentityinfo.html#cfn-connect-user-useridentityinfo-lastname
13858
13986
  '''
@@ -17366,6 +17494,7 @@ def _typecheckingstub__305bba43cd31a2f9d719dec6a726b64cb46f6b33b3b631880aa85047c
17366
17494
  description: typing.Optional[builtins.str] = None,
17367
17495
  max_contacts: typing.Optional[jsii.Number] = None,
17368
17496
  outbound_caller_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnQueue.OutboundCallerConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
17497
+ outbound_email_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnQueue.OutboundEmailConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
17369
17498
  quick_connect_arns: typing.Optional[typing.Sequence[builtins.str]] = None,
17370
17499
  status: typing.Optional[builtins.str] = None,
17371
17500
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
@@ -17421,6 +17550,12 @@ def _typecheckingstub__efe056b6b273a9bf8a7269bd77e79f2001945bafc023aed9da6eba085
17421
17550
  """Type checking stubs"""
17422
17551
  pass
17423
17552
 
17553
+ def _typecheckingstub__d70f8c388583c62795c096506bc0b9a1a53acc5e70c4d0fd320573fd958df7d2(
17554
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, CfnQueue.OutboundEmailConfigProperty]],
17555
+ ) -> None:
17556
+ """Type checking stubs"""
17557
+ pass
17558
+
17424
17559
  def _typecheckingstub__028ca5a74d47f38a105a56baa46c7e52d7fe78d25b30fceb95452700dd3fddaf(
17425
17560
  value: typing.Optional[typing.List[builtins.str]],
17426
17561
  ) -> None:
@@ -17448,6 +17583,13 @@ def _typecheckingstub__d2f8c0fdd30542f9e64ba3ad4c32832636467651ad5236b756c53590e
17448
17583
  """Type checking stubs"""
17449
17584
  pass
17450
17585
 
17586
+ def _typecheckingstub__6034538ecc5b69375cb012cf0eadba4ed8798c3aa677d36052499166fa552ba8(
17587
+ *,
17588
+ outbound_email_address_id: typing.Optional[builtins.str] = None,
17589
+ ) -> None:
17590
+ """Type checking stubs"""
17591
+ pass
17592
+
17451
17593
  def _typecheckingstub__baa26a31f9cdaa2c1ff32bcd44e00a08477582db0c01e27c9e1a60c3e96a8bce(
17452
17594
  *,
17453
17595
  hours_of_operation_arn: builtins.str,
@@ -17456,6 +17598,7 @@ def _typecheckingstub__baa26a31f9cdaa2c1ff32bcd44e00a08477582db0c01e27c9e1a60c3e
17456
17598
  description: typing.Optional[builtins.str] = None,
17457
17599
  max_contacts: typing.Optional[jsii.Number] = None,
17458
17600
  outbound_caller_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnQueue.OutboundCallerConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
17601
+ outbound_email_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnQueue.OutboundEmailConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
17459
17602
  quick_connect_arns: typing.Optional[typing.Sequence[builtins.str]] = None,
17460
17603
  status: typing.Optional[builtins.str] = None,
17461
17604
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
@@ -18041,6 +18184,7 @@ def _typecheckingstub__e55cf6106eb4919ab3d57f42477e52e40f628476ec3364c5bf5b40089
18041
18184
  description: typing.Optional[builtins.str] = None,
18042
18185
  fields: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnTaskTemplate.FieldProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
18043
18186
  name: typing.Optional[builtins.str] = None,
18187
+ self_assign_contact_flow_arn: typing.Optional[builtins.str] = None,
18044
18188
  status: typing.Optional[builtins.str] = None,
18045
18189
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
18046
18190
  ) -> None:
@@ -18107,6 +18251,12 @@ def _typecheckingstub__536360af8980f014d8658d43741c6a3560607c1550e93deaec8025ead
18107
18251
  """Type checking stubs"""
18108
18252
  pass
18109
18253
 
18254
+ def _typecheckingstub__f4f85342b0c9d3045140559f3bf20a9f2f9380529654d572b19d6e9d337a816b(
18255
+ value: typing.Optional[builtins.str],
18256
+ ) -> None:
18257
+ """Type checking stubs"""
18258
+ pass
18259
+
18110
18260
  def _typecheckingstub__fd486363bb52c46e2e9463e955a4ed4c9ffc963b921dce5f0a41124a306b893e(
18111
18261
  value: typing.Optional[builtins.str],
18112
18262
  ) -> None:
@@ -18184,6 +18334,7 @@ def _typecheckingstub__ffa2d0f88c266e5f2522dfd1af262def0d3061b82ebb529283e7afc28
18184
18334
  description: typing.Optional[builtins.str] = None,
18185
18335
  fields: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnTaskTemplate.FieldProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
18186
18336
  name: typing.Optional[builtins.str] = None,
18337
+ self_assign_contact_flow_arn: typing.Optional[builtins.str] = None,
18187
18338
  status: typing.Optional[builtins.str] = None,
18188
18339
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
18189
18340
  ) -> None: