aws-cdk-lib 2.200.2__py3-none-any.whl → 2.202.0__py3-none-any.whl

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

Potentially problematic release.


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

Files changed (62) hide show
  1. aws_cdk/__init__.py +129 -37
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.200.2.jsii.tgz → aws-cdk-lib@2.202.0.jsii.tgz} +0 -0
  4. aws_cdk/aws_amazonmq/__init__.py +2 -3
  5. aws_cdk/aws_amplify/__init__.py +3 -3
  6. aws_cdk/aws_apigateway/__init__.py +21 -17
  7. aws_cdk/aws_apigatewayv2/__init__.py +87 -45
  8. aws_cdk/aws_appconfig/__init__.py +38 -1
  9. aws_cdk/aws_appsync/__init__.py +10 -10
  10. aws_cdk/aws_athena/__init__.py +227 -0
  11. aws_cdk/aws_autoscaling/__init__.py +38 -37
  12. aws_cdk/aws_bedrock/__init__.py +5108 -1571
  13. aws_cdk/aws_cloudfront/__init__.py +38 -38
  14. aws_cdk/aws_cloudfront/experimental/__init__.py +5 -0
  15. aws_cdk/aws_cloudtrail/__init__.py +178 -0
  16. aws_cdk/aws_cloudwatch/__init__.py +7 -3
  17. aws_cdk/aws_codepipeline_actions/__init__.py +746 -0
  18. aws_cdk/aws_connect/__init__.py +5 -5
  19. aws_cdk/aws_customerprofiles/__init__.py +377 -8
  20. aws_cdk/aws_datasync/__init__.py +189 -160
  21. aws_cdk/aws_datazone/__init__.py +512 -170
  22. aws_cdk/aws_deadline/__init__.py +32 -4
  23. aws_cdk/aws_dsql/__init__.py +150 -10
  24. aws_cdk/aws_ec2/__init__.py +1191 -304
  25. aws_cdk/aws_ecs/__init__.py +94 -11
  26. aws_cdk/aws_efs/__init__.py +103 -12
  27. aws_cdk/aws_eks/__init__.py +337 -168
  28. aws_cdk/aws_elasticloadbalancingv2/__init__.py +2 -2
  29. aws_cdk/aws_emr/__init__.py +10 -4
  30. aws_cdk/aws_entityresolution/__init__.py +25 -10
  31. aws_cdk/aws_evs/__init__.py +2204 -0
  32. aws_cdk/aws_fsx/__init__.py +7 -7
  33. aws_cdk/aws_glue/__init__.py +58 -24
  34. aws_cdk/aws_iam/__init__.py +3 -3
  35. aws_cdk/aws_kms/__init__.py +10 -4
  36. aws_cdk/aws_lambda/__init__.py +1167 -55
  37. aws_cdk/aws_lambda_event_sources/__init__.py +638 -1
  38. aws_cdk/aws_lightsail/__init__.py +17 -13
  39. aws_cdk/aws_logs/__init__.py +1 -0
  40. aws_cdk/aws_msk/__init__.py +21 -2
  41. aws_cdk/aws_mwaa/__init__.py +45 -2
  42. aws_cdk/aws_networkfirewall/__init__.py +562 -0
  43. aws_cdk/aws_opensearchservice/__init__.py +3 -3
  44. aws_cdk/aws_opsworkscm/__init__.py +9 -43
  45. aws_cdk/aws_rds/__init__.py +287 -87
  46. aws_cdk/aws_s3/__init__.py +39 -15
  47. aws_cdk/aws_sagemaker/__init__.py +223 -3
  48. aws_cdk/aws_securityhub/__init__.py +18 -34
  49. aws_cdk/aws_ssm/__init__.py +83 -1
  50. aws_cdk/aws_stepfunctions/__init__.py +235 -45
  51. aws_cdk/aws_synthetics/__init__.py +74 -0
  52. aws_cdk/aws_transfer/__init__.py +3 -3
  53. aws_cdk/aws_verifiedpermissions/__init__.py +17 -6
  54. aws_cdk/aws_wafv2/__init__.py +770 -7
  55. aws_cdk/cx_api/__init__.py +14 -0
  56. aws_cdk/pipelines/__init__.py +147 -38
  57. {aws_cdk_lib-2.200.2.dist-info → aws_cdk_lib-2.202.0.dist-info}/METADATA +3 -3
  58. {aws_cdk_lib-2.200.2.dist-info → aws_cdk_lib-2.202.0.dist-info}/RECORD +62 -61
  59. {aws_cdk_lib-2.200.2.dist-info → aws_cdk_lib-2.202.0.dist-info}/LICENSE +0 -0
  60. {aws_cdk_lib-2.200.2.dist-info → aws_cdk_lib-2.202.0.dist-info}/NOTICE +0 -0
  61. {aws_cdk_lib-2.200.2.dist-info → aws_cdk_lib-2.202.0.dist-info}/WHEEL +0 -0
  62. {aws_cdk_lib-2.200.2.dist-info → aws_cdk_lib-2.202.0.dist-info}/top_level.txt +0 -0
@@ -4414,6 +4414,8 @@ class CfnEventInvokeConfig(
4414
4414
  ) -> None:
4415
4415
  '''A configuration object that specifies the destination of an event after Lambda processes it.
4416
4416
 
4417
+ For more information, see `Adding a destination <https://docs.aws.amazon.com/lambda/latest/dg/invocation-async-retain-records.html#invocation-async-destinations>`_ .
4418
+
4417
4419
  :param on_failure: The destination configuration for failed invocations. .. epigraph:: When using an Amazon SQS queue as a destination, FIFO queues cannot be used.
4418
4420
  :param on_success: The destination configuration for successful invocations. .. epigraph:: When using an Amazon SQS queue as a destination, FIFO queues cannot be used.
4419
4421
 
@@ -4495,6 +4497,8 @@ class CfnEventInvokeConfig(
4495
4497
  def __init__(self, *, destination: builtins.str) -> None:
4496
4498
  '''A destination for events that failed processing.
4497
4499
 
4500
+ For more information, see `Adding a destination <https://docs.aws.amazon.com/lambda/latest/dg/invocation-async-retain-records.html#invocation-async-destinations>`_ .
4501
+
4498
4502
  :param destination: The Amazon Resource Name (ARN) of the destination resource. To retain records of unsuccessful `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, Amazon S3 bucket, Lambda function, or Amazon EventBridge event bus as the destination. To retain records of failed invocations from `Kinesis <https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html>`_ , `DynamoDB <https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html>`_ , `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.
4499
4503
 
