aws-cdk-lib 2.151.1__py3-none-any.whl → 2.153.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.

@@ -820,6 +820,50 @@ fn.add_event_source(eventsources.DynamoEventSource(table,
820
820
  ))
821
821
  ```
822
822
 
823
+ By default, Lambda will encrypt Filter Criteria using AWS managed keys. But if you want to use a self managed KMS key to encrypt the filters, You can specify the self managed key using the `filterEncryption` property.
824
+
825
+ ```python
826
+ import aws_cdk.aws_lambda_event_sources as eventsources
827
+ import aws_cdk.aws_dynamodb as dynamodb
828
+ from aws_cdk.aws_kms import Key
829
+
830
+ # fn: lambda.Function
831
+
832
+ table = dynamodb.Table(self, "Table",
833
+ partition_key=dynamodb.Attribute(
834
+ name="id",
835
+ type=dynamodb.AttributeType.STRING
836
+ ),
837
+ stream=dynamodb.StreamViewType.NEW_IMAGE
838
+ )
839
+ # Your self managed KMS key
840
+ my_key = Key.from_key_arn(self, "SourceBucketEncryptionKey", "arn:aws:kms:us-east-1:123456789012:key/<key-id>")
841
+
842
+ fn.add_event_source(eventsources.DynamoEventSource(table,
843
+ starting_position=lambda_.StartingPosition.LATEST,
844
+ filters=[lambda_.FilterCriteria.filter({"event_name": lambda_.FilterRule.is_equal("INSERT")})],
845
+ filter_encryption=my_key
846
+ ))
847
+ ```
848
+
849
+ > Lambda requires allow `kms:Decrypt` on Lambda principal `lambda.amazonaws.com` to use the key for Filter Criteria Encryption. If you create the KMS key in the stack, CDK will automatically add this permission to the Key when you creates eventSourceMapping. However, if you import the key using function like `Key.fromKeyArn` then you need to add the following permission to the KMS key before using it to encrypt Filter Criteria
850
+
851
+ ```json
852
+ {
853
+ "Version": "2012-10-17",
854
+ "Statement": [
855
+ {
856
+ "Effect": "Allow",
857
+ "Principal": {
858
+ "Service": "lambda.amazonaws.com"
859
+ },
860
+ "Action": "kms:Decrypt",
861
+ "Resource": "*"
862
+ }
863
+ ]
864
+ }
865
+ ```
866
+
823
867
  See the documentation for the **@aws-cdk/aws-lambda-event-sources** module for more details.
824
868
 
825
869
  ## Imported Lambdas
@@ -998,8 +1042,7 @@ fn = lambda_.Function(self, "MyFunction",
998
1042
  )
999
1043
  ```
1000
1044
 
1001
- See [the AWS documentation](https://docs.aws.amazon.com/lambda/latest/dg/concurrent-executions.html)
1002
- managing concurrency.
1045
+ https://docs.aws.amazon.com/lambda/latest/dg/invocation-recursion.html
1003
1046
 
1004
1047
  ## Lambda with SnapStart
1005
1048
 
@@ -1134,6 +1177,26 @@ lambda_.Function(self, "Lambda",
1134
1177
  Providing a user-controlled log group was rolled out to commercial regions on 2023-11-16.
1135
1178
  If you are deploying to another type of region, please check regional availability first.
1136
1179
 
1180
+ ## Lambda with Recursive Loop protection
1181
+
1182
+ Recursive loop protection is to stop unintended loops. The customers are opted in by default for Lambda to detect and terminate unintended loops between Lambda and other AWS Services.
1183
+ The property can be assigned two values here, "Allow" and "Terminate".
1184
+
1185
+ The default value is set to "Terminate", which lets the Lambda to detect and terminate the recursive loops.
1186
+
1187
+ When the value is set to "Allow", the customers opt out of recursive loop detection and Lambda does not terminate recursive loops if any.
1188
+
1189
+ See [the AWS documentation](https://docs.aws.amazon.com/lambda/latest/dg/invocation-recursion.html) to learn more about AWS Lambda Recusrive Loop Detection
1190
+
1191
+ ```python
1192
+ fn = lambda_.Function(self, "MyFunction",
1193
+ code=lambda_.Code.from_asset(path.join(__dirname, "handler.zip")),
1194
+ runtime=lambda_.Runtime.JAVA_11,
1195
+ handler="example.Handler::handleRequest",
1196
+ recursive_loop=lambda_.RecursiveLoop.TERMINATE
1197
+ )
1198
+ ```
1199
+
1137
1200
  ### Legacy Log Retention
1138
1201
 
1139
1202
  As an alternative to providing a custom, user controlled log group, the legacy `logRetention` property can be used to set a different expiration period.
@@ -4374,6 +4437,7 @@ class CfnEventSourceMapping(
4374
4437
  )]
4375
4438
  ),
4376
4439
  function_response_types=["functionResponseTypes"],
4440
+ kms_key_arn="kmsKeyArn",
4377
4441
  maximum_batching_window_in_seconds=123,
4378
4442
  maximum_record_age_in_seconds=123,
4379
4443
  maximum_retry_attempts=123,
@@ -4416,6 +4480,7 @@ class CfnEventSourceMapping(
4416
4480
  event_source_arn: typing.Optional[builtins.str] = None,
4417
4481
  filter_criteria: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnEventSourceMapping.FilterCriteriaProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
4418
4482
  function_response_types: typing.Optional[typing.Sequence[builtins.str]] = None,
4483
+ kms_key_arn: typing.Optional[builtins.str] = None,
4419
4484
  maximum_batching_window_in_seconds: typing.Optional[jsii.Number] = None,
4420
4485
  maximum_record_age_in_seconds: typing.Optional[jsii.Number] = None,
4421
4486
  maximum_retry_attempts: typing.Optional[jsii.Number] = None,
@@ -4433,29 +4498,30 @@ class CfnEventSourceMapping(
4433
4498
  '''
4434
4499
  :param scope: Scope in which this resource is defined.
4435
4500
  :param id: Construct identifier for this resource (unique in its scope).
4436
- :param function_name: The name or ARN of the Lambda function. **Name formats** - *Function name* – ``MyFunction`` . - *Function ARN* – ``arn:aws:lambda:us-west-2:123456789012:function:MyFunction`` . - *Version or Alias ARN* – ``arn:aws:lambda:us-west-2:123456789012:function:MyFunction:PROD`` . - *Partial ARN* – ``123456789012:function:MyFunction`` . The length constraint applies only to the full ARN. If you specify only the function name, it's limited to 64 characters in length.
4437
- :param amazon_managed_kafka_event_source_config: Specific configuration settings for an Amazon Managed Streaming for Apache Kafka (Amazon MSK) event source.
4438
- :param batch_size: The maximum number of records in each batch that Lambda pulls from your stream or queue and sends to your function. Lambda passes all of the records in the batch to the function in a single call, up to the payload limit for synchronous invocation (6 MB). - *Amazon Kinesis* – Default 100. Max 10,000. - *Amazon DynamoDB Streams* – Default 100. Max 10,000. - *Amazon Simple Queue Service* – Default 10. For standard queues the max is 10,000. For FIFO queues the max is 10. - *Amazon Managed Streaming for Apache Kafka* – Default 100. Max 10,000. - *Self-managed Apache Kafka* – Default 100. Max 10,000. - *Amazon MQ (ActiveMQ and RabbitMQ)* – Default 100. Max 10,000. - *DocumentDB* – Default 100. Max 10,000.
4439
- :param bisect_batch_on_function_error: (Kinesis and DynamoDB Streams only) If the function returns an error, split the batch in two and retry. The default value is false.
4440
- :param destination_config: (Kinesis, DynamoDB Streams, Amazon MSK, and self-managed Apache Kafka event sources only) A configuration object that specifies the destination of an event after Lambda processes it.
4441
- :param document_db_event_source_config: Specific configuration settings for a DocumentDB event source.
4442
- :param enabled: When true, the event source mapping is active. When false, Lambda pauses polling and invocation. Default: True
4443
- :param event_source_arn: The Amazon Resource Name (ARN) of the event source. - *Amazon Kinesis* – The ARN of the data stream or a stream consumer. - *Amazon DynamoDB Streams* – The ARN of the stream. - *Amazon Simple Queue Service* – The ARN of the queue. - *Amazon Managed Streaming for Apache Kafka* – The ARN of the cluster or the ARN of the VPC connection (for `cross-account event source mappings <https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#msk-multi-vpc>`_ ). - *Amazon MQ* – The ARN of the broker. - *Amazon DocumentDB* – The ARN of the DocumentDB change stream.
4444
- :param filter_criteria: An object that defines the filter criteria that determine whether Lambda should process an event. For more information, see `Lambda event filtering <https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html>`_ .
4445
- :param function_response_types: (Streams and SQS) A list of current response type enums applied to the event source mapping. Valid Values: ``ReportBatchItemFailures``
4446
- :param maximum_batching_window_in_seconds: The maximum amount of time, in seconds, that Lambda spends gathering records before invoking the function. *Default ( Kinesis , DynamoDB , Amazon SQS event sources)* : 0 *Default ( Amazon MSK , Kafka, Amazon MQ , Amazon DocumentDB event sources)* : 500 ms *Related setting:* For Amazon SQS event sources, when you set ``BatchSize`` to a value greater than 10, you must set ``MaximumBatchingWindowInSeconds`` to at least 1.
4447
- :param maximum_record_age_in_seconds: (Kinesis and DynamoDB Streams only) Discard records older than the specified age. The default value is -1, which sets the maximum age to infinite. When the value is set to infinite, Lambda never discards old records. .. epigraph:: The minimum valid value for maximum record age is 60s. Although values less than 60 and greater than -1 fall within the parameter's absolute range, they are not allowed
4448
- :param maximum_retry_attempts: (Kinesis and DynamoDB Streams only) Discard records after the specified number of retries. The default value is -1, which sets the maximum number of retries to infinite. When MaximumRetryAttempts is infinite, Lambda retries failed records until the record expires in the event source.
4449
- :param parallelization_factor: (Kinesis and DynamoDB Streams only) The number of batches to process concurrently from each shard. The default value is 1.
4450
- :param queues: (Amazon MQ) The name of the Amazon MQ broker destination queue to consume.
4451
- :param scaling_config: (Amazon SQS only) The scaling configuration for the event source. For more information, see `Configuring maximum concurrency for Amazon SQS event sources <https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html#events-sqs-max-concurrency>`_ .
4452
- :param self_managed_event_source: The self-managed Apache Kafka cluster for your event source.
4453
- :param self_managed_kafka_event_source_config: Specific configuration settings for a self-managed Apache Kafka event source.
4454
- :param source_access_configurations: An array of the authentication protocol, VPC components, or virtual host to secure and define your event source.
4455
- :param starting_position: The position in a stream from which to start reading. Required for Amazon Kinesis and Amazon DynamoDB. - *LATEST* - Read only new records. - *TRIM_HORIZON* - Process all available records. - *AT_TIMESTAMP* - Specify a time from which to start reading records.
4456
- :param starting_position_timestamp: With ``StartingPosition`` set to ``AT_TIMESTAMP`` , the time from which to start reading, in Unix time seconds. ``StartingPositionTimestamp`` cannot be in the future.
4457
- :param topics: The name of the Kafka topic.
4458
- :param tumbling_window_in_seconds: (Kinesis and DynamoDB Streams only) The duration in seconds of a processing window for DynamoDB and Kinesis Streams event sources. A value of 0 seconds indicates no tumbling window.
4501
+ :param function_name: The name of the Lambda function.
4502
+ :param amazon_managed_kafka_event_source_config: Specific configuration settings for an MSK event source.
4503
+ :param batch_size: The maximum number of items to retrieve in a single batch.
4504
+ :param bisect_batch_on_function_error: (Streams) If the function returns an error, split the batch in two and retry.
4505
+ :param destination_config: A configuration object that specifies the destination of an event after Lambda processes it.
4506
+ :param document_db_event_source_config: Document db event source config.
4507
+ :param enabled: Disables the event source mapping to pause polling and invocation.
4508
+ :param event_source_arn: The Amazon Resource Name (ARN) of the event source.
4509
+ :param filter_criteria: The filter criteria to control event filtering.
4510
+ :param function_response_types: (Streams) A list of response types supported by the function.
4511
+ :param kms_key_arn: The Amazon Resource Name (ARN) of the KMS key.
4512
+ :param maximum_batching_window_in_seconds: (Streams) The maximum amount of time to gather records before invoking the function, in seconds.
4513
+ :param maximum_record_age_in_seconds: (Streams) The maximum age of a record that Lambda sends to a function for processing.
4514
+ :param maximum_retry_attempts: (Streams) The maximum number of times to retry when the function returns an error.
4515
+ :param parallelization_factor: (Streams) The number of batches to process from each shard concurrently.
4516
+ :param queues: (ActiveMQ) A list of ActiveMQ queues.
4517
+ :param scaling_config: The scaling configuration for the event source.
4518
+ :param self_managed_event_source: The configuration used by AWS Lambda to access a self-managed event source.
4519
+ :param self_managed_kafka_event_source_config: Specific configuration settings for a Self-Managed Apache Kafka event source.
4520
+ :param source_access_configurations: A list of SourceAccessConfiguration.
4521
+ :param starting_position: The position in a stream from which to start reading. Required for Amazon Kinesis and Amazon DynamoDB Streams sources.
4522
+ :param starting_position_timestamp: With StartingPosition set to AT_TIMESTAMP, the time from which to start reading, in Unix time seconds.
4523
+ :param topics: (Kafka) A list of Kafka topics.
4524
+ :param tumbling_window_in_seconds: (Streams) Tumbling window (non-overlapping time window) duration to perform aggregations.
4459
4525
  '''
4460
4526
  if __debug__:
4461
4527
  type_hints = typing.get_type_hints(_typecheckingstub__2fc9432254acf5a7dbe3c68dcedbda61de1f0e804a81d20ae79e04857b83d419)
@@ -4472,6 +4538,7 @@ class CfnEventSourceMapping(
4472
4538
  event_source_arn=event_source_arn,
4473
4539
  filter_criteria=filter_criteria,
4474
4540
  function_response_types=function_response_types,
4541
+ kms_key_arn=kms_key_arn,
4475
4542
  maximum_batching_window_in_seconds=maximum_batching_window_in_seconds,
4476
4543
  maximum_record_age_in_seconds=maximum_record_age_in_seconds,
4477
4544
  maximum_retry_attempts=maximum_retry_attempts,
@@ -4522,7 +4589,7 @@ class CfnEventSourceMapping(
4522
4589
  @builtins.property
4523
4590
  @jsii.member(jsii_name="attrId")
4524
4591
  def attr_id(self) -> builtins.str:
4525
- '''The event source mapping's ID.
4592
+ '''Event Source Mapping Identifier UUID.
4526
4593
 
4527
4594
  :cloudformationAttribute: Id
4528
4595
  '''
@@ -4536,7 +4603,7 @@ class CfnEventSourceMapping(
4536
4603
  @builtins.property
4537
4604
  @jsii.member(jsii_name="functionName")
4538
4605
  def function_name(self) -> builtins.str:
4539
- '''The name or ARN of the Lambda function.'''
4606
+ '''The name of the Lambda function.'''
4540
4607
  return typing.cast(builtins.str, jsii.get(self, "functionName"))
4541
4608
 
4542
4609
  @function_name.setter
@@ -4551,7 +4618,7 @@ class CfnEventSourceMapping(
4551
4618
  def amazon_managed_kafka_event_source_config(
4552
4619
  self,
4553
4620
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnEventSourceMapping.AmazonManagedKafkaEventSourceConfigProperty"]]:
4554
- '''Specific configuration settings for an Amazon Managed Streaming for Apache Kafka (Amazon MSK) event source.'''
4621
+ '''Specific configuration settings for an MSK event source.'''
4555
4622
  return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnEventSourceMapping.AmazonManagedKafkaEventSourceConfigProperty"]], jsii.get(self, "amazonManagedKafkaEventSourceConfig"))
4556
4623
 
4557
4624
  @amazon_managed_kafka_event_source_config.setter
@@ -4567,7 +4634,7 @@ class CfnEventSourceMapping(
4567
4634
  @builtins.property
4568
4635
  @jsii.member(jsii_name="batchSize")
4569
4636
  def batch_size(self) -> typing.Optional[jsii.Number]:
4570
- '''The maximum number of records in each batch that Lambda pulls from your stream or queue and sends to your function.'''
4637
+ '''The maximum number of items to retrieve in a single batch.'''
4571
4638
  return typing.cast(typing.Optional[jsii.Number], jsii.get(self, "batchSize"))
4572
4639
 
4573
4640
  @batch_size.setter
@@ -4582,7 +4649,7 @@ class CfnEventSourceMapping(
4582
4649
  def bisect_batch_on_function_error(
4583
4650
  self,
4584
4651
  ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
4585
- '''(Kinesis and DynamoDB Streams only) If the function returns an error, split the batch in two and retry.'''
4652
+ '''(Streams) If the function returns an error, split the batch in two and retry.'''
4586
4653
  return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], jsii.get(self, "bisectBatchOnFunctionError"))
4587
4654
 
4588
4655
  @bisect_batch_on_function_error.setter
@@ -4600,7 +4667,7 @@ class CfnEventSourceMapping(
4600
4667
  def destination_config(
4601
4668
  self,
4602
4669
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnEventSourceMapping.DestinationConfigProperty"]]:
4603
- '''(Kinesis, DynamoDB Streams, Amazon MSK, and self-managed Apache Kafka event sources only) A configuration object that specifies the destination of an event after Lambda processes it.'''
4670
+ '''A configuration object that specifies the destination of an event after Lambda processes it.'''
4604
4671
  return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnEventSourceMapping.DestinationConfigProperty"]], jsii.get(self, "destinationConfig"))
4605
4672
 
4606
4673
  @destination_config.setter
@@ -4618,7 +4685,7 @@ class CfnEventSourceMapping(
4618
4685
  def document_db_event_source_config(
4619
4686
  self,
4620
4687
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnEventSourceMapping.DocumentDBEventSourceConfigProperty"]]:
4621
- '''Specific configuration settings for a DocumentDB event source.'''
4688
+ '''Document db event source config.'''
4622
4689
  return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnEventSourceMapping.DocumentDBEventSourceConfigProperty"]], jsii.get(self, "documentDbEventSourceConfig"))
4623
4690
 
4624
4691
  @document_db_event_source_config.setter
@@ -4636,10 +4703,7 @@ class CfnEventSourceMapping(
4636
4703
  def enabled(
4637
4704
  self,
4638
4705
  ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
4639
- '''When true, the event source mapping is active.
4640
-
4641
- When false, Lambda pauses polling and invocation.
4642
- '''
4706
+ '''Disables the event source mapping to pause polling and invocation.'''
4643
4707
  return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], jsii.get(self, "enabled"))
4644
4708
 
4645
4709
  @enabled.setter
@@ -4670,7 +4734,7 @@ class CfnEventSourceMapping(
4670
4734
  def filter_criteria(
4671
4735
  self,
4672
4736
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnEventSourceMapping.FilterCriteriaProperty"]]:
4673
- '''An object that defines the filter criteria that determine whether Lambda should process an event.'''
4737
+ '''The filter criteria to control event filtering.'''
4674
4738
  return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnEventSourceMapping.FilterCriteriaProperty"]], jsii.get(self, "filterCriteria"))
4675
4739
 
4676
4740
  @filter_criteria.setter
@@ -4686,7 +4750,7 @@ class CfnEventSourceMapping(
4686
4750
  @builtins.property
4687
4751
  @jsii.member(jsii_name="functionResponseTypes")
4688
4752
  def function_response_types(self) -> typing.Optional[typing.List[builtins.str]]:
4689
- '''(Streams and SQS) A list of current response type enums applied to the event source mapping.'''
4753
+ '''(Streams) A list of response types supported by the function.'''
4690
4754
  return typing.cast(typing.Optional[typing.List[builtins.str]], jsii.get(self, "functionResponseTypes"))
4691
4755
 
4692
4756
  @function_response_types.setter
@@ -4699,10 +4763,23 @@ class CfnEventSourceMapping(
4699
4763
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
4700
4764
  jsii.set(self, "functionResponseTypes", value)
4701
4765
 
4766
+ @builtins.property
4767
+ @jsii.member(jsii_name="kmsKeyArn")
4768
+ def kms_key_arn(self) -> typing.Optional[builtins.str]:
4769
+ '''The Amazon Resource Name (ARN) of the KMS key.'''
4770
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "kmsKeyArn"))
4771
+
4772
+ @kms_key_arn.setter
4773
+ def kms_key_arn(self, value: typing.Optional[builtins.str]) -> None:
4774
+ if __debug__:
4775
+ type_hints = typing.get_type_hints(_typecheckingstub__5110117b05ec57a413615f5bf30afd8bbafb2be839685cf0e158a1b4de420fbc)
4776
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
4777
+ jsii.set(self, "kmsKeyArn", value)
4778
+
4702
4779
  @builtins.property
4703
4780
  @jsii.member(jsii_name="maximumBatchingWindowInSeconds")
4704
4781
  def maximum_batching_window_in_seconds(self) -> typing.Optional[jsii.Number]:
4705
- '''The maximum amount of time, in seconds, that Lambda spends gathering records before invoking the function.'''
4782
+ '''(Streams) The maximum amount of time to gather records before invoking the function, in seconds.'''
4706
4783
  return typing.cast(typing.Optional[jsii.Number], jsii.get(self, "maximumBatchingWindowInSeconds"))
4707
4784
 
4708
4785
  @maximum_batching_window_in_seconds.setter
@@ -4718,7 +4795,7 @@ class CfnEventSourceMapping(
4718
4795
  @builtins.property
4719
4796
  @jsii.member(jsii_name="maximumRecordAgeInSeconds")
4720
4797
  def maximum_record_age_in_seconds(self) -> typing.Optional[jsii.Number]:
4721
- '''(Kinesis and DynamoDB Streams only) Discard records older than the specified age.'''
4798
+ '''(Streams) The maximum age of a record that Lambda sends to a function for processing.'''
4722
4799
  return typing.cast(typing.Optional[jsii.Number], jsii.get(self, "maximumRecordAgeInSeconds"))
4723
4800
 
4724
4801
  @maximum_record_age_in_seconds.setter
@@ -4734,7 +4811,7 @@ class CfnEventSourceMapping(
4734
4811
  @builtins.property
4735
4812
  @jsii.member(jsii_name="maximumRetryAttempts")
4736
4813
  def maximum_retry_attempts(self) -> typing.Optional[jsii.Number]:
4737
- '''(Kinesis and DynamoDB Streams only) Discard records after the specified number of retries.'''
4814
+ '''(Streams) The maximum number of times to retry when the function returns an error.'''
4738
4815
  return typing.cast(typing.Optional[jsii.Number], jsii.get(self, "maximumRetryAttempts"))
4739
4816
 
4740
4817
  @maximum_retry_attempts.setter
@@ -4747,7 +4824,7 @@ class CfnEventSourceMapping(
4747
4824
  @builtins.property
4748
4825
  @jsii.member(jsii_name="parallelizationFactor")
4749
4826
  def parallelization_factor(self) -> typing.Optional[jsii.Number]:
4750
- '''(Kinesis and DynamoDB Streams only) The number of batches to process concurrently from each shard.'''
4827
+ '''(Streams) The number of batches to process from each shard concurrently.'''
4751
4828
  return typing.cast(typing.Optional[jsii.Number], jsii.get(self, "parallelizationFactor"))
4752
4829
 
4753
4830
  @parallelization_factor.setter
@@ -4760,7 +4837,7 @@ class CfnEventSourceMapping(
4760
4837
  @builtins.property
4761
4838
  @jsii.member(jsii_name="queues")
4762
4839
  def queues(self) -> typing.Optional[typing.List[builtins.str]]:
4763
- '''(Amazon MQ) The name of the Amazon MQ broker destination queue to consume.'''
4840
+ '''(ActiveMQ) A list of ActiveMQ queues.'''
4764
4841
  return typing.cast(typing.Optional[typing.List[builtins.str]], jsii.get(self, "queues"))
4765
4842
 
4766
4843
  @queues.setter
@@ -4775,7 +4852,7 @@ class CfnEventSourceMapping(
4775
4852
  def scaling_config(
4776
4853
  self,
4777
4854
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnEventSourceMapping.ScalingConfigProperty"]]:
4778
- '''(Amazon SQS only) The scaling configuration for the event source.'''
4855
+ '''The scaling configuration for the event source.'''
4779
4856
  return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnEventSourceMapping.ScalingConfigProperty"]], jsii.get(self, "scalingConfig"))
4780
4857
 
4781
4858
  @scaling_config.setter
@@ -4793,7 +4870,7 @@ class CfnEventSourceMapping(
4793
4870
  def self_managed_event_source(
4794
4871
  self,
4795
4872
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnEventSourceMapping.SelfManagedEventSourceProperty"]]:
4796
- '''The self-managed Apache Kafka cluster for your event source.'''
4873
+ '''The configuration used by AWS Lambda to access a self-managed event source.'''
4797
4874
  return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnEventSourceMapping.SelfManagedEventSourceProperty"]], jsii.get(self, "selfManagedEventSource"))
4798
4875
 
4799
4876
  @self_managed_event_source.setter
@@ -4811,7 +4888,7 @@ class CfnEventSourceMapping(
4811
4888
  def self_managed_kafka_event_source_config(
4812
4889
  self,
4813
4890
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnEventSourceMapping.SelfManagedKafkaEventSourceConfigProperty"]]:
4814
- '''Specific configuration settings for a self-managed Apache Kafka event source.'''
4891
+ '''Specific configuration settings for a Self-Managed Apache Kafka event source.'''
4815
4892
  return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnEventSourceMapping.SelfManagedKafkaEventSourceConfigProperty"]], jsii.get(self, "selfManagedKafkaEventSourceConfig"))
4816
4893
 
4817
4894
  @self_managed_kafka_event_source_config.setter
@@ -4829,7 +4906,7 @@ class CfnEventSourceMapping(
4829
4906
  def source_access_configurations(
4830
4907
  self,
4831
4908
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnEventSourceMapping.SourceAccessConfigurationProperty"]]]]:
4832
- '''An array of the authentication protocol, VPC components, or virtual host to secure and define your event source.'''
4909
+ '''A list of SourceAccessConfiguration.'''
4833
4910
  return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnEventSourceMapping.SourceAccessConfigurationProperty"]]]], jsii.get(self, "sourceAccessConfigurations"))
4834
4911
 
4835
4912
  @source_access_configurations.setter
@@ -4845,10 +4922,7 @@ class CfnEventSourceMapping(
4845
4922
  @builtins.property
4846
4923
  @jsii.member(jsii_name="startingPosition")
4847
4924
  def starting_position(self) -> typing.Optional[builtins.str]:
4848
- '''The position in a stream from which to start reading.
4849
-
4850
- Required for Amazon Kinesis and Amazon DynamoDB.
4851
- '''
4925
+ '''The position in a stream from which to start reading.'''
4852
4926
  return typing.cast(typing.Optional[builtins.str], jsii.get(self, "startingPosition"))
4853
4927
 
4854
4928
  @starting_position.setter
@@ -4861,7 +4935,7 @@ class CfnEventSourceMapping(
4861
4935
  @builtins.property
4862
4936
  @jsii.member(jsii_name="startingPositionTimestamp")
4863
4937
  def starting_position_timestamp(self) -> typing.Optional[jsii.Number]:
4864
- '''With ``StartingPosition`` set to ``AT_TIMESTAMP`` , the time from which to start reading, in Unix time seconds.'''
4938
+ '''With StartingPosition set to AT_TIMESTAMP, the time from which to start reading, in Unix time seconds.'''
4865
4939
  return typing.cast(typing.Optional[jsii.Number], jsii.get(self, "startingPositionTimestamp"))
4866
4940
 
4867
4941
  @starting_position_timestamp.setter
@@ -4874,7 +4948,7 @@ class CfnEventSourceMapping(
4874
4948
  @builtins.property
4875
4949
  @jsii.member(jsii_name="topics")
4876
4950
  def topics(self) -> typing.Optional[typing.List[builtins.str]]:
4877
- '''The name of the Kafka topic.'''
4951
+ '''(Kafka) A list of Kafka topics.'''
4878
4952
  return typing.cast(typing.Optional[typing.List[builtins.str]], jsii.get(self, "topics"))
4879
4953
 
4880
4954
  @topics.setter
@@ -4887,7 +4961,7 @@ class CfnEventSourceMapping(
4887
4961
  @builtins.property
4888
4962
  @jsii.member(jsii_name="tumblingWindowInSeconds")
4889
4963
  def tumbling_window_in_seconds(self) -> typing.Optional[jsii.Number]:
4890
- '''(Kinesis and DynamoDB Streams only) The duration in seconds of a processing window for DynamoDB and Kinesis Streams event sources.'''
4964
+ '''(Streams) Tumbling window (non-overlapping time window) duration to perform aggregations.'''
4891
4965
  return typing.cast(typing.Optional[jsii.Number], jsii.get(self, "tumblingWindowInSeconds"))
4892
4966
 
4893
4967
  @tumbling_window_in_seconds.setter
@@ -4908,9 +4982,9 @@ class CfnEventSourceMapping(
4908
4982
  *,
4909
4983
  consumer_group_id: typing.Optional[builtins.str] = None,
4910
4984
  ) -> None:
4911
- '''Specific configuration settings for an Amazon Managed Streaming for Apache Kafka (Amazon MSK) event source.
4985
+ '''Specific configuration settings for an MSK event source.
4912
4986
 
4913
- :param consumer_group_id: The identifier for the Kafka consumer group to join. The consumer group ID must be unique among all your Kafka event sources. After creating a Kafka event source mapping with the consumer group ID specified, you cannot update this value. For more information, see `Customizable consumer group ID <https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#services-msk-consumer-group-id>`_ .
4987
+ :param consumer_group_id: The identifier for the Kafka Consumer Group to join.
4914
4988
 
4915
4989
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-amazonmanagedkafkaeventsourceconfig.html
4916
4990
  :exampleMetadata: fixture=_generated
@@ -4934,9 +5008,7 @@ class CfnEventSourceMapping(
4934
5008
 
4935
5009
  @builtins.property
4936
5010
  def consumer_group_id(self) -> typing.Optional[builtins.str]:
4937
- '''The identifier for the Kafka consumer group to join.
4938
-
4939
- The consumer group ID must be unique among all your Kafka event sources. After creating a Kafka event source mapping with the consumer group ID specified, you cannot update this value. For more information, see `Customizable consumer group ID <https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#services-msk-consumer-group-id>`_ .
5011
+ '''The identifier for the Kafka Consumer Group to join.
4940
5012
 
4941
5013
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-amazonmanagedkafkaeventsourceconfig.html#cfn-lambda-eventsourcemapping-amazonmanagedkafkaeventsourceconfig-consumergroupid
4942
5014
  '''
@@ -4967,7 +5039,7 @@ class CfnEventSourceMapping(
4967
5039
  ) -> None:
4968
5040
  '''A configuration object that specifies the destination of an event after Lambda processes it.
4969
5041
 
4970
- :param on_failure: The destination configuration for failed invocations.
5042
+ :param on_failure: A destination for records of invocations that failed processing.
4971
5043
 
4972
5044
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-destinationconfig.html
4973
5045
  :exampleMetadata: fixture=_generated
@@ -4995,7 +5067,7 @@ class CfnEventSourceMapping(
4995
5067
  def on_failure(
4996
5068
  self,
4997
5069
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnEventSourceMapping.OnFailureProperty"]]:
4998
- '''The destination configuration for failed invocations.
5070
+ '''A destination for records of invocations that failed processing.
4999
5071
 
5000
5072
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-destinationconfig.html#cfn-lambda-eventsourcemapping-destinationconfig-onfailure
5001
5073
  '''
@@ -5030,11 +5102,11 @@ class CfnEventSourceMapping(
5030
5102
  database_name: typing.Optional[builtins.str] = None,
5031
5103
  full_document: typing.Optional[builtins.str] = None,
5032
5104
  ) -> None:
5033
- '''Specific configuration settings for a DocumentDB event source.
5105
+ '''Document db event source config.
5034
5106
 
5035
- :param collection_name: The name of the collection to consume within the database. If you do not specify a collection, Lambda consumes all collections.
5036
- :param database_name: The name of the database to consume within the DocumentDB cluster.
5037
- :param full_document: Determines what DocumentDB sends to your event stream during document update operations. If set to UpdateLookup, DocumentDB sends a delta describing the changes, along with a copy of the entire document. Otherwise, DocumentDB sends only a partial document that contains the changes.
5107
+ :param collection_name: The collection name to connect to.
5108
+ :param database_name: The database name to connect to.
5109
+ :param full_document: Include full document in change stream response. The default option will only send the changes made to documents to Lambda. If you want the complete document sent to Lambda, set this to UpdateLookup.
5038
5110
 
5039
5111
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-documentdbeventsourceconfig.html
5040
5112
  :exampleMetadata: fixture=_generated
@@ -5066,9 +5138,7 @@ class CfnEventSourceMapping(
5066
5138
 
5067
5139
  @builtins.property
5068
5140
  def collection_name(self) -> typing.Optional[builtins.str]:
5069
- '''The name of the collection to consume within the database.
5070
-
5071
- If you do not specify a collection, Lambda consumes all collections.
5141
+ '''The collection name to connect to.
5072
5142
 
5073
5143
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-documentdbeventsourceconfig.html#cfn-lambda-eventsourcemapping-documentdbeventsourceconfig-collectionname
5074
5144
  '''
@@ -5077,7 +5147,7 @@ class CfnEventSourceMapping(
5077
5147
 
5078
5148
  @builtins.property
5079
5149
  def database_name(self) -> typing.Optional[builtins.str]:
5080
- '''The name of the database to consume within the DocumentDB cluster.
5150
+ '''The database name to connect to.
5081
5151
 
5082
5152
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-documentdbeventsourceconfig.html#cfn-lambda-eventsourcemapping-documentdbeventsourceconfig-databasename
5083
5153
  '''
@@ -5086,9 +5156,9 @@ class CfnEventSourceMapping(
5086
5156
 
5087
5157
  @builtins.property
5088
5158
  def full_document(self) -> typing.Optional[builtins.str]:
5089
- '''Determines what DocumentDB sends to your event stream during document update operations.
5159
+ '''Include full document in change stream response.
5090
5160
 
5091
- If set to UpdateLookup, DocumentDB sends a delta describing the changes, along with a copy of the entire document. Otherwise, DocumentDB sends only a partial document that contains the changes.
5161
+ The default option will only send the changes made to documents to Lambda. If you want the complete document sent to Lambda, set this to UpdateLookup.
5092
5162
 
5093
5163
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-documentdbeventsourceconfig.html#cfn-lambda-eventsourcemapping-documentdbeventsourceconfig-fulldocument
5094
5164
  '''
@@ -5117,9 +5187,9 @@ class CfnEventSourceMapping(
5117
5187
  *,
5118
5188
  kafka_bootstrap_servers: typing.Optional[typing.Sequence[builtins.str]] = None,
5119
5189
  ) -> None:
5120
- '''The list of bootstrap servers for your Kafka brokers in the following format: ``"KafkaBootstrapServers": ["abc.xyz.com:xxxx","abc2.xyz.com:xxxx"]`` .
5190
+ '''The endpoints used by AWS Lambda to access a self-managed event source.
5121
5191
 
5122
- :param kafka_bootstrap_servers: The list of bootstrap servers for your Kafka brokers in the following format: ``"KafkaBootstrapServers": ["abc.xyz.com:xxxx","abc2.xyz.com:xxxx"]`` .
5192
+ :param kafka_bootstrap_servers: A list of Kafka server endpoints.
5123
5193
 
5124
5194
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-endpoints.html
5125
5195
  :exampleMetadata: fixture=_generated
@@ -5143,7 +5213,7 @@ class CfnEventSourceMapping(
5143
5213
 
5144
5214
  @builtins.property
5145
5215
  def kafka_bootstrap_servers(self) -> typing.Optional[typing.List[builtins.str]]:
5146
- '''The list of bootstrap servers for your Kafka brokers in the following format: ``"KafkaBootstrapServers": ["abc.xyz.com:xxxx","abc2.xyz.com:xxxx"]`` .
5216
+ '''A list of Kafka server endpoints.
5147
5217
 
5148
5218
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-endpoints.html#cfn-lambda-eventsourcemapping-endpoints-kafkabootstrapservers
5149
5219
  '''
@@ -5172,9 +5242,9 @@ class CfnEventSourceMapping(
5172
5242
  *,
5173
5243
  filters: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnEventSourceMapping.FilterProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
5174
5244
  ) -> None:
5175
- '''An object that contains the filters for an event source.
5245
+ '''The filter criteria to control event filtering.
5176
5246
 
5177
- :param filters: A list of filters.
5247
+ :param filters: List of filters of this FilterCriteria.
5178
5248
 
5179
5249
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-filtercriteria.html
5180
5250
  :exampleMetadata: fixture=_generated
@@ -5202,7 +5272,7 @@ class CfnEventSourceMapping(
5202
5272
  def filters(
5203
5273
  self,
5204
5274
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnEventSourceMapping.FilterProperty"]]]]:
5205
- '''A list of filters.
5275
+ '''List of filters of this FilterCriteria.
5206
5276
 
5207
5277
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-filtercriteria.html#cfn-lambda-eventsourcemapping-filtercriteria-filters
5208
5278
  '''
@@ -5227,9 +5297,9 @@ class CfnEventSourceMapping(
5227
5297
  )
5228
5298
  class FilterProperty:
5229
5299
  def __init__(self, *, pattern: typing.Optional[builtins.str] = None) -> None:
5230
- '''A structure within a ``FilterCriteria`` object that defines an event filtering pattern.
5300
+ '''The filter object that defines parameters for ESM filtering.
5231
5301
 
5232
- :param pattern: A filter pattern. For more information on the syntax of a filter pattern, see `Filter rule syntax <https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html#filtering-syntax>`_ .
5302
+ :param pattern: The filter pattern that defines which events should be passed for invocations.
5233
5303
 
5234
5304
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-filter.html
5235
5305
  :exampleMetadata: fixture=_generated
@@ -5253,9 +5323,7 @@ class CfnEventSourceMapping(
5253
5323
 
5254
5324
  @builtins.property
5255
5325
  def pattern(self) -> typing.Optional[builtins.str]:
5256
- '''A filter pattern.
5257
-
5258
- For more information on the syntax of a filter pattern, see `Filter rule syntax <https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html#filtering-syntax>`_ .
5326
+ '''The filter pattern that defines which events should be passed for invocations.
5259
5327
 
5260
5328
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-filter.html#cfn-lambda-eventsourcemapping-filter-pattern
5261
5329
  '''
@@ -5284,9 +5352,9 @@ class CfnEventSourceMapping(
5284
5352
  *,
5285
5353
  destination: typing.Optional[builtins.str] = None,
5286
5354
  ) -> None:
5287
- '''A destination for events that failed processing.
5355
+ '''A destination for records of invocations that failed processing.
5288
5356
 
5289
- :param destination: The Amazon Resource Name (ARN) of the destination resource. To retain records of `asynchronous invocations <https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#invocation-async-destinations>`_ , you can configure an Amazon SNS topic, Amazon SQS queue, Lambda function, or Amazon EventBridge event bus as the destination. To retain records of failed invocations from `Kinesis and DynamoDB event sources <https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventsourcemapping.html#event-source-mapping-destinations>`_ , you can configure an Amazon SNS topic or Amazon SQS queue as the destination. To retain records of failed invocations from `self-managed Kafka <https://docs.aws.amazon.com/lambda/latest/dg/with-kafka.html#services-smaa-onfailure-destination>`_ or `Amazon MSK <https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#services-msk-onfailure-destination>`_ , you can configure an Amazon SNS topic, Amazon SQS queue, or Amazon S3 bucket as the destination.
5357
+ :param destination: The Amazon Resource Name (ARN) of the destination resource.
5290
5358
 
5291
5359
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-onfailure.html
5292
5360
  :exampleMetadata: fixture=_generated
@@ -5312,12 +5380,6 @@ class CfnEventSourceMapping(
5312
5380
  def destination(self) -> typing.Optional[builtins.str]:
5313
5381
  '''The Amazon Resource Name (ARN) of the destination resource.
5314
5382
 
5315
- To retain records of `asynchronous invocations <https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#invocation-async-destinations>`_ , you can configure an Amazon SNS topic, Amazon SQS queue, Lambda function, or Amazon EventBridge event bus as the destination.
5316
-
5317
- To retain records of failed invocations from `Kinesis and DynamoDB event sources <https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventsourcemapping.html#event-source-mapping-destinations>`_ , you can configure an Amazon SNS topic or Amazon SQS queue as the destination.
5318
-
5319
- To retain records of failed invocations from `self-managed Kafka <https://docs.aws.amazon.com/lambda/latest/dg/with-kafka.html#services-smaa-onfailure-destination>`_ or `Amazon MSK <https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#services-msk-onfailure-destination>`_ , you can configure an Amazon SNS topic, Amazon SQS queue, or Amazon S3 bucket as the destination.
5320
-
5321
5383
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-onfailure.html#cfn-lambda-eventsourcemapping-onfailure-destination
5322
5384
  '''
5323
5385
  result = self._values.get("destination")
@@ -5345,11 +5407,9 @@ class CfnEventSourceMapping(
5345
5407
  *,
5346
5408
  maximum_concurrency: typing.Optional[jsii.Number] = None,
5347
5409
  ) -> None:
5348
- '''(Amazon SQS only) The scaling configuration for the event source.
5349
-
5350
- To remove the configuration, pass an empty value.
5410
+ '''The scaling configuration for the event source.
5351
5411
 
5352
- :param maximum_concurrency: Limits the number of concurrent instances that the Amazon SQS event source can invoke.
5412
+ :param maximum_concurrency: The maximum number of concurrent functions that an event source can invoke.
5353
5413
 
5354
5414
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-scalingconfig.html
5355
5415
  :exampleMetadata: fixture=_generated
@@ -5373,7 +5433,7 @@ class CfnEventSourceMapping(
5373
5433
 
5374
5434
  @builtins.property
5375
5435
  def maximum_concurrency(self) -> typing.Optional[jsii.Number]:
5376
- '''Limits the number of concurrent instances that the Amazon SQS event source can invoke.
5436
+ '''The maximum number of concurrent functions that an event source can invoke.
5377
5437
 
5378
5438
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-scalingconfig.html#cfn-lambda-eventsourcemapping-scalingconfig-maximumconcurrency
5379
5439
  '''
@@ -5402,9 +5462,9 @@ class CfnEventSourceMapping(
5402
5462
  *,
5403
5463
  endpoints: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnEventSourceMapping.EndpointsProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
5404
5464
  ) -> None:
5405
- '''The self-managed Apache Kafka cluster for your event source.
5465
+ '''The configuration used by AWS Lambda to access a self-managed event source.
5406
5466
 
5407
- :param endpoints: The list of bootstrap servers for your Kafka brokers in the following format: ``"KafkaBootstrapServers": ["abc.xyz.com:xxxx","abc2.xyz.com:xxxx"]`` .
5467
+ :param endpoints: The endpoints used by AWS Lambda to access a self-managed event source.
5408
5468
 
5409
5469
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-selfmanagedeventsource.html
5410
5470
  :exampleMetadata: fixture=_generated
@@ -5432,7 +5492,7 @@ class CfnEventSourceMapping(
5432
5492
  def endpoints(
5433
5493
  self,
5434
5494
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnEventSourceMapping.EndpointsProperty"]]:
5435
- '''The list of bootstrap servers for your Kafka brokers in the following format: ``"KafkaBootstrapServers": ["abc.xyz.com:xxxx","abc2.xyz.com:xxxx"]`` .
5495
+ '''The endpoints used by AWS Lambda to access a self-managed event source.
5436
5496
 
5437
5497
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-selfmanagedeventsource.html#cfn-lambda-eventsourcemapping-selfmanagedeventsource-endpoints
5438
5498
  '''
@@ -5461,9 +5521,9 @@ class CfnEventSourceMapping(
5461
5521
  *,
5462
5522
  consumer_group_id: typing.Optional[builtins.str] = None,
5463
5523
  ) -> None:
5464
- '''Specific configuration settings for a self-managed Apache Kafka event source.
5524
+ '''Specific configuration settings for a Self-Managed Apache Kafka event source.
5465
5525
 
5466
- :param consumer_group_id: The identifier for the Kafka consumer group to join. The consumer group ID must be unique among all your Kafka event sources. After creating a Kafka event source mapping with the consumer group ID specified, you cannot update this value. For more information, see `Customizable consumer group ID <https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#services-msk-consumer-group-id>`_ .
5526
+ :param consumer_group_id: The identifier for the Kafka Consumer Group to join.
5467
5527
 
5468
5528
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-selfmanagedkafkaeventsourceconfig.html
5469
5529
  :exampleMetadata: fixture=_generated
@@ -5487,9 +5547,7 @@ class CfnEventSourceMapping(
5487
5547
 
5488
5548
  @builtins.property
5489
5549
  def consumer_group_id(self) -> typing.Optional[builtins.str]:
5490
- '''The identifier for the Kafka consumer group to join.
5491
-
5492
- The consumer group ID must be unique among all your Kafka event sources. After creating a Kafka event source mapping with the consumer group ID specified, you cannot update this value. For more information, see `Customizable consumer group ID <https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#services-msk-consumer-group-id>`_ .
5550
+ '''The identifier for the Kafka Consumer Group to join.
5493
5551
 
5494
5552
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-selfmanagedkafkaeventsourceconfig.html#cfn-lambda-eventsourcemapping-selfmanagedkafkaeventsourceconfig-consumergroupid
5495
5553
  '''
@@ -5519,10 +5577,10 @@ class CfnEventSourceMapping(
5519
5577
  type: typing.Optional[builtins.str] = None,
5520
5578
  uri: typing.Optional[builtins.str] = None,
5521
5579
  ) -> None:
5522
- '''An array of the authentication protocol, VPC components, or virtual host to secure and define your event source.
5580
+ '''The configuration used by AWS Lambda to access event source.
5523
5581
 
5524
- :param type: The type of authentication protocol, VPC components, or virtual host for your event source. For example: ``"Type":"SASL_SCRAM_512_AUTH"`` . - ``BASIC_AUTH`` – (Amazon MQ) The AWS Secrets Manager secret that stores your broker credentials. - ``BASIC_AUTH`` – (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL/PLAIN authentication of your Apache Kafka brokers. - ``VPC_SUBNET`` – (Self-managed Apache Kafka) The subnets associated with your VPC. Lambda connects to these subnets to fetch data from your self-managed Apache Kafka cluster. - ``VPC_SECURITY_GROUP`` – (Self-managed Apache Kafka) The VPC security group used to manage access to your self-managed Apache Kafka brokers. - ``SASL_SCRAM_256_AUTH`` – (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL SCRAM-256 authentication of your self-managed Apache Kafka brokers. - ``SASL_SCRAM_512_AUTH`` – (Amazon MSK, Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL SCRAM-512 authentication of your self-managed Apache Kafka brokers. - ``VIRTUAL_HOST`` –- (RabbitMQ) The name of the virtual host in your RabbitMQ broker. Lambda uses this RabbitMQ host as the event source. This property cannot be specified in an UpdateEventSourceMapping API call. - ``CLIENT_CERTIFICATE_TLS_AUTH`` – (Amazon MSK, self-managed Apache Kafka) The Secrets Manager ARN of your secret key containing the certificate chain (X.509 PEM), private key (PKCS#8 PEM), and private key password (optional) used for mutual TLS authentication of your MSK/Apache Kafka brokers. - ``SERVER_ROOT_CA_CERTIFICATE`` – (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key containing the root CA certificate (X.509 PEM) used for TLS encryption of your Apache Kafka brokers.
5525
- :param uri: The value for your chosen configuration in ``Type`` . For example: ``"URI": "arn:aws:secretsmanager:us-east-1:01234567890:secret:MyBrokerSecretName"`` .
5582
+ :param type: The type of source access configuration.
5583
+ :param uri: The URI for the source access configuration resource.
5526
5584
 
5527
5585
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-sourceaccessconfiguration.html
5528
5586
  :exampleMetadata: fixture=_generated
@@ -5550,17 +5608,7 @@ class CfnEventSourceMapping(
5550
5608
 
5551
5609
  @builtins.property
5552
5610
  def type(self) -> typing.Optional[builtins.str]:
5553
- '''The type of authentication protocol, VPC components, or virtual host for your event source. For example: ``"Type":"SASL_SCRAM_512_AUTH"`` .
5554
-
5555
- - ``BASIC_AUTH`` – (Amazon MQ) The AWS Secrets Manager secret that stores your broker credentials.
5556
- - ``BASIC_AUTH`` – (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL/PLAIN authentication of your Apache Kafka brokers.
5557
- - ``VPC_SUBNET`` – (Self-managed Apache Kafka) The subnets associated with your VPC. Lambda connects to these subnets to fetch data from your self-managed Apache Kafka cluster.
5558
- - ``VPC_SECURITY_GROUP`` – (Self-managed Apache Kafka) The VPC security group used to manage access to your self-managed Apache Kafka brokers.
5559
- - ``SASL_SCRAM_256_AUTH`` – (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL SCRAM-256 authentication of your self-managed Apache Kafka brokers.
5560
- - ``SASL_SCRAM_512_AUTH`` – (Amazon MSK, Self-managed Apache Kafka) The Secrets Manager ARN of your secret key used for SASL SCRAM-512 authentication of your self-managed Apache Kafka brokers.
5561
- - ``VIRTUAL_HOST`` –- (RabbitMQ) The name of the virtual host in your RabbitMQ broker. Lambda uses this RabbitMQ host as the event source. This property cannot be specified in an UpdateEventSourceMapping API call.
5562
- - ``CLIENT_CERTIFICATE_TLS_AUTH`` – (Amazon MSK, self-managed Apache Kafka) The Secrets Manager ARN of your secret key containing the certificate chain (X.509 PEM), private key (PKCS#8 PEM), and private key password (optional) used for mutual TLS authentication of your MSK/Apache Kafka brokers.
5563
- - ``SERVER_ROOT_CA_CERTIFICATE`` – (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key containing the root CA certificate (X.509 PEM) used for TLS encryption of your Apache Kafka brokers.
5611
+ '''The type of source access configuration.
5564
5612
 
5565
5613
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-sourceaccessconfiguration.html#cfn-lambda-eventsourcemapping-sourceaccessconfiguration-type
5566
5614
  '''
@@ -5569,9 +5617,7 @@ class CfnEventSourceMapping(
5569
5617
 
5570
5618
  @builtins.property
5571
5619
  def uri(self) -> typing.Optional[builtins.str]:
5572
- '''The value for your chosen configuration in ``Type`` .
5573
-
5574
- For example: ``"URI": "arn:aws:secretsmanager:us-east-1:01234567890:secret:MyBrokerSecretName"`` .
5620
+ '''The URI for the source access configuration resource.
5575
5621
 
5576
5622
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-sourceaccessconfiguration.html#cfn-lambda-eventsourcemapping-sourceaccessconfiguration-uri
5577
5623
  '''
@@ -5604,6 +5650,7 @@ class CfnEventSourceMapping(
5604
5650
  "event_source_arn": "eventSourceArn",
5605
5651
  "filter_criteria": "filterCriteria",
5606
5652
  "function_response_types": "functionResponseTypes",
5653
+ "kms_key_arn": "kmsKeyArn",
5607
5654
  "maximum_batching_window_in_seconds": "maximumBatchingWindowInSeconds",
5608
5655
  "maximum_record_age_in_seconds": "maximumRecordAgeInSeconds",
5609
5656
  "maximum_retry_attempts": "maximumRetryAttempts",
@@ -5633,6 +5680,7 @@ class CfnEventSourceMappingProps:
5633
5680
  event_source_arn: typing.Optional[builtins.str] = None,
5634
5681
  filter_criteria: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnEventSourceMapping.FilterCriteriaProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
5635
5682
  function_response_types: typing.Optional[typing.Sequence[builtins.str]] = None,
5683
+ kms_key_arn: typing.Optional[builtins.str] = None,
5636
5684
  maximum_batching_window_in_seconds: typing.Optional[jsii.Number] = None,
5637
5685
  maximum_record_age_in_seconds: typing.Optional[jsii.Number] = None,
5638
5686
  maximum_retry_attempts: typing.Optional[jsii.Number] = None,
@@ -5649,29 +5697,30 @@ class CfnEventSourceMappingProps:
5649
5697
  ) -> None:
5650
5698
  '''Properties for defining a ``CfnEventSourceMapping``.
5651
5699
 
5652
- :param function_name: The name or ARN of the Lambda function. **Name formats** - *Function name* – ``MyFunction`` . - *Function ARN* – ``arn:aws:lambda:us-west-2:123456789012:function:MyFunction`` . - *Version or Alias ARN* – ``arn:aws:lambda:us-west-2:123456789012:function:MyFunction:PROD`` . - *Partial ARN* – ``123456789012:function:MyFunction`` . The length constraint applies only to the full ARN. If you specify only the function name, it's limited to 64 characters in length.
5653
- :param amazon_managed_kafka_event_source_config: Specific configuration settings for an Amazon Managed Streaming for Apache Kafka (Amazon MSK) event source.
5654
- :param batch_size: The maximum number of records in each batch that Lambda pulls from your stream or queue and sends to your function. Lambda passes all of the records in the batch to the function in a single call, up to the payload limit for synchronous invocation (6 MB). - *Amazon Kinesis* – Default 100. Max 10,000. - *Amazon DynamoDB Streams* – Default 100. Max 10,000. - *Amazon Simple Queue Service* – Default 10. For standard queues the max is 10,000. For FIFO queues the max is 10. - *Amazon Managed Streaming for Apache Kafka* – Default 100. Max 10,000. - *Self-managed Apache Kafka* – Default 100. Max 10,000. - *Amazon MQ (ActiveMQ and RabbitMQ)* – Default 100. Max 10,000. - *DocumentDB* – Default 100. Max 10,000.
5655
- :param bisect_batch_on_function_error: (Kinesis and DynamoDB Streams only) If the function returns an error, split the batch in two and retry. The default value is false.
5656
- :param destination_config: (Kinesis, DynamoDB Streams, Amazon MSK, and self-managed Apache Kafka event sources only) A configuration object that specifies the destination of an event after Lambda processes it.
5657
- :param document_db_event_source_config: Specific configuration settings for a DocumentDB event source.
5658
- :param enabled: When true, the event source mapping is active. When false, Lambda pauses polling and invocation. Default: True
5659
- :param event_source_arn: The Amazon Resource Name (ARN) of the event source. - *Amazon Kinesis* – The ARN of the data stream or a stream consumer. - *Amazon DynamoDB Streams* – The ARN of the stream. - *Amazon Simple Queue Service* – The ARN of the queue. - *Amazon Managed Streaming for Apache Kafka* – The ARN of the cluster or the ARN of the VPC connection (for `cross-account event source mappings <https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#msk-multi-vpc>`_ ). - *Amazon MQ* – The ARN of the broker. - *Amazon DocumentDB* – The ARN of the DocumentDB change stream.
5660
- :param filter_criteria: An object that defines the filter criteria that determine whether Lambda should process an event. For more information, see `Lambda event filtering <https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html>`_ .
5661
- :param function_response_types: (Streams and SQS) A list of current response type enums applied to the event source mapping. Valid Values: ``ReportBatchItemFailures``
5662
- :param maximum_batching_window_in_seconds: The maximum amount of time, in seconds, that Lambda spends gathering records before invoking the function. *Default ( Kinesis , DynamoDB , Amazon SQS event sources)* : 0 *Default ( Amazon MSK , Kafka, Amazon MQ , Amazon DocumentDB event sources)* : 500 ms *Related setting:* For Amazon SQS event sources, when you set ``BatchSize`` to a value greater than 10, you must set ``MaximumBatchingWindowInSeconds`` to at least 1.
5663
- :param maximum_record_age_in_seconds: (Kinesis and DynamoDB Streams only) Discard records older than the specified age. The default value is -1, which sets the maximum age to infinite. When the value is set to infinite, Lambda never discards old records. .. epigraph:: The minimum valid value for maximum record age is 60s. Although values less than 60 and greater than -1 fall within the parameter's absolute range, they are not allowed
5664
- :param maximum_retry_attempts: (Kinesis and DynamoDB Streams only) Discard records after the specified number of retries. The default value is -1, which sets the maximum number of retries to infinite. When MaximumRetryAttempts is infinite, Lambda retries failed records until the record expires in the event source.
5665
- :param parallelization_factor: (Kinesis and DynamoDB Streams only) The number of batches to process concurrently from each shard. The default value is 1.
5666
- :param queues: (Amazon MQ) The name of the Amazon MQ broker destination queue to consume.
5667
- :param scaling_config: (Amazon SQS only) The scaling configuration for the event source. For more information, see `Configuring maximum concurrency for Amazon SQS event sources <https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html#events-sqs-max-concurrency>`_ .
5668
- :param self_managed_event_source: The self-managed Apache Kafka cluster for your event source.
5669
- :param self_managed_kafka_event_source_config: Specific configuration settings for a self-managed Apache Kafka event source.
5670
- :param source_access_configurations: An array of the authentication protocol, VPC components, or virtual host to secure and define your event source.
5671
- :param starting_position: The position in a stream from which to start reading. Required for Amazon Kinesis and Amazon DynamoDB. - *LATEST* - Read only new records. - *TRIM_HORIZON* - Process all available records. - *AT_TIMESTAMP* - Specify a time from which to start reading records.
5672
- :param starting_position_timestamp: With ``StartingPosition`` set to ``AT_TIMESTAMP`` , the time from which to start reading, in Unix time seconds. ``StartingPositionTimestamp`` cannot be in the future.
5673
- :param topics: The name of the Kafka topic.
5674
- :param tumbling_window_in_seconds: (Kinesis and DynamoDB Streams only) The duration in seconds of a processing window for DynamoDB and Kinesis Streams event sources. A value of 0 seconds indicates no tumbling window.
5700
+ :param function_name: The name of the Lambda function.
5701
+ :param amazon_managed_kafka_event_source_config: Specific configuration settings for an MSK event source.
5702
+ :param batch_size: The maximum number of items to retrieve in a single batch.
5703
+ :param bisect_batch_on_function_error: (Streams) If the function returns an error, split the batch in two and retry.
5704
+ :param destination_config: A configuration object that specifies the destination of an event after Lambda processes it.
5705
+ :param document_db_event_source_config: Document db event source config.
5706
+ :param enabled: Disables the event source mapping to pause polling and invocation.
5707
+ :param event_source_arn: The Amazon Resource Name (ARN) of the event source.
5708
+ :param filter_criteria: The filter criteria to control event filtering.
5709
+ :param function_response_types: (Streams) A list of response types supported by the function.
5710
+ :param kms_key_arn: The Amazon Resource Name (ARN) of the KMS key.
5711
+ :param maximum_batching_window_in_seconds: (Streams) The maximum amount of time to gather records before invoking the function, in seconds.
5712
+ :param maximum_record_age_in_seconds: (Streams) The maximum age of a record that Lambda sends to a function for processing.
5713
+ :param maximum_retry_attempts: (Streams) The maximum number of times to retry when the function returns an error.
5714
+ :param parallelization_factor: (Streams) The number of batches to process from each shard concurrently.
5715
+ :param queues: (ActiveMQ) A list of ActiveMQ queues.
5716
+ :param scaling_config: The scaling configuration for the event source.
5717
+ :param self_managed_event_source: The configuration used by AWS Lambda to access a self-managed event source.
5718
+ :param self_managed_kafka_event_source_config: Specific configuration settings for a Self-Managed Apache Kafka event source.
5719
+ :param source_access_configurations: A list of SourceAccessConfiguration.
5720
+ :param starting_position: The position in a stream from which to start reading. Required for Amazon Kinesis and Amazon DynamoDB Streams sources.
5721
+ :param starting_position_timestamp: With StartingPosition set to AT_TIMESTAMP, the time from which to start reading, in Unix time seconds.
5722
+ :param topics: (Kafka) A list of Kafka topics.
5723
+ :param tumbling_window_in_seconds: (Streams) Tumbling window (non-overlapping time window) duration to perform aggregations.
5675
5724
 
5676
5725
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html
5677
5726
  :exampleMetadata: fixture=_generated
@@ -5709,6 +5758,7 @@ class CfnEventSourceMappingProps:
5709
5758
  )]
5710
5759
  ),
5711
5760
  function_response_types=["functionResponseTypes"],
5761
+ kms_key_arn="kmsKeyArn",
5712
5762
  maximum_batching_window_in_seconds=123,
5713
5763
  maximum_record_age_in_seconds=123,
5714
5764
  maximum_retry_attempts=123,
@@ -5747,6 +5797,7 @@ class CfnEventSourceMappingProps:
5747
5797
  check_type(argname="argument event_source_arn", value=event_source_arn, expected_type=type_hints["event_source_arn"])
5748
5798
  check_type(argname="argument filter_criteria", value=filter_criteria, expected_type=type_hints["filter_criteria"])
5749
5799
  check_type(argname="argument function_response_types", value=function_response_types, expected_type=type_hints["function_response_types"])
5800
+ check_type(argname="argument kms_key_arn", value=kms_key_arn, expected_type=type_hints["kms_key_arn"])
5750
5801
  check_type(argname="argument maximum_batching_window_in_seconds", value=maximum_batching_window_in_seconds, expected_type=type_hints["maximum_batching_window_in_seconds"])
5751
5802
  check_type(argname="argument maximum_record_age_in_seconds", value=maximum_record_age_in_seconds, expected_type=type_hints["maximum_record_age_in_seconds"])
5752
5803
  check_type(argname="argument maximum_retry_attempts", value=maximum_retry_attempts, expected_type=type_hints["maximum_retry_attempts"])
@@ -5781,6 +5832,8 @@ class CfnEventSourceMappingProps:
5781
5832
  self._values["filter_criteria"] = filter_criteria
5782
5833
  if function_response_types is not None:
5783
5834
  self._values["function_response_types"] = function_response_types
5835
+ if kms_key_arn is not None:
5836
+ self._values["kms_key_arn"] = kms_key_arn
5784
5837
  if maximum_batching_window_in_seconds is not None:
5785
5838
  self._values["maximum_batching_window_in_seconds"] = maximum_batching_window_in_seconds
5786
5839
  if maximum_record_age_in_seconds is not None:
@@ -5810,15 +5863,7 @@ class CfnEventSourceMappingProps:
5810
5863
 
5811
5864
  @builtins.property
5812
5865
  def function_name(self) -> builtins.str:
5813
- '''The name or ARN of the Lambda function.
5814
-
5815
- **Name formats** - *Function name* – ``MyFunction`` .
5816
-
5817
- - *Function ARN* – ``arn:aws:lambda:us-west-2:123456789012:function:MyFunction`` .
5818
- - *Version or Alias ARN* – ``arn:aws:lambda:us-west-2:123456789012:function:MyFunction:PROD`` .
5819
- - *Partial ARN* – ``123456789012:function:MyFunction`` .
5820
-
5821
- The length constraint applies only to the full ARN. If you specify only the function name, it's limited to 64 characters in length.
5866
+ '''The name of the Lambda function.
5822
5867
 
5823
5868
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-functionname
5824
5869
  '''
@@ -5830,7 +5875,7 @@ class CfnEventSourceMappingProps:
5830
5875
  def amazon_managed_kafka_event_source_config(
5831
5876
  self,
5832
5877
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnEventSourceMapping.AmazonManagedKafkaEventSourceConfigProperty]]:
5833
- '''Specific configuration settings for an Amazon Managed Streaming for Apache Kafka (Amazon MSK) event source.
5878
+ '''Specific configuration settings for an MSK event source.
5834
5879
 
5835
5880
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-amazonmanagedkafkaeventsourceconfig
5836
5881
  '''
@@ -5839,17 +5884,7 @@ class CfnEventSourceMappingProps:
5839
5884
 
5840
5885
  @builtins.property
5841
5886
  def batch_size(self) -> typing.Optional[jsii.Number]:
5842
- '''The maximum number of records in each batch that Lambda pulls from your stream or queue and sends to your function.
5843
-
5844
- Lambda passes all of the records in the batch to the function in a single call, up to the payload limit for synchronous invocation (6 MB).
5845
-
5846
- - *Amazon Kinesis* – Default 100. Max 10,000.
5847
- - *Amazon DynamoDB Streams* – Default 100. Max 10,000.
5848
- - *Amazon Simple Queue Service* – Default 10. For standard queues the max is 10,000. For FIFO queues the max is 10.
5849
- - *Amazon Managed Streaming for Apache Kafka* – Default 100. Max 10,000.
5850
- - *Self-managed Apache Kafka* – Default 100. Max 10,000.
5851
- - *Amazon MQ (ActiveMQ and RabbitMQ)* – Default 100. Max 10,000.
5852
- - *DocumentDB* – Default 100. Max 10,000.
5887
+ '''The maximum number of items to retrieve in a single batch.
5853
5888
 
5854
5889
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-batchsize
5855
5890
  '''
@@ -5860,9 +5895,7 @@ class CfnEventSourceMappingProps:
5860
5895
  def bisect_batch_on_function_error(
5861
5896
  self,
5862
5897
  ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
5863
- '''(Kinesis and DynamoDB Streams only) If the function returns an error, split the batch in two and retry.
5864
-
5865
- The default value is false.
5898
+ '''(Streams) If the function returns an error, split the batch in two and retry.
5866
5899
 
5867
5900
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-bisectbatchonfunctionerror
5868
5901
  '''
@@ -5873,7 +5906,7 @@ class CfnEventSourceMappingProps:
5873
5906
  def destination_config(
5874
5907
  self,
5875
5908
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnEventSourceMapping.DestinationConfigProperty]]:
5876
- '''(Kinesis, DynamoDB Streams, Amazon MSK, and self-managed Apache Kafka event sources only) A configuration object that specifies the destination of an event after Lambda processes it.
5909
+ '''A configuration object that specifies the destination of an event after Lambda processes it.
5877
5910
 
5878
5911
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-destinationconfig
5879
5912
  '''
@@ -5884,7 +5917,7 @@ class CfnEventSourceMappingProps:
5884
5917
  def document_db_event_source_config(
5885
5918
  self,
5886
5919
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnEventSourceMapping.DocumentDBEventSourceConfigProperty]]:
5887
- '''Specific configuration settings for a DocumentDB event source.
5920
+ '''Document db event source config.
5888
5921
 
5889
5922
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-documentdbeventsourceconfig
5890
5923
  '''
@@ -5895,9 +5928,7 @@ class CfnEventSourceMappingProps:
5895
5928
  def enabled(
5896
5929
  self,
5897
5930
  ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
5898
- '''When true, the event source mapping is active. When false, Lambda pauses polling and invocation.
5899
-
5900
- Default: True
5931
+ '''Disables the event source mapping to pause polling and invocation.
5901
5932
 
5902
5933
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-enabled
5903
5934
  '''
@@ -5908,13 +5939,6 @@ class CfnEventSourceMappingProps:
5908
5939
  def event_source_arn(self) -> typing.Optional[builtins.str]:
5909
5940
  '''The Amazon Resource Name (ARN) of the event source.
5910
5941
 
5911
- - *Amazon Kinesis* – The ARN of the data stream or a stream consumer.
5912
- - *Amazon DynamoDB Streams* – The ARN of the stream.
5913
- - *Amazon Simple Queue Service* – The ARN of the queue.
5914
- - *Amazon Managed Streaming for Apache Kafka* – The ARN of the cluster or the ARN of the VPC connection (for `cross-account event source mappings <https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#msk-multi-vpc>`_ ).
5915
- - *Amazon MQ* – The ARN of the broker.
5916
- - *Amazon DocumentDB* – The ARN of the DocumentDB change stream.
5917
-
5918
5942
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-eventsourcearn
5919
5943
  '''
5920
5944
  result = self._values.get("event_source_arn")
@@ -5924,9 +5948,7 @@ class CfnEventSourceMappingProps:
5924
5948
  def filter_criteria(
5925
5949
  self,
5926
5950
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnEventSourceMapping.FilterCriteriaProperty]]:
5927
- '''An object that defines the filter criteria that determine whether Lambda should process an event.
5928
-
5929
- For more information, see `Lambda event filtering <https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html>`_ .
5951
+ '''The filter criteria to control event filtering.
5930
5952
 
5931
5953
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-filtercriteria
5932
5954
  '''
@@ -5935,9 +5957,7 @@ class CfnEventSourceMappingProps:
5935
5957
 
5936
5958
  @builtins.property
5937
5959
  def function_response_types(self) -> typing.Optional[typing.List[builtins.str]]:
5938
- '''(Streams and SQS) A list of current response type enums applied to the event source mapping.
5939
-
5940
- Valid Values: ``ReportBatchItemFailures``
5960
+ '''(Streams) A list of response types supported by the function.
5941
5961
 
5942
5962
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-functionresponsetypes
5943
5963
  '''
@@ -5945,14 +5965,17 @@ class CfnEventSourceMappingProps:
5945
5965
  return typing.cast(typing.Optional[typing.List[builtins.str]], result)
5946
5966
 
5947
5967
  @builtins.property
5948
- def maximum_batching_window_in_seconds(self) -> typing.Optional[jsii.Number]:
5949
- '''The maximum amount of time, in seconds, that Lambda spends gathering records before invoking the function.
5950
-
5951
- *Default ( Kinesis , DynamoDB , Amazon SQS event sources)* : 0
5968
+ def kms_key_arn(self) -> typing.Optional[builtins.str]:
5969
+ '''The Amazon Resource Name (ARN) of the KMS key.
5952
5970
 
5953
- *Default ( Amazon MSK , Kafka, Amazon MQ , Amazon DocumentDB event sources)* : 500 ms
5971
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-kmskeyarn
5972
+ '''
5973
+ result = self._values.get("kms_key_arn")
5974
+ return typing.cast(typing.Optional[builtins.str], result)
5954
5975
 
5955
- *Related setting:* For Amazon SQS event sources, when you set ``BatchSize`` to a value greater than 10, you must set ``MaximumBatchingWindowInSeconds`` to at least 1.
5976
+ @builtins.property
5977
+ def maximum_batching_window_in_seconds(self) -> typing.Optional[jsii.Number]:
5978
+ '''(Streams) The maximum amount of time to gather records before invoking the function, in seconds.
5956
5979
 
5957
5980
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-maximumbatchingwindowinseconds
5958
5981
  '''
@@ -5961,13 +5984,7 @@ class CfnEventSourceMappingProps:
5961
5984
 
5962
5985
  @builtins.property
5963
5986
  def maximum_record_age_in_seconds(self) -> typing.Optional[jsii.Number]:
5964
- '''(Kinesis and DynamoDB Streams only) Discard records older than the specified age.
5965
-
5966
- The default value is -1,
5967
- which sets the maximum age to infinite. When the value is set to infinite, Lambda never discards old records.
5968
- .. epigraph::
5969
-
5970
- The minimum valid value for maximum record age is 60s. Although values less than 60 and greater than -1 fall within the parameter's absolute range, they are not allowed
5987
+ '''(Streams) The maximum age of a record that Lambda sends to a function for processing.
5971
5988
 
5972
5989
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-maximumrecordageinseconds
5973
5990
  '''
@@ -5976,10 +5993,7 @@ class CfnEventSourceMappingProps:
5976
5993
 
5977
5994
  @builtins.property
5978
5995
  def maximum_retry_attempts(self) -> typing.Optional[jsii.Number]:
5979
- '''(Kinesis and DynamoDB Streams only) Discard records after the specified number of retries.
5980
-
5981
- The default value is -1,
5982
- which sets the maximum number of retries to infinite. When MaximumRetryAttempts is infinite, Lambda retries failed records until the record expires in the event source.
5996
+ '''(Streams) The maximum number of times to retry when the function returns an error.
5983
5997
 
5984
5998
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-maximumretryattempts
5985
5999
  '''
@@ -5988,9 +6002,7 @@ class CfnEventSourceMappingProps:
5988
6002
 
5989
6003
  @builtins.property
5990
6004
  def parallelization_factor(self) -> typing.Optional[jsii.Number]:
5991
- '''(Kinesis and DynamoDB Streams only) The number of batches to process concurrently from each shard.
5992
-
5993
- The default value is 1.
6005
+ '''(Streams) The number of batches to process from each shard concurrently.
5994
6006
 
5995
6007
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-parallelizationfactor
5996
6008
  '''
@@ -5999,7 +6011,7 @@ class CfnEventSourceMappingProps:
5999
6011
 
6000
6012
  @builtins.property
6001
6013
  def queues(self) -> typing.Optional[typing.List[builtins.str]]:
6002
- '''(Amazon MQ) The name of the Amazon MQ broker destination queue to consume.
6014
+ '''(ActiveMQ) A list of ActiveMQ queues.
6003
6015
 
6004
6016
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-queues
6005
6017
  '''
@@ -6010,9 +6022,7 @@ class CfnEventSourceMappingProps:
6010
6022
  def scaling_config(
6011
6023
  self,
6012
6024
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnEventSourceMapping.ScalingConfigProperty]]:
6013
- '''(Amazon SQS only) The scaling configuration for the event source.
6014
-
6015
- For more information, see `Configuring maximum concurrency for Amazon SQS event sources <https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html#events-sqs-max-concurrency>`_ .
6025
+ '''The scaling configuration for the event source.
6016
6026
 
6017
6027
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-scalingconfig
6018
6028
  '''
@@ -6023,7 +6033,7 @@ class CfnEventSourceMappingProps:
6023
6033
  def self_managed_event_source(
6024
6034
  self,
6025
6035
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnEventSourceMapping.SelfManagedEventSourceProperty]]:
6026
- '''The self-managed Apache Kafka cluster for your event source.
6036
+ '''The configuration used by AWS Lambda to access a self-managed event source.
6027
6037
 
6028
6038
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-selfmanagedeventsource
6029
6039
  '''
@@ -6034,7 +6044,7 @@ class CfnEventSourceMappingProps:
6034
6044
  def self_managed_kafka_event_source_config(
6035
6045
  self,
6036
6046
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnEventSourceMapping.SelfManagedKafkaEventSourceConfigProperty]]:
6037
- '''Specific configuration settings for a self-managed Apache Kafka event source.
6047
+ '''Specific configuration settings for a Self-Managed Apache Kafka event source.
6038
6048
 
6039
6049
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-selfmanagedkafkaeventsourceconfig
6040
6050
  '''
@@ -6045,7 +6055,7 @@ class CfnEventSourceMappingProps:
6045
6055
  def source_access_configurations(
6046
6056
  self,
6047
6057
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnEventSourceMapping.SourceAccessConfigurationProperty]]]]:
6048
- '''An array of the authentication protocol, VPC components, or virtual host to secure and define your event source.
6058
+ '''A list of SourceAccessConfiguration.
6049
6059
 
6050
6060
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-sourceaccessconfigurations
6051
6061
  '''
@@ -6054,11 +6064,9 @@ class CfnEventSourceMappingProps:
6054
6064
 
6055
6065
  @builtins.property
6056
6066
  def starting_position(self) -> typing.Optional[builtins.str]:
6057
- '''The position in a stream from which to start reading. Required for Amazon Kinesis and Amazon DynamoDB.
6067
+ '''The position in a stream from which to start reading.
6058
6068
 
6059
- - *LATEST* - Read only new records.
6060
- - *TRIM_HORIZON* - Process all available records.
6061
- - *AT_TIMESTAMP* - Specify a time from which to start reading records.
6069
+ Required for Amazon Kinesis and Amazon DynamoDB Streams sources.
6062
6070
 
6063
6071
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-startingposition
6064
6072
  '''
@@ -6067,9 +6075,7 @@ class CfnEventSourceMappingProps:
6067
6075
 
6068
6076
  @builtins.property
6069
6077
  def starting_position_timestamp(self) -> typing.Optional[jsii.Number]:
6070
- '''With ``StartingPosition`` set to ``AT_TIMESTAMP`` , the time from which to start reading, in Unix time seconds.
6071
-
6072
- ``StartingPositionTimestamp`` cannot be in the future.
6078
+ '''With StartingPosition set to AT_TIMESTAMP, the time from which to start reading, in Unix time seconds.
6073
6079
 
6074
6080
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-startingpositiontimestamp
6075
6081
  '''
@@ -6078,7 +6084,7 @@ class CfnEventSourceMappingProps:
6078
6084
 
6079
6085
  @builtins.property
6080
6086
  def topics(self) -> typing.Optional[typing.List[builtins.str]]:
6081
- '''The name of the Kafka topic.
6087
+ '''(Kafka) A list of Kafka topics.
6082
6088
 
6083
6089
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-topics
6084
6090
  '''
@@ -6087,9 +6093,7 @@ class CfnEventSourceMappingProps:
6087
6093
 
6088
6094
  @builtins.property
6089
6095
  def tumbling_window_in_seconds(self) -> typing.Optional[jsii.Number]:
6090
- '''(Kinesis and DynamoDB Streams only) The duration in seconds of a processing window for DynamoDB and Kinesis Streams event sources.
6091
-
6092
- A value of 0 seconds indicates no tumbling window.
6096
+ '''(Streams) Tumbling window (non-overlapping time window) duration to perform aggregations.
6093
6097
 
6094
6098
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html#cfn-lambda-eventsourcemapping-tumblingwindowinseconds
6095
6099
  '''
@@ -6184,6 +6188,7 @@ class CfnFunction(
6184
6188
  ),
6185
6189
  memory_size=123,
6186
6190
  package_type="packageType",
6191
+ recursive_loop="recursiveLoop",
6187
6192
  reserved_concurrent_executions=123,
6188
6193
  runtime="runtime",
6189
6194
  runtime_management_config=lambda.CfnFunction.RuntimeManagementConfigProperty(
@@ -6233,6 +6238,7 @@ class CfnFunction(
6233
6238
  logging_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnFunction.LoggingConfigProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
6234
6239
  memory_size: typing.Optional[jsii.Number] = None,
6235
6240
  package_type: typing.Optional[builtins.str] = None,
6241
+ recursive_loop: typing.Optional[builtins.str] = None,
6236
6242
  reserved_concurrent_executions: typing.Optional[jsii.Number] = None,
6237
6243
  runtime: typing.Optional[builtins.str] = None,
6238
6244
  runtime_management_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnFunction.RuntimeManagementConfigProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
@@ -6245,31 +6251,32 @@ class CfnFunction(
6245
6251
  '''
6246
6252
  :param scope: Scope in which this resource is defined.
6247
6253
  :param id: Construct identifier for this resource (unique in its scope).
6248
- :param code: The code for the function.
6254
+ :param code: The `deployment package <https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html>`_ for a Lambda function. To deploy a function defined as a container image, you specify the location of a container image in the Amazon ECR registry. For a .zip file deployment package, you can specify the location of an object in Amazon S3. For Node.js and Python functions, you can specify the function code inline in the template. Changes to a deployment package in Amazon S3 or a container image in ECR are not detected automatically during stack updates. To update the function code, change the object key or version in the template.
6249
6255
  :param role: The Amazon Resource Name (ARN) of the function's execution role.
6250
- :param architectures: The instruction set architecture that the function supports. Enter a string array with one of the valid values (arm64 or x86_64). The default value is ``x86_64`` .
6256
+ :param architectures: The instruction set architecture that the function supports. Enter a string array with one of the valid values (arm64 or x86_64). The default value is ``x86_64``.
6251
6257
  :param code_signing_config_arn: To enable code signing for this function, specify the ARN of a code-signing configuration. A code-signing configuration includes a set of signing profiles, which define the trusted publishers for this function.
6252
- :param dead_letter_config: A dead-letter queue configuration that specifies the queue or topic where Lambda sends asynchronous events when they fail processing. For more information, see `Dead-letter queues <https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#invocation-dlq>`_ .
6258
+ :param dead_letter_config: The `dead-letter queue <https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#dlq>`_ for failed asynchronous invocations.
6253
6259
  :param description: A description of the function.
6254
- :param environment: Environment variables that are accessible from function code during execution.
6260
+ :param environment: A function's environment variable settings. You can use environment variables to adjust your function's behavior without updating code. An environment variable is a pair of strings that are stored in a function's version-specific configuration.
6255
6261
  :param ephemeral_storage: The size of the function's ``/tmp`` directory in MB. The default value is 512, but it can be any whole number between 512 and 10,240 MB.
6256
- :param file_system_configs: Connection settings for an Amazon EFS file system. To connect a function to a file system, a mount target must be available in every Availability Zone that your function connects to. If your template contains an `AWS::EFS::MountTarget <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html>`_ resource, you must also specify a ``DependsOn`` attribute to ensure that the mount target is created or updated before the function. For more information about using the ``DependsOn`` attribute, see `DependsOn Attribute <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html>`_ .
6257
- :param function_name: The name of the Lambda function, up to 64 characters in length. If you don't specify a name, AWS CloudFormation generates one. If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name.
6258
- :param handler: The name of the method within your code that Lambda calls to run your function. Handler is required if the deployment package is a .zip file archive. The format includes the file name. It can also include namespaces and other qualifiers, depending on the runtime. For more information, see `Lambda programming model <https://docs.aws.amazon.com/lambda/latest/dg/foundation-progmodel.html>`_ .
6259
- :param image_config: Configuration values that override the container image Dockerfile settings. For more information, see `Container image settings <https://docs.aws.amazon.com/lambda/latest/dg/images-create.html#images-parms>`_ .
6260
- :param kms_key_arn: The ARN of the AWS Key Management Service ( AWS KMS ) customer managed key that's used to encrypt your function's `environment variables <https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-encryption>`_ . When `Lambda SnapStart <https://docs.aws.amazon.com/lambda/latest/dg/snapstart-security.html>`_ is activated, Lambda also uses this key is to encrypt your function's snapshot. If you deploy your function using a container image, Lambda also uses this key to encrypt your function when it's deployed. Note that this is not the same key that's used to protect your container image in the Amazon Elastic Container Registry (Amazon ECR). If you don't provide a customer managed key, Lambda uses a default service key.
6262
+ :param file_system_configs: Connection settings for an Amazon EFS file system. To connect a function to a file system, a mount target must be available in every Availability Zone that your function connects to. If your template contains an `AWS::EFS::MountTarget <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html>`_ resource, you must also specify a ``DependsOn`` attribute to ensure that the mount target is created or updated before the function. For more information about using the ``DependsOn`` attribute, see `DependsOn Attribute <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html>`_.
6263
+ :param function_name: The name of the Lambda function, up to 64 characters in length. If you don't specify a name, CFN generates one. If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name.
6264
+ :param handler: The name of the method within your code that Lambda calls to run your function. Handler is required if the deployment package is a .zip file archive. The format includes the file name. It can also include namespaces and other qualifiers, depending on the runtime. For more information, see `Lambda programming model <https://docs.aws.amazon.com/lambda/latest/dg/foundation-progmodel.html>`_.
6265
+ :param image_config: Configuration values that override the container image Dockerfile settings. For more information, see `Container image settings <https://docs.aws.amazon.com/lambda/latest/dg/images-create.html#images-parms>`_.
6266
+ :param kms_key_arn: The ARN of the KMSlong (KMS) customer managed key that's used to encrypt your function's `environment variables <https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-encryption>`_. When `Lambda SnapStart <https://docs.aws.amazon.com/lambda/latest/dg/snapstart-security.html>`_ is activated, Lambda also uses this key is to encrypt your function's snapshot. If you deploy your function using a container image, Lambda also uses this key to encrypt your function when it's deployed. Note that this is not the same key that's used to protect your container image in the Amazon Elastic Container Registry (Amazon ECR). If you don't provide a customer managed key, Lambda uses a default service key.
6261
6267
  :param layers: A list of `function layers <https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html>`_ to add to the function's execution environment. Specify each layer by its ARN, including the version.
6262
6268
  :param logging_config: The function's Amazon CloudWatch Logs configuration settings.
6263
6269
  :param memory_size: The amount of `memory available to the function <https://docs.aws.amazon.com/lambda/latest/dg/configuration-function-common.html#configuration-memory-console>`_ at runtime. Increasing the function memory also increases its CPU allocation. The default value is 128 MB. The value can be any multiple of 1 MB. Note that new AWS accounts have reduced concurrency and memory quotas. AWS raises these quotas automatically based on your usage. You can also request a quota increase.
6264
6270
  :param package_type: The type of deployment package. Set to ``Image`` for container image and set ``Zip`` for .zip file archive.
6271
+ :param recursive_loop: This property is set to terminate unintended recursions. If set to ``Terminate``, Lambda detects and terminates unitended recursive loops. If set to ``Allow`` Lambda lets recursions be and does not terminate it.
6265
6272
  :param reserved_concurrent_executions: The number of simultaneous executions to reserve for the function.
6266
- :param runtime: The identifier of the function's `runtime <https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html>`_ . Runtime is required if the deployment package is a .zip file archive. Specifying a runtime results in an error if you're deploying a function using a container image. The following list includes deprecated runtimes. Lambda blocks creating new functions and updating existing functions shortly after each runtime is deprecated. For more information, see `Runtime use after deprecation <https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtime-deprecation-levels>`_ . For a list of all currently supported runtimes, see `Supported runtimes <https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtimes-supported>`_ .
6267
- :param runtime_management_config: Sets the runtime management configuration for a function's version. For more information, see `Runtime updates <https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html>`_ .
6268
- :param snap_start: The function's `AWS Lambda SnapStart <https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html>`_ setting.
6273
+ :param runtime: The identifier of the function's `runtime <https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html>`_. Runtime is required if the deployment package is a .zip file archive. Specifying a runtime results in an error if you're deploying a function using a container image. The following list includes deprecated runtimes. Lambda blocks creating new functions and updating existing functions shortly after each runtime is deprecated. For more information, see `Runtime use after deprecation <https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtime-deprecation-levels>`_. For a list of all currently supported runtimes, see `Supported runtimes <https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtimes-supported>`_.
6274
+ :param runtime_management_config: Sets the runtime management configuration for a function's version. For more information, see `Runtime updates <https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html>`_.
6275
+ :param snap_start: The function's `SnapStart <https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html>`_ setting.
6269
6276
  :param tags: A list of `tags <https://docs.aws.amazon.com/lambda/latest/dg/tagging.html>`_ to apply to the function.
6270
- :param timeout: The amount of time (in seconds) that Lambda allows a function to run before stopping it. The default is 3 seconds. The maximum allowed value is 900 seconds. For more information, see `Lambda execution environment <https://docs.aws.amazon.com/lambda/latest/dg/runtimes-context.html>`_ .
6271
- :param tracing_config: Set ``Mode`` to ``Active`` to sample and trace a subset of incoming requests with `X-Ray <https://docs.aws.amazon.com/lambda/latest/dg/services-xray.html>`_ .
6272
- :param vpc_config: For network connectivity to AWS resources in a VPC, specify a list of security groups and subnets in the VPC. When you connect a function to a VPC, it can access resources and the internet only through that VPC. For more information, see `Configuring a Lambda function to access resources in a VPC <https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html>`_ .
6277
+ :param timeout: The amount of time (in seconds) that Lambda allows a function to run before stopping it. The default is 3 seconds. The maximum allowed value is 900 seconds. For more information, see `Lambda execution environment <https://docs.aws.amazon.com/lambda/latest/dg/runtimes-context.html>`_.
6278
+ :param tracing_config: The function's ` <https://docs.aws.amazon.com/lambda/latest/dg/services-xray.html>`_ tracing configuration. To sample and record incoming requests, set ``Mode`` to ``Active``.
6279
+ :param vpc_config: The VPC security groups and subnets that are attached to a Lambda function. When you connect a function to a VPC, Lambda creates an elastic network interface for each combination of security group and subnet in the function's VPC configuration. The function can only access resources and the internet through that VPC. For more information, see `VPC Settings <https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html>`_. When you delete a function, CFN monitors the state of its network interfaces and waits for Lambda to delete them before proceeding. If the VPC is defined in the same stack, the network interfaces need to be deleted by Lambda before CFN can delete the VPC's resources. To monitor network interfaces, CFN needs the ``ec2:DescribeNetworkInterfaces`` permission. It obtains this from the user or role that modifies the stack. If you don't provide this permission, CFN does not wait for network interfaces to be deleted.
6273
6280
  '''
6274
6281
  if __debug__:
6275
6282
  type_hints = typing.get_type_hints(_typecheckingstub__d971f3872acf20816e6da364ff9e6bec83fe2e68bbb9a7debc845b40036ee553)
@@ -6293,6 +6300,7 @@ class CfnFunction(
6293
6300
  logging_config=logging_config,
6294
6301
  memory_size=memory_size,
6295
6302
  package_type=package_type,
6303
+ recursive_loop=recursive_loop,
6296
6304
  reserved_concurrent_executions=reserved_concurrent_executions,
6297
6305
  runtime=runtime,
6298
6306
  runtime_management_config=runtime_management_config,
@@ -6338,8 +6346,7 @@ class CfnFunction(
6338
6346
  @builtins.property
6339
6347
  @jsii.member(jsii_name="attrArn")
6340
6348
  def attr_arn(self) -> builtins.str:
6341
- '''The Amazon Resource Name (ARN) of the function.
6342
-
6349
+ '''
6343
6350
  :cloudformationAttribute: Arn
6344
6351
  '''
6345
6352
  return typing.cast(builtins.str, jsii.get(self, "attrArn"))
@@ -6385,7 +6392,7 @@ class CfnFunction(
6385
6392
  @builtins.property
6386
6393
  @jsii.member(jsii_name="code")
6387
6394
  def code(self) -> typing.Union[_IResolvable_da3f097b, "CfnFunction.CodeProperty"]:
6388
- '''The code for the function.'''
6395
+ '''The `deployment package <https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html>`_ for a Lambda function. To deploy a function defined as a container image, you specify the location of a container image in the Amazon ECR registry. For a .zip file deployment package, you can specify the location of an object in Amazon S3. For Node.js and Python functions, you can specify the function code inline in the template. Changes to a deployment package in Amazon S3 or a container image in ECR are not detected automatically during stack updates. To update the function code, change the object key or version in the template.'''
6389
6396
  return typing.cast(typing.Union[_IResolvable_da3f097b, "CfnFunction.CodeProperty"], jsii.get(self, "code"))
6390
6397
 
6391
6398
  @code.setter
@@ -6442,7 +6449,7 @@ class CfnFunction(
6442
6449
  def dead_letter_config(
6443
6450
  self,
6444
6451
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnFunction.DeadLetterConfigProperty"]]:
6445
- '''A dead-letter queue configuration that specifies the queue or topic where Lambda sends asynchronous events when they fail processing.'''
6452
+ '''The `dead-letter queue <https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#dlq>`_ for failed asynchronous invocations.'''
6446
6453
  return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnFunction.DeadLetterConfigProperty"]], jsii.get(self, "deadLetterConfig"))
6447
6454
 
6448
6455
  @dead_letter_config.setter
@@ -6473,7 +6480,7 @@ class CfnFunction(
6473
6480
  def environment(
6474
6481
  self,
6475
6482
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnFunction.EnvironmentProperty"]]:
6476
- '''Environment variables that are accessible from function code during execution.'''
6483
+ '''A function's environment variable settings.'''
6477
6484
  return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnFunction.EnvironmentProperty"]], jsii.get(self, "environment"))
6478
6485
 
6479
6486
  @environment.setter
@@ -6569,7 +6576,7 @@ class CfnFunction(
6569
6576
  @builtins.property
6570
6577
  @jsii.member(jsii_name="kmsKeyArn")
6571
6578
  def kms_key_arn(self) -> typing.Optional[builtins.str]:
6572
- '''The ARN of the AWS Key Management Service ( AWS KMS ) customer managed key that's used to encrypt your function's `environment variables <https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-encryption>`_ . When `Lambda SnapStart <https://docs.aws.amazon.com/lambda/latest/dg/snapstart-security.html>`_ is activated, Lambda also uses this key is to encrypt your function's snapshot. If you deploy your function using a container image, Lambda also uses this key to encrypt your function when it's deployed. Note that this is not the same key that's used to protect your container image in the Amazon Elastic Container Registry (Amazon ECR). If you don't provide a customer managed key, Lambda uses a default service key.'''
6579
+ '''The ARN of the KMSlong (KMS) customer managed key that's used to encrypt your function's `environment variables <https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-encryption>`_. When `Lambda SnapStart <https://docs.aws.amazon.com/lambda/latest/dg/snapstart-security.html>`_ is activated, Lambda also uses this key is to encrypt your function's snapshot. If you deploy your function using a container image, Lambda also uses this key to encrypt your function when it's deployed. Note that this is not the same key that's used to protect your container image in the Amazon Elastic Container Registry (Amazon ECR). If you don't provide a customer managed key, Lambda uses a default service key.'''
6573
6580
  return typing.cast(typing.Optional[builtins.str], jsii.get(self, "kmsKeyArn"))
6574
6581
 
6575
6582
  @kms_key_arn.setter
@@ -6636,6 +6643,19 @@ class CfnFunction(
6636
6643
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
6637
6644
  jsii.set(self, "packageType", value)
6638
6645
 
6646
+ @builtins.property
6647
+ @jsii.member(jsii_name="recursiveLoop")
6648
+ def recursive_loop(self) -> typing.Optional[builtins.str]:
6649
+ '''This property is set to terminate unintended recursions.'''
6650
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "recursiveLoop"))
6651
+
6652
+ @recursive_loop.setter
6653
+ def recursive_loop(self, value: typing.Optional[builtins.str]) -> None:
6654
+ if __debug__:
6655
+ type_hints = typing.get_type_hints(_typecheckingstub__021080e0643735be55c0ce187b6c3482fd8d23af0a29c95ad94660f1cf184a90)
6656
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
6657
+ jsii.set(self, "recursiveLoop", value)
6658
+
6639
6659
  @builtins.property
6640
6660
  @jsii.member(jsii_name="reservedConcurrentExecutions")
6641
6661
  def reserved_concurrent_executions(self) -> typing.Optional[jsii.Number]:
@@ -6655,7 +6675,7 @@ class CfnFunction(
6655
6675
  @builtins.property
6656
6676
  @jsii.member(jsii_name="runtime")
6657
6677
  def runtime(self) -> typing.Optional[builtins.str]:
6658
- '''The identifier of the function's `runtime <https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html>`_ . Runtime is required if the deployment package is a .zip file archive. Specifying a runtime results in an error if you're deploying a function using a container image.'''
6678
+ '''The identifier of the function's `runtime <https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html>`_. Runtime is required if the deployment package is a .zip file archive. Specifying a runtime results in an error if you're deploying a function using a container image. The following list includes deprecated runtimes. Lambda blocks creating new functions and updating existing functions shortly after each runtime is deprecated. For more information, see `Runtime use after deprecation <https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtime-deprecation-levels>`_. For a list of all currently supported runtimes, see `Supported runtimes <https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtimes-supported>`_.'''
6659
6679
  return typing.cast(typing.Optional[builtins.str], jsii.get(self, "runtime"))
6660
6680
 
6661
6681
  @runtime.setter
@@ -6688,7 +6708,7 @@ class CfnFunction(
6688
6708
  def snap_start(
6689
6709
  self,
6690
6710
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnFunction.SnapStartProperty"]]:
6691
- '''The function's `AWS Lambda SnapStart <https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html>`_ setting.'''
6711
+ '''The function's `SnapStart <https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html>`_ setting.'''
6692
6712
  return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnFunction.SnapStartProperty"]], jsii.get(self, "snapStart"))
6693
6713
 
6694
6714
  @snap_start.setter
@@ -6732,7 +6752,7 @@ class CfnFunction(
6732
6752
  def tracing_config(
6733
6753
  self,
6734
6754
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnFunction.TracingConfigProperty"]]:
6735
- '''Set ``Mode`` to ``Active`` to sample and trace a subset of incoming requests with `X-Ray <https://docs.aws.amazon.com/lambda/latest/dg/services-xray.html>`_ .'''
6755
+ '''The function's ` <https://docs.aws.amazon.com/lambda/latest/dg/services-xray.html>`_ tracing configuration. To sample and record incoming requests, set ``Mode`` to ``Active``.'''
6736
6756
  return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnFunction.TracingConfigProperty"]], jsii.get(self, "tracingConfig"))
6737
6757
 
6738
6758
  @tracing_config.setter
@@ -6750,7 +6770,7 @@ class CfnFunction(
6750
6770
  def vpc_config(
6751
6771
  self,
6752
6772
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnFunction.VpcConfigProperty"]]:
6753
- '''For network connectivity to AWS resources in a VPC, specify a list of security groups and subnets in the VPC.'''
6773
+ '''The VPC security groups and subnets that are attached to a Lambda function.'''
6754
6774
  return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnFunction.VpcConfigProperty"]], jsii.get(self, "vpcConfig"))
6755
6775
 
6756
6776
  @vpc_config.setter
@@ -6784,15 +6804,13 @@ class CfnFunction(
6784
6804
  s3_object_version: typing.Optional[builtins.str] = None,
6785
6805
  zip_file: typing.Optional[builtins.str] = None,
6786
6806
  ) -> None:
6787
- '''The `deployment package <https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html>`_ for a Lambda function. To deploy a function defined as a container image, you specify the location of a container image in the Amazon ECR registry. For a .zip file deployment package, you can specify the location of an object in Amazon S3. For Node.js and Python functions, you can specify the function code inline in the template.
6788
-
6789
- Changes to a deployment package in Amazon S3 or a container image in ECR are not detected automatically during stack updates. To update the function code, change the object key or version in the template.
6807
+ '''The `deployment package <https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html>`_ for a Lambda function. To deploy a function defined as a container image, you specify the location of a container image in the Amazon ECR registry. For a .zip file deployment package, you can specify the location of an object in Amazon S3. For Node.js and Python functions, you can specify the function code inline in the template. Changes to a deployment package in Amazon S3 or a container image in ECR are not detected automatically during stack updates. To update the function code, change the object key or version in the template.
6790
6808
 
6791
6809
  :param image_uri: URI of a `container image <https://docs.aws.amazon.com/lambda/latest/dg/lambda-images.html>`_ in the Amazon ECR registry.
6792
- :param s3_bucket: An Amazon S3 bucket in the same AWS Region as your function. The bucket can be in a different AWS account .
6810
+ :param s3_bucket: An Amazon S3 bucket in the same AWS-Region as your function. The bucket can be in a different AWS-account.
6793
6811
  :param s3_key: The Amazon S3 key of the deployment package.
6794
6812
  :param s3_object_version: For versioned objects, the version of the deployment package object to use.
6795
- :param zip_file: (Node.js and Python) The source code of your Lambda function. If you include your function source inline with this parameter, AWS CloudFormation places it in a file named ``index`` and zips it to create a `deployment package <https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html>`_ . This zip file cannot exceed 4MB. For the ``Handler`` property, the first part of the handler identifier must be ``index`` . For example, ``index.handler`` . For JSON, you must escape quotes and special characters such as newline ( ``\\n`` ) with a backslash. If you specify a function that interacts with an AWS CloudFormation custom resource, you don't have to write your own functions to send responses to the custom resource that invoked the function. AWS CloudFormation provides a response module ( `cfn-response <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-lambda-function-code-cfnresponsemodule.html>`_ ) that simplifies sending responses. See `Using AWS Lambda with AWS CloudFormation <https://docs.aws.amazon.com/lambda/latest/dg/services-cloudformation.html>`_ for details.
6813
+ :param zip_file: (Node.js and Python) The source code of your Lambda function. If you include your function source inline with this parameter, CFN places it in a file named ``index`` and zips it to create a `deployment package <https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html>`_. This zip file cannot exceed 4MB. For the ``Handler`` property, the first part of the handler identifier must be ``index``. For example, ``index.handler``. For JSON, you must escape quotes and special characters such as newline (``\\n``) with a backslash. If you specify a function that interacts with an AWS CloudFormation custom resource, you don't have to write your own functions to send responses to the custom resource that invoked the function. AWS CloudFormation provides a response module (`cfn-response <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-lambda-function-code-cfnresponsemodule.html>`_) that simplifies sending responses. See `Using Lambda with CloudFormation <https://docs.aws.amazon.com/lambda/latest/dg/services-cloudformation.html>`_ for details.
6796
6814
 
6797
6815
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html
6798
6816
  :exampleMetadata: fixture=_generated
@@ -6841,9 +6859,9 @@ class CfnFunction(
6841
6859
 
6842
6860
  @builtins.property
6843
6861
  def s3_bucket(self) -> typing.Optional[builtins.str]:
6844
- '''An Amazon S3 bucket in the same AWS Region as your function.
6862
+ '''An Amazon S3 bucket in the same AWS-Region as your function.
6845
6863
 
6846
- The bucket can be in a different AWS account .
6864
+ The bucket can be in a different AWS-account.
6847
6865
 
6848
6866
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-s3bucket
6849
6867
  '''
@@ -6870,11 +6888,7 @@ class CfnFunction(
6870
6888
 
6871
6889
  @builtins.property
6872
6890
  def zip_file(self) -> typing.Optional[builtins.str]:
6873
- '''(Node.js and Python) The source code of your Lambda function. If you include your function source inline with this parameter, AWS CloudFormation places it in a file named ``index`` and zips it to create a `deployment package <https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html>`_ . This zip file cannot exceed 4MB. For the ``Handler`` property, the first part of the handler identifier must be ``index`` . For example, ``index.handler`` .
6874
-
6875
- For JSON, you must escape quotes and special characters such as newline ( ``\\n`` ) with a backslash.
6876
-
6877
- If you specify a function that interacts with an AWS CloudFormation custom resource, you don't have to write your own functions to send responses to the custom resource that invoked the function. AWS CloudFormation provides a response module ( `cfn-response <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-lambda-function-code-cfnresponsemodule.html>`_ ) that simplifies sending responses. See `Using AWS Lambda with AWS CloudFormation <https://docs.aws.amazon.com/lambda/latest/dg/services-cloudformation.html>`_ for details.
6891
+ '''(Node.js and Python) The source code of your Lambda function. If you include your function source inline with this parameter, CFN places it in a file named ``index`` and zips it to create a `deployment package <https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html>`_. This zip file cannot exceed 4MB. For the ``Handler`` property, the first part of the handler identifier must be ``index``. For example, ``index.handler``. For JSON, you must escape quotes and special characters such as newline (``\\n``) with a backslash. If you specify a function that interacts with an AWS CloudFormation custom resource, you don't have to write your own functions to send responses to the custom resource that invoked the function. AWS CloudFormation provides a response module (`cfn-response <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-lambda-function-code-cfnresponsemodule.html>`_) that simplifies sending responses. See `Using Lambda with CloudFormation <https://docs.aws.amazon.com/lambda/latest/dg/services-cloudformation.html>`_ for details.
6878
6892
 
6879
6893
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-zipfile
6880
6894
  '''
@@ -6958,7 +6972,7 @@ class CfnFunction(
6958
6972
 
6959
6973
  You can use environment variables to adjust your function's behavior without updating code. An environment variable is a pair of strings that are stored in a function's version-specific configuration.
6960
6974
 
6961
- :param variables: Environment variable key-value pairs. For more information, see `Using Lambda environment variables <https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html>`_ .
6975
+ :param variables: Environment variable key-value pairs. For more information, see `Using Lambda environment variables <https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html>`_.
6962
6976
 
6963
6977
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-environment.html
6964
6978
  :exampleMetadata: fixture=_generated
@@ -6988,7 +7002,7 @@ class CfnFunction(
6988
7002
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Mapping[builtins.str, builtins.str]]]:
6989
7003
  '''Environment variable key-value pairs.
6990
7004
 
6991
- For more information, see `Using Lambda environment variables <https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html>`_ .
7005
+ For more information, see `Using Lambda environment variables <https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html>`_.
6992
7006
 
6993
7007
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-environment.html#cfn-lambda-function-environment-variables
6994
7008
  '''
@@ -7072,10 +7086,10 @@ class CfnFunction(
7072
7086
  arn: builtins.str,
7073
7087
  local_mount_path: builtins.str,
7074
7088
  ) -> None:
7075
- '''Details about the connection between a Lambda function and an `Amazon EFS file system <https://docs.aws.amazon.com/lambda/latest/dg/configuration-filesystem.html>`_ .
7089
+ '''Details about the connection between a Lambda function and an `Amazon EFS file system <https://docs.aws.amazon.com/lambda/latest/dg/configuration-filesystem.html>`_.
7076
7090
 
7077
7091
  :param arn: The Amazon Resource Name (ARN) of the Amazon EFS access point that provides access to the file system.
7078
- :param local_mount_path: The path where the function can access the file system, starting with ``/mnt/`` .
7092
+ :param local_mount_path: The path where the function can access the file system, starting with ``/mnt/``.
7079
7093
 
7080
7094
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-filesystemconfig.html
7081
7095
  :exampleMetadata: fixture=_generated
@@ -7112,7 +7126,7 @@ class CfnFunction(
7112
7126
 
7113
7127
  @builtins.property
7114
7128
  def local_mount_path(self) -> builtins.str:
7115
- '''The path where the function can access the file system, starting with ``/mnt/`` .
7129
+ '''The path where the function can access the file system, starting with ``/mnt/``.
7116
7130
 
7117
7131
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-filesystemconfig.html#cfn-lambda-function-filesystemconfig-localmountpath
7118
7132
  '''
@@ -7150,7 +7164,7 @@ class CfnFunction(
7150
7164
  ) -> None:
7151
7165
  '''Configuration values that override the container image Dockerfile settings.
7152
7166
 
7153
- For more information, see `Container image settings <https://docs.aws.amazon.com/lambda/latest/dg/images-create.html#images-parms>`_ .
7167
+ For more information, see `Container image settings <https://docs.aws.amazon.com/lambda/latest/dg/images-create.html#images-parms>`_.
7154
7168
 
7155
7169
  :param command: Specifies parameters that you want to pass in with ENTRYPOINT. You can specify a maximum of 1,500 parameters in the list.
7156
7170
  :param entry_point: Specifies the entry point to their application, which is typically the location of the runtime executable. You can specify a maximum of 1,500 string entries in the list.
@@ -7251,7 +7265,7 @@ class CfnFunction(
7251
7265
 
7252
7266
  :param application_log_level: Set this property to filter the application logs for your function that Lambda sends to CloudWatch. Lambda only sends application logs at the selected level of detail and lower, where ``TRACE`` is the highest level and ``FATAL`` is the lowest.
7253
7267
  :param log_format: The format in which Lambda sends your function's application and system logs to CloudWatch. Select between plain text and structured JSON.
7254
- :param log_group: The name of the Amazon CloudWatch log group the function sends logs to. By default, Lambda functions send logs to a default log group named ``/aws/lambda/<function name>`` . To use a different log group, enter an existing log group or enter a new log group name.
7268
+ :param log_group: The name of the Amazon CloudWatch log group the function sends logs to. By default, Lambda functions send logs to a default log group named ``/aws/lambda/<function name>``. To use a different log group, enter an existing log group or enter a new log group name.
7255
7269
  :param system_log_level: Set this property to filter the system logs for your function that Lambda sends to CloudWatch. Lambda only sends system logs at the selected level of detail and lower, where ``DEBUG`` is the highest level and ``WARN`` is the lowest.
7256
7270
 
7257
7271
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-loggingconfig.html
@@ -7312,7 +7326,7 @@ class CfnFunction(
7312
7326
  def log_group(self) -> typing.Optional[builtins.str]:
7313
7327
  '''The name of the Amazon CloudWatch log group the function sends logs to.
7314
7328
 
7315
- By default, Lambda functions send logs to a default log group named ``/aws/lambda/<function name>`` . To use a different log group, enter an existing log group or enter a new log group name.
7329
+ By default, Lambda functions send logs to a default log group named ``/aws/lambda/<function name>``. To use a different log group, enter an existing log group or enter a new log group name.
7316
7330
 
7317
7331
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-loggingconfig.html#cfn-lambda-function-loggingconfig-loggroup
7318
7332
  '''
@@ -7358,10 +7372,10 @@ class CfnFunction(
7358
7372
  ) -> None:
7359
7373
  '''Sets the runtime management configuration for a function's version.
7360
7374
 
7361
- For more information, see `Runtime updates <https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html>`_ .
7375
+ For more information, see `Runtime updates <https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html>`_.
7362
7376
 
7363
- :param update_runtime_on: Specify the runtime update mode. - *Auto (default)* - Automatically update to the most recent and secure runtime version using a `Two-phase runtime version rollout <https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-two-phase>`_ . This is the best choice for most customers to ensure they always benefit from runtime updates. - *FunctionUpdate* - Lambda updates the runtime of you function to the most recent and secure runtime version when you update your function. This approach synchronizes runtime updates with function deployments, giving you control over when runtime updates are applied and allowing you to detect and mitigate rare runtime update incompatibilities early. When using this setting, you need to regularly update your functions to keep their runtime up-to-date. - *Manual* - You specify a runtime version in your function configuration. The function will use this runtime version indefinitely. In the rare case where a new runtime version is incompatible with an existing function, this allows you to roll back your function to an earlier runtime version. For more information, see `Roll back a runtime version <https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-rollback>`_ . *Valid Values* : ``Auto`` | ``FunctionUpdate`` | ``Manual``
7364
- :param runtime_version_arn: The ARN of the runtime version you want the function to use. .. epigraph:: This is only required if you're using the *Manual* runtime update mode.
7377
+ :param update_runtime_on: Specify the runtime update mode. - *Auto (default)* - Automatically update to the most recent and secure runtime version using a `Two-phase runtime version rollout <https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-two-phase>`_. This is the best choice for most customers to ensure they always benefit from runtime updates. - *FunctionUpdate* - LAM updates the runtime of you function to the most recent and secure runtime version when you update your function. This approach synchronizes runtime updates with function deployments, giving you control over when runtime updates are applied and allowing you to detect and mitigate rare runtime update incompatibilities early. When using this setting, you need to regularly update your functions to keep their runtime up-to-date. - *Manual* - You specify a runtime version in your function configuration. The function will use this runtime version indefinitely. In the rare case where a new runtime version is incompatible with an existing function, this allows you to roll back your function to an earlier runtime version. For more information, see `Roll back a runtime version <https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-rollback>`_. *Valid Values*: ``Auto`` | ``FunctionUpdate`` | ``Manual``
7378
+ :param runtime_version_arn: The ARN of the runtime version you want the function to use. This is only required if you're using the *Manual* runtime update mode.
7365
7379
 
7366
7380
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-runtimemanagementconfig.html
7367
7381
  :exampleMetadata: fixture=_generated
@@ -7393,11 +7407,11 @@ class CfnFunction(
7393
7407
  def update_runtime_on(self) -> builtins.str:
7394
7408
  '''Specify the runtime update mode.
7395
7409
 
7396
- - *Auto (default)* - Automatically update to the most recent and secure runtime version using a `Two-phase runtime version rollout <https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-two-phase>`_ . This is the best choice for most customers to ensure they always benefit from runtime updates.
7397
- - *FunctionUpdate* - Lambda updates the runtime of you function to the most recent and secure runtime version when you update your function. This approach synchronizes runtime updates with function deployments, giving you control over when runtime updates are applied and allowing you to detect and mitigate rare runtime update incompatibilities early. When using this setting, you need to regularly update your functions to keep their runtime up-to-date.
7398
- - *Manual* - You specify a runtime version in your function configuration. The function will use this runtime version indefinitely. In the rare case where a new runtime version is incompatible with an existing function, this allows you to roll back your function to an earlier runtime version. For more information, see `Roll back a runtime version <https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-rollback>`_ .
7410
+ - *Auto (default)* - Automatically update to the most recent and secure runtime version using a `Two-phase runtime version rollout <https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-two-phase>`_. This is the best choice for most customers to ensure they always benefit from runtime updates.
7411
+ - *FunctionUpdate* - LAM updates the runtime of you function to the most recent and secure runtime version when you update your function. This approach synchronizes runtime updates with function deployments, giving you control over when runtime updates are applied and allowing you to detect and mitigate rare runtime update incompatibilities early. When using this setting, you need to regularly update your functions to keep their runtime up-to-date.
7412
+ - *Manual* - You specify a runtime version in your function configuration. The function will use this runtime version indefinitely. In the rare case where a new runtime version is incompatible with an existing function, this allows you to roll back your function to an earlier runtime version. For more information, see `Roll back a runtime version <https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-rollback>`_.
7399
7413
 
7400
- *Valid Values* : ``Auto`` | ``FunctionUpdate`` | ``Manual``
7414
+ *Valid Values*: ``Auto`` | ``FunctionUpdate`` | ``Manual``
7401
7415
 
7402
7416
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-runtimemanagementconfig.html#cfn-lambda-function-runtimemanagementconfig-updateruntimeon
7403
7417
  '''
@@ -7409,9 +7423,7 @@ class CfnFunction(
7409
7423
  def runtime_version_arn(self) -> typing.Optional[builtins.str]:
7410
7424
  '''The ARN of the runtime version you want the function to use.
7411
7425
 
7412
- .. epigraph::
7413
-
7414
- This is only required if you're using the *Manual* runtime update mode.
7426
+ This is only required if you're using the *Manual* runtime update mode.
7415
7427
 
7416
7428
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-runtimemanagementconfig.html#cfn-lambda-function-runtimemanagementconfig-runtimeversionarn
7417
7429
  '''
@@ -7436,7 +7448,7 @@ class CfnFunction(
7436
7448
  )
7437
7449
  class SnapStartProperty:
7438
7450
  def __init__(self, *, apply_on: builtins.str) -> None:
7439
- '''The function's `AWS Lambda SnapStart <https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html>`_ setting.
7451
+ '''The function's `SnapStart <https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html>`_ setting.
7440
7452
 
7441
7453
  :param apply_on: Set ``ApplyOn`` to ``PublishedVersions`` to create a snapshot of the initialized execution environment when you publish a function version.
7442
7454
 
@@ -7498,8 +7510,8 @@ class CfnFunction(
7498
7510
  ) -> None:
7499
7511
  '''The function's `SnapStart <https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html>`_ setting.
7500
7512
 
7501
- :param apply_on: When set to ``PublishedVersions`` , Lambda creates a snapshot of the execution environment when you publish a function version.
7502
- :param optimization_status: When you provide a `qualified Amazon Resource Name (ARN) <https://docs.aws.amazon.com/lambda/latest/dg/configuration-versions.html#versioning-versions-using>`_ , this response element indicates whether SnapStart is activated for the specified function version.
7513
+ :param apply_on: When set to ``PublishedVersions``, Lambda creates a snapshot of the execution environment when you publish a function version.
7514
+ :param optimization_status: When you provide a `qualified Amazon Resource Name (ARN) <https://docs.aws.amazon.com/lambda/latest/dg/configuration-versions.html#versioning-versions-using>`_, this response element indicates whether SnapStart is activated for the specified function version.
7503
7515
 
7504
7516
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-snapstartresponse.html
7505
7517
  :exampleMetadata: fixture=_generated
@@ -7527,7 +7539,7 @@ class CfnFunction(
7527
7539
 
7528
7540
  @builtins.property
7529
7541
  def apply_on(self) -> typing.Optional[builtins.str]:
7530
- '''When set to ``PublishedVersions`` , Lambda creates a snapshot of the execution environment when you publish a function version.
7542
+ '''When set to ``PublishedVersions``, Lambda creates a snapshot of the execution environment when you publish a function version.
7531
7543
 
7532
7544
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-snapstartresponse.html#cfn-lambda-function-snapstartresponse-applyon
7533
7545
  '''
@@ -7536,7 +7548,7 @@ class CfnFunction(
7536
7548
 
7537
7549
  @builtins.property
7538
7550
  def optimization_status(self) -> typing.Optional[builtins.str]:
7539
- '''When you provide a `qualified Amazon Resource Name (ARN) <https://docs.aws.amazon.com/lambda/latest/dg/configuration-versions.html#versioning-versions-using>`_ , this response element indicates whether SnapStart is activated for the specified function version.
7551
+ '''When you provide a `qualified Amazon Resource Name (ARN) <https://docs.aws.amazon.com/lambda/latest/dg/configuration-versions.html#versioning-versions-using>`_, this response element indicates whether SnapStart is activated for the specified function version.
7540
7552
 
7541
7553
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-snapstartresponse.html#cfn-lambda-function-snapstartresponse-optimizationstatus
7542
7554
  '''
@@ -7561,7 +7573,7 @@ class CfnFunction(
7561
7573
  )
7562
7574
  class TracingConfigProperty:
7563
7575
  def __init__(self, *, mode: typing.Optional[builtins.str] = None) -> None:
7564
- '''The function's `AWS X-Ray <https://docs.aws.amazon.com/lambda/latest/dg/services-xray.html>`_ tracing configuration. To sample and record incoming requests, set ``Mode`` to ``Active`` .
7576
+ '''The function's ` <https://docs.aws.amazon.com/lambda/latest/dg/services-xray.html>`_ tracing configuration. To sample and record incoming requests, set ``Mode`` to ``Active``.
7565
7577
 
7566
7578
  :param mode: The tracing mode.
7567
7579
 
@@ -7624,12 +7636,9 @@ class CfnFunction(
7624
7636
  ) -> None:
7625
7637
  '''The VPC security groups and subnets that are attached to a Lambda function.
7626
7638
 
7627
- When you connect a function to a VPC, Lambda creates an elastic network interface for each combination of security group and subnet in the function's VPC configuration. The function can only access resources and the internet through that VPC. For more information, see `VPC Settings <https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html>`_ .
7628
- .. epigraph::
7629
-
7630
- When you delete a function, AWS CloudFormation monitors the state of its network interfaces and waits for Lambda to delete them before proceeding. If the VPC is defined in the same stack, the network interfaces need to be deleted by Lambda before AWS CloudFormation can delete the VPC's resources.
7631
-
7632
- To monitor network interfaces, AWS CloudFormation needs the ``ec2:DescribeNetworkInterfaces`` permission. It obtains this from the user or role that modifies the stack. If you don't provide this permission, AWS CloudFormation does not wait for network interfaces to be deleted.
7639
+ When you connect a function to a VPC, Lambda creates an elastic network interface for each combination of security group and subnet in the function's VPC configuration. The function can only access resources and the internet through that VPC. For more information, see `VPC Settings <https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html>`_.
7640
+ When you delete a function, CFN monitors the state of its network interfaces and waits for Lambda to delete them before proceeding. If the VPC is defined in the same stack, the network interfaces need to be deleted by Lambda before CFN can delete the VPC's resources.
7641
+ To monitor network interfaces, CFN needs the ``ec2:DescribeNetworkInterfaces`` permission. It obtains this from the user or role that modifies the stack. If you don't provide this permission, CFN does not wait for network interfaces to be deleted.
7633
7642
 
7634
7643
  :param ipv6_allowed_for_dual_stack: Allows outbound IPv6 traffic on VPC functions that are connected to dual-stack subnets.
7635
7644
  :param security_group_ids: A list of VPC security group IDs.
@@ -7725,6 +7734,7 @@ class CfnFunction(
7725
7734
  "logging_config": "loggingConfig",
7726
7735
  "memory_size": "memorySize",
7727
7736
  "package_type": "packageType",
7737
+ "recursive_loop": "recursiveLoop",
7728
7738
  "reserved_concurrent_executions": "reservedConcurrentExecutions",
7729
7739
  "runtime": "runtime",
7730
7740
  "runtime_management_config": "runtimeManagementConfig",
@@ -7756,6 +7766,7 @@ class CfnFunctionProps:
7756
7766
  logging_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnFunction.LoggingConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
7757
7767
  memory_size: typing.Optional[jsii.Number] = None,
7758
7768
  package_type: typing.Optional[builtins.str] = None,
7769
+ recursive_loop: typing.Optional[builtins.str] = None,
7759
7770
  reserved_concurrent_executions: typing.Optional[jsii.Number] = None,
7760
7771
  runtime: typing.Optional[builtins.str] = None,
7761
7772
  runtime_management_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnFunction.RuntimeManagementConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
@@ -7767,31 +7778,32 @@ class CfnFunctionProps:
7767
7778
  ) -> None:
7768
7779
  '''Properties for defining a ``CfnFunction``.
7769
7780
 
7770
- :param code: The code for the function.
7781
+ :param code: The `deployment package <https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html>`_ for a Lambda function. To deploy a function defined as a container image, you specify the location of a container image in the Amazon ECR registry. For a .zip file deployment package, you can specify the location of an object in Amazon S3. For Node.js and Python functions, you can specify the function code inline in the template. Changes to a deployment package in Amazon S3 or a container image in ECR are not detected automatically during stack updates. To update the function code, change the object key or version in the template.
7771
7782
  :param role: The Amazon Resource Name (ARN) of the function's execution role.
7772
- :param architectures: The instruction set architecture that the function supports. Enter a string array with one of the valid values (arm64 or x86_64). The default value is ``x86_64`` .
7783
+ :param architectures: The instruction set architecture that the function supports. Enter a string array with one of the valid values (arm64 or x86_64). The default value is ``x86_64``.
7773
7784
  :param code_signing_config_arn: To enable code signing for this function, specify the ARN of a code-signing configuration. A code-signing configuration includes a set of signing profiles, which define the trusted publishers for this function.
7774
- :param dead_letter_config: A dead-letter queue configuration that specifies the queue or topic where Lambda sends asynchronous events when they fail processing. For more information, see `Dead-letter queues <https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#invocation-dlq>`_ .
7785
+ :param dead_letter_config: The `dead-letter queue <https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#dlq>`_ for failed asynchronous invocations.
7775
7786
  :param description: A description of the function.
7776
- :param environment: Environment variables that are accessible from function code during execution.
7787
+ :param environment: A function's environment variable settings. You can use environment variables to adjust your function's behavior without updating code. An environment variable is a pair of strings that are stored in a function's version-specific configuration.
7777
7788
  :param ephemeral_storage: The size of the function's ``/tmp`` directory in MB. The default value is 512, but it can be any whole number between 512 and 10,240 MB.
7778
- :param file_system_configs: Connection settings for an Amazon EFS file system. To connect a function to a file system, a mount target must be available in every Availability Zone that your function connects to. If your template contains an `AWS::EFS::MountTarget <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html>`_ resource, you must also specify a ``DependsOn`` attribute to ensure that the mount target is created or updated before the function. For more information about using the ``DependsOn`` attribute, see `DependsOn Attribute <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html>`_ .
7779
- :param function_name: The name of the Lambda function, up to 64 characters in length. If you don't specify a name, AWS CloudFormation generates one. If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name.
7780
- :param handler: The name of the method within your code that Lambda calls to run your function. Handler is required if the deployment package is a .zip file archive. The format includes the file name. It can also include namespaces and other qualifiers, depending on the runtime. For more information, see `Lambda programming model <https://docs.aws.amazon.com/lambda/latest/dg/foundation-progmodel.html>`_ .
7781
- :param image_config: Configuration values that override the container image Dockerfile settings. For more information, see `Container image settings <https://docs.aws.amazon.com/lambda/latest/dg/images-create.html#images-parms>`_ .
7782
- :param kms_key_arn: The ARN of the AWS Key Management Service ( AWS KMS ) customer managed key that's used to encrypt your function's `environment variables <https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-encryption>`_ . When `Lambda SnapStart <https://docs.aws.amazon.com/lambda/latest/dg/snapstart-security.html>`_ is activated, Lambda also uses this key is to encrypt your function's snapshot. If you deploy your function using a container image, Lambda also uses this key to encrypt your function when it's deployed. Note that this is not the same key that's used to protect your container image in the Amazon Elastic Container Registry (Amazon ECR). If you don't provide a customer managed key, Lambda uses a default service key.
7789
+ :param file_system_configs: Connection settings for an Amazon EFS file system. To connect a function to a file system, a mount target must be available in every Availability Zone that your function connects to. If your template contains an `AWS::EFS::MountTarget <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html>`_ resource, you must also specify a ``DependsOn`` attribute to ensure that the mount target is created or updated before the function. For more information about using the ``DependsOn`` attribute, see `DependsOn Attribute <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html>`_.
7790
+ :param function_name: The name of the Lambda function, up to 64 characters in length. If you don't specify a name, CFN generates one. If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name.
7791
+ :param handler: The name of the method within your code that Lambda calls to run your function. Handler is required if the deployment package is a .zip file archive. The format includes the file name. It can also include namespaces and other qualifiers, depending on the runtime. For more information, see `Lambda programming model <https://docs.aws.amazon.com/lambda/latest/dg/foundation-progmodel.html>`_.
7792
+ :param image_config: Configuration values that override the container image Dockerfile settings. For more information, see `Container image settings <https://docs.aws.amazon.com/lambda/latest/dg/images-create.html#images-parms>`_.
7793
+ :param kms_key_arn: The ARN of the KMSlong (KMS) customer managed key that's used to encrypt your function's `environment variables <https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-encryption>`_. When `Lambda SnapStart <https://docs.aws.amazon.com/lambda/latest/dg/snapstart-security.html>`_ is activated, Lambda also uses this key is to encrypt your function's snapshot. If you deploy your function using a container image, Lambda also uses this key to encrypt your function when it's deployed. Note that this is not the same key that's used to protect your container image in the Amazon Elastic Container Registry (Amazon ECR). If you don't provide a customer managed key, Lambda uses a default service key.
7783
7794
  :param layers: A list of `function layers <https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html>`_ to add to the function's execution environment. Specify each layer by its ARN, including the version.
7784
7795
  :param logging_config: The function's Amazon CloudWatch Logs configuration settings.
7785
7796
  :param memory_size: The amount of `memory available to the function <https://docs.aws.amazon.com/lambda/latest/dg/configuration-function-common.html#configuration-memory-console>`_ at runtime. Increasing the function memory also increases its CPU allocation. The default value is 128 MB. The value can be any multiple of 1 MB. Note that new AWS accounts have reduced concurrency and memory quotas. AWS raises these quotas automatically based on your usage. You can also request a quota increase.
7786
7797
  :param package_type: The type of deployment package. Set to ``Image`` for container image and set ``Zip`` for .zip file archive.
7798
+ :param recursive_loop: This property is set to terminate unintended recursions. If set to ``Terminate``, Lambda detects and terminates unitended recursive loops. If set to ``Allow`` Lambda lets recursions be and does not terminate it.
7787
7799
  :param reserved_concurrent_executions: The number of simultaneous executions to reserve for the function.
7788
- :param runtime: The identifier of the function's `runtime <https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html>`_ . Runtime is required if the deployment package is a .zip file archive. Specifying a runtime results in an error if you're deploying a function using a container image. The following list includes deprecated runtimes. Lambda blocks creating new functions and updating existing functions shortly after each runtime is deprecated. For more information, see `Runtime use after deprecation <https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtime-deprecation-levels>`_ . For a list of all currently supported runtimes, see `Supported runtimes <https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtimes-supported>`_ .
7789
- :param runtime_management_config: Sets the runtime management configuration for a function's version. For more information, see `Runtime updates <https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html>`_ .
7790
- :param snap_start: The function's `AWS Lambda SnapStart <https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html>`_ setting.
7800
+ :param runtime: The identifier of the function's `runtime <https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html>`_. Runtime is required if the deployment package is a .zip file archive. Specifying a runtime results in an error if you're deploying a function using a container image. The following list includes deprecated runtimes. Lambda blocks creating new functions and updating existing functions shortly after each runtime is deprecated. For more information, see `Runtime use after deprecation <https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtime-deprecation-levels>`_. For a list of all currently supported runtimes, see `Supported runtimes <https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtimes-supported>`_.
7801
+ :param runtime_management_config: Sets the runtime management configuration for a function's version. For more information, see `Runtime updates <https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html>`_.
7802
+ :param snap_start: The function's `SnapStart <https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html>`_ setting.
7791
7803
  :param tags: A list of `tags <https://docs.aws.amazon.com/lambda/latest/dg/tagging.html>`_ to apply to the function.
7792
- :param timeout: The amount of time (in seconds) that Lambda allows a function to run before stopping it. The default is 3 seconds. The maximum allowed value is 900 seconds. For more information, see `Lambda execution environment <https://docs.aws.amazon.com/lambda/latest/dg/runtimes-context.html>`_ .
7793
- :param tracing_config: Set ``Mode`` to ``Active`` to sample and trace a subset of incoming requests with `X-Ray <https://docs.aws.amazon.com/lambda/latest/dg/services-xray.html>`_ .
7794
- :param vpc_config: For network connectivity to AWS resources in a VPC, specify a list of security groups and subnets in the VPC. When you connect a function to a VPC, it can access resources and the internet only through that VPC. For more information, see `Configuring a Lambda function to access resources in a VPC <https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html>`_ .
7804
+ :param timeout: The amount of time (in seconds) that Lambda allows a function to run before stopping it. The default is 3 seconds. The maximum allowed value is 900 seconds. For more information, see `Lambda execution environment <https://docs.aws.amazon.com/lambda/latest/dg/runtimes-context.html>`_.
7805
+ :param tracing_config: The function's ` <https://docs.aws.amazon.com/lambda/latest/dg/services-xray.html>`_ tracing configuration. To sample and record incoming requests, set ``Mode`` to ``Active``.
7806
+ :param vpc_config: The VPC security groups and subnets that are attached to a Lambda function. When you connect a function to a VPC, Lambda creates an elastic network interface for each combination of security group and subnet in the function's VPC configuration. The function can only access resources and the internet through that VPC. For more information, see `VPC Settings <https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html>`_. When you delete a function, CFN monitors the state of its network interfaces and waits for Lambda to delete them before proceeding. If the VPC is defined in the same stack, the network interfaces need to be deleted by Lambda before CFN can delete the VPC's resources. To monitor network interfaces, CFN needs the ``ec2:DescribeNetworkInterfaces`` permission. It obtains this from the user or role that modifies the stack. If you don't provide this permission, CFN does not wait for network interfaces to be deleted.
7795
7807
 
7796
7808
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html
7797
7809
  :exampleMetadata: fixture=_generated
@@ -7848,6 +7860,7 @@ class CfnFunctionProps:
7848
7860
  ),
7849
7861
  memory_size=123,
7850
7862
  package_type="packageType",
7863
+ recursive_loop="recursiveLoop",
7851
7864
  reserved_concurrent_executions=123,
7852
7865
  runtime="runtime",
7853
7866
  runtime_management_config=lambda.CfnFunction.RuntimeManagementConfigProperty(
@@ -7893,6 +7906,7 @@ class CfnFunctionProps:
7893
7906
  check_type(argname="argument logging_config", value=logging_config, expected_type=type_hints["logging_config"])
7894
7907
  check_type(argname="argument memory_size", value=memory_size, expected_type=type_hints["memory_size"])
7895
7908
  check_type(argname="argument package_type", value=package_type, expected_type=type_hints["package_type"])
7909
+ check_type(argname="argument recursive_loop", value=recursive_loop, expected_type=type_hints["recursive_loop"])
7896
7910
  check_type(argname="argument reserved_concurrent_executions", value=reserved_concurrent_executions, expected_type=type_hints["reserved_concurrent_executions"])
7897
7911
  check_type(argname="argument runtime", value=runtime, expected_type=type_hints["runtime"])
7898
7912
  check_type(argname="argument runtime_management_config", value=runtime_management_config, expected_type=type_hints["runtime_management_config"])
@@ -7935,6 +7949,8 @@ class CfnFunctionProps:
7935
7949
  self._values["memory_size"] = memory_size
7936
7950
  if package_type is not None:
7937
7951
  self._values["package_type"] = package_type
7952
+ if recursive_loop is not None:
7953
+ self._values["recursive_loop"] = recursive_loop
7938
7954
  if reserved_concurrent_executions is not None:
7939
7955
  self._values["reserved_concurrent_executions"] = reserved_concurrent_executions
7940
7956
  if runtime is not None:
@@ -7954,7 +7970,7 @@ class CfnFunctionProps:
7954
7970
 
7955
7971
  @builtins.property
7956
7972
  def code(self) -> typing.Union[_IResolvable_da3f097b, CfnFunction.CodeProperty]:
7957
- '''The code for the function.
7973
+ '''The `deployment package <https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html>`_ for a Lambda function. To deploy a function defined as a container image, you specify the location of a container image in the Amazon ECR registry. For a .zip file deployment package, you can specify the location of an object in Amazon S3. For Node.js and Python functions, you can specify the function code inline in the template. Changes to a deployment package in Amazon S3 or a container image in ECR are not detected automatically during stack updates. To update the function code, change the object key or version in the template.
7958
7974
 
7959
7975
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-code
7960
7976
  '''
@@ -7976,7 +7992,7 @@ class CfnFunctionProps:
7976
7992
  def architectures(self) -> typing.Optional[typing.List[builtins.str]]:
7977
7993
  '''The instruction set architecture that the function supports.
7978
7994
 
7979
- Enter a string array with one of the valid values (arm64 or x86_64). The default value is ``x86_64`` .
7995
+ Enter a string array with one of the valid values (arm64 or x86_64). The default value is ``x86_64``.
7980
7996
 
7981
7997
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-architectures
7982
7998
  '''
@@ -7987,8 +8003,7 @@ class CfnFunctionProps:
7987
8003
  def code_signing_config_arn(self) -> typing.Optional[builtins.str]:
7988
8004
  '''To enable code signing for this function, specify the ARN of a code-signing configuration.
7989
8005
 
7990
- A code-signing configuration
7991
- includes a set of signing profiles, which define the trusted publishers for this function.
8006
+ A code-signing configuration includes a set of signing profiles, which define the trusted publishers for this function.
7992
8007
 
7993
8008
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-codesigningconfigarn
7994
8009
  '''
@@ -7999,9 +8014,7 @@ class CfnFunctionProps:
7999
8014
  def dead_letter_config(
8000
8015
  self,
8001
8016
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnFunction.DeadLetterConfigProperty]]:
8002
- '''A dead-letter queue configuration that specifies the queue or topic where Lambda sends asynchronous events when they fail processing.
8003
-
8004
- For more information, see `Dead-letter queues <https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#invocation-dlq>`_ .
8017
+ '''The `dead-letter queue <https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#dlq>`_ for failed asynchronous invocations.
8005
8018
 
8006
8019
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-deadletterconfig
8007
8020
  '''
@@ -8021,7 +8034,9 @@ class CfnFunctionProps:
8021
8034
  def environment(
8022
8035
  self,
8023
8036
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnFunction.EnvironmentProperty]]:
8024
- '''Environment variables that are accessible from function code during execution.
8037
+ '''A function's environment variable settings.
8038
+
8039
+ You can use environment variables to adjust your function's behavior without updating code. An environment variable is a pair of strings that are stored in a function's version-specific configuration.
8025
8040
 
8026
8041
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-environment
8027
8042
  '''
@@ -8048,8 +8063,7 @@ class CfnFunctionProps:
8048
8063
  '''Connection settings for an Amazon EFS file system.
8049
8064
 
8050
8065
  To connect a function to a file system, a mount target must be available in every Availability Zone that your function connects to. If your template contains an `AWS::EFS::MountTarget <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html>`_ resource, you must also specify a ``DependsOn`` attribute to ensure that the mount target is created or updated before the function.
8051
-
8052
- For more information about using the ``DependsOn`` attribute, see `DependsOn Attribute <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html>`_ .
8066
+ For more information about using the ``DependsOn`` attribute, see `DependsOn Attribute <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html>`_.
8053
8067
 
8054
8068
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-filesystemconfigs
8055
8069
  '''
@@ -8060,8 +8074,7 @@ class CfnFunctionProps:
8060
8074
  def function_name(self) -> typing.Optional[builtins.str]:
8061
8075
  '''The name of the Lambda function, up to 64 characters in length.
8062
8076
 
8063
- If you don't specify a name, AWS CloudFormation generates one.
8064
-
8077
+ If you don't specify a name, CFN generates one.
8065
8078
  If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name.
8066
8079
 
8067
8080
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-functionname
@@ -8073,7 +8086,7 @@ class CfnFunctionProps:
8073
8086
  def handler(self) -> typing.Optional[builtins.str]:
8074
8087
  '''The name of the method within your code that Lambda calls to run your function.
8075
8088
 
8076
- Handler is required if the deployment package is a .zip file archive. The format includes the file name. It can also include namespaces and other qualifiers, depending on the runtime. For more information, see `Lambda programming model <https://docs.aws.amazon.com/lambda/latest/dg/foundation-progmodel.html>`_ .
8089
+ Handler is required if the deployment package is a .zip file archive. The format includes the file name. It can also include namespaces and other qualifiers, depending on the runtime. For more information, see `Lambda programming model <https://docs.aws.amazon.com/lambda/latest/dg/foundation-progmodel.html>`_.
8077
8090
 
8078
8091
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-handler
8079
8092
  '''
@@ -8086,7 +8099,7 @@ class CfnFunctionProps:
8086
8099
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnFunction.ImageConfigProperty]]:
8087
8100
  '''Configuration values that override the container image Dockerfile settings.
8088
8101
 
8089
- For more information, see `Container image settings <https://docs.aws.amazon.com/lambda/latest/dg/images-create.html#images-parms>`_ .
8102
+ For more information, see `Container image settings <https://docs.aws.amazon.com/lambda/latest/dg/images-create.html#images-parms>`_.
8090
8103
 
8091
8104
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-imageconfig
8092
8105
  '''
@@ -8095,7 +8108,7 @@ class CfnFunctionProps:
8095
8108
 
8096
8109
  @builtins.property
8097
8110
  def kms_key_arn(self) -> typing.Optional[builtins.str]:
8098
- '''The ARN of the AWS Key Management Service ( AWS KMS ) customer managed key that's used to encrypt your function's `environment variables <https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-encryption>`_ . When `Lambda SnapStart <https://docs.aws.amazon.com/lambda/latest/dg/snapstart-security.html>`_ is activated, Lambda also uses this key is to encrypt your function's snapshot. If you deploy your function using a container image, Lambda also uses this key to encrypt your function when it's deployed. Note that this is not the same key that's used to protect your container image in the Amazon Elastic Container Registry (Amazon ECR). If you don't provide a customer managed key, Lambda uses a default service key.
8111
+ '''The ARN of the KMSlong (KMS) customer managed key that's used to encrypt your function's `environment variables <https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-encryption>`_. When `Lambda SnapStart <https://docs.aws.amazon.com/lambda/latest/dg/snapstart-security.html>`_ is activated, Lambda also uses this key is to encrypt your function's snapshot. If you deploy your function using a container image, Lambda also uses this key to encrypt your function when it's deployed. Note that this is not the same key that's used to protect your container image in the Amazon Elastic Container Registry (Amazon ECR). If you don't provide a customer managed key, Lambda uses a default service key.
8099
8112
 
8100
8113
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-kmskeyarn
8101
8114
  '''
@@ -8142,6 +8155,17 @@ class CfnFunctionProps:
8142
8155
  result = self._values.get("package_type")
8143
8156
  return typing.cast(typing.Optional[builtins.str], result)
8144
8157
 
8158
+ @builtins.property
8159
+ def recursive_loop(self) -> typing.Optional[builtins.str]:
8160
+ '''This property is set to terminate unintended recursions.
8161
+
8162
+ If set to ``Terminate``, Lambda detects and terminates unitended recursive loops. If set to ``Allow`` Lambda lets recursions be and does not terminate it.
8163
+
8164
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-recursiveloop
8165
+ '''
8166
+ result = self._values.get("recursive_loop")
8167
+ return typing.cast(typing.Optional[builtins.str], result)
8168
+
8145
8169
  @builtins.property
8146
8170
  def reserved_concurrent_executions(self) -> typing.Optional[jsii.Number]:
8147
8171
  '''The number of simultaneous executions to reserve for the function.
@@ -8153,11 +8177,7 @@ class CfnFunctionProps:
8153
8177
 
8154
8178
  @builtins.property
8155
8179
  def runtime(self) -> typing.Optional[builtins.str]:
8156
- '''The identifier of the function's `runtime <https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html>`_ . Runtime is required if the deployment package is a .zip file archive. Specifying a runtime results in an error if you're deploying a function using a container image.
8157
-
8158
- The following list includes deprecated runtimes. Lambda blocks creating new functions and updating existing functions shortly after each runtime is deprecated. For more information, see `Runtime use after deprecation <https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtime-deprecation-levels>`_ .
8159
-
8160
- For a list of all currently supported runtimes, see `Supported runtimes <https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtimes-supported>`_ .
8180
+ '''The identifier of the function's `runtime <https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html>`_. Runtime is required if the deployment package is a .zip file archive. Specifying a runtime results in an error if you're deploying a function using a container image. The following list includes deprecated runtimes. Lambda blocks creating new functions and updating existing functions shortly after each runtime is deprecated. For more information, see `Runtime use after deprecation <https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtime-deprecation-levels>`_. For a list of all currently supported runtimes, see `Supported runtimes <https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtimes-supported>`_.
8161
8181
 
8162
8182
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-runtime
8163
8183
  '''
@@ -8170,7 +8190,7 @@ class CfnFunctionProps:
8170
8190
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnFunction.RuntimeManagementConfigProperty]]:
8171
8191
  '''Sets the runtime management configuration for a function's version.
8172
8192
 
8173
- For more information, see `Runtime updates <https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html>`_ .
8193
+ For more information, see `Runtime updates <https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html>`_.
8174
8194
 
8175
8195
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-runtimemanagementconfig
8176
8196
  '''
@@ -8181,7 +8201,7 @@ class CfnFunctionProps:
8181
8201
  def snap_start(
8182
8202
  self,
8183
8203
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnFunction.SnapStartProperty]]:
8184
- '''The function's `AWS Lambda SnapStart <https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html>`_ setting.
8204
+ '''The function's `SnapStart <https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html>`_ setting.
8185
8205
 
8186
8206
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-snapstart
8187
8207
  '''
@@ -8201,7 +8221,7 @@ class CfnFunctionProps:
8201
8221
  def timeout(self) -> typing.Optional[jsii.Number]:
8202
8222
  '''The amount of time (in seconds) that Lambda allows a function to run before stopping it.
8203
8223
 
8204
- The default is 3 seconds. The maximum allowed value is 900 seconds. For more information, see `Lambda execution environment <https://docs.aws.amazon.com/lambda/latest/dg/runtimes-context.html>`_ .
8224
+ The default is 3 seconds. The maximum allowed value is 900 seconds. For more information, see `Lambda execution environment <https://docs.aws.amazon.com/lambda/latest/dg/runtimes-context.html>`_.
8205
8225
 
8206
8226
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-timeout
8207
8227
  '''
@@ -8212,7 +8232,7 @@ class CfnFunctionProps:
8212
8232
  def tracing_config(
8213
8233
  self,
8214
8234
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnFunction.TracingConfigProperty]]:
8215
- '''Set ``Mode`` to ``Active`` to sample and trace a subset of incoming requests with `X-Ray <https://docs.aws.amazon.com/lambda/latest/dg/services-xray.html>`_ .
8235
+ '''The function's ` <https://docs.aws.amazon.com/lambda/latest/dg/services-xray.html>`_ tracing configuration. To sample and record incoming requests, set ``Mode`` to ``Active``.
8216
8236
 
8217
8237
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-tracingconfig
8218
8238
  '''
@@ -8223,9 +8243,11 @@ class CfnFunctionProps:
8223
8243
  def vpc_config(
8224
8244
  self,
8225
8245
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnFunction.VpcConfigProperty]]:
8226
- '''For network connectivity to AWS resources in a VPC, specify a list of security groups and subnets in the VPC.
8246
+ '''The VPC security groups and subnets that are attached to a Lambda function.
8227
8247
 
8228
- When you connect a function to a VPC, it can access resources and the internet only through that VPC. For more information, see `Configuring a Lambda function to access resources in a VPC <https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html>`_ .
8248
+ When you connect a function to a VPC, Lambda creates an elastic network interface for each combination of security group and subnet in the function's VPC configuration. The function can only access resources and the internet through that VPC. For more information, see `VPC Settings <https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html>`_.
8249
+ When you delete a function, CFN monitors the state of its network interfaces and waits for Lambda to delete them before proceeding. If the VPC is defined in the same stack, the network interfaces need to be deleted by Lambda before CFN can delete the VPC's resources.
8250
+ To monitor network interfaces, CFN needs the ``ec2:DescribeNetworkInterfaces`` permission. It obtains this from the user or role that modifies the stack. If you don't provide this permission, CFN does not wait for network interfaces to be deleted.
8229
8251
 
8230
8252
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-vpcconfig
8231
8253
  '''
@@ -12584,6 +12606,7 @@ class EventInvokeConfigProps(EventInvokeConfigOptions):
12584
12606
  "bisect_batch_on_error": "bisectBatchOnError",
12585
12607
  "enabled": "enabled",
12586
12608
  "event_source_arn": "eventSourceArn",
12609
+ "filter_encryption": "filterEncryption",
12587
12610
  "filters": "filters",
12588
12611
  "kafka_bootstrap_servers": "kafkaBootstrapServers",
12589
12612
  "kafka_consumer_group_id": "kafkaConsumerGroupId",
@@ -12610,6 +12633,7 @@ class EventSourceMappingOptions:
12610
12633
  bisect_batch_on_error: typing.Optional[builtins.bool] = None,
12611
12634
  enabled: typing.Optional[builtins.bool] = None,
12612
12635
  event_source_arn: typing.Optional[builtins.str] = None,
12636
+ filter_encryption: typing.Optional[_IKey_5f11635f] = None,
12613
12637
  filters: typing.Optional[typing.Sequence[typing.Mapping[builtins.str, typing.Any]]] = None,
12614
12638
  kafka_bootstrap_servers: typing.Optional[typing.Sequence[builtins.str]] = None,
12615
12639
  kafka_consumer_group_id: typing.Optional[builtins.str] = None,
@@ -12632,6 +12656,7 @@ class EventSourceMappingOptions:
12632
12656
  :param bisect_batch_on_error: If the function returns an error, split the batch in two and retry. Default: false
12633
12657
  :param enabled: Set to false to disable the event source upon creation. Default: true
12634
12658
  :param event_source_arn: The Amazon Resource Name (ARN) of the event source. Any record added to this stream can invoke the Lambda function. Default: - not set if using a self managed Kafka cluster, throws an error otherwise
12659
+ :param filter_encryption: Add Customer managed KMS key to encrypt Filter Criteria. Default: - none
12635
12660
  :param filters: Add filter criteria to Event Source. Default: - none
12636
12661
  :param kafka_bootstrap_servers: A list of host and port pairs that are the addresses of the Kafka brokers in a self managed "bootstrap" Kafka cluster that a Kafka client connects to initially to bootstrap itself. They are in the format ``abc.example.com:9096``. Default: - none
12637
12662
  :param kafka_consumer_group_id: The identifier for the Kafka consumer group to join. The consumer group ID must be unique among all your Kafka event sources. After creating a Kafka event source mapping with the consumer group ID specified, you cannot update this value. The value must have a lenght between 1 and 200 and full the pattern '[a-zA-Z0-9-/*:_+=.@-]*'. For more information, see `Customizable consumer group ID <https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#services-msk-consumer-group-id>`_. Default: - none
@@ -12656,10 +12681,12 @@ class EventSourceMappingOptions:
12656
12681
  # The code below shows an example of how to instantiate this type.
12657
12682
  # The values are placeholders you should change.
12658
12683
  import aws_cdk as cdk
12684
+ from aws_cdk import aws_kms as kms
12659
12685
  from aws_cdk import aws_lambda as lambda_
12660
12686
 
12661
12687
  # event_source_dlq: lambda.IEventSourceDlq
12662
12688
  # filters: Any
12689
+ # key: kms.Key
12663
12690
  # source_access_configuration_type: lambda.SourceAccessConfigurationType
12664
12691
 
12665
12692
  event_source_mapping_options = lambda.EventSourceMappingOptions(
@@ -12667,6 +12694,7 @@ class EventSourceMappingOptions:
12667
12694
  bisect_batch_on_error=False,
12668
12695
  enabled=False,
12669
12696
  event_source_arn="eventSourceArn",
12697
+ filter_encryption=key,
12670
12698
  filters=[{
12671
12699
  "filters_key": filters
12672
12700
  }],
@@ -12696,6 +12724,7 @@ class EventSourceMappingOptions:
12696
12724
  check_type(argname="argument bisect_batch_on_error", value=bisect_batch_on_error, expected_type=type_hints["bisect_batch_on_error"])
12697
12725
  check_type(argname="argument enabled", value=enabled, expected_type=type_hints["enabled"])
12698
12726
  check_type(argname="argument event_source_arn", value=event_source_arn, expected_type=type_hints["event_source_arn"])
12727
+ check_type(argname="argument filter_encryption", value=filter_encryption, expected_type=type_hints["filter_encryption"])
12699
12728
  check_type(argname="argument filters", value=filters, expected_type=type_hints["filters"])
12700
12729
  check_type(argname="argument kafka_bootstrap_servers", value=kafka_bootstrap_servers, expected_type=type_hints["kafka_bootstrap_servers"])
12701
12730
  check_type(argname="argument kafka_consumer_group_id", value=kafka_consumer_group_id, expected_type=type_hints["kafka_consumer_group_id"])
@@ -12721,6 +12750,8 @@ class EventSourceMappingOptions:
12721
12750
  self._values["enabled"] = enabled
12722
12751
  if event_source_arn is not None:
12723
12752
  self._values["event_source_arn"] = event_source_arn
12753
+ if filter_encryption is not None:
12754
+ self._values["filter_encryption"] = filter_encryption
12724
12755
  if filters is not None:
12725
12756
  self._values["filters"] = filters
12726
12757
  if kafka_bootstrap_servers is not None:
@@ -12801,6 +12832,17 @@ class EventSourceMappingOptions:
12801
12832
  result = self._values.get("event_source_arn")
12802
12833
  return typing.cast(typing.Optional[builtins.str], result)
12803
12834
 
12835
+ @builtins.property
12836
+ def filter_encryption(self) -> typing.Optional[_IKey_5f11635f]:
12837
+ '''Add Customer managed KMS key to encrypt Filter Criteria.
12838
+
12839
+ :default: - none
12840
+
12841
+ :see: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
12842
+ '''
12843
+ result = self._values.get("filter_encryption")
12844
+ return typing.cast(typing.Optional[_IKey_5f11635f], result)
12845
+
12804
12846
  @builtins.property
12805
12847
  def filters(
12806
12848
  self,
@@ -13017,6 +13059,7 @@ class EventSourceMappingOptions:
13017
13059
  "bisect_batch_on_error": "bisectBatchOnError",
13018
13060
  "enabled": "enabled",
13019
13061
  "event_source_arn": "eventSourceArn",
13062
+ "filter_encryption": "filterEncryption",
13020
13063
  "filters": "filters",
13021
13064
  "kafka_bootstrap_servers": "kafkaBootstrapServers",
13022
13065
  "kafka_consumer_group_id": "kafkaConsumerGroupId",
@@ -13044,6 +13087,7 @@ class EventSourceMappingProps(EventSourceMappingOptions):
13044
13087
  bisect_batch_on_error: typing.Optional[builtins.bool] = None,
13045
13088
  enabled: typing.Optional[builtins.bool] = None,
13046
13089
  event_source_arn: typing.Optional[builtins.str] = None,
13090
+ filter_encryption: typing.Optional[_IKey_5f11635f] = None,
13047
13091
  filters: typing.Optional[typing.Sequence[typing.Mapping[builtins.str, typing.Any]]] = None,
13048
13092
  kafka_bootstrap_servers: typing.Optional[typing.Sequence[builtins.str]] = None,
13049
13093
  kafka_consumer_group_id: typing.Optional[builtins.str] = None,
@@ -13068,6 +13112,7 @@ class EventSourceMappingProps(EventSourceMappingOptions):
13068
13112
  :param bisect_batch_on_error: If the function returns an error, split the batch in two and retry. Default: false
13069
13113
  :param enabled: Set to false to disable the event source upon creation. Default: true
13070
13114
  :param event_source_arn: The Amazon Resource Name (ARN) of the event source. Any record added to this stream can invoke the Lambda function. Default: - not set if using a self managed Kafka cluster, throws an error otherwise
13115
+ :param filter_encryption: Add Customer managed KMS key to encrypt Filter Criteria. Default: - none
13071
13116
  :param filters: Add filter criteria to Event Source. Default: - none
13072
13117
  :param kafka_bootstrap_servers: A list of host and port pairs that are the addresses of the Kafka brokers in a self managed "bootstrap" Kafka cluster that a Kafka client connects to initially to bootstrap itself. They are in the format ``abc.example.com:9096``. Default: - none
13073
13118
  :param kafka_consumer_group_id: The identifier for the Kafka consumer group to join. The consumer group ID must be unique among all your Kafka event sources. After creating a Kafka event source mapping with the consumer group ID specified, you cannot update this value. The value must have a lenght between 1 and 200 and full the pattern '[a-zA-Z0-9-/*:_+=.@-]*'. For more information, see `Customizable consumer group ID <https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#services-msk-consumer-group-id>`_. Default: - none
@@ -13093,11 +13138,13 @@ class EventSourceMappingProps(EventSourceMappingOptions):
13093
13138
  # The code below shows an example of how to instantiate this type.
13094
13139
  # The values are placeholders you should change.
13095
13140
  import aws_cdk as cdk
13141
+ from aws_cdk import aws_kms as kms
13096
13142
  from aws_cdk import aws_lambda as lambda_
13097
13143
 
13098
13144
  # event_source_dlq: lambda.IEventSourceDlq
13099
13145
  # filters: Any
13100
13146
  # function_: lambda.Function
13147
+ # key: kms.Key
13101
13148
  # source_access_configuration_type: lambda.SourceAccessConfigurationType
13102
13149
 
13103
13150
  event_source_mapping_props = lambda.EventSourceMappingProps(
@@ -13108,6 +13155,7 @@ class EventSourceMappingProps(EventSourceMappingOptions):
13108
13155
  bisect_batch_on_error=False,
13109
13156
  enabled=False,
13110
13157
  event_source_arn="eventSourceArn",
13158
+ filter_encryption=key,
13111
13159
  filters=[{
13112
13160
  "filters_key": filters
13113
13161
  }],
@@ -13137,6 +13185,7 @@ class EventSourceMappingProps(EventSourceMappingOptions):
13137
13185
  check_type(argname="argument bisect_batch_on_error", value=bisect_batch_on_error, expected_type=type_hints["bisect_batch_on_error"])
13138
13186
  check_type(argname="argument enabled", value=enabled, expected_type=type_hints["enabled"])
13139
13187
  check_type(argname="argument event_source_arn", value=event_source_arn, expected_type=type_hints["event_source_arn"])
13188
+ check_type(argname="argument filter_encryption", value=filter_encryption, expected_type=type_hints["filter_encryption"])
13140
13189
  check_type(argname="argument filters", value=filters, expected_type=type_hints["filters"])
13141
13190
  check_type(argname="argument kafka_bootstrap_servers", value=kafka_bootstrap_servers, expected_type=type_hints["kafka_bootstrap_servers"])
13142
13191
  check_type(argname="argument kafka_consumer_group_id", value=kafka_consumer_group_id, expected_type=type_hints["kafka_consumer_group_id"])
@@ -13165,6 +13214,8 @@ class EventSourceMappingProps(EventSourceMappingOptions):
13165
13214
  self._values["enabled"] = enabled
13166
13215
  if event_source_arn is not None:
13167
13216
  self._values["event_source_arn"] = event_source_arn
13217
+ if filter_encryption is not None:
13218
+ self._values["filter_encryption"] = filter_encryption
13168
13219
  if filters is not None:
13169
13220
  self._values["filters"] = filters
13170
13221
  if kafka_bootstrap_servers is not None:
@@ -13245,6 +13296,17 @@ class EventSourceMappingProps(EventSourceMappingOptions):
13245
13296
  result = self._values.get("event_source_arn")
13246
13297
  return typing.cast(typing.Optional[builtins.str], result)
13247
13298
 
13299
+ @builtins.property
13300
+ def filter_encryption(self) -> typing.Optional[_IKey_5f11635f]:
13301
+ '''Add Customer managed KMS key to encrypt Filter Criteria.
13302
+
13303
+ :default: - none
13304
+
13305
+ :see: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
13306
+ '''
13307
+ result = self._values.get("filter_encryption")
13308
+ return typing.cast(typing.Optional[_IKey_5f11635f], result)
13309
+
13248
13310
  @builtins.property
13249
13311
  def filters(
13250
13312
  self,
@@ -14057,6 +14119,7 @@ class FunctionAttributes:
14057
14119
  "params_and_secrets": "paramsAndSecrets",
14058
14120
  "profiling": "profiling",
14059
14121
  "profiling_group": "profilingGroup",
14122
+ "recursive_loop": "recursiveLoop",
14060
14123
  "reserved_concurrent_executions": "reservedConcurrentExecutions",
14061
14124
  "role": "role",
14062
14125
  "runtime_management_mode": "runtimeManagementMode",
@@ -14110,6 +14173,7 @@ class FunctionOptions(EventInvokeConfigOptions):
14110
14173
  params_and_secrets: typing.Optional["ParamsAndSecretsLayerVersion"] = None,
14111
14174
  profiling: typing.Optional[builtins.bool] = None,
14112
14175
  profiling_group: typing.Optional[_IProfilingGroup_0bba72c4] = None,
14176
+ recursive_loop: typing.Optional["RecursiveLoop"] = None,
14113
14177
  reserved_concurrent_executions: typing.Optional[jsii.Number] = None,
14114
14178
  role: typing.Optional[_IRole_235f5d8e] = None,
14115
14179
  runtime_management_mode: typing.Optional["RuntimeManagementMode"] = None,
@@ -14160,6 +14224,7 @@ class FunctionOptions(EventInvokeConfigOptions):
14160
14224
  :param params_and_secrets: Specify the configuration of Parameters and Secrets Extension. Default: - No Parameters and Secrets Extension
14161
14225
  :param profiling: Enable profiling. Default: - No profiling.
14162
14226
  :param profiling_group: Profiling Group. Default: - A new profiling group will be created if ``profiling`` is set.
14227
+ :param recursive_loop: Sets the Recursive Loop Protection for Lambda Function. It lets Lambda detect and terminate unintended recusrive loops. Default: RecursiveLoop.Terminate
14163
14228
  :param reserved_concurrent_executions: The maximum of concurrent executions you want to reserve for the function. Default: - No specific limit - account limit.
14164
14229
  :param role: Lambda execution role. This is the role that will be assumed by the function upon execution. It controls the permissions that the function will have. The Role must be assumable by the 'lambda.amazonaws.com' service principal. The default Role automatically has permissions granted for Lambda execution. If you provide a Role, you must add the relevant AWS managed policies yourself. The relevant managed policies are "service-role/AWSLambdaBasicExecutionRole" and "service-role/AWSLambdaVPCAccessExecutionRole". Default: - A unique role will be generated for this lambda function. Both supplied and generated roles can always be changed by calling ``addToRolePolicy``.
14165
14230
  :param runtime_management_mode: Sets the runtime management configuration for a function's version. Default: Auto
@@ -14265,6 +14330,7 @@ class FunctionOptions(EventInvokeConfigOptions):
14265
14330
  params_and_secrets=params_and_secrets_layer_version,
14266
14331
  profiling=False,
14267
14332
  profiling_group=profiling_group,
14333
+ recursive_loop=lambda_.RecursiveLoop.ALLOW,
14268
14334
  reserved_concurrent_executions=123,
14269
14335
  retry_attempts=123,
14270
14336
  role=role,
@@ -14332,6 +14398,7 @@ class FunctionOptions(EventInvokeConfigOptions):
14332
14398
  check_type(argname="argument params_and_secrets", value=params_and_secrets, expected_type=type_hints["params_and_secrets"])
14333
14399
  check_type(argname="argument profiling", value=profiling, expected_type=type_hints["profiling"])
14334
14400
  check_type(argname="argument profiling_group", value=profiling_group, expected_type=type_hints["profiling_group"])
14401
+ check_type(argname="argument recursive_loop", value=recursive_loop, expected_type=type_hints["recursive_loop"])
14335
14402
  check_type(argname="argument reserved_concurrent_executions", value=reserved_concurrent_executions, expected_type=type_hints["reserved_concurrent_executions"])
14336
14403
  check_type(argname="argument role", value=role, expected_type=type_hints["role"])
14337
14404
  check_type(argname="argument runtime_management_mode", value=runtime_management_mode, expected_type=type_hints["runtime_management_mode"])
@@ -14416,6 +14483,8 @@ class FunctionOptions(EventInvokeConfigOptions):
14416
14483
  self._values["profiling"] = profiling
14417
14484
  if profiling_group is not None:
14418
14485
  self._values["profiling_group"] = profiling_group
14486
+ if recursive_loop is not None:
14487
+ self._values["recursive_loop"] = recursive_loop
14419
14488
  if reserved_concurrent_executions is not None:
14420
14489
  self._values["reserved_concurrent_executions"] = reserved_concurrent_executions
14421
14490
  if role is not None:
@@ -14864,6 +14933,17 @@ class FunctionOptions(EventInvokeConfigOptions):
14864
14933
  result = self._values.get("profiling_group")
14865
14934
  return typing.cast(typing.Optional[_IProfilingGroup_0bba72c4], result)
14866
14935
 
14936
+ @builtins.property
14937
+ def recursive_loop(self) -> typing.Optional["RecursiveLoop"]:
14938
+ '''Sets the Recursive Loop Protection for Lambda Function.
14939
+
14940
+ It lets Lambda detect and terminate unintended recusrive loops.
14941
+
14942
+ :default: RecursiveLoop.Terminate
14943
+ '''
14944
+ result = self._values.get("recursive_loop")
14945
+ return typing.cast(typing.Optional["RecursiveLoop"], result)
14946
+
14867
14947
  @builtins.property
14868
14948
  def reserved_concurrent_executions(self) -> typing.Optional[jsii.Number]:
14869
14949
  '''The maximum of concurrent executions you want to reserve for the function.
@@ -15054,6 +15134,7 @@ class FunctionOptions(EventInvokeConfigOptions):
15054
15134
  "params_and_secrets": "paramsAndSecrets",
15055
15135
  "profiling": "profiling",
15056
15136
  "profiling_group": "profilingGroup",
15137
+ "recursive_loop": "recursiveLoop",
15057
15138
  "reserved_concurrent_executions": "reservedConcurrentExecutions",
15058
15139
  "role": "role",
15059
15140
  "runtime_management_mode": "runtimeManagementMode",
@@ -15110,6 +15191,7 @@ class FunctionProps(FunctionOptions):
15110
15191
  params_and_secrets: typing.Optional["ParamsAndSecretsLayerVersion"] = None,
15111
15192
  profiling: typing.Optional[builtins.bool] = None,
15112
15193
  profiling_group: typing.Optional[_IProfilingGroup_0bba72c4] = None,
15194
+ recursive_loop: typing.Optional["RecursiveLoop"] = None,
15113
15195
  reserved_concurrent_executions: typing.Optional[jsii.Number] = None,
15114
15196
  role: typing.Optional[_IRole_235f5d8e] = None,
15115
15197
  runtime_management_mode: typing.Optional["RuntimeManagementMode"] = None,
@@ -15162,6 +15244,7 @@ class FunctionProps(FunctionOptions):
15162
15244
  :param params_and_secrets: Specify the configuration of Parameters and Secrets Extension. Default: - No Parameters and Secrets Extension
15163
15245
  :param profiling: Enable profiling. Default: - No profiling.
15164
15246
  :param profiling_group: Profiling Group. Default: - A new profiling group will be created if ``profiling`` is set.
15247
+ :param recursive_loop: Sets the Recursive Loop Protection for Lambda Function. It lets Lambda detect and terminate unintended recusrive loops. Default: RecursiveLoop.Terminate
15165
15248
  :param reserved_concurrent_executions: The maximum of concurrent executions you want to reserve for the function. Default: - No specific limit - account limit.
15166
15249
  :param role: Lambda execution role. This is the role that will be assumed by the function upon execution. It controls the permissions that the function will have. The Role must be assumable by the 'lambda.amazonaws.com' service principal. The default Role automatically has permissions granted for Lambda execution. If you provide a Role, you must add the relevant AWS managed policies yourself. The relevant managed policies are "service-role/AWSLambdaBasicExecutionRole" and "service-role/AWSLambdaVPCAccessExecutionRole". Default: - A unique role will be generated for this lambda function. Both supplied and generated roles can always be changed by calling ``addToRolePolicy``.
15167
15250
  :param runtime_management_mode: Sets the runtime management configuration for a function's version. Default: Auto
@@ -15250,6 +15333,7 @@ class FunctionProps(FunctionOptions):
15250
15333
  check_type(argname="argument params_and_secrets", value=params_and_secrets, expected_type=type_hints["params_and_secrets"])
15251
15334
  check_type(argname="argument profiling", value=profiling, expected_type=type_hints["profiling"])
15252
15335
  check_type(argname="argument profiling_group", value=profiling_group, expected_type=type_hints["profiling_group"])
15336
+ check_type(argname="argument recursive_loop", value=recursive_loop, expected_type=type_hints["recursive_loop"])
15253
15337
  check_type(argname="argument reserved_concurrent_executions", value=reserved_concurrent_executions, expected_type=type_hints["reserved_concurrent_executions"])
15254
15338
  check_type(argname="argument role", value=role, expected_type=type_hints["role"])
15255
15339
  check_type(argname="argument runtime_management_mode", value=runtime_management_mode, expected_type=type_hints["runtime_management_mode"])
@@ -15341,6 +15425,8 @@ class FunctionProps(FunctionOptions):
15341
15425
  self._values["profiling"] = profiling
15342
15426
  if profiling_group is not None:
15343
15427
  self._values["profiling_group"] = profiling_group
15428
+ if recursive_loop is not None:
15429
+ self._values["recursive_loop"] = recursive_loop
15344
15430
  if reserved_concurrent_executions is not None:
15345
15431
  self._values["reserved_concurrent_executions"] = reserved_concurrent_executions
15346
15432
  if role is not None:
@@ -15789,6 +15875,17 @@ class FunctionProps(FunctionOptions):
15789
15875
  result = self._values.get("profiling_group")
15790
15876
  return typing.cast(typing.Optional[_IProfilingGroup_0bba72c4], result)
15791
15877
 
15878
+ @builtins.property
15879
+ def recursive_loop(self) -> typing.Optional["RecursiveLoop"]:
15880
+ '''Sets the Recursive Loop Protection for Lambda Function.
15881
+
15882
+ It lets Lambda detect and terminate unintended recusrive loops.
15883
+
15884
+ :default: RecursiveLoop.Terminate
15885
+ '''
15886
+ result = self._values.get("recursive_loop")
15887
+ return typing.cast(typing.Optional["RecursiveLoop"], result)
15888
+
15792
15889
  @builtins.property
15793
15890
  def reserved_concurrent_executions(self) -> typing.Optional[jsii.Number]:
15794
15891
  '''The maximum of concurrent executions you want to reserve for the function.
@@ -16770,6 +16867,7 @@ class IFunction(
16770
16867
  bisect_batch_on_error: typing.Optional[builtins.bool] = None,
16771
16868
  enabled: typing.Optional[builtins.bool] = None,
16772
16869
  event_source_arn: typing.Optional[builtins.str] = None,
16870
+ filter_encryption: typing.Optional[_IKey_5f11635f] = None,
16773
16871
  filters: typing.Optional[typing.Sequence[typing.Mapping[builtins.str, typing.Any]]] = None,
16774
16872
  kafka_bootstrap_servers: typing.Optional[typing.Sequence[builtins.str]] = None,
16775
16873
  kafka_consumer_group_id: typing.Optional[builtins.str] = None,
@@ -16794,6 +16892,7 @@ class IFunction(
16794
16892
  :param bisect_batch_on_error: If the function returns an error, split the batch in two and retry. Default: false
16795
16893
  :param enabled: Set to false to disable the event source upon creation. Default: true
16796
16894
  :param event_source_arn: The Amazon Resource Name (ARN) of the event source. Any record added to this stream can invoke the Lambda function. Default: - not set if using a self managed Kafka cluster, throws an error otherwise
16895
+ :param filter_encryption: Add Customer managed KMS key to encrypt Filter Criteria. Default: - none
16797
16896
  :param filters: Add filter criteria to Event Source. Default: - none
16798
16897
  :param kafka_bootstrap_servers: A list of host and port pairs that are the addresses of the Kafka brokers in a self managed "bootstrap" Kafka cluster that a Kafka client connects to initially to bootstrap itself. They are in the format ``abc.example.com:9096``. Default: - none
16799
16898
  :param kafka_consumer_group_id: The identifier for the Kafka consumer group to join. The consumer group ID must be unique among all your Kafka event sources. After creating a Kafka event source mapping with the consumer group ID specified, you cannot update this value. The value must have a lenght between 1 and 200 and full the pattern '[a-zA-Z0-9-/*:_+=.@-]*'. For more information, see `Customizable consumer group ID <https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#services-msk-consumer-group-id>`_. Default: - none
@@ -17186,6 +17285,7 @@ class _IFunctionProxy(
17186
17285
  bisect_batch_on_error: typing.Optional[builtins.bool] = None,
17187
17286
  enabled: typing.Optional[builtins.bool] = None,
17188
17287
  event_source_arn: typing.Optional[builtins.str] = None,
17288
+ filter_encryption: typing.Optional[_IKey_5f11635f] = None,
17189
17289
  filters: typing.Optional[typing.Sequence[typing.Mapping[builtins.str, typing.Any]]] = None,
17190
17290
  kafka_bootstrap_servers: typing.Optional[typing.Sequence[builtins.str]] = None,
17191
17291
  kafka_consumer_group_id: typing.Optional[builtins.str] = None,
@@ -17210,6 +17310,7 @@ class _IFunctionProxy(
17210
17310
  :param bisect_batch_on_error: If the function returns an error, split the batch in two and retry. Default: false
17211
17311
  :param enabled: Set to false to disable the event source upon creation. Default: true
17212
17312
  :param event_source_arn: The Amazon Resource Name (ARN) of the event source. Any record added to this stream can invoke the Lambda function. Default: - not set if using a self managed Kafka cluster, throws an error otherwise
17313
+ :param filter_encryption: Add Customer managed KMS key to encrypt Filter Criteria. Default: - none
17213
17314
  :param filters: Add filter criteria to Event Source. Default: - none
17214
17315
  :param kafka_bootstrap_servers: A list of host and port pairs that are the addresses of the Kafka brokers in a self managed "bootstrap" Kafka cluster that a Kafka client connects to initially to bootstrap itself. They are in the format ``abc.example.com:9096``. Default: - none
17215
17316
  :param kafka_consumer_group_id: The identifier for the Kafka consumer group to join. The consumer group ID must be unique among all your Kafka event sources. After creating a Kafka event source mapping with the consumer group ID specified, you cannot update this value. The value must have a lenght between 1 and 200 and full the pattern '[a-zA-Z0-9-/*:_+=.@-]*'. For more information, see `Customizable consumer group ID <https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#services-msk-consumer-group-id>`_. Default: - none
@@ -17235,6 +17336,7 @@ class _IFunctionProxy(
17235
17336
  bisect_batch_on_error=bisect_batch_on_error,
17236
17337
  enabled=enabled,
17237
17338
  event_source_arn=event_source_arn,
17339
+ filter_encryption=filter_encryption,
17238
17340
  filters=filters,
17239
17341
  kafka_bootstrap_servers=kafka_bootstrap_servers,
17240
17342
  kafka_consumer_group_id=kafka_consumer_group_id,
@@ -19754,6 +19856,27 @@ class Permission:
19754
19856
  )
19755
19857
 
19756
19858
 
19859
+ @jsii.enum(jsii_type="aws-cdk-lib.aws_lambda.RecursiveLoop")
19860
+ class RecursiveLoop(enum.Enum):
19861
+ '''
19862
+ :exampleMetadata: infused
19863
+
19864
+ Example::
19865
+
19866
+ fn = lambda_.Function(self, "MyFunction",
19867
+ code=lambda_.Code.from_asset(path.join(__dirname, "handler.zip")),
19868
+ runtime=lambda_.Runtime.JAVA_11,
19869
+ handler="example.Handler::handleRequest",
19870
+ recursive_loop=lambda_.RecursiveLoop.TERMINATE
19871
+ )
19872
+ '''
19873
+
19874
+ ALLOW = "ALLOW"
19875
+ '''Allows the recursive loop to happen and does not terminate it.'''
19876
+ TERMINATE = "TERMINATE"
19877
+ '''Terminates the recursive loop.'''
19878
+
19879
+
19757
19880
  @jsii.data_type(
19758
19881
  jsii_type="aws-cdk-lib.aws_lambda.ResourceBindOptions",
19759
19882
  jsii_struct_bases=[],
@@ -20463,6 +20586,7 @@ class S3Code(Code, metaclass=jsii.JSIIMeta, jsii_type="aws-cdk-lib.aws_lambda.S3
20463
20586
  "params_and_secrets": "paramsAndSecrets",
20464
20587
  "profiling": "profiling",
20465
20588
  "profiling_group": "profilingGroup",
20589
+ "recursive_loop": "recursiveLoop",
20466
20590
  "reserved_concurrent_executions": "reservedConcurrentExecutions",
20467
20591
  "role": "role",
20468
20592
  "runtime_management_mode": "runtimeManagementMode",
@@ -20521,6 +20645,7 @@ class SingletonFunctionProps(FunctionProps):
20521
20645
  params_and_secrets: typing.Optional[ParamsAndSecretsLayerVersion] = None,
20522
20646
  profiling: typing.Optional[builtins.bool] = None,
20523
20647
  profiling_group: typing.Optional[_IProfilingGroup_0bba72c4] = None,
20648
+ recursive_loop: typing.Optional[RecursiveLoop] = None,
20524
20649
  reserved_concurrent_executions: typing.Optional[jsii.Number] = None,
20525
20650
  role: typing.Optional[_IRole_235f5d8e] = None,
20526
20651
  runtime_management_mode: typing.Optional[RuntimeManagementMode] = None,
@@ -20576,6 +20701,7 @@ class SingletonFunctionProps(FunctionProps):
20576
20701
  :param params_and_secrets: Specify the configuration of Parameters and Secrets Extension. Default: - No Parameters and Secrets Extension
20577
20702
  :param profiling: Enable profiling. Default: - No profiling.
20578
20703
  :param profiling_group: Profiling Group. Default: - A new profiling group will be created if ``profiling`` is set.
20704
+ :param recursive_loop: Sets the Recursive Loop Protection for Lambda Function. It lets Lambda detect and terminate unintended recusrive loops. Default: RecursiveLoop.Terminate
20579
20705
  :param reserved_concurrent_executions: The maximum of concurrent executions you want to reserve for the function. Default: - No specific limit - account limit.
20580
20706
  :param role: Lambda execution role. This is the role that will be assumed by the function upon execution. It controls the permissions that the function will have. The Role must be assumable by the 'lambda.amazonaws.com' service principal. The default Role automatically has permissions granted for Lambda execution. If you provide a Role, you must add the relevant AWS managed policies yourself. The relevant managed policies are "service-role/AWSLambdaBasicExecutionRole" and "service-role/AWSLambdaVPCAccessExecutionRole". Default: - A unique role will be generated for this lambda function. Both supplied and generated roles can always be changed by calling ``addToRolePolicy``.
20581
20707
  :param runtime_management_mode: Sets the runtime management configuration for a function's version. Default: Auto
@@ -20649,6 +20775,7 @@ class SingletonFunctionProps(FunctionProps):
20649
20775
  check_type(argname="argument params_and_secrets", value=params_and_secrets, expected_type=type_hints["params_and_secrets"])
20650
20776
  check_type(argname="argument profiling", value=profiling, expected_type=type_hints["profiling"])
20651
20777
  check_type(argname="argument profiling_group", value=profiling_group, expected_type=type_hints["profiling_group"])
20778
+ check_type(argname="argument recursive_loop", value=recursive_loop, expected_type=type_hints["recursive_loop"])
20652
20779
  check_type(argname="argument reserved_concurrent_executions", value=reserved_concurrent_executions, expected_type=type_hints["reserved_concurrent_executions"])
20653
20780
  check_type(argname="argument role", value=role, expected_type=type_hints["role"])
20654
20781
  check_type(argname="argument runtime_management_mode", value=runtime_management_mode, expected_type=type_hints["runtime_management_mode"])
@@ -20743,6 +20870,8 @@ class SingletonFunctionProps(FunctionProps):
20743
20870
  self._values["profiling"] = profiling
20744
20871
  if profiling_group is not None:
20745
20872
  self._values["profiling_group"] = profiling_group
20873
+ if recursive_loop is not None:
20874
+ self._values["recursive_loop"] = recursive_loop
20746
20875
  if reserved_concurrent_executions is not None:
20747
20876
  self._values["reserved_concurrent_executions"] = reserved_concurrent_executions
20748
20877
  if role is not None:
@@ -21191,6 +21320,17 @@ class SingletonFunctionProps(FunctionProps):
21191
21320
  result = self._values.get("profiling_group")
21192
21321
  return typing.cast(typing.Optional[_IProfilingGroup_0bba72c4], result)
21193
21322
 
21323
+ @builtins.property
21324
+ def recursive_loop(self) -> typing.Optional[RecursiveLoop]:
21325
+ '''Sets the Recursive Loop Protection for Lambda Function.
21326
+
21327
+ It lets Lambda detect and terminate unintended recusrive loops.
21328
+
21329
+ :default: RecursiveLoop.Terminate
21330
+ '''
21331
+ result = self._values.get("recursive_loop")
21332
+ return typing.cast(typing.Optional[RecursiveLoop], result)
21333
+
21194
21334
  @builtins.property
21195
21335
  def reserved_concurrent_executions(self) -> typing.Optional[jsii.Number]:
21196
21336
  '''The maximum of concurrent executions you want to reserve for the function.
@@ -21612,8 +21752,8 @@ class StartingPosition(enum.Enum):
21612
21752
 
21613
21753
  Example::
21614
21754
 
21615
- from aws_cdk.aws_secretsmanager import Secret
21616
21755
  from aws_cdk.aws_lambda_event_sources import ManagedKafkaEventSource
21756
+ from aws_cdk.aws_kms import Key
21617
21757
 
21618
21758
  # my_function: lambda.Function
21619
21759
 
@@ -21624,15 +21764,18 @@ class StartingPosition(enum.Enum):
21624
21764
  # The Kafka topic you want to subscribe to
21625
21765
  topic = "some-cool-topic"
21626
21766
 
21627
- # The secret that allows access to your MSK cluster
21628
- # You still have to make sure that it is associated with your cluster as described in the documentation
21629
- secret = Secret(self, "Secret", secret_name="AmazonMSK_KafkaSecret")
21767
+ # Your self managed KMS key
21768
+ my_key = Key.from_key_arn(self, "SourceBucketEncryptionKey", "arn:aws:kms:us-east-1:123456789012:key/<key-id>")
21630
21769
  my_function.add_event_source(ManagedKafkaEventSource(
21631
21770
  cluster_arn=cluster_arn,
21632
21771
  topic=topic,
21633
- secret=secret,
21634
- batch_size=100, # default
21635
- starting_position=lambda_.StartingPosition.TRIM_HORIZON
21772
+ starting_position=lambda_.StartingPosition.TRIM_HORIZON,
21773
+ filters=[
21774
+ lambda_.FilterCriteria.filter({
21775
+ "string_equals": lambda_.FilterRule.is_equal("test")
21776
+ })
21777
+ ],
21778
+ filter_encryption=my_key
21636
21779
  ))
21637
21780
  '''
21638
21781
 
@@ -23383,6 +23526,7 @@ class CodeSigningConfig(
23383
23526
  "params_and_secrets": "paramsAndSecrets",
23384
23527
  "profiling": "profiling",
23385
23528
  "profiling_group": "profilingGroup",
23529
+ "recursive_loop": "recursiveLoop",
23386
23530
  "reserved_concurrent_executions": "reservedConcurrentExecutions",
23387
23531
  "role": "role",
23388
23532
  "runtime_management_mode": "runtimeManagementMode",
@@ -23437,6 +23581,7 @@ class DockerImageFunctionProps(FunctionOptions):
23437
23581
  params_and_secrets: typing.Optional[ParamsAndSecretsLayerVersion] = None,
23438
23582
  profiling: typing.Optional[builtins.bool] = None,
23439
23583
  profiling_group: typing.Optional[_IProfilingGroup_0bba72c4] = None,
23584
+ recursive_loop: typing.Optional[RecursiveLoop] = None,
23440
23585
  reserved_concurrent_executions: typing.Optional[jsii.Number] = None,
23441
23586
  role: typing.Optional[_IRole_235f5d8e] = None,
23442
23587
  runtime_management_mode: typing.Optional[RuntimeManagementMode] = None,
@@ -23488,6 +23633,7 @@ class DockerImageFunctionProps(FunctionOptions):
23488
23633
  :param params_and_secrets: Specify the configuration of Parameters and Secrets Extension. Default: - No Parameters and Secrets Extension
23489
23634
  :param profiling: Enable profiling. Default: - No profiling.
23490
23635
  :param profiling_group: Profiling Group. Default: - A new profiling group will be created if ``profiling`` is set.
23636
+ :param recursive_loop: Sets the Recursive Loop Protection for Lambda Function. It lets Lambda detect and terminate unintended recusrive loops. Default: RecursiveLoop.Terminate
23491
23637
  :param reserved_concurrent_executions: The maximum of concurrent executions you want to reserve for the function. Default: - No specific limit - account limit.
23492
23638
  :param role: Lambda execution role. This is the role that will be assumed by the function upon execution. It controls the permissions that the function will have. The Role must be assumable by the 'lambda.amazonaws.com' service principal. The default Role automatically has permissions granted for Lambda execution. If you provide a Role, you must add the relevant AWS managed policies yourself. The relevant managed policies are "service-role/AWSLambdaBasicExecutionRole" and "service-role/AWSLambdaVPCAccessExecutionRole". Default: - A unique role will be generated for this lambda function. Both supplied and generated roles can always be changed by calling ``addToRolePolicy``.
23493
23639
  :param runtime_management_mode: Sets the runtime management configuration for a function's version. Default: Auto
@@ -23555,6 +23701,7 @@ class DockerImageFunctionProps(FunctionOptions):
23555
23701
  check_type(argname="argument params_and_secrets", value=params_and_secrets, expected_type=type_hints["params_and_secrets"])
23556
23702
  check_type(argname="argument profiling", value=profiling, expected_type=type_hints["profiling"])
23557
23703
  check_type(argname="argument profiling_group", value=profiling_group, expected_type=type_hints["profiling_group"])
23704
+ check_type(argname="argument recursive_loop", value=recursive_loop, expected_type=type_hints["recursive_loop"])
23558
23705
  check_type(argname="argument reserved_concurrent_executions", value=reserved_concurrent_executions, expected_type=type_hints["reserved_concurrent_executions"])
23559
23706
  check_type(argname="argument role", value=role, expected_type=type_hints["role"])
23560
23707
  check_type(argname="argument runtime_management_mode", value=runtime_management_mode, expected_type=type_hints["runtime_management_mode"])
@@ -23642,6 +23789,8 @@ class DockerImageFunctionProps(FunctionOptions):
23642
23789
  self._values["profiling"] = profiling
23643
23790
  if profiling_group is not None:
23644
23791
  self._values["profiling_group"] = profiling_group
23792
+ if recursive_loop is not None:
23793
+ self._values["recursive_loop"] = recursive_loop
23645
23794
  if reserved_concurrent_executions is not None:
23646
23795
  self._values["reserved_concurrent_executions"] = reserved_concurrent_executions
23647
23796
  if role is not None:
@@ -24088,6 +24237,17 @@ class DockerImageFunctionProps(FunctionOptions):
24088
24237
  result = self._values.get("profiling_group")
24089
24238
  return typing.cast(typing.Optional[_IProfilingGroup_0bba72c4], result)
24090
24239
 
24240
+ @builtins.property
24241
+ def recursive_loop(self) -> typing.Optional[RecursiveLoop]:
24242
+ '''Sets the Recursive Loop Protection for Lambda Function.
24243
+
24244
+ It lets Lambda detect and terminate unintended recusrive loops.
24245
+
24246
+ :default: RecursiveLoop.Terminate
24247
+ '''
24248
+ result = self._values.get("recursive_loop")
24249
+ return typing.cast(typing.Optional[RecursiveLoop], result)
24250
+
24091
24251
  @builtins.property
24092
24252
  def reserved_concurrent_executions(self) -> typing.Optional[jsii.Number]:
24093
24253
  '''The maximum of concurrent executions you want to reserve for the function.
@@ -24280,11 +24440,13 @@ class EventSourceMapping(
24280
24440
  # The code below shows an example of how to instantiate this type.
24281
24441
  # The values are placeholders you should change.
24282
24442
  import aws_cdk as cdk
24443
+ from aws_cdk import aws_kms as kms
24283
24444
  from aws_cdk import aws_lambda as lambda_
24284
24445
 
24285
24446
  # event_source_dlq: lambda.IEventSourceDlq
24286
24447
  # filters: Any
24287
24448
  # function_: lambda.Function
24449
+ # key: kms.Key
24288
24450
  # source_access_configuration_type: lambda.SourceAccessConfigurationType
24289
24451
 
24290
24452
  event_source_mapping = lambda_.EventSourceMapping(self, "MyEventSourceMapping",
@@ -24295,6 +24457,7 @@ class EventSourceMapping(
24295
24457
  bisect_batch_on_error=False,
24296
24458
  enabled=False,
24297
24459
  event_source_arn="eventSourceArn",
24460
+ filter_encryption=key,
24298
24461
  filters=[{
24299
24462
  "filters_key": filters
24300
24463
  }],
@@ -24329,6 +24492,7 @@ class EventSourceMapping(
24329
24492
  bisect_batch_on_error: typing.Optional[builtins.bool] = None,
24330
24493
  enabled: typing.Optional[builtins.bool] = None,
24331
24494
  event_source_arn: typing.Optional[builtins.str] = None,
24495
+ filter_encryption: typing.Optional[_IKey_5f11635f] = None,
24332
24496
  filters: typing.Optional[typing.Sequence[typing.Mapping[builtins.str, typing.Any]]] = None,
24333
24497
  kafka_bootstrap_servers: typing.Optional[typing.Sequence[builtins.str]] = None,
24334
24498
  kafka_consumer_group_id: typing.Optional[builtins.str] = None,
@@ -24354,6 +24518,7 @@ class EventSourceMapping(
24354
24518
  :param bisect_batch_on_error: If the function returns an error, split the batch in two and retry. Default: false
24355
24519
  :param enabled: Set to false to disable the event source upon creation. Default: true
24356
24520
  :param event_source_arn: The Amazon Resource Name (ARN) of the event source. Any record added to this stream can invoke the Lambda function. Default: - not set if using a self managed Kafka cluster, throws an error otherwise
24521
+ :param filter_encryption: Add Customer managed KMS key to encrypt Filter Criteria. Default: - none
24357
24522
  :param filters: Add filter criteria to Event Source. Default: - none
24358
24523
  :param kafka_bootstrap_servers: A list of host and port pairs that are the addresses of the Kafka brokers in a self managed "bootstrap" Kafka cluster that a Kafka client connects to initially to bootstrap itself. They are in the format ``abc.example.com:9096``. Default: - none
24359
24524
  :param kafka_consumer_group_id: The identifier for the Kafka consumer group to join. The consumer group ID must be unique among all your Kafka event sources. After creating a Kafka event source mapping with the consumer group ID specified, you cannot update this value. The value must have a lenght between 1 and 200 and full the pattern '[a-zA-Z0-9-/*:_+=.@-]*'. For more information, see `Customizable consumer group ID <https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#services-msk-consumer-group-id>`_. Default: - none
@@ -24381,6 +24546,7 @@ class EventSourceMapping(
24381
24546
  bisect_batch_on_error=bisect_batch_on_error,
24382
24547
  enabled=enabled,
24383
24548
  event_source_arn=event_source_arn,
24549
+ filter_encryption=filter_encryption,
24384
24550
  filters=filters,
24385
24551
  kafka_bootstrap_servers=kafka_bootstrap_servers,
24386
24552
  kafka_consumer_group_id=kafka_consumer_group_id,
@@ -24499,6 +24665,7 @@ class FunctionBase(
24499
24665
  bisect_batch_on_error: typing.Optional[builtins.bool] = None,
24500
24666
  enabled: typing.Optional[builtins.bool] = None,
24501
24667
  event_source_arn: typing.Optional[builtins.str] = None,
24668
+ filter_encryption: typing.Optional[_IKey_5f11635f] = None,
24502
24669
  filters: typing.Optional[typing.Sequence[typing.Mapping[builtins.str, typing.Any]]] = None,
24503
24670
  kafka_bootstrap_servers: typing.Optional[typing.Sequence[builtins.str]] = None,
24504
24671
  kafka_consumer_group_id: typing.Optional[builtins.str] = None,
@@ -24523,6 +24690,7 @@ class FunctionBase(
24523
24690
  :param bisect_batch_on_error: If the function returns an error, split the batch in two and retry. Default: false
24524
24691
  :param enabled: Set to false to disable the event source upon creation. Default: true
24525
24692
  :param event_source_arn: The Amazon Resource Name (ARN) of the event source. Any record added to this stream can invoke the Lambda function. Default: - not set if using a self managed Kafka cluster, throws an error otherwise
24693
+ :param filter_encryption: Add Customer managed KMS key to encrypt Filter Criteria. Default: - none
24526
24694
  :param filters: Add filter criteria to Event Source. Default: - none
24527
24695
  :param kafka_bootstrap_servers: A list of host and port pairs that are the addresses of the Kafka brokers in a self managed "bootstrap" Kafka cluster that a Kafka client connects to initially to bootstrap itself. They are in the format ``abc.example.com:9096``. Default: - none
24528
24696
  :param kafka_consumer_group_id: The identifier for the Kafka consumer group to join. The consumer group ID must be unique among all your Kafka event sources. After creating a Kafka event source mapping with the consumer group ID specified, you cannot update this value. The value must have a lenght between 1 and 200 and full the pattern '[a-zA-Z0-9-/*:_+=.@-]*'. For more information, see `Customizable consumer group ID <https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#services-msk-consumer-group-id>`_. Default: - none
@@ -24548,6 +24716,7 @@ class FunctionBase(
24548
24716
  bisect_batch_on_error=bisect_batch_on_error,
24549
24717
  enabled=enabled,
24550
24718
  event_source_arn=event_source_arn,
24719
+ filter_encryption=filter_encryption,
24551
24720
  filters=filters,
24552
24721
  kafka_bootstrap_servers=kafka_bootstrap_servers,
24553
24722
  kafka_consumer_group_id=kafka_consumer_group_id,
@@ -25467,6 +25636,7 @@ class SingletonFunction(
25467
25636
  params_and_secrets: typing.Optional[ParamsAndSecretsLayerVersion] = None,
25468
25637
  profiling: typing.Optional[builtins.bool] = None,
25469
25638
  profiling_group: typing.Optional[_IProfilingGroup_0bba72c4] = None,
25639
+ recursive_loop: typing.Optional[RecursiveLoop] = None,
25470
25640
  reserved_concurrent_executions: typing.Optional[jsii.Number] = None,
25471
25641
  role: typing.Optional[_IRole_235f5d8e] = None,
25472
25642
  runtime_management_mode: typing.Optional[RuntimeManagementMode] = None,
@@ -25523,6 +25693,7 @@ class SingletonFunction(
25523
25693
  :param params_and_secrets: Specify the configuration of Parameters and Secrets Extension. Default: - No Parameters and Secrets Extension
25524
25694
  :param profiling: Enable profiling. Default: - No profiling.
25525
25695
  :param profiling_group: Profiling Group. Default: - A new profiling group will be created if ``profiling`` is set.
25696
+ :param recursive_loop: Sets the Recursive Loop Protection for Lambda Function. It lets Lambda detect and terminate unintended recusrive loops. Default: RecursiveLoop.Terminate
25526
25697
  :param reserved_concurrent_executions: The maximum of concurrent executions you want to reserve for the function. Default: - No specific limit - account limit.
25527
25698
  :param role: Lambda execution role. This is the role that will be assumed by the function upon execution. It controls the permissions that the function will have. The Role must be assumable by the 'lambda.amazonaws.com' service principal. The default Role automatically has permissions granted for Lambda execution. If you provide a Role, you must add the relevant AWS managed policies yourself. The relevant managed policies are "service-role/AWSLambdaBasicExecutionRole" and "service-role/AWSLambdaVPCAccessExecutionRole". Default: - A unique role will be generated for this lambda function. Both supplied and generated roles can always be changed by calling ``addToRolePolicy``.
25528
25699
  :param runtime_management_mode: Sets the runtime management configuration for a function's version. Default: Auto
@@ -25581,6 +25752,7 @@ class SingletonFunction(
25581
25752
  params_and_secrets=params_and_secrets,
25582
25753
  profiling=profiling,
25583
25754
  profiling_group=profiling_group,
25755
+ recursive_loop=recursive_loop,
25584
25756
  reserved_concurrent_executions=reserved_concurrent_executions,
25585
25757
  role=role,
25586
25758
  runtime_management_mode=runtime_management_mode,
@@ -26425,6 +26597,7 @@ class Function(
26425
26597
  params_and_secrets: typing.Optional[ParamsAndSecretsLayerVersion] = None,
26426
26598
  profiling: typing.Optional[builtins.bool] = None,
26427
26599
  profiling_group: typing.Optional[_IProfilingGroup_0bba72c4] = None,
26600
+ recursive_loop: typing.Optional[RecursiveLoop] = None,
26428
26601
  reserved_concurrent_executions: typing.Optional[jsii.Number] = None,
26429
26602
  role: typing.Optional[_IRole_235f5d8e] = None,
26430
26603
  runtime_management_mode: typing.Optional[RuntimeManagementMode] = None,
@@ -26479,6 +26652,7 @@ class Function(
26479
26652
  :param params_and_secrets: Specify the configuration of Parameters and Secrets Extension. Default: - No Parameters and Secrets Extension
26480
26653
  :param profiling: Enable profiling. Default: - No profiling.
26481
26654
  :param profiling_group: Profiling Group. Default: - A new profiling group will be created if ``profiling`` is set.
26655
+ :param recursive_loop: Sets the Recursive Loop Protection for Lambda Function. It lets Lambda detect and terminate unintended recusrive loops. Default: RecursiveLoop.Terminate
26482
26656
  :param reserved_concurrent_executions: The maximum of concurrent executions you want to reserve for the function. Default: - No specific limit - account limit.
26483
26657
  :param role: Lambda execution role. This is the role that will be assumed by the function upon execution. It controls the permissions that the function will have. The Role must be assumable by the 'lambda.amazonaws.com' service principal. The default Role automatically has permissions granted for Lambda execution. If you provide a Role, you must add the relevant AWS managed policies yourself. The relevant managed policies are "service-role/AWSLambdaBasicExecutionRole" and "service-role/AWSLambdaVPCAccessExecutionRole". Default: - A unique role will be generated for this lambda function. Both supplied and generated roles can always be changed by calling ``addToRolePolicy``.
26484
26658
  :param runtime_management_mode: Sets the runtime management configuration for a function's version. Default: Auto
@@ -26535,6 +26709,7 @@ class Function(
26535
26709
  params_and_secrets=params_and_secrets,
26536
26710
  profiling=profiling,
26537
26711
  profiling_group=profiling_group,
26712
+ recursive_loop=recursive_loop,
26538
26713
  reserved_concurrent_executions=reserved_concurrent_executions,
26539
26714
  role=role,
26540
26715
  runtime_management_mode=runtime_management_mode,
@@ -27217,6 +27392,7 @@ class DockerImageFunction(
27217
27392
  params_and_secrets: typing.Optional[ParamsAndSecretsLayerVersion] = None,
27218
27393
  profiling: typing.Optional[builtins.bool] = None,
27219
27394
  profiling_group: typing.Optional[_IProfilingGroup_0bba72c4] = None,
27395
+ recursive_loop: typing.Optional[RecursiveLoop] = None,
27220
27396
  reserved_concurrent_executions: typing.Optional[jsii.Number] = None,
27221
27397
  role: typing.Optional[_IRole_235f5d8e] = None,
27222
27398
  runtime_management_mode: typing.Optional[RuntimeManagementMode] = None,
@@ -27269,6 +27445,7 @@ class DockerImageFunction(
27269
27445
  :param params_and_secrets: Specify the configuration of Parameters and Secrets Extension. Default: - No Parameters and Secrets Extension
27270
27446
  :param profiling: Enable profiling. Default: - No profiling.
27271
27447
  :param profiling_group: Profiling Group. Default: - A new profiling group will be created if ``profiling`` is set.
27448
+ :param recursive_loop: Sets the Recursive Loop Protection for Lambda Function. It lets Lambda detect and terminate unintended recusrive loops. Default: RecursiveLoop.Terminate
27272
27449
  :param reserved_concurrent_executions: The maximum of concurrent executions you want to reserve for the function. Default: - No specific limit - account limit.
27273
27450
  :param role: Lambda execution role. This is the role that will be assumed by the function upon execution. It controls the permissions that the function will have. The Role must be assumable by the 'lambda.amazonaws.com' service principal. The default Role automatically has permissions granted for Lambda execution. If you provide a Role, you must add the relevant AWS managed policies yourself. The relevant managed policies are "service-role/AWSLambdaBasicExecutionRole" and "service-role/AWSLambdaVPCAccessExecutionRole". Default: - A unique role will be generated for this lambda function. Both supplied and generated roles can always be changed by calling ``addToRolePolicy``.
27274
27451
  :param runtime_management_mode: Sets the runtime management configuration for a function's version. Default: Auto
@@ -27323,6 +27500,7 @@ class DockerImageFunction(
27323
27500
  params_and_secrets=params_and_secrets,
27324
27501
  profiling=profiling,
27325
27502
  profiling_group=profiling_group,
27503
+ recursive_loop=recursive_loop,
27326
27504
  reserved_concurrent_executions=reserved_concurrent_executions,
27327
27505
  role=role,
27328
27506
  runtime_management_mode=runtime_management_mode,
@@ -27453,6 +27631,7 @@ __all__ = [
27453
27631
  "ParamsAndSecretsVersions",
27454
27632
  "Permission",
27455
27633
  "QualifiedFunctionBase",
27634
+ "RecursiveLoop",
27456
27635
  "ResourceBindOptions",
27457
27636
  "Runtime",
27458
27637
  "RuntimeFamily",
@@ -27861,6 +28040,7 @@ def _typecheckingstub__2fc9432254acf5a7dbe3c68dcedbda61de1f0e804a81d20ae79e04857
27861
28040
  event_source_arn: typing.Optional[builtins.str] = None,
27862
28041
  filter_criteria: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnEventSourceMapping.FilterCriteriaProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
27863
28042
  function_response_types: typing.Optional[typing.Sequence[builtins.str]] = None,
28043
+ kms_key_arn: typing.Optional[builtins.str] = None,
27864
28044
  maximum_batching_window_in_seconds: typing.Optional[jsii.Number] = None,
27865
28045
  maximum_record_age_in_seconds: typing.Optional[jsii.Number] = None,
27866
28046
  maximum_retry_attempts: typing.Optional[jsii.Number] = None,
@@ -27950,6 +28130,12 @@ def _typecheckingstub__d464545d76bb56469faf58591d3fb0044c464a1cdb5b122bf47e0b3ea
27950
28130
  """Type checking stubs"""
27951
28131
  pass
27952
28132
 
28133
+ def _typecheckingstub__5110117b05ec57a413615f5bf30afd8bbafb2be839685cf0e158a1b4de420fbc(
28134
+ value: typing.Optional[builtins.str],
28135
+ ) -> None:
28136
+ """Type checking stubs"""
28137
+ pass
28138
+
27953
28139
  def _typecheckingstub__e0ab317a438123c62fee46e89709c7bb879475c514910f3928a4fa4a397f556a(
27954
28140
  value: typing.Optional[jsii.Number],
27955
28141
  ) -> None:
@@ -28120,6 +28306,7 @@ def _typecheckingstub__28f15573fb2525439f034f01287568e3c4a4d28fda953b3059f294655
28120
28306
  event_source_arn: typing.Optional[builtins.str] = None,
28121
28307
  filter_criteria: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnEventSourceMapping.FilterCriteriaProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
28122
28308
  function_response_types: typing.Optional[typing.Sequence[builtins.str]] = None,
28309
+ kms_key_arn: typing.Optional[builtins.str] = None,
28123
28310
  maximum_batching_window_in_seconds: typing.Optional[jsii.Number] = None,
28124
28311
  maximum_record_age_in_seconds: typing.Optional[jsii.Number] = None,
28125
28312
  maximum_retry_attempts: typing.Optional[jsii.Number] = None,
@@ -28158,6 +28345,7 @@ def _typecheckingstub__d971f3872acf20816e6da364ff9e6bec83fe2e68bbb9a7debc845b400
28158
28345
  logging_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnFunction.LoggingConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
28159
28346
  memory_size: typing.Optional[jsii.Number] = None,
28160
28347
  package_type: typing.Optional[builtins.str] = None,
28348
+ recursive_loop: typing.Optional[builtins.str] = None,
28161
28349
  reserved_concurrent_executions: typing.Optional[jsii.Number] = None,
28162
28350
  runtime: typing.Optional[builtins.str] = None,
28163
28351
  runtime_management_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnFunction.RuntimeManagementConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
@@ -28284,6 +28472,12 @@ def _typecheckingstub__7f9bb5c748b58d456d8f996b07509c9991044629122c76de58eaabc34
28284
28472
  """Type checking stubs"""
28285
28473
  pass
28286
28474
 
28475
+ def _typecheckingstub__021080e0643735be55c0ce187b6c3482fd8d23af0a29c95ad94660f1cf184a90(
28476
+ value: typing.Optional[builtins.str],
28477
+ ) -> None:
28478
+ """Type checking stubs"""
28479
+ pass
28480
+
28287
28481
  def _typecheckingstub__776a8ed6e24e90be835cb39b621ff66305005b357a6debbf3a62f69d83289278(
28288
28482
  value: typing.Optional[jsii.Number],
28289
28483
  ) -> None:
@@ -28449,6 +28643,7 @@ def _typecheckingstub__06b7f494e25475a49ebed0d7ed6d0fca9653b5fa5e00ded0cba4fc40a
28449
28643
  logging_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnFunction.LoggingConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
28450
28644
  memory_size: typing.Optional[jsii.Number] = None,
28451
28645
  package_type: typing.Optional[builtins.str] = None,
28646
+ recursive_loop: typing.Optional[builtins.str] = None,
28452
28647
  reserved_concurrent_executions: typing.Optional[jsii.Number] = None,
28453
28648
  runtime: typing.Optional[builtins.str] = None,
28454
28649
  runtime_management_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnFunction.RuntimeManagementConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
@@ -29178,6 +29373,7 @@ def _typecheckingstub__7442d2bd60e56a826eab54e95fa6a6ebc8961285a26558c7189840a12
29178
29373
  bisect_batch_on_error: typing.Optional[builtins.bool] = None,
29179
29374
  enabled: typing.Optional[builtins.bool] = None,
29180
29375
  event_source_arn: typing.Optional[builtins.str] = None,
29376
+ filter_encryption: typing.Optional[_IKey_5f11635f] = None,
29181
29377
  filters: typing.Optional[typing.Sequence[typing.Mapping[builtins.str, typing.Any]]] = None,
29182
29378
  kafka_bootstrap_servers: typing.Optional[typing.Sequence[builtins.str]] = None,
29183
29379
  kafka_consumer_group_id: typing.Optional[builtins.str] = None,
@@ -29204,6 +29400,7 @@ def _typecheckingstub__e74d0bc5516fc715f7302bdf199df23dddf769e98771f0bac2ff026a4
29204
29400
  bisect_batch_on_error: typing.Optional[builtins.bool] = None,
29205
29401
  enabled: typing.Optional[builtins.bool] = None,
29206
29402
  event_source_arn: typing.Optional[builtins.str] = None,
29403
+ filter_encryption: typing.Optional[_IKey_5f11635f] = None,
29207
29404
  filters: typing.Optional[typing.Sequence[typing.Mapping[builtins.str, typing.Any]]] = None,
29208
29405
  kafka_bootstrap_servers: typing.Optional[typing.Sequence[builtins.str]] = None,
29209
29406
  kafka_consumer_group_id: typing.Optional[builtins.str] = None,
@@ -29330,6 +29527,7 @@ def _typecheckingstub__59918bb957d892739733c7a5849db990615fe5329709ad7ba703e0ee4
29330
29527
  params_and_secrets: typing.Optional[ParamsAndSecretsLayerVersion] = None,
29331
29528
  profiling: typing.Optional[builtins.bool] = None,
29332
29529
  profiling_group: typing.Optional[_IProfilingGroup_0bba72c4] = None,
29530
+ recursive_loop: typing.Optional[RecursiveLoop] = None,
29333
29531
  reserved_concurrent_executions: typing.Optional[jsii.Number] = None,
29334
29532
  role: typing.Optional[_IRole_235f5d8e] = None,
29335
29533
  runtime_management_mode: typing.Optional[RuntimeManagementMode] = None,
@@ -29383,6 +29581,7 @@ def _typecheckingstub__94e70d11aa3c53737d418dbb9983973dfc06dbdef5c8cc30613cc3c6d
29383
29581
  params_and_secrets: typing.Optional[ParamsAndSecretsLayerVersion] = None,
29384
29582
  profiling: typing.Optional[builtins.bool] = None,
29385
29583
  profiling_group: typing.Optional[_IProfilingGroup_0bba72c4] = None,
29584
+ recursive_loop: typing.Optional[RecursiveLoop] = None,
29386
29585
  reserved_concurrent_executions: typing.Optional[jsii.Number] = None,
29387
29586
  role: typing.Optional[_IRole_235f5d8e] = None,
29388
29587
  runtime_management_mode: typing.Optional[RuntimeManagementMode] = None,
@@ -29480,6 +29679,7 @@ def _typecheckingstub__726375d512fd3c0da30be8d20d1c4016974ba77359e6bac8eb3569126
29480
29679
  bisect_batch_on_error: typing.Optional[builtins.bool] = None,
29481
29680
  enabled: typing.Optional[builtins.bool] = None,
29482
29681
  event_source_arn: typing.Optional[builtins.str] = None,
29682
+ filter_encryption: typing.Optional[_IKey_5f11635f] = None,
29483
29683
  filters: typing.Optional[typing.Sequence[typing.Mapping[builtins.str, typing.Any]]] = None,
29484
29684
  kafka_bootstrap_servers: typing.Optional[typing.Sequence[builtins.str]] = None,
29485
29685
  kafka_consumer_group_id: typing.Optional[builtins.str] = None,
@@ -29879,6 +30079,7 @@ def _typecheckingstub__68a03ec9f866a29c77aabcf8328c63a49511790fa9714874f255b3292
29879
30079
  params_and_secrets: typing.Optional[ParamsAndSecretsLayerVersion] = None,
29880
30080
  profiling: typing.Optional[builtins.bool] = None,
29881
30081
  profiling_group: typing.Optional[_IProfilingGroup_0bba72c4] = None,
30082
+ recursive_loop: typing.Optional[RecursiveLoop] = None,
29882
30083
  reserved_concurrent_executions: typing.Optional[jsii.Number] = None,
29883
30084
  role: typing.Optional[_IRole_235f5d8e] = None,
29884
30085
  runtime_management_mode: typing.Optional[RuntimeManagementMode] = None,
@@ -30130,6 +30331,7 @@ def _typecheckingstub__04dd97f4b18c00e7ee0981f2428664401ae0b75dbda6102ea3ef53d08
30130
30331
  params_and_secrets: typing.Optional[ParamsAndSecretsLayerVersion] = None,
30131
30332
  profiling: typing.Optional[builtins.bool] = None,
30132
30333
  profiling_group: typing.Optional[_IProfilingGroup_0bba72c4] = None,
30334
+ recursive_loop: typing.Optional[RecursiveLoop] = None,
30133
30335
  reserved_concurrent_executions: typing.Optional[jsii.Number] = None,
30134
30336
  role: typing.Optional[_IRole_235f5d8e] = None,
30135
30337
  runtime_management_mode: typing.Optional[RuntimeManagementMode] = None,
@@ -30155,6 +30357,7 @@ def _typecheckingstub__b0460bc5250777612d2b42ec799737ce019fcdc03fe86c6540ab2ecec
30155
30357
  bisect_batch_on_error: typing.Optional[builtins.bool] = None,
30156
30358
  enabled: typing.Optional[builtins.bool] = None,
30157
30359
  event_source_arn: typing.Optional[builtins.str] = None,
30360
+ filter_encryption: typing.Optional[_IKey_5f11635f] = None,
30158
30361
  filters: typing.Optional[typing.Sequence[typing.Mapping[builtins.str, typing.Any]]] = None,
30159
30362
  kafka_bootstrap_servers: typing.Optional[typing.Sequence[builtins.str]] = None,
30160
30363
  kafka_consumer_group_id: typing.Optional[builtins.str] = None,
@@ -30208,6 +30411,7 @@ def _typecheckingstub__bfc312bd9bc4e64c5ae8419715155a56676bb9fe40870f57ffa4f3030
30208
30411
  bisect_batch_on_error: typing.Optional[builtins.bool] = None,
30209
30412
  enabled: typing.Optional[builtins.bool] = None,
30210
30413
  event_source_arn: typing.Optional[builtins.str] = None,
30414
+ filter_encryption: typing.Optional[_IKey_5f11635f] = None,
30211
30415
  filters: typing.Optional[typing.Sequence[typing.Mapping[builtins.str, typing.Any]]] = None,
30212
30416
  kafka_bootstrap_servers: typing.Optional[typing.Sequence[builtins.str]] = None,
30213
30417
  kafka_consumer_group_id: typing.Optional[builtins.str] = None,
@@ -30386,6 +30590,7 @@ def _typecheckingstub__e7b766bff13bb7266787cec9bebb600187e19c1672e530bb9cfa31649
30386
30590
  params_and_secrets: typing.Optional[ParamsAndSecretsLayerVersion] = None,
30387
30591
  profiling: typing.Optional[builtins.bool] = None,
30388
30592
  profiling_group: typing.Optional[_IProfilingGroup_0bba72c4] = None,
30593
+ recursive_loop: typing.Optional[RecursiveLoop] = None,
30389
30594
  reserved_concurrent_executions: typing.Optional[jsii.Number] = None,
30390
30595
  role: typing.Optional[_IRole_235f5d8e] = None,
30391
30596
  runtime_management_mode: typing.Optional[RuntimeManagementMode] = None,
@@ -30592,6 +30797,7 @@ def _typecheckingstub__724895b6b59aaf2b678ef25f2beca19fb114fc04ff6b37edef28e12b3
30592
30797
  params_and_secrets: typing.Optional[ParamsAndSecretsLayerVersion] = None,
30593
30798
  profiling: typing.Optional[builtins.bool] = None,
30594
30799
  profiling_group: typing.Optional[_IProfilingGroup_0bba72c4] = None,
30800
+ recursive_loop: typing.Optional[RecursiveLoop] = None,
30595
30801
  reserved_concurrent_executions: typing.Optional[jsii.Number] = None,
30596
30802
  role: typing.Optional[_IRole_235f5d8e] = None,
30597
30803
  runtime_management_mode: typing.Optional[RuntimeManagementMode] = None,
@@ -30735,6 +30941,7 @@ def _typecheckingstub__368a49fe1f866c7ea7986c57b6f8488d0fddea8f62bf05ec1ed7eb09b
30735
30941
  params_and_secrets: typing.Optional[ParamsAndSecretsLayerVersion] = None,
30736
30942
  profiling: typing.Optional[builtins.bool] = None,
30737
30943
  profiling_group: typing.Optional[_IProfilingGroup_0bba72c4] = None,
30944
+ recursive_loop: typing.Optional[RecursiveLoop] = None,
30738
30945
  reserved_concurrent_executions: typing.Optional[jsii.Number] = None,
30739
30946
  role: typing.Optional[_IRole_235f5d8e] = None,
30740
30947
  runtime_management_mode: typing.Optional[RuntimeManagementMode] = None,