4500
4504
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventinvokeconfig-onfailure.html
@@ -4552,6 +4556,9 @@ class CfnEventInvokeConfig(
4552
4556
  '''A destination for events that were processed successfully.
4553
4557
 
4554
4558
  To retain records of successful `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.
4559
+ .. epigraph::
4560
+
4561
+ ``OnSuccess`` is not supported in ``CreateEventSourceMapping`` or ``UpdateEventSourceMapping`` requests.
4555
4562
 
4556
4563
  :param destination: The Amazon Resource Name (ARN) of the destination resource.
4557
4564
 
@@ -4787,7 +4794,18 @@ class CfnEventSourceMapping(
4787
4794
 
4788
4795
  # the properties below are optional
4789
4796
  amazon_managed_kafka_event_source_config=lambda.CfnEventSourceMapping.AmazonManagedKafkaEventSourceConfigProperty(
4790
- consumer_group_id="consumerGroupId"
4797
+ consumer_group_id="consumerGroupId",
4798
+ schema_registry_config=lambda.CfnEventSourceMapping.SchemaRegistryConfigProperty(
4799
+ access_configs=[lambda.CfnEventSourceMapping.SchemaRegistryAccessConfigProperty(
4800
+ type="type",
4801
+ uri="uri"
4802
+ )],
4803
+ event_record_format="eventRecordFormat",
4804
+ schema_registry_uri="schemaRegistryUri",
4805
+ schema_validation_configs=[lambda.CfnEventSourceMapping.SchemaValidationConfigProperty(
4806
+ attribute="attribute"
4807
+ )]
4808
+ )
4791
4809
  ),
4792
4810
  batch_size=123,
4793
4811
  bisect_batch_on_function_error=False,
@@ -4831,7 +4849,18 @@ class CfnEventSourceMapping(
4831
4849
  )
4832
4850
  ),
4833
4851
  self_managed_kafka_event_source_config=lambda.CfnEventSourceMapping.SelfManagedKafkaEventSourceConfigProperty(
4834
- consumer_group_id="consumerGroupId"
4852
+ consumer_group_id="consumerGroupId",
4853
+ schema_registry_config=lambda.CfnEventSourceMapping.SchemaRegistryConfigProperty(
4854
+ access_configs=[lambda.CfnEventSourceMapping.SchemaRegistryAccessConfigProperty(
4855
+ type="type",
4856
+ uri="uri"
4857
+ )],
4858
+ event_record_format="eventRecordFormat",
4859
+ schema_registry_uri="schemaRegistryUri",
4860
+ schema_validation_configs=[lambda.CfnEventSourceMapping.SchemaValidationConfigProperty(
4861
+ attribute="attribute"
4862
+ )]
4863
+ )
4835
4864
  ),
4836
4865
  source_access_configurations=[lambda.CfnEventSourceMapping.SourceAccessConfigurationProperty(
4837
4866
  type="type",
@@ -5436,17 +5465,22 @@ class CfnEventSourceMapping(
5436
5465
  @jsii.data_type(
5437
5466
  jsii_type="aws-cdk-lib.aws_lambda.CfnEventSourceMapping.AmazonManagedKafkaEventSourceConfigProperty",
5438
5467
  jsii_struct_bases=[],
5439
- name_mapping={"consumer_group_id": "consumerGroupId"},
5468
+ name_mapping={
5469
+ "consumer_group_id": "consumerGroupId",
5470
+ "schema_registry_config": "schemaRegistryConfig",
5471
+ },
5440
5472
  )
5441
5473
  class AmazonManagedKafkaEventSourceConfigProperty:
5442
5474
  def __init__(
5443
5475
  self,
5444
5476
  *,
5445
5477
  consumer_group_id: typing.Optional[builtins.str] = None,
5478
+ schema_registry_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnEventSourceMapping.SchemaRegistryConfigProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
5446
5479
  ) -> None:
5447
5480
  '''Specific configuration settings for an Amazon Managed Streaming for Apache Kafka (Amazon MSK) event source.
5448
5481
 
5449
5482
  :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>`_ .
5483
+ :param schema_registry_config:
5450
5484
 
5451
5485
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-amazonmanagedkafkaeventsourceconfig.html
5452
5486
  :exampleMetadata: fixture=_generated
@@ -5458,15 +5492,29 @@ class CfnEventSourceMapping(
5458
5492
  from aws_cdk import aws_lambda as lambda_
5459
5493
 
5460
5494
  amazon_managed_kafka_event_source_config_property = lambda.CfnEventSourceMapping.AmazonManagedKafkaEventSourceConfigProperty(
5461
- consumer_group_id="consumerGroupId"
5495
+ consumer_group_id="consumerGroupId",
5496
+ schema_registry_config=lambda.CfnEventSourceMapping.SchemaRegistryConfigProperty(
5497
+ access_configs=[lambda.CfnEventSourceMapping.SchemaRegistryAccessConfigProperty(
5498
+ type="type",
5499
+ uri="uri"
5500
+ )],
5501
+ event_record_format="eventRecordFormat",
5502
+ schema_registry_uri="schemaRegistryUri",
5503
+ schema_validation_configs=[lambda.CfnEventSourceMapping.SchemaValidationConfigProperty(
5504
+ attribute="attribute"
5505
+ )]
5506
+ )
5462
5507
  )
5463
5508
  '''
5464
5509
  if __debug__:
5465
5510
  type_hints = typing.get_type_hints(_typecheckingstub__aac6572409154e0ba1b8c514b7863acbda031f98f5a42007db7c94d4afe31b72)
5466
5511
  check_type(argname="argument consumer_group_id", value=consumer_group_id, expected_type=type_hints["consumer_group_id"])
5512
+ check_type(argname="argument schema_registry_config", value=schema_registry_config, expected_type=type_hints["schema_registry_config"])
5467
5513
  self._values: typing.Dict[builtins.str, typing.Any] = {}
5468
5514
  if consumer_group_id is not None:
5469
5515
  self._values["consumer_group_id"] = consumer_group_id
5516
+ if schema_registry_config is not None:
5517
+ self._values["schema_registry_config"] = schema_registry_config
5470
5518
 
5471
5519
  @builtins.property
5472
5520
  def consumer_group_id(self) -> typing.Optional[builtins.str]:
@@ -5479,6 +5527,16 @@ class CfnEventSourceMapping(
5479
5527
  result = self._values.get("consumer_group_id")
5480
5528
  return typing.cast(typing.Optional[builtins.str], result)
5481
5529
 
5530
+ @builtins.property
5531
+ def schema_registry_config(
5532
+ self,
5533
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnEventSourceMapping.SchemaRegistryConfigProperty"]]:
5534
+ '''
5535
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-amazonmanagedkafkaeventsourceconfig.html#cfn-lambda-eventsourcemapping-amazonmanagedkafkaeventsourceconfig-schemaregistryconfig
5536
+ '''
5537
+ result = self._values.get("schema_registry_config")
5538
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnEventSourceMapping.SchemaRegistryConfigProperty"]], result)
5539
+
5482
5540
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
5483
5541
  return isinstance(rhs, self.__class__) and rhs._values == self._values
5484
5542
 
@@ -5503,6 +5561,8 @@ class CfnEventSourceMapping(
5503
5561
  ) -> None:
5504
5562
  '''A configuration object that specifies the destination of an event after Lambda processes it.
5505
5563
 
5564
+ For more information, see `Adding a destination <https://docs.aws.amazon.com/lambda/latest/dg/invocation-async-retain-records.html#invocation-async-destinations>`_ .
5565
+
5506
5566
  :param on_failure: The destination configuration for failed invocations.
5507
5567
 
5508
5568
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-destinationconfig.html
@@ -5881,6 +5941,8 @@ class CfnEventSourceMapping(
5881
5941
  ) -> None:
5882
5942
  '''A destination for events that failed processing.
5883
5943
 
5944
+ For more information, see `Adding a destination <https://docs.aws.amazon.com/lambda/latest/dg/invocation-async-retain-records.html#invocation-async-destinations>`_ .
5945
+
5884
5946
  :param destination: The Amazon Resource Name (ARN) of the destination resource. To retain records of unsuccessful `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, Amazon S3 bucket, Lambda function, or Amazon EventBridge event bus as the destination. To retain records of failed invocations from `Kinesis <https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html>`_ , `DynamoDB <https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html>`_ , `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.
5885
5947
 
5886
5948
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-onfailure.html
@@ -6057,6 +6119,240 @@ class CfnEventSourceMapping(
6057
6119
  k + "=" + repr(v) for k, v in self._values.items()
6058
6120
  )
6059
6121
 
6122
+ @jsii.data_type(
6123
+ jsii_type="aws-cdk-lib.aws_lambda.CfnEventSourceMapping.SchemaRegistryAccessConfigProperty",
6124
+ jsii_struct_bases=[],
6125
+ name_mapping={"type": "type", "uri": "uri"},
6126
+ )
6127
+ class SchemaRegistryAccessConfigProperty:
6128
+ def __init__(
6129
+ self,
6130
+ *,
6131
+ type: typing.Optional[builtins.str] = None,
6132
+ uri: typing.Optional[builtins.str] = None,
6133
+ ) -> None:
6134
+ '''
6135
+ :param type: The type of authentication Lambda uses to access your schema registry.
6136
+ :param uri: The URI of the secret (Secrets Manager secret ARN) to authenticate with your schema registry.
6137
+
6138
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-schemaregistryaccessconfig.html
6139
+ :exampleMetadata: fixture=_generated
6140
+
6141
+ Example::
6142
+
6143
+ # The code below shows an example of how to instantiate this type.
6144
+ # The values are placeholders you should change.
6145
+ from aws_cdk import aws_lambda as lambda_
6146
+
6147
+ schema_registry_access_config_property = lambda.CfnEventSourceMapping.SchemaRegistryAccessConfigProperty(
6148
+ type="type",
6149
+ uri="uri"
6150
+ )
6151
+ '''
6152
+ if __debug__:
6153
+ type_hints = typing.get_type_hints(_typecheckingstub__6eca6e693bd8bc08cbc4e65ef0a192af8a45e588dc95d417a2c7feff8fc7ade7)
6154
+ check_type(argname="argument type", value=type, expected_type=type_hints["type"])
6155
+ check_type(argname="argument uri", value=uri, expected_type=type_hints["uri"])
6156
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
6157
+ if type is not None:
6158
+ self._values["type"] = type
6159
+ if uri is not None:
6160
+ self._values["uri"] = uri
6161
+
6162
+ @builtins.property
6163
+ def type(self) -> typing.Optional[builtins.str]:
6164
+ '''The type of authentication Lambda uses to access your schema registry.
6165
+
6166
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-schemaregistryaccessconfig.html#cfn-lambda-eventsourcemapping-schemaregistryaccessconfig-type
6167
+ '''
6168
+ result = self._values.get("type")
6169
+ return typing.cast(typing.Optional[builtins.str], result)
6170
+
6171
+ @builtins.property
6172
+ def uri(self) -> typing.Optional[builtins.str]:
6173
+ '''The URI of the secret (Secrets Manager secret ARN) to authenticate with your schema registry.
6174
+
6175
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-schemaregistryaccessconfig.html#cfn-lambda-eventsourcemapping-schemaregistryaccessconfig-uri
6176
+ '''
6177
+ result = self._values.get("uri")
6178
+ return typing.cast(typing.Optional[builtins.str], result)
6179
+
6180
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
6181
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
6182
+
6183
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
6184
+ return not (rhs == self)
6185
+
6186
+ def __repr__(self) -> str:
6187
+ return "SchemaRegistryAccessConfigProperty(%s)" % ", ".join(
6188
+ k + "=" + repr(v) for k, v in self._values.items()
6189
+ )
6190
+
6191
+ @jsii.data_type(
6192
+ jsii_type="aws-cdk-lib.aws_lambda.CfnEventSourceMapping.SchemaRegistryConfigProperty",
6193
+ jsii_struct_bases=[],
6194
+ name_mapping={
6195
+ "access_configs": "accessConfigs",
6196
+ "event_record_format": "eventRecordFormat",
6197
+ "schema_registry_uri": "schemaRegistryUri",
6198
+ "schema_validation_configs": "schemaValidationConfigs",
6199
+ },
6200
+ )
6201
+ class SchemaRegistryConfigProperty:
6202
+ def __init__(
6203
+ self,
6204
+ *,
6205
+ access_configs: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnEventSourceMapping.SchemaRegistryAccessConfigProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
6206
+ event_record_format: typing.Optional[builtins.str] = None,
6207
+ schema_registry_uri: typing.Optional[builtins.str] = None,
6208
+ schema_validation_configs: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnEventSourceMapping.SchemaValidationConfigProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
6209
+ ) -> None:
6210
+ '''
6211
+ :param access_configs: An array of access configuration objects that tell Lambda how to authenticate with your schema registry.
6212
+ :param event_record_format: The record format that Lambda delivers to your function after schema validation.
6213
+ :param schema_registry_uri: The URI for your schema registry. The correct URI format depends on the type of schema registry you're using.
6214
+ :param schema_validation_configs: An array of schema validation configuration objects, which tell Lambda the message attributes you want to validate and filter using your schema registry.
6215
+
6216
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-schemaregistryconfig.html
6217
+ :exampleMetadata: fixture=_generated
6218
+
6219
+ Example::
6220
+
6221
+ # The code below shows an example of how to instantiate this type.
6222
+ # The values are placeholders you should change.
6223
+ from aws_cdk import aws_lambda as lambda_
6224
+
6225
+ schema_registry_config_property = lambda.CfnEventSourceMapping.SchemaRegistryConfigProperty(
6226
+ access_configs=[lambda.CfnEventSourceMapping.SchemaRegistryAccessConfigProperty(
6227
+ type="type",
6228
+ uri="uri"
6229
+ )],
6230
+ event_record_format="eventRecordFormat",
6231
+ schema_registry_uri="schemaRegistryUri",
6232
+ schema_validation_configs=[lambda.CfnEventSourceMapping.SchemaValidationConfigProperty(
6233
+ attribute="attribute"
6234
+ )]
6235
+ )
6236
+ '''
6237
+ if __debug__:
6238
+ type_hints = typing.get_type_hints(_typecheckingstub__7f8fb419a333cbc879badd611bbdfdb1f0ed875f70f7915910a930f6c8cc2742)
6239
+ check_type(argname="argument access_configs", value=access_configs, expected_type=type_hints["access_configs"])
6240
+ check_type(argname="argument event_record_format", value=event_record_format, expected_type=type_hints["event_record_format"])
6241
+ check_type(argname="argument schema_registry_uri", value=schema_registry_uri, expected_type=type_hints["schema_registry_uri"])
6242
+ check_type(argname="argument schema_validation_configs", value=schema_validation_configs, expected_type=type_hints["schema_validation_configs"])
6243
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
6244
+ if access_configs is not None:
6245
+ self._values["access_configs"] = access_configs
6246
+ if event_record_format is not None:
6247
+ self._values["event_record_format"] = event_record_format
6248
+ if schema_registry_uri is not None:
6249
+ self._values["schema_registry_uri"] = schema_registry_uri
6250
+ if schema_validation_configs is not None:
6251
+ self._values["schema_validation_configs"] = schema_validation_configs
6252
+
6253
+ @builtins.property
6254
+ def access_configs(
6255
+ self,
6256
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnEventSourceMapping.SchemaRegistryAccessConfigProperty"]]]]:
6257
+ '''An array of access configuration objects that tell Lambda how to authenticate with your schema registry.
6258
+
6259
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-schemaregistryconfig.html#cfn-lambda-eventsourcemapping-schemaregistryconfig-accessconfigs
6260
+ '''
6261
+ result = self._values.get("access_configs")
6262
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnEventSourceMapping.SchemaRegistryAccessConfigProperty"]]]], result)
6263
+
6264
+ @builtins.property
6265
+ def event_record_format(self) -> typing.Optional[builtins.str]:
6266
+ '''The record format that Lambda delivers to your function after schema validation.
6267
+
6268
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-schemaregistryconfig.html#cfn-lambda-eventsourcemapping-schemaregistryconfig-eventrecordformat
6269
+ '''
6270
+ result = self._values.get("event_record_format")
6271
+ return typing.cast(typing.Optional[builtins.str], result)
6272
+
6273
+ @builtins.property
6274
+ def schema_registry_uri(self) -> typing.Optional[builtins.str]:
6275
+ '''The URI for your schema registry.
6276
+
6277
+ The correct URI format depends on the type of schema registry you're using.
6278
+
6279
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-schemaregistryconfig.html#cfn-lambda-eventsourcemapping-schemaregistryconfig-schemaregistryuri
6280
+ '''
6281
+ result = self._values.get("schema_registry_uri")
6282
+ return typing.cast(typing.Optional[builtins.str], result)
6283
+
6284
+ @builtins.property
6285
+ def schema_validation_configs(
6286
+ self,
6287
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnEventSourceMapping.SchemaValidationConfigProperty"]]]]:
6288
+ '''An array of schema validation configuration objects, which tell Lambda the message attributes you want to validate and filter using your schema registry.
6289
+
6290
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-schemaregistryconfig.html#cfn-lambda-eventsourcemapping-schemaregistryconfig-schemavalidationconfigs
6291
+ '''
6292
+ result = self._values.get("schema_validation_configs")
6293
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnEventSourceMapping.SchemaValidationConfigProperty"]]]], result)
6294
+
6295
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
6296
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
6297
+
6298
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
6299
+ return not (rhs == self)
6300
+
6301
+ def __repr__(self) -> str:
6302
+ return "SchemaRegistryConfigProperty(%s)" % ", ".join(
6303
+ k + "=" + repr(v) for k, v in self._values.items()
6304
+ )
6305
+
6306
+ @jsii.data_type(
6307
+ jsii_type="aws-cdk-lib.aws_lambda.CfnEventSourceMapping.SchemaValidationConfigProperty",
6308
+ jsii_struct_bases=[],
6309
+ name_mapping={"attribute": "attribute"},
6310
+ )
6311
+ class SchemaValidationConfigProperty:
6312
+ def __init__(self, *, attribute: typing.Optional[builtins.str] = None) -> None:
6313
+ '''
6314
+ :param attribute: The attribute you want your schema registry to validate and filter for.
6315
+
6316
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-schemavalidationconfig.html
6317
+ :exampleMetadata: fixture=_generated
6318
+
6319
+ Example::
6320
+
6321
+ # The code below shows an example of how to instantiate this type.
6322
+ # The values are placeholders you should change.
6323
+ from aws_cdk import aws_lambda as lambda_
6324
+
6325
+ schema_validation_config_property = lambda.CfnEventSourceMapping.SchemaValidationConfigProperty(
6326
+ attribute="attribute"
6327
+ )
6328
+ '''
6329
+ if __debug__:
6330
+ type_hints = typing.get_type_hints(_typecheckingstub__a33eb6c4d2c3434344b07e6867f42e37e4fc335a3f84422c3bf42cd6136142b7)
6331
+ check_type(argname="argument attribute", value=attribute, expected_type=type_hints["attribute"])
6332
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
6333
+ if attribute is not None:
6334
+ self._values["attribute"] = attribute
6335
+
6336
+ @builtins.property
6337
+ def attribute(self) -> typing.Optional[builtins.str]:
6338
+ '''The attribute you want your schema registry to validate and filter for.
6339
+
6340
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-schemavalidationconfig.html#cfn-lambda-eventsourcemapping-schemavalidationconfig-attribute
6341
+ '''
6342
+ result = self._values.get("attribute")
6343
+ return typing.cast(typing.Optional[builtins.str], result)
6344
+
6345
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
6346
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
6347
+
6348
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
6349
+ return not (rhs == self)
6350
+
6351
+ def __repr__(self) -> str:
6352
+ return "SchemaValidationConfigProperty(%s)" % ", ".join(
6353
+ k + "=" + repr(v) for k, v in self._values.items()
6354
+ )
6355
+
6060
6356
  @jsii.data_type(
6061
6357
  jsii_type="aws-cdk-lib.aws_lambda.CfnEventSourceMapping.SelfManagedEventSourceProperty",
6062
6358
  jsii_struct_bases=[],
@@ -6119,17 +6415,22 @@ class CfnEventSourceMapping(
6119
6415
  @jsii.data_type(
6120
6416
  jsii_type="aws-cdk-lib.aws_lambda.CfnEventSourceMapping.SelfManagedKafkaEventSourceConfigProperty",
6121
6417
  jsii_struct_bases=[],
6122
- name_mapping={"consumer_group_id": "consumerGroupId"},
6418
+ name_mapping={
6419
+ "consumer_group_id": "consumerGroupId",
6420
+ "schema_registry_config": "schemaRegistryConfig",
6421
+ },
6123
6422
  )
6124
6423
  class SelfManagedKafkaEventSourceConfigProperty:
6125
6424
  def __init__(
6126
6425
  self,
6127
6426
  *,
6128
6427
  consumer_group_id: typing.Optional[builtins.str] = None,
6428
+ schema_registry_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnEventSourceMapping.SchemaRegistryConfigProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
6129
6429
  ) -> None:
6130
6430
  '''Specific configuration settings for a self-managed Apache Kafka event source.
6131
6431
 
6132
- :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>`_ .
6432
+ :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-kafka-process.html#services-smaa-topic-add>`_ .
6433
+ :param schema_registry_config:
6133
6434
 
6134
6435
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-selfmanagedkafkaeventsourceconfig.html
6135
6436
  :exampleMetadata: fixture=_generated
@@ -6141,27 +6442,51 @@ class CfnEventSourceMapping(
6141
6442
  from aws_cdk import aws_lambda as lambda_
6142
6443
 
6143
6444
  self_managed_kafka_event_source_config_property = lambda.CfnEventSourceMapping.SelfManagedKafkaEventSourceConfigProperty(
6144
- consumer_group_id="consumerGroupId"
6445
+ consumer_group_id="consumerGroupId",
6446
+ schema_registry_config=lambda.CfnEventSourceMapping.SchemaRegistryConfigProperty(
6447
+ access_configs=[lambda.CfnEventSourceMapping.SchemaRegistryAccessConfigProperty(
6448
+ type="type",
6449
+ uri="uri"
6450
+ )],
6451
+ event_record_format="eventRecordFormat",
6452
+ schema_registry_uri="schemaRegistryUri",
6453
+ schema_validation_configs=[lambda.CfnEventSourceMapping.SchemaValidationConfigProperty(
6454
+ attribute="attribute"
6455
+ )]
6456
+ )
6145
6457
  )
6146
6458
  '''
6147
6459
  if __debug__:
6148
6460
  type_hints = typing.get_type_hints(_typecheckingstub__da32c0d6c5c0b8e4a97d90195ff7f689e87587b466dc192a0b2972c1b6740d3d)
6149
6461
  check_type(argname="argument consumer_group_id", value=consumer_group_id, expected_type=type_hints["consumer_group_id"])
6462
+ check_type(argname="argument schema_registry_config", value=schema_registry_config, expected_type=type_hints["schema_registry_config"])
6150
6463
  self._values: typing.Dict[builtins.str, typing.Any] = {}
6151
6464
  if consumer_group_id is not None:
6152
6465
  self._values["consumer_group_id"] = consumer_group_id
6466
+ if schema_registry_config is not None:
6467
+ self._values["schema_registry_config"] = schema_registry_config
6153
6468
 
6154
6469
  @builtins.property
6155
6470
  def consumer_group_id(self) -> typing.Optional[builtins.str]:
6156
6471
  '''The identifier for the Kafka consumer group to join.
6157
6472
 
6158
- 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>`_ .
6473
+ 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-kafka-process.html#services-smaa-topic-add>`_ .
6159
6474
 
6160
6475
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-selfmanagedkafkaeventsourceconfig.html#cfn-lambda-eventsourcemapping-selfmanagedkafkaeventsourceconfig-consumergroupid
6161
6476
  '''
6162
6477
  result = self._values.get("consumer_group_id")
6163
6478
  return typing.cast(typing.Optional[builtins.str], result)
6164
6479
 
6480
+ @builtins.property
6481
+ def schema_registry_config(
6482
+ self,
6483
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnEventSourceMapping.SchemaRegistryConfigProperty"]]:
6484
+ '''
6485
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-eventsourcemapping-selfmanagedkafkaeventsourceconfig.html#cfn-lambda-eventsourcemapping-selfmanagedkafkaeventsourceconfig-schemaregistryconfig
6486
+ '''
6487
+ result = self._values.get("schema_registry_config")
6488
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnEventSourceMapping.SchemaRegistryConfigProperty"]], result)
6489
+
6165
6490
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
6166
6491
  return isinstance(rhs, self.__class__) and rhs._values == self._values
6167
6492
 
@@ -6365,7 +6690,18 @@ class CfnEventSourceMappingProps:
6365
6690
 
6366
6691
  # the properties below are optional
6367
6692
  amazon_managed_kafka_event_source_config=lambda.CfnEventSourceMapping.AmazonManagedKafkaEventSourceConfigProperty(
6368
- consumer_group_id="consumerGroupId"
6693
+ consumer_group_id="consumerGroupId",
6694
+ schema_registry_config=lambda.CfnEventSourceMapping.SchemaRegistryConfigProperty(
6695
+ access_configs=[lambda.CfnEventSourceMapping.SchemaRegistryAccessConfigProperty(
6696
+ type="type",
6697
+ uri="uri"
6698
+ )],
6699
+ event_record_format="eventRecordFormat",
6700
+ schema_registry_uri="schemaRegistryUri",
6701
+ schema_validation_configs=[lambda.CfnEventSourceMapping.SchemaValidationConfigProperty(
6702
+ attribute="attribute"
6703
+ )]
6704
+ )
6369
6705
  ),
6370
6706
  batch_size=123,
6371
6707
  bisect_batch_on_function_error=False,
@@ -6409,7 +6745,18 @@ class CfnEventSourceMappingProps:
6409
6745
  )
6410
6746
  ),
6411
6747
  self_managed_kafka_event_source_config=lambda.CfnEventSourceMapping.SelfManagedKafkaEventSourceConfigProperty(
6412
- consumer_group_id="consumerGroupId"
6748
+ consumer_group_id="consumerGroupId",
6749
+ schema_registry_config=lambda.CfnEventSourceMapping.SchemaRegistryConfigProperty(
6750
+ access_configs=[lambda.CfnEventSourceMapping.SchemaRegistryAccessConfigProperty(
6751
+ type="type",
6752
+ uri="uri"
6753
+ )],
6754
+ event_record_format="eventRecordFormat",
6755
+ schema_registry_uri="schemaRegistryUri",
6756
+ schema_validation_configs=[lambda.CfnEventSourceMapping.SchemaValidationConfigProperty(
6757
+ attribute="attribute"
6758
+ )]
6759
+ )
6413
6760
  ),
6414
6761
  source_access_configurations=[lambda.CfnEventSourceMapping.SourceAccessConfigurationProperty(
6415
6762
  type="type",
@@ -11323,23 +11670,28 @@ class Code(metaclass=jsii.JSIIAbstractClass, jsii_type="aws-cdk-lib.aws_lambda.C
11323
11670
 
11324
11671
  Example::
11325
11672
 
11326
- import aws_cdk.aws_signer as signer
11673
+ import aws_cdk.aws_lambda as lambda_
11327
11674
 
11328
11675
 
11329
- signing_profile = signer.SigningProfile(self, "SigningProfile",
11330
- platform=signer.Platform.AWS_LAMBDA_SHA384_ECDSA
11676
+ fn = lambda_.Function(self, "MyFunc",
11677
+ runtime=lambda_.Runtime.NODEJS_LATEST,
11678
+ handler="index.handler",
11679
+ code=lambda_.Code.from_inline("exports.handler = handler.toString()")
11331
11680
  )
11332
11681
 
11333
- code_signing_config = lambda_.CodeSigningConfig(self, "CodeSigningConfig",
11334
- signing_profiles=[signing_profile]
11682
+ rule = events.Rule(self, "rule",
11683
+ event_pattern=events.EventPattern(
11684
+ source=["aws.ec2"]
11685
+ )
11335
11686
  )
11336
11687
 
11337
- lambda_.Function(self, "Function",
11338
- code_signing_config=code_signing_config,
11339
- runtime=lambda_.Runtime.NODEJS_18_X,
11340
- handler="index.handler",
11341
- code=lambda_.Code.from_asset(path.join(__dirname, "lambda-handler"))
11342
- )
11688
+ queue = sqs.Queue(self, "Queue")
11689
+
11690
+ rule.add_target(targets.LambdaFunction(fn,
11691
+ dead_letter_queue=queue, # Optional: add a dead letter queue
11692
+ max_event_age=Duration.hours(2), # Optional: set the maxEventAge retry policy
11693
+ retry_attempts=2
11694
+ ))
11343
11695
  '''
11344
11696
 
11345
11697
  def __init__(self) -> None:
@@ -13523,6 +13875,78 @@ class EventInvokeConfigProps(EventInvokeConfigOptions):
13523
13875
  )
13524
13876
 
13525
13877
 
13878
+ class EventRecordFormat(
13879
+ metaclass=jsii.JSIIMeta,
13880
+ jsii_type="aws-cdk-lib.aws_lambda.EventRecordFormat",
13881
+ ):
13882
+ '''The format target function should recieve record in.
13883
+
13884
+ :exampleMetadata: infused
13885
+
13886
+ Example::
13887
+
13888
+ from aws_cdk.aws_lambda_event_sources import ManagedKafkaEventSource, ConfluentSchemaRegistry
13889
+ from aws_cdk.aws_secretsmanager import Secret
13890
+
13891
+ # Your MSK cluster arn
13892
+ # cluster_arn: str
13893
+
13894
+ # my_function: lambda.Function
13895
+
13896
+
13897
+ # The Kafka topic you want to subscribe to
13898
+ topic = "some-cool-topic"
13899
+
13900
+ secret = Secret(self, "Secret", secret_name="AmazonMSK_KafkaSecret")
13901
+ my_function.add_event_source(ManagedKafkaEventSource(
13902
+ cluster_arn=cluster_arn,
13903
+ topic=topic,
13904
+ starting_position=lambda_.StartingPosition.TRIM_HORIZON,
13905
+ provisioned_poller_config=ProvisionedPollerConfig(
13906
+ minimum_pollers=1,
13907
+ maximum_pollers=3
13908
+ ),
13909
+ schema_registry_config=ConfluentSchemaRegistry(
13910
+ schema_registry_uri="https://example.com",
13911
+ event_record_format=lambda_.EventRecordFormat.JSON,
13912
+ authentication_type=lambda_.KafkaSchemaRegistryAccessConfigType.BASIC_AUTH,
13913
+ secret=secret,
13914
+ schema_validation_configs=[lambda.KafkaSchemaValidationConfig(attribute=lambda_.KafkaSchemaValidationAttribute.KEY)]
13915
+ )
13916
+ ))
13917
+ '''
13918
+
13919
+ @jsii.member(jsii_name="of")
13920
+ @builtins.classmethod
13921
+ def of(cls, name: builtins.str) -> "EventRecordFormat":
13922
+ '''A custom event record format.
13923
+
13924
+ :param name: -
13925
+ '''
13926
+ if __debug__:
13927
+ type_hints = typing.get_type_hints(_typecheckingstub__913b83169547e1e27e0d17d4e5a189f10545dca54ca45db7a5dc40a7d5cc2999)
13928
+ check_type(argname="argument name", value=name, expected_type=type_hints["name"])
13929
+ return typing.cast("EventRecordFormat", jsii.sinvoke(cls, "of", [name]))
13930
+
13931
+ @jsii.python.classproperty
13932
+ @jsii.member(jsii_name="JSON")
13933
+ def JSON(cls) -> "EventRecordFormat":
13934
+ '''The target function will recieve records as json objects.'''
13935
+ return typing.cast("EventRecordFormat", jsii.sget(cls, "JSON"))
13936
+
13937
+ @jsii.python.classproperty
13938
+ @jsii.member(jsii_name="SOURCE")
13939
+ def SOURCE(cls) -> "EventRecordFormat":
13940
+ '''The target function will recieve records in same format as the schema source.'''
13941
+ return typing.cast("EventRecordFormat", jsii.sget(cls, "SOURCE"))
13942
+
13943
+ @builtins.property
13944
+ @jsii.member(jsii_name="value")
13945
+ def value(self) -> builtins.str:
13946
+ '''The enum to use in ``SchemaRegistryConfig.EventRecordFormat`` property in CloudFormation.'''
13947
+ return typing.cast(builtins.str, jsii.get(self, "value"))
13948
+
13949
+
13526
13950
  @jsii.data_type(
13527
13951
  jsii_type="aws-cdk-lib.aws_lambda.EventSourceMappingOptions",
13528
13952
  jsii_struct_bases=[],
@@ -13545,6 +13969,7 @@ class EventInvokeConfigProps(EventInvokeConfigOptions):
13545
13969
  "provisioned_poller_config": "provisionedPollerConfig",
13546
13970
  "report_batch_item_failures": "reportBatchItemFailures",
13547
13971
  "retry_attempts": "retryAttempts",
13972
+ "schema_registry_config": "schemaRegistryConfig",
13548
13973
  "source_access_configurations": "sourceAccessConfigurations",
13549
13974
  "starting_position": "startingPosition",
13550
13975
  "starting_position_timestamp": "startingPositionTimestamp",
@@ -13574,6 +13999,7 @@ class EventSourceMappingOptions:
13574
13999
  provisioned_poller_config: typing.Optional[typing.Union["ProvisionedPollerConfig", typing.Dict[builtins.str, typing.Any]]] = None,
13575
14000
  report_batch_item_failures: typing.Optional[builtins.bool] = None,
13576
14001
  retry_attempts: typing.Optional[jsii.Number] = None,
14002
+ schema_registry_config: typing.Optional["ISchemaRegistry"] = None,
13577
14003
  source_access_configurations: typing.Optional[typing.Sequence[typing.Union["SourceAccessConfiguration", typing.Dict[builtins.str, typing.Any]]]] = None,
13578
14004
  starting_position: typing.Optional["StartingPosition"] = None,
13579
14005
  starting_position_timestamp: typing.Optional[jsii.Number] = None,
@@ -13599,6 +14025,7 @@ class EventSourceMappingOptions:
13599
14025
  :param provisioned_poller_config: Configuration for provisioned pollers that read from the event source. When specified, allows control over the minimum and maximum number of pollers that can be provisioned to process events from the source. Default: - no provisioned pollers
13600
14026
  :param report_batch_item_failures: Allow functions to return partially successful responses for a batch of records. Default: false
13601
14027
  :param retry_attempts: The maximum number of times to retry when the function returns an error. Set to ``undefined`` if you want lambda to keep retrying infinitely or until the record expires. Valid Range: - Minimum value of 0 - Maximum value of 10000 Default: - infinite or until the record expires.
14028
+ :param schema_registry_config: Specific configuration settings for a Kafka schema registry. Default: - none
13602
14029
  :param source_access_configurations: Specific settings like the authentication protocol or the VPC components to secure access to your event source. Default: - none
13603
14030
  :param starting_position: The position in the DynamoDB, Kinesis or MSK stream where AWS Lambda should start reading. Default: - no starting position
13604
14031
  :param starting_position_timestamp: The time from which to start reading, in Unix time seconds. Default: - no timestamp
@@ -13618,6 +14045,7 @@ class EventSourceMappingOptions:
13618
14045
  # event_source_dlq: lambda.IEventSourceDlq
13619
14046
  # filters: Any
13620
14047
  # key: kms.Key
14048
+ # schema_registry: lambda.ISchemaRegistry
13621
14049
  # source_access_configuration_type: lambda.SourceAccessConfigurationType
13622
14050
 
13623
14051
  event_source_mapping_options = lambda.EventSourceMappingOptions(
@@ -13646,6 +14074,7 @@ class EventSourceMappingOptions:
13646
14074
  ),
13647
14075
  report_batch_item_failures=False,
13648
14076
  retry_attempts=123,
14077
+ schema_registry_config=schema_registry,
13649
14078
  source_access_configurations=[lambda.SourceAccessConfiguration(
13650
14079
  type=source_access_configuration_type,
13651
14080
  uri="uri"
@@ -13680,6 +14109,7 @@ class EventSourceMappingOptions:
13680
14109
  check_type(argname="argument provisioned_poller_config", value=provisioned_poller_config, expected_type=type_hints["provisioned_poller_config"])
13681
14110
  check_type(argname="argument report_batch_item_failures", value=report_batch_item_failures, expected_type=type_hints["report_batch_item_failures"])
13682
14111
  check_type(argname="argument retry_attempts", value=retry_attempts, expected_type=type_hints["retry_attempts"])
14112
+ check_type(argname="argument schema_registry_config", value=schema_registry_config, expected_type=type_hints["schema_registry_config"])
13683
14113
  check_type(argname="argument source_access_configurations", value=source_access_configurations, expected_type=type_hints["source_access_configurations"])
13684
14114
  check_type(argname="argument starting_position", value=starting_position, expected_type=type_hints["starting_position"])
13685
14115
  check_type(argname="argument starting_position_timestamp", value=starting_position_timestamp, expected_type=type_hints["starting_position_timestamp"])
@@ -13722,6 +14152,8 @@ class EventSourceMappingOptions:
13722
14152
  self._values["report_batch_item_failures"] = report_batch_item_failures
13723
14153
  if retry_attempts is not None:
13724
14154
  self._values["retry_attempts"] = retry_attempts
14155
+ if schema_registry_config is not None:
14156
+ self._values["schema_registry_config"] = schema_registry_config
13725
14157
  if source_access_configurations is not None:
13726
14158
  self._values["source_access_configurations"] = source_access_configurations
13727
14159
  if starting_position is not None:
@@ -13949,6 +14381,15 @@ class EventSourceMappingOptions:
13949
14381
  result = self._values.get("retry_attempts")
13950
14382
  return typing.cast(typing.Optional[jsii.Number], result)
13951
14383
 
14384
+ @builtins.property
14385
+ def schema_registry_config(self) -> typing.Optional["ISchemaRegistry"]:
14386
+ '''Specific configuration settings for a Kafka schema registry.
14387
+
14388
+ :default: - none
14389
+ '''
14390
+ result = self._values.get("schema_registry_config")
14391
+ return typing.cast(typing.Optional["ISchemaRegistry"], result)
14392
+
13952
14393
  @builtins.property
13953
14394
  def source_access_configurations(
13954
14395
  self,
@@ -14042,6 +14483,7 @@ class EventSourceMappingOptions:
14042
14483
  "provisioned_poller_config": "provisionedPollerConfig",
14043
14484
  "report_batch_item_failures": "reportBatchItemFailures",
14044
14485
  "retry_attempts": "retryAttempts",
14486
+ "schema_registry_config": "schemaRegistryConfig",
14045
14487
  "source_access_configurations": "sourceAccessConfigurations",
14046
14488
  "starting_position": "startingPosition",
14047
14489
  "starting_position_timestamp": "startingPositionTimestamp",
@@ -14072,6 +14514,7 @@ class EventSourceMappingProps(EventSourceMappingOptions):
14072
14514
  provisioned_poller_config: typing.Optional[typing.Union["ProvisionedPollerConfig", typing.Dict[builtins.str, typing.Any]]] = None,
14073
14515
  report_batch_item_failures: typing.Optional[builtins.bool] = None,
14074
14516
  retry_attempts: typing.Optional[jsii.Number] = None,
14517
+ schema_registry_config: typing.Optional["ISchemaRegistry"] = None,
14075
14518
  source_access_configurations: typing.Optional[typing.Sequence[typing.Union["SourceAccessConfiguration", typing.Dict[builtins.str, typing.Any]]]] = None,
14076
14519
  starting_position: typing.Optional["StartingPosition"] = None,
14077
14520
  starting_position_timestamp: typing.Optional[jsii.Number] = None,
@@ -14099,6 +14542,7 @@ class EventSourceMappingProps(EventSourceMappingOptions):
14099
14542
  :param provisioned_poller_config: Configuration for provisioned pollers that read from the event source. When specified, allows control over the minimum and maximum number of pollers that can be provisioned to process events from the source. Default: - no provisioned pollers
14100
14543
  :param report_batch_item_failures: Allow functions to return partially successful responses for a batch of records. Default: false
14101
14544
  :param retry_attempts: The maximum number of times to retry when the function returns an error. Set to ``undefined`` if you want lambda to keep retrying infinitely or until the record expires. Valid Range: - Minimum value of 0 - Maximum value of 10000 Default: - infinite or until the record expires.
14545
+ :param schema_registry_config: Specific configuration settings for a Kafka schema registry. Default: - none
14102
14546
  :param source_access_configurations: Specific settings like the authentication protocol or the VPC components to secure access to your event source. Default: - none
14103
14547
  :param starting_position: The position in the DynamoDB, Kinesis or MSK stream where AWS Lambda should start reading. Default: - no starting position
14104
14548
  :param starting_position_timestamp: The time from which to start reading, in Unix time seconds. Default: - no timestamp
@@ -14120,6 +14564,7 @@ class EventSourceMappingProps(EventSourceMappingOptions):
14120
14564
  # filters: Any
14121
14565
  # function_: lambda.Function
14122
14566
  # key: kms.Key
14567
+ # schema_registry: lambda.ISchemaRegistry
14123
14568
  # source_access_configuration_type: lambda.SourceAccessConfigurationType
14124
14569
 
14125
14570
  event_source_mapping_props = lambda.EventSourceMappingProps(
@@ -14151,6 +14596,7 @@ class EventSourceMappingProps(EventSourceMappingOptions):
14151
14596
  ),
14152
14597
  report_batch_item_failures=False,
14153
14598
  retry_attempts=123,
14599
+ schema_registry_config=schema_registry,
14154
14600
  source_access_configurations=[lambda.SourceAccessConfiguration(
14155
14601
  type=source_access_configuration_type,
14156
14602
  uri="uri"
@@ -14185,6 +14631,7 @@ class EventSourceMappingProps(EventSourceMappingOptions):
14185
14631
  check_type(argname="argument provisioned_poller_config", value=provisioned_poller_config, expected_type=type_hints["provisioned_poller_config"])
14186
14632
  check_type(argname="argument report_batch_item_failures", value=report_batch_item_failures, expected_type=type_hints["report_batch_item_failures"])
14187
14633
  check_type(argname="argument retry_attempts", value=retry_attempts, expected_type=type_hints["retry_attempts"])
14634
+ check_type(argname="argument schema_registry_config", value=schema_registry_config, expected_type=type_hints["schema_registry_config"])
14188
14635
  check_type(argname="argument source_access_configurations", value=source_access_configurations, expected_type=type_hints["source_access_configurations"])
14189
14636
  check_type(argname="argument starting_position", value=starting_position, expected_type=type_hints["starting_position"])
14190
14637
  check_type(argname="argument starting_position_timestamp", value=starting_position_timestamp, expected_type=type_hints["starting_position_timestamp"])
@@ -14230,6 +14677,8 @@ class EventSourceMappingProps(EventSourceMappingOptions):
14230
14677
  self._values["report_batch_item_failures"] = report_batch_item_failures
14231
14678
  if retry_attempts is not None:
14232
14679
  self._values["retry_attempts"] = retry_attempts
14680
+ if schema_registry_config is not None:
14681
+ self._values["schema_registry_config"] = schema_registry_config
14233
14682
  if source_access_configurations is not None:
14234
14683
  self._values["source_access_configurations"] = source_access_configurations
14235
14684
  if starting_position is not None:
@@ -14457,6 +14906,15 @@ class EventSourceMappingProps(EventSourceMappingOptions):
14457
14906
  result = self._values.get("retry_attempts")
14458
14907
  return typing.cast(typing.Optional[jsii.Number], result)
14459
14908
 
14909
+ @builtins.property
14910
+ def schema_registry_config(self) -> typing.Optional["ISchemaRegistry"]:
14911
+ '''Specific configuration settings for a Kafka schema registry.
14912
+
14913
+ :default: - none
14914
+ '''
14915
+ result = self._values.get("schema_registry_config")
14916
+ return typing.cast(typing.Optional["ISchemaRegistry"], result)
14917
+
14460
14918
  @builtins.property
14461
14919
  def source_access_configurations(
14462
14920
  self,
@@ -17946,6 +18404,7 @@ class IFunction(
17946
18404
  provisioned_poller_config: typing.Optional[typing.Union["ProvisionedPollerConfig", typing.Dict[builtins.str, typing.Any]]] = None,
17947
18405
  report_batch_item_failures: typing.Optional[builtins.bool] = None,
17948
18406
  retry_attempts: typing.Optional[jsii.Number] = None,
18407
+ schema_registry_config: typing.Optional["ISchemaRegistry"] = None,
17949
18408
  source_access_configurations: typing.Optional[typing.Sequence[typing.Union["SourceAccessConfiguration", typing.Dict[builtins.str, typing.Any]]]] = None,
17950
18409
  starting_position: typing.Optional["StartingPosition"] = None,
17951
18410
  starting_position_timestamp: typing.Optional[jsii.Number] = None,
@@ -17973,6 +18432,7 @@ class IFunction(
17973
18432
  :param provisioned_poller_config: Configuration for provisioned pollers that read from the event source. When specified, allows control over the minimum and maximum number of pollers that can be provisioned to process events from the source. Default: - no provisioned pollers
17974
18433
  :param report_batch_item_failures: Allow functions to return partially successful responses for a batch of records. Default: false
17975
18434
  :param retry_attempts: The maximum number of times to retry when the function returns an error. Set to ``undefined`` if you want lambda to keep retrying infinitely or until the record expires. Valid Range: - Minimum value of 0 - Maximum value of 10000 Default: - infinite or until the record expires.
18435
+ :param schema_registry_config: Specific configuration settings for a Kafka schema registry. Default: - none
17976
18436
  :param source_access_configurations: Specific settings like the authentication protocol or the VPC components to secure access to your event source. Default: - none
17977
18437
  :param starting_position: The position in the DynamoDB, Kinesis or MSK stream where AWS Lambda should start reading. Default: - no starting position
17978
18438
  :param starting_position_timestamp: The time from which to start reading, in Unix time seconds. Default: - no timestamp
@@ -18388,6 +18848,7 @@ class _IFunctionProxy(
18388
18848
  provisioned_poller_config: typing.Optional[typing.Union["ProvisionedPollerConfig", typing.Dict[builtins.str, typing.Any]]] = None,
18389
18849
  report_batch_item_failures: typing.Optional[builtins.bool] = None,
18390
18850
  retry_attempts: typing.Optional[jsii.Number] = None,
18851
+ schema_registry_config: typing.Optional["ISchemaRegistry"] = None,
18391
18852
  source_access_configurations: typing.Optional[typing.Sequence[typing.Union["SourceAccessConfiguration", typing.Dict[builtins.str, typing.Any]]]] = None,
18392
18853
  starting_position: typing.Optional["StartingPosition"] = None,
18393
18854
  starting_position_timestamp: typing.Optional[jsii.Number] = None,
@@ -18415,6 +18876,7 @@ class _IFunctionProxy(
18415
18876
  :param provisioned_poller_config: Configuration for provisioned pollers that read from the event source. When specified, allows control over the minimum and maximum number of pollers that can be provisioned to process events from the source. Default: - no provisioned pollers
18416
18877
  :param report_batch_item_failures: Allow functions to return partially successful responses for a batch of records. Default: false
18417
18878
  :param retry_attempts: The maximum number of times to retry when the function returns an error. Set to ``undefined`` if you want lambda to keep retrying infinitely or until the record expires. Valid Range: - Minimum value of 0 - Maximum value of 10000 Default: - infinite or until the record expires.
18879
+ :param schema_registry_config: Specific configuration settings for a Kafka schema registry. Default: - none
18418
18880
  :param source_access_configurations: Specific settings like the authentication protocol or the VPC components to secure access to your event source. Default: - none
18419
18881
  :param starting_position: The position in the DynamoDB, Kinesis or MSK stream where AWS Lambda should start reading. Default: - no starting position
18420
18882
  :param starting_position_timestamp: The time from which to start reading, in Unix time seconds. Default: - no timestamp
@@ -18443,6 +18905,7 @@ class _IFunctionProxy(
18443
18905
  provisioned_poller_config=provisioned_poller_config,
18444
18906
  report_batch_item_failures=report_batch_item_failures,
18445
18907
  retry_attempts=retry_attempts,
18908
+ schema_registry_config=schema_registry_config,
18446
18909
  source_access_configurations=source_access_configurations,
18447
18910
  starting_position=starting_position,
18448
18911
  starting_position_timestamp=starting_position_timestamp,
@@ -19182,21 +19645,65 @@ class _IScalableFunctionAttributeProxy(
19182
19645
  typing.cast(typing.Any, IScalableFunctionAttribute).__jsii_proxy_class__ = lambda : _IScalableFunctionAttributeProxy
19183
19646
 
19184
19647
 
19185
- @jsii.interface(jsii_type="aws-cdk-lib.aws_lambda.IVersion")
19186
- class IVersion(IFunction, typing_extensions.Protocol):
19187
- @builtins.property
19188
- @jsii.member(jsii_name="edgeArn")
19189
- def edge_arn(self) -> builtins.str:
19190
- '''The ARN of the version for Lambda@Edge.'''
19191
- ...
19648
+ @jsii.interface(jsii_type="aws-cdk-lib.aws_lambda.ISchemaRegistry")
19649
+ class ISchemaRegistry(typing_extensions.Protocol):
19650
+ '''A schema registry for an event source.'''
19192
19651
 
19193
- @builtins.property
19194
- @jsii.member(jsii_name="lambda")
19195
- def lambda_(self) -> IFunction:
19196
- '''The underlying AWS Lambda function.'''
19197
- ...
19652
+ @jsii.member(jsii_name="bind")
19653
+ def bind(
19654
+ self,
19655
+ target: IEventSourceMapping,
19656
+ target_handler: IFunction,
19657
+ ) -> "KafkaSchemaRegistryConfig":
19658
+ '''Returns the schema registry config of the event source.
19198
19659
 
19199
- @builtins.property
19660
+ :param target: -
19661
+ :param target_handler: -
19662
+ '''
19663
+ ...
19664
+
19665
+
19666
+ class _ISchemaRegistryProxy:
19667
+ '''A schema registry for an event source.'''
19668
+
19669
+ __jsii_type__: typing.ClassVar[str] = "aws-cdk-lib.aws_lambda.ISchemaRegistry"
19670
+
19671
+ @jsii.member(jsii_name="bind")
19672
+ def bind(
19673
+ self,
19674
+ target: IEventSourceMapping,
19675
+ target_handler: IFunction,
19676
+ ) -> "KafkaSchemaRegistryConfig":
19677
+ '''Returns the schema registry config of the event source.
19678
+
19679
+ :param target: -
19680
+ :param target_handler: -
19681
+ '''
19682
+ if __debug__:
19683
+ type_hints = typing.get_type_hints(_typecheckingstub__0c68a1588ffc2bca6786310b7681f323e4368d6bf66e13c5fbdc7ef0ad571a22)
19684
+ check_type(argname="argument target", value=target, expected_type=type_hints["target"])
19685
+ check_type(argname="argument target_handler", value=target_handler, expected_type=type_hints["target_handler"])
19686
+ return typing.cast("KafkaSchemaRegistryConfig", jsii.invoke(self, "bind", [target, target_handler]))
19687
+
19688
+ # Adding a "__jsii_proxy_class__(): typing.Type" function to the interface
19689
+ typing.cast(typing.Any, ISchemaRegistry).__jsii_proxy_class__ = lambda : _ISchemaRegistryProxy
19690
+
19691
+
19692
+ @jsii.interface(jsii_type="aws-cdk-lib.aws_lambda.IVersion")
19693
+ class IVersion(IFunction, typing_extensions.Protocol):
19694
+ @builtins.property
19695
+ @jsii.member(jsii_name="edgeArn")
19696
+ def edge_arn(self) -> builtins.str:
19697
+ '''The ARN of the version for Lambda@Edge.'''
19698
+ ...
19699
+
19700
+ @builtins.property
19701
+ @jsii.member(jsii_name="lambda")
19702
+ def lambda_(self) -> IFunction:
19703
+ '''The underlying AWS Lambda function.'''
19704
+ ...
19705
+
19706
+ @builtins.property
19200
19707
  @jsii.member(jsii_name="version")
19201
19708
  def version(self) -> builtins.str:
19202
19709
  '''The most recently deployed version of this function.
@@ -19400,6 +19907,408 @@ class InvokeMode(enum.Enum):
19400
19907
  '''
19401
19908
 
19402
19909
 
19910
+ @jsii.data_type(
19911
+ jsii_type="aws-cdk-lib.aws_lambda.KafkaSchemaRegistryAccessConfig",
19912
+ jsii_struct_bases=[],
19913
+ name_mapping={"type": "type", "uri": "uri"},
19914
+ )
19915
+ class KafkaSchemaRegistryAccessConfig:
19916
+ def __init__(
19917
+ self,
19918
+ *,
19919
+ type: "KafkaSchemaRegistryAccessConfigType",
19920
+ uri: builtins.str,
19921
+ ) -> None:
19922
+ '''Specific access configuration settings that tell Lambda how to authenticate with your schema registry.
19923
+
19924
+ If you're working with an AWS Glue schema registry, don't provide authentication details in this object. Instead, ensure that your execution role has the required permissions for Lambda to access your cluster.
19925
+
19926
+ If you're working with a Confluent schema registry, choose the authentication method in the Type field, and provide the AWS Secrets Manager secret ARN in the URI field.
19927
+
19928
+ :param type: The type of authentication Lambda uses to access your schema registry.
19929
+ :param uri: The URI of the secret (Secrets Manager secret ARN) to authenticate with your schema registry.
19930
+
19931
+ :exampleMetadata: fixture=_generated
19932
+
19933
+ Example::
19934
+
19935
+ # The code below shows an example of how to instantiate this type.
19936
+ # The values are placeholders you should change.
19937
+ from aws_cdk import aws_lambda as lambda_
19938
+
19939
+ # kafka_schema_registry_access_config_type: lambda.KafkaSchemaRegistryAccessConfigType
19940
+
19941
+ kafka_schema_registry_access_config = lambda.KafkaSchemaRegistryAccessConfig(
19942
+ type=kafka_schema_registry_access_config_type,
19943
+ uri="uri"
19944
+ )
19945
+ '''
19946
+ if __debug__:
19947
+ type_hints = typing.get_type_hints(_typecheckingstub__a9ed7f710fdd20a96eb8eeb709bbea9f1e52b3ca20bed4ca85cf8341031090d2)
19948
+ check_type(argname="argument type", value=type, expected_type=type_hints["type"])
19949
+ check_type(argname="argument uri", value=uri, expected_type=type_hints["uri"])
19950
+ self._values: typing.Dict[builtins.str, typing.Any] = {
19951
+ "type": type,
19952
+ "uri": uri,
19953
+ }
19954
+
19955
+ @builtins.property
19956
+ def type(self) -> "KafkaSchemaRegistryAccessConfigType":
19957
+ '''The type of authentication Lambda uses to access your schema registry.'''
19958
+ result = self._values.get("type")
19959
+ assert result is not None, "Required property 'type' is missing"
19960
+ return typing.cast("KafkaSchemaRegistryAccessConfigType", result)
19961
+
19962
+ @builtins.property
19963
+ def uri(self) -> builtins.str:
19964
+ '''The URI of the secret (Secrets Manager secret ARN) to authenticate with your schema registry.
19965
+
19966
+ :see: KafkaSchemaRegistryAccessConfigType
19967
+ '''
19968
+ result = self._values.get("uri")
19969
+ assert result is not None, "Required property 'uri' is missing"
19970
+ return typing.cast(builtins.str, result)
19971
+
19972
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
19973
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
19974
+
19975
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
19976
+ return not (rhs == self)
19977
+
19978
+ def __repr__(self) -> str:
19979
+ return "KafkaSchemaRegistryAccessConfig(%s)" % ", ".join(
19980
+ k + "=" + repr(v) for k, v in self._values.items()
19981
+ )
19982
+
19983
+
19984
+ class KafkaSchemaRegistryAccessConfigType(
19985
+ metaclass=jsii.JSIIMeta,
19986
+ jsii_type="aws-cdk-lib.aws_lambda.KafkaSchemaRegistryAccessConfigType",
19987
+ ):
19988
+ '''The type of authentication protocol for your schema registry.
19989
+
19990
+ :exampleMetadata: infused
19991
+
19992
+ Example::
19993
+
19994
+ from aws_cdk.aws_lambda_event_sources import ManagedKafkaEventSource, ConfluentSchemaRegistry
19995
+ from aws_cdk.aws_secretsmanager import Secret
19996
+
19997
+ # Your MSK cluster arn
19998
+ # cluster_arn: str
19999
+
20000
+ # my_function: lambda.Function
20001
+
20002
+
20003
+ # The Kafka topic you want to subscribe to
20004
+ topic = "some-cool-topic"
20005
+
20006
+ secret = Secret(self, "Secret", secret_name="AmazonMSK_KafkaSecret")
20007
+ my_function.add_event_source(ManagedKafkaEventSource(
20008
+ cluster_arn=cluster_arn,
20009
+ topic=topic,
20010
+ starting_position=lambda_.StartingPosition.TRIM_HORIZON,
20011
+ provisioned_poller_config=ProvisionedPollerConfig(
20012
+ minimum_pollers=1,
20013
+ maximum_pollers=3
20014
+ ),
20015
+ schema_registry_config=ConfluentSchemaRegistry(
20016
+ schema_registry_uri="https://example.com",
20017
+ event_record_format=lambda_.EventRecordFormat.JSON,
20018
+ authentication_type=lambda_.KafkaSchemaRegistryAccessConfigType.BASIC_AUTH,
20019
+ secret=secret,
20020
+ schema_validation_configs=[lambda.KafkaSchemaValidationConfig(attribute=lambda_.KafkaSchemaValidationAttribute.KEY)]
20021
+ )
20022
+ ))
20023
+ '''
20024
+
20025
+ @jsii.member(jsii_name="of")
20026
+ @builtins.classmethod
20027
+ def of(cls, name: builtins.str) -> "KafkaSchemaRegistryAccessConfigType":
20028
+ '''A custom source access configuration property for schema registry.
20029
+
20030
+ :param name: -
20031
+ '''
20032
+ if __debug__:
20033
+ type_hints = typing.get_type_hints(_typecheckingstub__4bc6850ec99a0d35e26da78049f4174bb567964e6b20083c7a1e29e3f120f831)
20034
+ check_type(argname="argument name", value=name, expected_type=type_hints["name"])
20035
+ return typing.cast("KafkaSchemaRegistryAccessConfigType", jsii.sinvoke(cls, "of", [name]))
20036
+
20037
+ @jsii.python.classproperty
20038
+ @jsii.member(jsii_name="BASIC_AUTH")
20039
+ def BASIC_AUTH(cls) -> "KafkaSchemaRegistryAccessConfigType":
20040
+ '''The Secrets Manager secret that stores your broker credentials.'''
20041
+ return typing.cast("KafkaSchemaRegistryAccessConfigType", jsii.sget(cls, "BASIC_AUTH"))
20042
+
20043
+ @jsii.python.classproperty
20044
+ @jsii.member(jsii_name="CLIENT_CERTIFICATE_TLS_AUTH")
20045
+ def CLIENT_CERTIFICATE_TLS_AUTH(cls) -> "KafkaSchemaRegistryAccessConfigType":
20046
+ '''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 schema registry.'''
20047
+ return typing.cast("KafkaSchemaRegistryAccessConfigType", jsii.sget(cls, "CLIENT_CERTIFICATE_TLS_AUTH"))
20048
+
20049
+ @jsii.python.classproperty
20050
+ @jsii.member(jsii_name="SERVER_ROOT_CA_CERTIFICATE")
20051
+ def SERVER_ROOT_CA_CERTIFICATE(cls) -> "KafkaSchemaRegistryAccessConfigType":
20052
+ '''The Secrets Manager ARN of your secret key containing the root CA certificate (X.509 PEM) used for TLS encryption of your schema registry.'''
20053
+ return typing.cast("KafkaSchemaRegistryAccessConfigType", jsii.sget(cls, "SERVER_ROOT_CA_CERTIFICATE"))
20054
+
20055
+ @builtins.property
20056
+ @jsii.member(jsii_name="type")
20057
+ def type(self) -> builtins.str:
20058
+ '''The key to use in ``SchemaRegistryConfig.AccessConfig.Type`` property in CloudFormation.'''
20059
+ return typing.cast(builtins.str, jsii.get(self, "type"))
20060
+
20061
+
20062
+ @jsii.data_type(
20063
+ jsii_type="aws-cdk-lib.aws_lambda.KafkaSchemaRegistryConfig",
20064
+ jsii_struct_bases=[],
20065
+ name_mapping={
20066
+ "event_record_format": "eventRecordFormat",
20067
+ "schema_registry_uri": "schemaRegistryUri",
20068
+ "schema_validation_configs": "schemaValidationConfigs",
20069
+ "access_configs": "accessConfigs",
20070
+ },
20071
+ )
20072
+ class KafkaSchemaRegistryConfig:
20073
+ def __init__(
20074
+ self,
20075
+ *,
20076
+ event_record_format: EventRecordFormat,
20077
+ schema_registry_uri: builtins.str,
20078
+ schema_validation_configs: typing.Sequence[typing.Union["KafkaSchemaValidationConfig", typing.Dict[builtins.str, typing.Any]]],
20079
+ access_configs: typing.Optional[typing.Sequence[typing.Union[KafkaSchemaRegistryAccessConfig, typing.Dict[builtins.str, typing.Any]]]] = None,
20080
+ ) -> None:
20081
+ '''(Amazon MSK and self-managed Apache Kafka only) Specific configuration settings for a Kafka schema registry.
20082
+
20083
+ :param event_record_format: The record format that Lambda delivers to your function after schema validation. - Choose JSON to have Lambda deliver the record to your function as a standard JSON object. - Choose SOURCE to have Lambda deliver the record to your function in its original source format. Lambda removes all schema metadata, such as the schema ID, before sending the record to your function. Default: - none
20084
+ :param schema_registry_uri: The URI for your schema registry. The correct URI format depends on the type of schema registry you're using. Default: - none
20085
+ :param schema_validation_configs: An array of schema validation configuration objects, which tell Lambda the message attributes you want to validate and filter using your schema registry. Default: - none
20086
+ :param access_configs: An array of access configuration objects that tell Lambda how to authenticate with your schema registry. Default: - none
20087
+
20088
+ :exampleMetadata: fixture=_generated
20089
+
20090
+ Example::
20091
+
20092
+ # The code below shows an example of how to instantiate this type.
20093
+ # The values are placeholders you should change.
20094
+ from aws_cdk import aws_lambda as lambda_
20095
+
20096
+ # event_record_format: lambda.EventRecordFormat
20097
+ # kafka_schema_registry_access_config_type: lambda.KafkaSchemaRegistryAccessConfigType
20098
+ # kafka_schema_validation_attribute: lambda.KafkaSchemaValidationAttribute
20099
+
20100
+ kafka_schema_registry_config = lambda.KafkaSchemaRegistryConfig(
20101
+ event_record_format=event_record_format,
20102
+ schema_registry_uri="schemaRegistryUri",
20103
+ schema_validation_configs=[lambda.KafkaSchemaValidationConfig(
20104
+ attribute=kafka_schema_validation_attribute
20105
+ )],
20106
+
20107
+ # the properties below are optional
20108
+ access_configs=[lambda.KafkaSchemaRegistryAccessConfig(
20109
+ type=kafka_schema_registry_access_config_type,
20110
+ uri="uri"
20111
+ )]
20112
+ )
20113
+ '''
20114
+ if __debug__:
20115
+ type_hints = typing.get_type_hints(_typecheckingstub__a3171876130664545cc7c6ac22856db59c006c52bb5f546cb11b18d515fef45e)
20116
+ check_type(argname="argument event_record_format", value=event_record_format, expected_type=type_hints["event_record_format"])
20117
+ check_type(argname="argument schema_registry_uri", value=schema_registry_uri, expected_type=type_hints["schema_registry_uri"])
20118
+ check_type(argname="argument schema_validation_configs", value=schema_validation_configs, expected_type=type_hints["schema_validation_configs"])
20119
+ check_type(argname="argument access_configs", value=access_configs, expected_type=type_hints["access_configs"])
20120
+ self._values: typing.Dict[builtins.str, typing.Any] = {
20121
+ "event_record_format": event_record_format,
20122
+ "schema_registry_uri": schema_registry_uri,
20123
+ "schema_validation_configs": schema_validation_configs,
20124
+ }
20125
+ if access_configs is not None:
20126
+ self._values["access_configs"] = access_configs
20127
+
20128
+ @builtins.property
20129
+ def event_record_format(self) -> EventRecordFormat:
20130
+ '''The record format that Lambda delivers to your function after schema validation.
20131
+
20132
+ - Choose JSON to have Lambda deliver the record to your function as a standard JSON object.
20133
+ - Choose SOURCE to have Lambda deliver the record to your function in its original source format. Lambda removes all schema metadata, such as the schema ID, before sending the record to your function.
20134
+
20135
+ :default: - none
20136
+ '''
20137
+ result = self._values.get("event_record_format")
20138
+ assert result is not None, "Required property 'event_record_format' is missing"
20139
+ return typing.cast(EventRecordFormat, result)
20140
+
20141
+ @builtins.property
20142
+ def schema_registry_uri(self) -> builtins.str:
20143
+ '''The URI for your schema registry.
20144
+
20145
+ The correct URI format depends on the type of schema registry you're using.
20146
+
20147
+ :default: - none
20148
+ '''
20149
+ result = self._values.get("schema_registry_uri")
20150
+ assert result is not None, "Required property 'schema_registry_uri' is missing"
20151
+ return typing.cast(builtins.str, result)
20152
+
20153
+ @builtins.property
20154
+ def schema_validation_configs(self) -> typing.List["KafkaSchemaValidationConfig"]:
20155
+ '''An array of schema validation configuration objects, which tell Lambda the message attributes you want to validate and filter using your schema registry.
20156
+
20157
+ :default: - none
20158
+ '''
20159
+ result = self._values.get("schema_validation_configs")
20160
+ assert result is not None, "Required property 'schema_validation_configs' is missing"
20161
+ return typing.cast(typing.List["KafkaSchemaValidationConfig"], result)
20162
+
20163
+ @builtins.property
20164
+ def access_configs(
20165
+ self,
20166
+ ) -> typing.Optional[typing.List[KafkaSchemaRegistryAccessConfig]]:
20167
+ '''An array of access configuration objects that tell Lambda how to authenticate with your schema registry.
20168
+
20169
+ :default: - none
20170
+ '''
20171
+ result = self._values.get("access_configs")
20172
+ return typing.cast(typing.Optional[typing.List[KafkaSchemaRegistryAccessConfig]], result)
20173
+
20174
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
20175
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
20176
+
20177
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
20178
+ return not (rhs == self)
20179
+
20180
+ def __repr__(self) -> str:
20181
+ return "KafkaSchemaRegistryConfig(%s)" % ", ".join(
20182
+ k + "=" + repr(v) for k, v in self._values.items()
20183
+ )
20184
+
20185
+
20186
+ class KafkaSchemaValidationAttribute(
20187
+ metaclass=jsii.JSIIMeta,
20188
+ jsii_type="aws-cdk-lib.aws_lambda.KafkaSchemaValidationAttribute",
20189
+ ):
20190
+ '''Specific schema validation configuration settings that tell Lambda the message attributes you want to validate and filter using your schema registry.
20191
+
20192
+ :exampleMetadata: infused
20193
+
20194
+ Example::
20195
+
20196
+ from aws_cdk.aws_lambda_event_sources import ManagedKafkaEventSource, ConfluentSchemaRegistry
20197
+ from aws_cdk.aws_secretsmanager import Secret
20198
+
20199
+ # Your MSK cluster arn
20200
+ # cluster_arn: str
20201
+
20202
+ # my_function: lambda.Function
20203
+
20204
+
20205
+ # The Kafka topic you want to subscribe to
20206
+ topic = "some-cool-topic"
20207
+
20208
+ secret = Secret(self, "Secret", secret_name="AmazonMSK_KafkaSecret")
20209
+ my_function.add_event_source(ManagedKafkaEventSource(
20210
+ cluster_arn=cluster_arn,
20211
+ topic=topic,
20212
+ starting_position=lambda_.StartingPosition.TRIM_HORIZON,
20213
+ provisioned_poller_config=ProvisionedPollerConfig(
20214
+ minimum_pollers=1,
20215
+ maximum_pollers=3
20216
+ ),
20217
+ schema_registry_config=ConfluentSchemaRegistry(
20218
+ schema_registry_uri="https://example.com",
20219
+ event_record_format=lambda_.EventRecordFormat.JSON,
20220
+ authentication_type=lambda_.KafkaSchemaRegistryAccessConfigType.BASIC_AUTH,
20221
+ secret=secret,
20222
+ schema_validation_configs=[lambda.KafkaSchemaValidationConfig(attribute=lambda_.KafkaSchemaValidationAttribute.KEY)]
20223
+ )
20224
+ ))
20225
+ '''
20226
+
20227
+ @jsii.member(jsii_name="of")
20228
+ @builtins.classmethod
20229
+ def of(cls, name: builtins.str) -> "KafkaSchemaValidationAttribute":
20230
+ '''A custom schema validation attribute property.
20231
+
20232
+ :param name: -
20233
+ '''
20234
+ if __debug__:
20235
+ type_hints = typing.get_type_hints(_typecheckingstub__90f583f1aa63ef4c8f67ca1d84697d67f4e81ae0ea5473533af46b85cc17e696)
20236
+ check_type(argname="argument name", value=name, expected_type=type_hints["name"])
20237
+ return typing.cast("KafkaSchemaValidationAttribute", jsii.sinvoke(cls, "of", [name]))
20238
+
20239
+ @jsii.python.classproperty
20240
+ @jsii.member(jsii_name="KEY")
20241
+ def KEY(cls) -> "KafkaSchemaValidationAttribute":
20242
+ '''De-serialize the key field of the parload to target function.'''
20243
+ return typing.cast("KafkaSchemaValidationAttribute", jsii.sget(cls, "KEY"))
20244
+
20245
+ @jsii.python.classproperty
20246
+ @jsii.member(jsii_name="VALUE")
20247
+ def VALUE(cls) -> "KafkaSchemaValidationAttribute":
20248
+ '''De-serialize the value field of the parload to target function.'''
20249
+ return typing.cast("KafkaSchemaValidationAttribute", jsii.sget(cls, "VALUE"))
20250
+
20251
+ @builtins.property
20252
+ @jsii.member(jsii_name="value")
20253
+ def value(self) -> builtins.str:
20254
+ '''The enum to use in ``SchemaRegistryConfig.SchemaValidationConfigs.Attribute`` property in CloudFormation.'''
20255
+ return typing.cast(builtins.str, jsii.get(self, "value"))
20256
+
20257
+
20258
+ @jsii.data_type(
20259
+ jsii_type="aws-cdk-lib.aws_lambda.KafkaSchemaValidationConfig",
20260
+ jsii_struct_bases=[],
20261
+ name_mapping={"attribute": "attribute"},
20262
+ )
20263
+ class KafkaSchemaValidationConfig:
20264
+ def __init__(self, *, attribute: KafkaSchemaValidationAttribute) -> None:
20265
+ '''Specific schema validation configuration settings that tell Lambda the message attributes you want to validate and filter using your schema registry.
20266
+
20267
+ :param attribute: The attributes you want your schema registry to validate and filter for. If you selected JSON as the EventRecordFormat, Lambda also deserializes the selected message attributes.
20268
+
20269
+ :exampleMetadata: fixture=_generated
20270
+
20271
+ Example::
20272
+
20273
+ # The code below shows an example of how to instantiate this type.
20274
+ # The values are placeholders you should change.
20275
+ from aws_cdk import aws_lambda as lambda_
20276
+
20277
+ # kafka_schema_validation_attribute: lambda.KafkaSchemaValidationAttribute
20278
+
20279
+ kafka_schema_validation_config = lambda.KafkaSchemaValidationConfig(
20280
+ attribute=kafka_schema_validation_attribute
20281
+ )
20282
+ '''
20283
+ if __debug__:
20284
+ type_hints = typing.get_type_hints(_typecheckingstub__89fd450fee20fb5d81fd39157485acaae3ba70536153566208b1778d213a1ae8)
20285
+ check_type(argname="argument attribute", value=attribute, expected_type=type_hints["attribute"])
20286
+ self._values: typing.Dict[builtins.str, typing.Any] = {
20287
+ "attribute": attribute,
20288
+ }
20289
+
20290
+ @builtins.property
20291
+ def attribute(self) -> KafkaSchemaValidationAttribute:
20292
+ '''The attributes you want your schema registry to validate and filter for.
20293
+
20294
+ If you selected JSON as the EventRecordFormat, Lambda also deserializes the selected message attributes.
20295
+ '''
20296
+ result = self._values.get("attribute")
20297
+ assert result is not None, "Required property 'attribute' is missing"
20298
+ return typing.cast(KafkaSchemaValidationAttribute, result)
20299
+
20300
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
20301
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
20302
+
20303
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
20304
+ return not (rhs == self)
20305
+
20306
+ def __repr__(self) -> str:
20307
+ return "KafkaSchemaValidationConfig(%s)" % ", ".join(
20308
+ k + "=" + repr(v) for k, v in self._values.items()
20309
+ )
20310
+
20311
+
19403
20312
  class LambdaInsightsVersion(
19404
20313
  metaclass=jsii.JSIIAbstractClass,
19405
20314
  jsii_type="aws-cdk-lib.aws_lambda.LambdaInsightsVersion",
@@ -21969,6 +22878,88 @@ class S3CodeV2(
21969
22878
  return typing.cast(builtins.bool, jsii.get(self, "isInline"))
21970
22879
 
21971
22880
 
22881
+ @jsii.data_type(
22882
+ jsii_type="aws-cdk-lib.aws_lambda.SchemaRegistryProps",
22883
+ jsii_struct_bases=[],
22884
+ name_mapping={
22885
+ "event_record_format": "eventRecordFormat",
22886
+ "schema_validation_configs": "schemaValidationConfigs",
22887
+ },
22888
+ )
22889
+ class SchemaRegistryProps:
22890
+ def __init__(
22891
+ self,
22892
+ *,
22893
+ event_record_format: EventRecordFormat,
22894
+ schema_validation_configs: typing.Sequence[typing.Union[KafkaSchemaValidationConfig, typing.Dict[builtins.str, typing.Any]]],
22895
+ ) -> None:
22896
+ '''Properties for schema registry configuration.
22897
+
22898
+ :param event_record_format: The record format that Lambda delivers to your function after schema validation. - Choose JSON to have Lambda deliver the record to your function as a standard JSON object. - Choose SOURCE to have Lambda deliver the record to your function in its original source format. Lambda removes all schema metadata, such as the schema ID, before sending the record to your function. Default: - none
22899
+ :param schema_validation_configs: An array of schema validation configuration objects, which tell Lambda the message attributes you want to validate and filter using your schema registry. Default: - none
22900
+
22901
+ :exampleMetadata: fixture=_generated
22902
+
22903
+ Example::
22904
+
22905
+ # The code below shows an example of how to instantiate this type.
22906
+ # The values are placeholders you should change.
22907
+ from aws_cdk import aws_lambda as lambda_
22908
+
22909
+ # event_record_format: lambda.EventRecordFormat
22910
+ # kafka_schema_validation_attribute: lambda.KafkaSchemaValidationAttribute
22911
+
22912
+ schema_registry_props = lambda.SchemaRegistryProps(
22913
+ event_record_format=event_record_format,
22914
+ schema_validation_configs=[lambda.KafkaSchemaValidationConfig(
22915
+ attribute=kafka_schema_validation_attribute
22916
+ )]
22917
+ )
22918
+ '''
22919
+ if __debug__:
22920
+ type_hints = typing.get_type_hints(_typecheckingstub__0915a5e0439a722acf480d4010d03236559e242684c698d0a460dffc5709933b)
22921
+ check_type(argname="argument event_record_format", value=event_record_format, expected_type=type_hints["event_record_format"])
22922
+ check_type(argname="argument schema_validation_configs", value=schema_validation_configs, expected_type=type_hints["schema_validation_configs"])
22923
+ self._values: typing.Dict[builtins.str, typing.Any] = {
22924
+ "event_record_format": event_record_format,
22925
+ "schema_validation_configs": schema_validation_configs,
22926
+ }
22927
+
22928
+ @builtins.property
22929
+ def event_record_format(self) -> EventRecordFormat:
22930
+ '''The record format that Lambda delivers to your function after schema validation.
22931
+
22932
+ - Choose JSON to have Lambda deliver the record to your function as a standard JSON object.
22933
+ - Choose SOURCE to have Lambda deliver the record to your function in its original source format. Lambda removes all schema metadata, such as the schema ID, before sending the record to your function.
22934
+
22935
+ :default: - none
22936
+ '''
22937
+ result = self._values.get("event_record_format")
22938
+ assert result is not None, "Required property 'event_record_format' is missing"
22939
+ return typing.cast(EventRecordFormat, result)
22940
+
22941
+ @builtins.property
22942
+ def schema_validation_configs(self) -> typing.List[KafkaSchemaValidationConfig]:
22943
+ '''An array of schema validation configuration objects, which tell Lambda the message attributes you want to validate and filter using your schema registry.
22944
+
22945
+ :default: - none
22946
+ '''
22947
+ result = self._values.get("schema_validation_configs")
22948
+ assert result is not None, "Required property 'schema_validation_configs' is missing"
22949
+ return typing.cast(typing.List[KafkaSchemaValidationConfig], result)
22950
+
22951
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
22952
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
22953
+
22954
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
22955
+ return not (rhs == self)
22956
+
22957
+ def __repr__(self) -> str:
22958
+ return "SchemaRegistryProps(%s)" % ", ".join(
22959
+ k + "=" + repr(v) for k, v in self._values.items()
22960
+ )
22961
+
22962
+
21972
22963
  @jsii.data_type(
21973
22964
  jsii_type="aws-cdk-lib.aws_lambda.SingletonFunctionProps",
21974
22965
  jsii_struct_bases=[FunctionProps],
@@ -23206,20 +24197,30 @@ class StartingPosition(enum.Enum):
23206
24197
 
23207
24198
  Example::
23208
24199
 
23209
- import aws_cdk.aws_kinesis as kinesis
23210
- from aws_cdk.aws_lambda_event_sources import KinesisConsumerEventSource
24200
+ from aws_cdk.aws_lambda_event_sources import ManagedKafkaEventSource
24201
+ from aws_cdk.aws_kms import Key
23211
24202
 
23212
24203
  # my_function: lambda.Function
23213
24204
 
23214
24205
 
23215
- stream = kinesis.Stream(self, "MyStream")
23216
- stream_consumer = kinesis.StreamConsumer(self, "MyStreamConsumer",
23217
- stream=stream,
23218
- stream_consumer_name="MyStreamConsumer"
23219
- )
23220
- my_function.add_event_source(KinesisConsumerEventSource(stream_consumer,
23221
- batch_size=100, # default
23222
- starting_position=lambda_.StartingPosition.TRIM_HORIZON
24206
+ # Your MSK cluster arn
24207
+ cluster_arn = "arn:aws:kafka:us-east-1:0123456789019:cluster/SalesCluster/abcd1234-abcd-cafe-abab-9876543210ab-4"
24208
+
24209
+ # The Kafka topic you want to subscribe to
24210
+ topic = "some-cool-topic"
24211
+
24212
+ # Your self managed KMS key
24213
+ my_key = Key.from_key_arn(self, "SourceBucketEncryptionKey", "arn:aws:kms:us-east-1:123456789012:key/<key-id>")
24214
+ my_function.add_event_source(ManagedKafkaEventSource(
24215
+ cluster_arn=cluster_arn,
24216
+ topic=topic,
24217
+ starting_position=lambda_.StartingPosition.TRIM_HORIZON,
24218
+ filters=[
24219
+ lambda_.FilterCriteria.filter({
24220
+ "string_equals": lambda_.FilterRule.is_equal("test")
24221
+ })
24222
+ ],
24223
+ filter_encryption=my_key
23223
24224
  ))
23224
24225
  '''
23225
24226
 
@@ -25933,6 +26934,7 @@ class EventSourceMapping(
25933
26934
  # filters: Any
25934
26935
  # function_: lambda.Function
25935
26936
  # key: kms.Key
26937
+ # schema_registry: lambda.ISchemaRegistry
25936
26938
  # source_access_configuration_type: lambda.SourceAccessConfigurationType
25937
26939
 
25938
26940
  event_source_mapping = lambda_.EventSourceMapping(self, "MyEventSourceMapping",
@@ -25964,6 +26966,7 @@ class EventSourceMapping(
25964
26966
  ),
25965
26967
  report_batch_item_failures=False,
25966
26968
  retry_attempts=123,
26969
+ schema_registry_config=schema_registry,
25967
26970
  source_access_configurations=[lambda.SourceAccessConfiguration(
25968
26971
  type=source_access_configuration_type,
25969
26972
  uri="uri"
@@ -25999,6 +27002,7 @@ class EventSourceMapping(
25999
27002
  provisioned_poller_config: typing.Optional[typing.Union[ProvisionedPollerConfig, typing.Dict[builtins.str, typing.Any]]] = None,
26000
27003
  report_batch_item_failures: typing.Optional[builtins.bool] = None,
26001
27004
  retry_attempts: typing.Optional[jsii.Number] = None,
27005
+ schema_registry_config: typing.Optional[ISchemaRegistry] = None,
26002
27006
  source_access_configurations: typing.Optional[typing.Sequence[typing.Union[SourceAccessConfiguration, typing.Dict[builtins.str, typing.Any]]]] = None,
26003
27007
  starting_position: typing.Optional[StartingPosition] = None,
26004
27008
  starting_position_timestamp: typing.Optional[jsii.Number] = None,
@@ -26027,6 +27031,7 @@ class EventSourceMapping(
26027
27031
  :param provisioned_poller_config: Configuration for provisioned pollers that read from the event source. When specified, allows control over the minimum and maximum number of pollers that can be provisioned to process events from the source. Default: - no provisioned pollers
26028
27032
  :param report_batch_item_failures: Allow functions to return partially successful responses for a batch of records. Default: false
26029
27033
  :param retry_attempts: The maximum number of times to retry when the function returns an error. Set to ``undefined`` if you want lambda to keep retrying infinitely or until the record expires. Valid Range: - Minimum value of 0 - Maximum value of 10000 Default: - infinite or until the record expires.
27034
+ :param schema_registry_config: Specific configuration settings for a Kafka schema registry. Default: - none
26030
27035
  :param source_access_configurations: Specific settings like the authentication protocol or the VPC components to secure access to your event source. Default: - none
26031
27036
  :param starting_position: The position in the DynamoDB, Kinesis or MSK stream where AWS Lambda should start reading. Default: - no starting position
26032
27037
  :param starting_position_timestamp: The time from which to start reading, in Unix time seconds. Default: - no timestamp
@@ -26057,6 +27062,7 @@ class EventSourceMapping(
26057
27062
  provisioned_poller_config=provisioned_poller_config,
26058
27063
  report_batch_item_failures=report_batch_item_failures,
26059
27064
  retry_attempts=retry_attempts,
27065
+ schema_registry_config=schema_registry_config,
26060
27066
  source_access_configurations=source_access_configurations,
26061
27067
  starting_position=starting_position,
26062
27068
  starting_position_timestamp=starting_position_timestamp,
@@ -26184,6 +27190,7 @@ class FunctionBase(
26184
27190
  provisioned_poller_config: typing.Optional[typing.Union[ProvisionedPollerConfig, typing.Dict[builtins.str, typing.Any]]] = None,
26185
27191
  report_batch_item_failures: typing.Optional[builtins.bool] = None,
26186
27192
  retry_attempts: typing.Optional[jsii.Number] = None,
27193
+ schema_registry_config: typing.Optional[ISchemaRegistry] = None,
26187
27194
  source_access_configurations: typing.Optional[typing.Sequence[typing.Union[SourceAccessConfiguration, typing.Dict[builtins.str, typing.Any]]]] = None,
26188
27195
  starting_position: typing.Optional[StartingPosition] = None,
26189
27196
  starting_position_timestamp: typing.Optional[jsii.Number] = None,
@@ -26211,6 +27218,7 @@ class FunctionBase(
26211
27218
  :param provisioned_poller_config: Configuration for provisioned pollers that read from the event source. When specified, allows control over the minimum and maximum number of pollers that can be provisioned to process events from the source. Default: - no provisioned pollers
26212
27219
  :param report_batch_item_failures: Allow functions to return partially successful responses for a batch of records. Default: false
26213
27220
  :param retry_attempts: The maximum number of times to retry when the function returns an error. Set to ``undefined`` if you want lambda to keep retrying infinitely or until the record expires. Valid Range: - Minimum value of 0 - Maximum value of 10000 Default: - infinite or until the record expires.
27221
+ :param schema_registry_config: Specific configuration settings for a Kafka schema registry. Default: - none
26214
27222
  :param source_access_configurations: Specific settings like the authentication protocol or the VPC components to secure access to your event source. Default: - none
26215
27223
  :param starting_position: The position in the DynamoDB, Kinesis or MSK stream where AWS Lambda should start reading. Default: - no starting position
26216
27224
  :param starting_position_timestamp: The time from which to start reading, in Unix time seconds. Default: - no timestamp
@@ -26239,6 +27247,7 @@ class FunctionBase(
26239
27247
  provisioned_poller_config=provisioned_poller_config,
26240
27248
  report_batch_item_failures=report_batch_item_failures,
26241
27249
  retry_attempts=retry_attempts,
27250
+ schema_registry_config=schema_registry_config,
26242
27251
  source_access_configurations=source_access_configurations,
26243
27252
  starting_position=starting_position,
26244
27253
  starting_position_timestamp=starting_position_timestamp,
@@ -28163,23 +29172,28 @@ class Function(
28163
29172
 
28164
29173
  Example::
28165
29174
 
28166
- import aws_cdk.aws_signer as signer
29175
+ import aws_cdk.aws_lambda as lambda_
28167
29176
 
28168
29177
 
28169
- signing_profile = signer.SigningProfile(self, "SigningProfile",
28170
- platform=signer.Platform.AWS_LAMBDA_SHA384_ECDSA
29178
+ fn = lambda_.Function(self, "MyFunc",
29179
+ runtime=lambda_.Runtime.NODEJS_LATEST,
29180
+ handler="index.handler",
29181
+ code=lambda_.Code.from_inline("exports.handler = handler.toString()")
28171
29182
  )
28172
29183
 
28173
- code_signing_config = lambda_.CodeSigningConfig(self, "CodeSigningConfig",
28174
- signing_profiles=[signing_profile]
29184
+ rule = events.Rule(self, "rule",
29185
+ event_pattern=events.EventPattern(
29186
+ source=["aws.ec2"]
29187
+ )
28175
29188
  )
28176
29189
 
28177
- lambda_.Function(self, "Function",
28178
- code_signing_config=code_signing_config,
28179
- runtime=lambda_.Runtime.NODEJS_18_X,
28180
- handler="index.handler",
28181
- code=lambda_.Code.from_asset(path.join(__dirname, "lambda-handler"))
28182
- )
29190
+ queue = sqs.Queue(self, "Queue")
29191
+
29192
+ rule.add_target(targets.LambdaFunction(fn,
29193
+ dead_letter_queue=queue, # Optional: add a dead letter queue
29194
+ max_event_age=Duration.hours(2), # Optional: set the maxEventAge retry policy
29195
+ retry_attempts=2
29196
+ ))
28183
29197
  '''
28184
29198
 
28185
29199
  def __init__(
@@ -29268,6 +30282,7 @@ __all__ = [
29268
30282
  "EventInvokeConfig",
29269
30283
  "EventInvokeConfigOptions",
29270
30284
  "EventInvokeConfigProps",
30285
+ "EventRecordFormat",
29271
30286
  "EventSourceMapping",
29272
30287
  "EventSourceMappingOptions",
29273
30288
  "EventSourceMappingProps",
@@ -29298,9 +30313,15 @@ __all__ = [
29298
30313
  "IFunctionUrl",
29299
30314
  "ILayerVersion",
29300
30315
  "IScalableFunctionAttribute",
30316
+ "ISchemaRegistry",
29301
30317
  "IVersion",
29302
30318
  "InlineCode",
29303
30319
  "InvokeMode",
30320
+ "KafkaSchemaRegistryAccessConfig",
30321
+ "KafkaSchemaRegistryAccessConfigType",
30322
+ "KafkaSchemaRegistryConfig",
30323
+ "KafkaSchemaValidationAttribute",
30324
+ "KafkaSchemaValidationConfig",
29304
30325
  "LambdaInsightsVersion",
29305
30326
  "LambdaRuntimeProps",
29306
30327
  "LayerVersion",
@@ -29327,6 +30348,7 @@ __all__ = [
29327
30348
  "RuntimeManagementMode",
29328
30349
  "S3Code",
29329
30350
  "S3CodeV2",
30351
+ "SchemaRegistryProps",
29330
30352
  "SingletonFunction",
29331
30353
  "SingletonFunctionProps",
29332
30354
  "SnapStartConf",
@@ -29945,6 +30967,7 @@ def _typecheckingstub__9ba4e20a14a70ac72313ba360ce912878e7f45dfe5ecfef9725f227fc
29945
30967
  def _typecheckingstub__aac6572409154e0ba1b8c514b7863acbda031f98f5a42007db7c94d4afe31b72(
29946
30968
  *,
29947
30969
  consumer_group_id: typing.Optional[builtins.str] = None,
30970
+ schema_registry_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnEventSourceMapping.SchemaRegistryConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
29948
30971
  ) -> None:
29949
30972
  """Type checking stubs"""
29950
30973
  pass
@@ -30015,6 +31038,31 @@ def _typecheckingstub__cb04d1a40c8f33d48d5c4188609d038cd334985a6f5970b3c6b8dd193
30015
31038
  """Type checking stubs"""
30016
31039
  pass
30017
31040
 
31041
+ def _typecheckingstub__6eca6e693bd8bc08cbc4e65ef0a192af8a45e588dc95d417a2c7feff8fc7ade7(
31042
+ *,
31043
+ type: typing.Optional[builtins.str] = None,
31044
+ uri: typing.Optional[builtins.str] = None,
31045
+ ) -> None:
31046
+ """Type checking stubs"""
31047
+ pass
31048
+
31049
+ def _typecheckingstub__7f8fb419a333cbc879badd611bbdfdb1f0ed875f70f7915910a930f6c8cc2742(
31050
+ *,
31051
+ access_configs: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnEventSourceMapping.SchemaRegistryAccessConfigProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
31052
+ event_record_format: typing.Optional[builtins.str] = None,
31053
+ schema_registry_uri: typing.Optional[builtins.str] = None,
31054
+ schema_validation_configs: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnEventSourceMapping.SchemaValidationConfigProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
31055
+ ) -> None:
31056
+ """Type checking stubs"""
31057
+ pass
31058
+
31059
+ def _typecheckingstub__a33eb6c4d2c3434344b07e6867f42e37e4fc335a3f84422c3bf42cd6136142b7(
31060
+ *,
31061
+ attribute: typing.Optional[builtins.str] = None,
31062
+ ) -> None:
31063
+ """Type checking stubs"""
31064
+ pass
31065
+
30018
31066
  def _typecheckingstub__a93b51262658dc9dfd71e073cc42d4549a6e56e4c3b47edd31d26c3a46ea8929(
30019
31067
  *,
30020
31068
  endpoints: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnEventSourceMapping.EndpointsProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
@@ -30025,6 +31073,7 @@ def _typecheckingstub__a93b51262658dc9dfd71e073cc42d4549a6e56e4c3b47edd31d26c3a4
30025
31073
  def _typecheckingstub__da32c0d6c5c0b8e4a97d90195ff7f689e87587b466dc192a0b2972c1b6740d3d(
30026
31074
  *,
30027
31075
  consumer_group_id: typing.Optional[builtins.str] = None,
31076
+ schema_registry_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnEventSourceMapping.SchemaRegistryConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
30028
31077
  ) -> None:
30029
31078
  """Type checking stubs"""
30030
31079
  pass
@@ -31126,6 +32175,12 @@ def _typecheckingstub__39c1b3a3185624e50b391ccba8992ee288e54789a9b063a9fbffc3207
31126
32175
  """Type checking stubs"""
31127
32176
  pass
31128
32177
 
32178
+ def _typecheckingstub__913b83169547e1e27e0d17d4e5a189f10545dca54ca45db7a5dc40a7d5cc2999(
32179
+ name: builtins.str,
32180
+ ) -> None:
32181
+ """Type checking stubs"""
32182
+ pass
32183
+
31129
32184
  def _typecheckingstub__7442d2bd60e56a826eab54e95fa6a6ebc8961285a26558c7189840a124a0a2e0(
31130
32185
  *,
31131
32186
  batch_size: typing.Optional[jsii.Number] = None,
@@ -31146,6 +32201,7 @@ def _typecheckingstub__7442d2bd60e56a826eab54e95fa6a6ebc8961285a26558c7189840a12
31146
32201
  provisioned_poller_config: typing.Optional[typing.Union[ProvisionedPollerConfig, typing.Dict[builtins.str, typing.Any]]] = None,
31147
32202
  report_batch_item_failures: typing.Optional[builtins.bool] = None,
31148
32203
  retry_attempts: typing.Optional[jsii.Number] = None,
32204
+ schema_registry_config: typing.Optional[ISchemaRegistry] = None,
31149
32205
  source_access_configurations: typing.Optional[typing.Sequence[typing.Union[SourceAccessConfiguration, typing.Dict[builtins.str, typing.Any]]]] = None,
31150
32206
  starting_position: typing.Optional[StartingPosition] = None,
31151
32207
  starting_position_timestamp: typing.Optional[jsii.Number] = None,
@@ -31175,6 +32231,7 @@ def _typecheckingstub__e74d0bc5516fc715f7302bdf199df23dddf769e98771f0bac2ff026a4
31175
32231
  provisioned_poller_config: typing.Optional[typing.Union[ProvisionedPollerConfig, typing.Dict[builtins.str, typing.Any]]] = None,
31176
32232
  report_batch_item_failures: typing.Optional[builtins.bool] = None,
31177
32233
  retry_attempts: typing.Optional[jsii.Number] = None,
32234
+ schema_registry_config: typing.Optional[ISchemaRegistry] = None,
31178
32235
  source_access_configurations: typing.Optional[typing.Sequence[typing.Union[SourceAccessConfiguration, typing.Dict[builtins.str, typing.Any]]]] = None,
31179
32236
  starting_position: typing.Optional[StartingPosition] = None,
31180
32237
  starting_position_timestamp: typing.Optional[jsii.Number] = None,
@@ -31458,6 +32515,7 @@ def _typecheckingstub__726375d512fd3c0da30be8d20d1c4016974ba77359e6bac8eb3569126
31458
32515
  provisioned_poller_config: typing.Optional[typing.Union[ProvisionedPollerConfig, typing.Dict[builtins.str, typing.Any]]] = None,
31459
32516
  report_batch_item_failures: typing.Optional[builtins.bool] = None,
31460
32517
  retry_attempts: typing.Optional[jsii.Number] = None,
32518
+ schema_registry_config: typing.Optional[ISchemaRegistry] = None,
31461
32519
  source_access_configurations: typing.Optional[typing.Sequence[typing.Union[SourceAccessConfiguration, typing.Dict[builtins.str, typing.Any]]]] = None,
31462
32520
  starting_position: typing.Optional[StartingPosition] = None,
31463
32521
  starting_position_timestamp: typing.Optional[jsii.Number] = None,
@@ -31564,6 +32622,13 @@ def _typecheckingstub__6400e52bafb7e00e3113dbb1e115c4dea946b786b17eee75a6aa6706a
31564
32622
  """Type checking stubs"""
31565
32623
  pass
31566
32624
 
32625
+ def _typecheckingstub__0c68a1588ffc2bca6786310b7681f323e4368d6bf66e13c5fbdc7ef0ad571a22(
32626
+ target: IEventSourceMapping,
32627
+ target_handler: IFunction,
32628
+ ) -> None:
32629
+ """Type checking stubs"""
32630
+ pass
32631
+
31567
32632
  def _typecheckingstub__d163f09d3cc5fe40599d7400b73c5f0814fcf5b50dccd44d5740a368a0d84cf9(
31568
32633
  alias_name: builtins.str,
31569
32634
  *,
@@ -31590,6 +32655,43 @@ def _typecheckingstub__68701e0be659943818e792689f9c11f6ea386ae16b7e76ef2e090037d
31590
32655
  """Type checking stubs"""
31591
32656
  pass
31592
32657
 
32658
+ def _typecheckingstub__a9ed7f710fdd20a96eb8eeb709bbea9f1e52b3ca20bed4ca85cf8341031090d2(
32659
+ *,
32660
+ type: KafkaSchemaRegistryAccessConfigType,
32661
+ uri: builtins.str,
32662
+ ) -> None:
32663
+ """Type checking stubs"""
32664
+ pass
32665
+
32666
+ def _typecheckingstub__4bc6850ec99a0d35e26da78049f4174bb567964e6b20083c7a1e29e3f120f831(
32667
+ name: builtins.str,
32668
+ ) -> None:
32669
+ """Type checking stubs"""
32670
+ pass
32671
+
32672
+ def _typecheckingstub__a3171876130664545cc7c6ac22856db59c006c52bb5f546cb11b18d515fef45e(
32673
+ *,
32674
+ event_record_format: EventRecordFormat,
32675
+ schema_registry_uri: builtins.str,
32676
+ schema_validation_configs: typing.Sequence[typing.Union[KafkaSchemaValidationConfig, typing.Dict[builtins.str, typing.Any]]],
32677
+ access_configs: typing.Optional[typing.Sequence[typing.Union[KafkaSchemaRegistryAccessConfig, typing.Dict[builtins.str, typing.Any]]]] = None,
32678
+ ) -> None:
32679
+ """Type checking stubs"""
32680
+ pass
32681
+
32682
+ def _typecheckingstub__90f583f1aa63ef4c8f67ca1d84697d67f4e81ae0ea5473533af46b85cc17e696(
32683
+ name: builtins.str,
32684
+ ) -> None:
32685
+ """Type checking stubs"""
32686
+ pass
32687
+
32688
+ def _typecheckingstub__89fd450fee20fb5d81fd39157485acaae3ba70536153566208b1778d213a1ae8(
32689
+ *,
32690
+ attribute: KafkaSchemaValidationAttribute,
32691
+ ) -> None:
32692
+ """Type checking stubs"""
32693
+ pass
32694
+
31593
32695
  def _typecheckingstub__263309ccb98199a52576e8475ff6ab5f39d5cf43f49cd26a3d9a85ab711464ad(
31594
32696
  arn: builtins.str,
31595
32697
  ) -> None:
@@ -31841,6 +32943,14 @@ def _typecheckingstub__304505e97ff3b397f5306079c5410e06bb217281e1cc348ada6eef6ae
31841
32943
  """Type checking stubs"""
31842
32944
  pass
31843
32945
 
32946
+ def _typecheckingstub__0915a5e0439a722acf480d4010d03236559e242684c698d0a460dffc5709933b(
32947
+ *,
32948
+ event_record_format: EventRecordFormat,
32949
+ schema_validation_configs: typing.Sequence[typing.Union[KafkaSchemaValidationConfig, typing.Dict[builtins.str, typing.Any]]],
32950
+ ) -> None:
32951
+ """Type checking stubs"""
32952
+ pass
32953
+
31844
32954
  def _typecheckingstub__68a03ec9f866a29c77aabcf8328c63a49511790fa9714874f255b3292623893c(
31845
32955
  *,
31846
32956
  max_event_age: typing.Optional[_Duration_4839e8c3] = None,
@@ -32176,6 +33286,7 @@ def _typecheckingstub__b0460bc5250777612d2b42ec799737ce019fcdc03fe86c6540ab2ecec
32176
33286
  provisioned_poller_config: typing.Optional[typing.Union[ProvisionedPollerConfig, typing.Dict[builtins.str, typing.Any]]] = None,
32177
33287
  report_batch_item_failures: typing.Optional[builtins.bool] = None,
32178
33288
  retry_attempts: typing.Optional[jsii.Number] = None,
33289
+ schema_registry_config: typing.Optional[ISchemaRegistry] = None,
32179
33290
  source_access_configurations: typing.Optional[typing.Sequence[typing.Union[SourceAccessConfiguration, typing.Dict[builtins.str, typing.Any]]]] = None,
32180
33291
  starting_position: typing.Optional[StartingPosition] = None,
32181
33292
  starting_position_timestamp: typing.Optional[jsii.Number] = None,
@@ -32232,6 +33343,7 @@ def _typecheckingstub__bfc312bd9bc4e64c5ae8419715155a56676bb9fe40870f57ffa4f3030
32232
33343
  provisioned_poller_config: typing.Optional[typing.Union[ProvisionedPollerConfig, typing.Dict[builtins.str, typing.Any]]] = None,
32233
33344
  report_batch_item_failures: typing.Optional[builtins.bool] = None,
32234
33345
  retry_attempts: typing.Optional[jsii.Number] = None,
33346
+ schema_registry_config: typing.Optional[ISchemaRegistry] = None,
32235
33347
  source_access_configurations: typing.Optional[typing.Sequence[typing.Union[SourceAccessConfiguration, typing.Dict[builtins.str, typing.Any]]]] = None,
32236
33348
  starting_position: typing.Optional[StartingPosition] = None,
32237
33349
  starting_position_timestamp: typing.Optional[jsii.Number] = None,