aws-solutions-constructs.aws-dynamodbstreams-lambda 2.26.0__tar.gz → 2.95.1__tar.gz

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.
Files changed (23) hide show
  1. aws_solutions_constructs_aws_dynamodbstreams_lambda-2.95.1/PKG-INFO +28 -0
  2. aws_solutions_constructs_aws_dynamodbstreams_lambda-2.95.1/README.md +1 -0
  3. {aws-solutions-constructs.aws-dynamodbstreams-lambda-2.26.0 → aws_solutions_constructs_aws_dynamodbstreams_lambda-2.95.1}/pyproject.toml +2 -2
  4. {aws-solutions-constructs.aws-dynamodbstreams-lambda-2.26.0 → aws_solutions_constructs_aws_dynamodbstreams_lambda-2.95.1}/setup.py +8 -9
  5. aws_solutions_constructs_aws_dynamodbstreams_lambda-2.95.1/src/aws_solutions_constructs/aws_dynamodbstreams_lambda/__init__.py +291 -0
  6. aws_solutions_constructs_aws_dynamodbstreams_lambda-2.95.1/src/aws_solutions_constructs/aws_dynamodbstreams_lambda/_jsii/__init__.py +46 -0
  7. aws_solutions_constructs_aws_dynamodbstreams_lambda-2.95.1/src/aws_solutions_constructs/aws_dynamodbstreams_lambda/_jsii/aws-dynamodbstreams-lambda@2.95.1.jsii.tgz +0 -0
  8. aws_solutions_constructs_aws_dynamodbstreams_lambda-2.95.1/src/aws_solutions_constructs.aws_dynamodbstreams_lambda.egg-info/PKG-INFO +28 -0
  9. {aws-solutions-constructs.aws-dynamodbstreams-lambda-2.26.0 → aws_solutions_constructs_aws_dynamodbstreams_lambda-2.95.1}/src/aws_solutions_constructs.aws_dynamodbstreams_lambda.egg-info/SOURCES.txt +1 -1
  10. aws_solutions_constructs_aws_dynamodbstreams_lambda-2.95.1/src/aws_solutions_constructs.aws_dynamodbstreams_lambda.egg-info/requires.txt +6 -0
  11. aws-solutions-constructs.aws-dynamodbstreams-lambda-2.26.0/PKG-INFO +0 -165
  12. aws-solutions-constructs.aws-dynamodbstreams-lambda-2.26.0/README.md +0 -140
  13. aws-solutions-constructs.aws-dynamodbstreams-lambda-2.26.0/src/aws_solutions_constructs/aws_dynamodbstreams_lambda/__init__.py +0 -376
  14. aws-solutions-constructs.aws-dynamodbstreams-lambda-2.26.0/src/aws_solutions_constructs/aws_dynamodbstreams_lambda/_jsii/__init__.py +0 -28
  15. aws-solutions-constructs.aws-dynamodbstreams-lambda-2.26.0/src/aws_solutions_constructs/aws_dynamodbstreams_lambda/_jsii/aws-dynamodbstreams-lambda@2.26.0.jsii.tgz +0 -0
  16. aws-solutions-constructs.aws-dynamodbstreams-lambda-2.26.0/src/aws_solutions_constructs.aws_dynamodbstreams_lambda.egg-info/PKG-INFO +0 -165
  17. aws-solutions-constructs.aws-dynamodbstreams-lambda-2.26.0/src/aws_solutions_constructs.aws_dynamodbstreams_lambda.egg-info/requires.txt +0 -6
  18. {aws-solutions-constructs.aws-dynamodbstreams-lambda-2.26.0 → aws_solutions_constructs_aws_dynamodbstreams_lambda-2.95.1}/LICENSE +0 -0
  19. {aws-solutions-constructs.aws-dynamodbstreams-lambda-2.26.0 → aws_solutions_constructs_aws_dynamodbstreams_lambda-2.95.1}/MANIFEST.in +0 -0
  20. {aws-solutions-constructs.aws-dynamodbstreams-lambda-2.26.0 → aws_solutions_constructs_aws_dynamodbstreams_lambda-2.95.1}/setup.cfg +0 -0
  21. {aws-solutions-constructs.aws-dynamodbstreams-lambda-2.26.0 → aws_solutions_constructs_aws_dynamodbstreams_lambda-2.95.1}/src/aws_solutions_constructs/aws_dynamodbstreams_lambda/py.typed +0 -0
  22. {aws-solutions-constructs.aws-dynamodbstreams-lambda-2.26.0 → aws_solutions_constructs_aws_dynamodbstreams_lambda-2.95.1}/src/aws_solutions_constructs.aws_dynamodbstreams_lambda.egg-info/dependency_links.txt +0 -0
  23. {aws-solutions-constructs.aws-dynamodbstreams-lambda-2.26.0 → aws_solutions_constructs_aws_dynamodbstreams_lambda-2.95.1}/src/aws_solutions_constructs.aws_dynamodbstreams_lambda.egg-info/top_level.txt +0 -0
@@ -0,0 +1,28 @@
1
+ Metadata-Version: 2.1
2
+ Name: aws-solutions-constructs.aws-dynamodbstreams-lambda
3
+ Version: 2.95.1
4
+ Summary: CDK Constructs for AWS DynamoDB Streams to AWS Lambda integration.
5
+ Home-page: https://github.com/awslabs/aws-solutions-constructs.git
6
+ Author: Amazon Web Services
7
+ License: Apache-2.0
8
+ Project-URL: Source, https://github.com/awslabs/aws-solutions-constructs.git
9
+ Classifier: Intended Audience :: Developers
10
+ Classifier: Operating System :: OS Independent
11
+ Classifier: Programming Language :: JavaScript
12
+ Classifier: Programming Language :: Python :: 3 :: Only
13
+ Classifier: Programming Language :: Python :: 3.9
14
+ Classifier: Programming Language :: Python :: 3.10
15
+ Classifier: Programming Language :: Python :: 3.11
16
+ Classifier: Typing :: Typed
17
+ Classifier: License :: OSI Approved
18
+ Requires-Python: ~=3.9
19
+ Description-Content-Type: text/markdown
20
+ License-File: LICENSE
21
+ Requires-Dist: aws-cdk-lib<3.0.0,>=2.223.0
22
+ Requires-Dist: aws-solutions-constructs.core==2.95.1
23
+ Requires-Dist: constructs<11.0.0,>=10.0.0
24
+ Requires-Dist: jsii<2.0.0,>=1.119.0
25
+ Requires-Dist: publication>=0.0.3
26
+ Requires-Dist: typeguard<4.3.0,>=2.13.3
27
+
28
+ Documentation for this pattern can be found [here](https://github.com/awslabs/aws-solutions-constructs/blob/main/source/patterns/%40aws-solutions-constructs/aws-dynamodbstreams-lambda/README.adoc)
@@ -0,0 +1 @@
1
+ Documentation for this pattern can be found [here](https://github.com/awslabs/aws-solutions-constructs/blob/main/source/patterns/%40aws-solutions-constructs/aws-dynamodbstreams-lambda/README.adoc)
@@ -1,9 +1,9 @@
1
1
  [build-system]
2
- requires = ["setuptools~=62.1.0", "wheel~=0.37.1"]
2
+ requires = ["setuptools~=75.3.2", "build~=1.3.0"]
3
3
  build-backend = "setuptools.build_meta"
4
4
 
5
5
  [tool.pyright]
6
6
  defineConstant = { DEBUG = true }
7
- pythonVersion = "3.7"
7
+ pythonVersion = "3.9"
8
8
  pythonPlatform = "All"
9
9
  reportSelfClsParameterName = false
@@ -5,7 +5,7 @@ kwargs = json.loads(
5
5
  """
6
6
  {
7
7
  "name": "aws-solutions-constructs.aws-dynamodbstreams-lambda",
8
- "version": "2.26.0",
8
+ "version": "2.95.1",
9
9
  "description": "CDK Constructs for AWS DynamoDB Streams to AWS Lambda integration.",
10
10
  "license": "Apache-2.0",
11
11
  "url": "https://github.com/awslabs/aws-solutions-constructs.git",
@@ -26,30 +26,29 @@ kwargs = json.loads(
26
26
  ],
27
27
  "package_data": {
28
28
  "aws_solutions_constructs.aws_dynamodbstreams_lambda._jsii": [
29
- "aws-dynamodbstreams-lambda@2.26.0.jsii.tgz"
29
+ "aws-dynamodbstreams-lambda@2.95.1.jsii.tgz"
30
30
  ],
31
31
  "aws_solutions_constructs.aws_dynamodbstreams_lambda": [
32
32
  "py.typed"
33
33
  ]
34
34
  },
35
- "python_requires": "~=3.7",
35
+ "python_requires": "~=3.9",
36
36
  "install_requires": [
37
- "aws-cdk-lib>=2.45.0, <3.0.0",
38
- "aws-solutions-constructs.core==2.26.0",
37
+ "aws-cdk-lib>=2.223.0, <3.0.0",
38
+ "aws-solutions-constructs.core==2.95.1",
39
39
  "constructs>=10.0.0, <11.0.0",
40
- "jsii>=1.69.0, <2.0.0",
40
+ "jsii>=1.119.0, <2.0.0",
41
41
  "publication>=0.0.3",
42
- "typeguard~=2.13.3"
42
+ "typeguard>=2.13.3,<4.3.0"
43
43
  ],
44
44
  "classifiers": [
45
45
  "Intended Audience :: Developers",
46
46
  "Operating System :: OS Independent",
47
47
  "Programming Language :: JavaScript",
48
48
  "Programming Language :: Python :: 3 :: Only",
49
- "Programming Language :: Python :: 3.7",
50
- "Programming Language :: Python :: 3.8",
51
49
  "Programming Language :: Python :: 3.9",
52
50
  "Programming Language :: Python :: 3.10",
51
+ "Programming Language :: Python :: 3.11",
53
52
  "Typing :: Typed",
54
53
  "License :: OSI Approved"
55
54
  ],
@@ -0,0 +1,291 @@
1
+ r'''
2
+ Documentation for this pattern can be found [here](https://github.com/awslabs/aws-solutions-constructs/blob/main/source/patterns/%40aws-solutions-constructs/aws-dynamodbstreams-lambda/README.adoc)
3
+ '''
4
+ from pkgutil import extend_path
5
+ __path__ = extend_path(__path__, __name__)
6
+
7
+ import abc
8
+ import builtins
9
+ import datetime
10
+ import enum
11
+ import typing
12
+
13
+ import jsii
14
+ import publication
15
+ import typing_extensions
16
+
17
+ import typeguard
18
+ from importlib.metadata import version as _metadata_package_version
19
+ TYPEGUARD_MAJOR_VERSION = int(_metadata_package_version('typeguard').split('.')[0])
20
+
21
+ def check_type(argname: str, value: object, expected_type: typing.Any) -> typing.Any:
22
+ if TYPEGUARD_MAJOR_VERSION <= 2:
23
+ return typeguard.check_type(argname=argname, value=value, expected_type=expected_type) # type:ignore
24
+ else:
25
+ if isinstance(value, jsii._reference_map.InterfaceDynamicProxy): # pyright: ignore [reportAttributeAccessIssue]
26
+ pass
27
+ else:
28
+ if TYPEGUARD_MAJOR_VERSION == 3:
29
+ typeguard.config.collection_check_strategy = typeguard.CollectionCheckStrategy.ALL_ITEMS # type:ignore
30
+ typeguard.check_type(value=value, expected_type=expected_type) # type:ignore
31
+ else:
32
+ typeguard.check_type(value=value, expected_type=expected_type, collection_check_strategy=typeguard.CollectionCheckStrategy.ALL_ITEMS) # type:ignore
33
+
34
+ from ._jsii import *
35
+
36
+ import aws_cdk.aws_dynamodb as _aws_cdk_aws_dynamodb_ceddda9d
37
+ import aws_cdk.aws_lambda as _aws_cdk_aws_lambda_ceddda9d
38
+ import aws_cdk.aws_sqs as _aws_cdk_aws_sqs_ceddda9d
39
+ import constructs as _constructs_77d1e7e8
40
+
41
+
42
+ class DynamoDBStreamsToLambda(
43
+ _constructs_77d1e7e8.Construct,
44
+ metaclass=jsii.JSIIMeta,
45
+ jsii_type="@aws-solutions-constructs/aws-dynamodbstreams-lambda.DynamoDBStreamsToLambda",
46
+ ):
47
+ def __init__(
48
+ self,
49
+ scope: _constructs_77d1e7e8.Construct,
50
+ id: builtins.str,
51
+ *,
52
+ deploy_sqs_dlq_queue: typing.Optional[builtins.bool] = None,
53
+ dynamo_event_source_props: typing.Any = None,
54
+ dynamo_table_props: typing.Optional[typing.Union[_aws_cdk_aws_dynamodb_ceddda9d.TableProps, typing.Dict[builtins.str, typing.Any]]] = None,
55
+ existing_lambda_obj: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.Function] = None,
56
+ existing_table_interface: typing.Optional[_aws_cdk_aws_dynamodb_ceddda9d.ITable] = None,
57
+ lambda_function_props: typing.Optional[typing.Union[_aws_cdk_aws_lambda_ceddda9d.FunctionProps, typing.Dict[builtins.str, typing.Any]]] = None,
58
+ sqs_dlq_queue_props: typing.Optional[typing.Union[_aws_cdk_aws_sqs_ceddda9d.QueueProps, typing.Dict[builtins.str, typing.Any]]] = None,
59
+ ) -> None:
60
+ '''
61
+ :param scope: - represents the scope for all the resources.
62
+ :param id: - this is a a scope-unique id.
63
+ :param deploy_sqs_dlq_queue: Whether to deploy a SQS dead letter queue when a data record reaches the Maximum Retry Attempts or Maximum Record Age, its metadata like shard ID and stream ARN will be sent to an SQS queue. Default: - true.
64
+ :param dynamo_event_source_props: Optional user provided props to override the default props. Default: - Default props are used
65
+ :param dynamo_table_props: Optional user provided props to override the default props. Default: - Default props are used
66
+ :param existing_lambda_obj: Existing instance of Lambda Function object, providing both this and ``lambdaFunctionProps`` will cause an error. Default: - None
67
+ :param existing_table_interface: Existing instance of DynamoDB table object, providing both this and ``dynamoTableProps`` will cause an error. Default: - None
68
+ :param lambda_function_props: User provided props to override the default props for the Lambda function. Default: - Default props are used
69
+ :param sqs_dlq_queue_props: Optional user provided properties for the SQS dead letter queue. Default: - Default props are used
70
+
71
+ :access: public
72
+ :summary: Constructs a new instance of the LambdaToDynamoDB class.
73
+ '''
74
+ if __debug__:
75
+ type_hints = typing.get_type_hints(_typecheckingstub__3c70d1c832501a8ca89dc559c7a2e0f4cc311e8b3ff7542ba16d41e65e7fde99)
76
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
77
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
78
+ props = DynamoDBStreamsToLambdaProps(
79
+ deploy_sqs_dlq_queue=deploy_sqs_dlq_queue,
80
+ dynamo_event_source_props=dynamo_event_source_props,
81
+ dynamo_table_props=dynamo_table_props,
82
+ existing_lambda_obj=existing_lambda_obj,
83
+ existing_table_interface=existing_table_interface,
84
+ lambda_function_props=lambda_function_props,
85
+ sqs_dlq_queue_props=sqs_dlq_queue_props,
86
+ )
87
+
88
+ jsii.create(self.__class__, self, [scope, id, props])
89
+
90
+ @builtins.property
91
+ @jsii.member(jsii_name="dynamoTableInterface")
92
+ def dynamo_table_interface(self) -> _aws_cdk_aws_dynamodb_ceddda9d.ITable:
93
+ return typing.cast(_aws_cdk_aws_dynamodb_ceddda9d.ITable, jsii.get(self, "dynamoTableInterface"))
94
+
95
+ @builtins.property
96
+ @jsii.member(jsii_name="lambdaFunction")
97
+ def lambda_function(self) -> _aws_cdk_aws_lambda_ceddda9d.Function:
98
+ return typing.cast(_aws_cdk_aws_lambda_ceddda9d.Function, jsii.get(self, "lambdaFunction"))
99
+
100
+ @builtins.property
101
+ @jsii.member(jsii_name="dynamoTable")
102
+ def dynamo_table(self) -> typing.Optional[_aws_cdk_aws_dynamodb_ceddda9d.Table]:
103
+ return typing.cast(typing.Optional[_aws_cdk_aws_dynamodb_ceddda9d.Table], jsii.get(self, "dynamoTable"))
104
+
105
+
106
+ @jsii.data_type(
107
+ jsii_type="@aws-solutions-constructs/aws-dynamodbstreams-lambda.DynamoDBStreamsToLambdaProps",
108
+ jsii_struct_bases=[],
109
+ name_mapping={
110
+ "deploy_sqs_dlq_queue": "deploySqsDlqQueue",
111
+ "dynamo_event_source_props": "dynamoEventSourceProps",
112
+ "dynamo_table_props": "dynamoTableProps",
113
+ "existing_lambda_obj": "existingLambdaObj",
114
+ "existing_table_interface": "existingTableInterface",
115
+ "lambda_function_props": "lambdaFunctionProps",
116
+ "sqs_dlq_queue_props": "sqsDlqQueueProps",
117
+ },
118
+ )
119
+ class DynamoDBStreamsToLambdaProps:
120
+ def __init__(
121
+ self,
122
+ *,
123
+ deploy_sqs_dlq_queue: typing.Optional[builtins.bool] = None,
124
+ dynamo_event_source_props: typing.Any = None,
125
+ dynamo_table_props: typing.Optional[typing.Union[_aws_cdk_aws_dynamodb_ceddda9d.TableProps, typing.Dict[builtins.str, typing.Any]]] = None,
126
+ existing_lambda_obj: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.Function] = None,
127
+ existing_table_interface: typing.Optional[_aws_cdk_aws_dynamodb_ceddda9d.ITable] = None,
128
+ lambda_function_props: typing.Optional[typing.Union[_aws_cdk_aws_lambda_ceddda9d.FunctionProps, typing.Dict[builtins.str, typing.Any]]] = None,
129
+ sqs_dlq_queue_props: typing.Optional[typing.Union[_aws_cdk_aws_sqs_ceddda9d.QueueProps, typing.Dict[builtins.str, typing.Any]]] = None,
130
+ ) -> None:
131
+ '''
132
+ :param deploy_sqs_dlq_queue: Whether to deploy a SQS dead letter queue when a data record reaches the Maximum Retry Attempts or Maximum Record Age, its metadata like shard ID and stream ARN will be sent to an SQS queue. Default: - true.
133
+ :param dynamo_event_source_props: Optional user provided props to override the default props. Default: - Default props are used
134
+ :param dynamo_table_props: Optional user provided props to override the default props. Default: - Default props are used
135
+ :param existing_lambda_obj: Existing instance of Lambda Function object, providing both this and ``lambdaFunctionProps`` will cause an error. Default: - None
136
+ :param existing_table_interface: Existing instance of DynamoDB table object, providing both this and ``dynamoTableProps`` will cause an error. Default: - None
137
+ :param lambda_function_props: User provided props to override the default props for the Lambda function. Default: - Default props are used
138
+ :param sqs_dlq_queue_props: Optional user provided properties for the SQS dead letter queue. Default: - Default props are used
139
+
140
+ :summary: The properties for the DynamoDBStreamsToLambda Construct
141
+ '''
142
+ if isinstance(dynamo_table_props, dict):
143
+ dynamo_table_props = _aws_cdk_aws_dynamodb_ceddda9d.TableProps(**dynamo_table_props)
144
+ if isinstance(lambda_function_props, dict):
145
+ lambda_function_props = _aws_cdk_aws_lambda_ceddda9d.FunctionProps(**lambda_function_props)
146
+ if isinstance(sqs_dlq_queue_props, dict):
147
+ sqs_dlq_queue_props = _aws_cdk_aws_sqs_ceddda9d.QueueProps(**sqs_dlq_queue_props)
148
+ if __debug__:
149
+ type_hints = typing.get_type_hints(_typecheckingstub__dc7e792539bcf7a63a525f59186a2dcbdebba6de562e1d1048e6c0075cd0ea97)
150
+ check_type(argname="argument deploy_sqs_dlq_queue", value=deploy_sqs_dlq_queue, expected_type=type_hints["deploy_sqs_dlq_queue"])
151
+ check_type(argname="argument dynamo_event_source_props", value=dynamo_event_source_props, expected_type=type_hints["dynamo_event_source_props"])
152
+ check_type(argname="argument dynamo_table_props", value=dynamo_table_props, expected_type=type_hints["dynamo_table_props"])
153
+ check_type(argname="argument existing_lambda_obj", value=existing_lambda_obj, expected_type=type_hints["existing_lambda_obj"])
154
+ check_type(argname="argument existing_table_interface", value=existing_table_interface, expected_type=type_hints["existing_table_interface"])
155
+ check_type(argname="argument lambda_function_props", value=lambda_function_props, expected_type=type_hints["lambda_function_props"])
156
+ check_type(argname="argument sqs_dlq_queue_props", value=sqs_dlq_queue_props, expected_type=type_hints["sqs_dlq_queue_props"])
157
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
158
+ if deploy_sqs_dlq_queue is not None:
159
+ self._values["deploy_sqs_dlq_queue"] = deploy_sqs_dlq_queue
160
+ if dynamo_event_source_props is not None:
161
+ self._values["dynamo_event_source_props"] = dynamo_event_source_props
162
+ if dynamo_table_props is not None:
163
+ self._values["dynamo_table_props"] = dynamo_table_props
164
+ if existing_lambda_obj is not None:
165
+ self._values["existing_lambda_obj"] = existing_lambda_obj
166
+ if existing_table_interface is not None:
167
+ self._values["existing_table_interface"] = existing_table_interface
168
+ if lambda_function_props is not None:
169
+ self._values["lambda_function_props"] = lambda_function_props
170
+ if sqs_dlq_queue_props is not None:
171
+ self._values["sqs_dlq_queue_props"] = sqs_dlq_queue_props
172
+
173
+ @builtins.property
174
+ def deploy_sqs_dlq_queue(self) -> typing.Optional[builtins.bool]:
175
+ '''Whether to deploy a SQS dead letter queue when a data record reaches the Maximum Retry Attempts or Maximum Record Age, its metadata like shard ID and stream ARN will be sent to an SQS queue.
176
+
177
+ :default: - true.
178
+ '''
179
+ result = self._values.get("deploy_sqs_dlq_queue")
180
+ return typing.cast(typing.Optional[builtins.bool], result)
181
+
182
+ @builtins.property
183
+ def dynamo_event_source_props(self) -> typing.Any:
184
+ '''Optional user provided props to override the default props.
185
+
186
+ :default: - Default props are used
187
+ '''
188
+ result = self._values.get("dynamo_event_source_props")
189
+ return typing.cast(typing.Any, result)
190
+
191
+ @builtins.property
192
+ def dynamo_table_props(
193
+ self,
194
+ ) -> typing.Optional[_aws_cdk_aws_dynamodb_ceddda9d.TableProps]:
195
+ '''Optional user provided props to override the default props.
196
+
197
+ :default: - Default props are used
198
+ '''
199
+ result = self._values.get("dynamo_table_props")
200
+ return typing.cast(typing.Optional[_aws_cdk_aws_dynamodb_ceddda9d.TableProps], result)
201
+
202
+ @builtins.property
203
+ def existing_lambda_obj(
204
+ self,
205
+ ) -> typing.Optional[_aws_cdk_aws_lambda_ceddda9d.Function]:
206
+ '''Existing instance of Lambda Function object, providing both this and ``lambdaFunctionProps`` will cause an error.
207
+
208
+ :default: - None
209
+ '''
210
+ result = self._values.get("existing_lambda_obj")
211
+ return typing.cast(typing.Optional[_aws_cdk_aws_lambda_ceddda9d.Function], result)
212
+
213
+ @builtins.property
214
+ def existing_table_interface(
215
+ self,
216
+ ) -> typing.Optional[_aws_cdk_aws_dynamodb_ceddda9d.ITable]:
217
+ '''Existing instance of DynamoDB table object, providing both this and ``dynamoTableProps`` will cause an error.
218
+
219
+ :default: - None
220
+ '''
221
+ result = self._values.get("existing_table_interface")
222
+ return typing.cast(typing.Optional[_aws_cdk_aws_dynamodb_ceddda9d.ITable], result)
223
+
224
+ @builtins.property
225
+ def lambda_function_props(
226
+ self,
227
+ ) -> typing.Optional[_aws_cdk_aws_lambda_ceddda9d.FunctionProps]:
228
+ '''User provided props to override the default props for the Lambda function.
229
+
230
+ :default: - Default props are used
231
+ '''
232
+ result = self._values.get("lambda_function_props")
233
+ return typing.cast(typing.Optional[_aws_cdk_aws_lambda_ceddda9d.FunctionProps], result)
234
+
235
+ @builtins.property
236
+ def sqs_dlq_queue_props(
237
+ self,
238
+ ) -> typing.Optional[_aws_cdk_aws_sqs_ceddda9d.QueueProps]:
239
+ '''Optional user provided properties for the SQS dead letter queue.
240
+
241
+ :default: - Default props are used
242
+ '''
243
+ result = self._values.get("sqs_dlq_queue_props")
244
+ return typing.cast(typing.Optional[_aws_cdk_aws_sqs_ceddda9d.QueueProps], result)
245
+
246
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
247
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
248
+
249
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
250
+ return not (rhs == self)
251
+
252
+ def __repr__(self) -> str:
253
+ return "DynamoDBStreamsToLambdaProps(%s)" % ", ".join(
254
+ k + "=" + repr(v) for k, v in self._values.items()
255
+ )
256
+
257
+
258
+ __all__ = [
259
+ "DynamoDBStreamsToLambda",
260
+ "DynamoDBStreamsToLambdaProps",
261
+ ]
262
+
263
+ publication.publish()
264
+
265
+ def _typecheckingstub__3c70d1c832501a8ca89dc559c7a2e0f4cc311e8b3ff7542ba16d41e65e7fde99(
266
+ scope: _constructs_77d1e7e8.Construct,
267
+ id: builtins.str,
268
+ *,
269
+ deploy_sqs_dlq_queue: typing.Optional[builtins.bool] = None,
270
+ dynamo_event_source_props: typing.Any = None,
271
+ dynamo_table_props: typing.Optional[typing.Union[_aws_cdk_aws_dynamodb_ceddda9d.TableProps, typing.Dict[builtins.str, typing.Any]]] = None,
272
+ existing_lambda_obj: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.Function] = None,
273
+ existing_table_interface: typing.Optional[_aws_cdk_aws_dynamodb_ceddda9d.ITable] = None,
274
+ lambda_function_props: typing.Optional[typing.Union[_aws_cdk_aws_lambda_ceddda9d.FunctionProps, typing.Dict[builtins.str, typing.Any]]] = None,
275
+ sqs_dlq_queue_props: typing.Optional[typing.Union[_aws_cdk_aws_sqs_ceddda9d.QueueProps, typing.Dict[builtins.str, typing.Any]]] = None,
276
+ ) -> None:
277
+ """Type checking stubs"""
278
+ pass
279
+
280
+ def _typecheckingstub__dc7e792539bcf7a63a525f59186a2dcbdebba6de562e1d1048e6c0075cd0ea97(
281
+ *,
282
+ deploy_sqs_dlq_queue: typing.Optional[builtins.bool] = None,
283
+ dynamo_event_source_props: typing.Any = None,
284
+ dynamo_table_props: typing.Optional[typing.Union[_aws_cdk_aws_dynamodb_ceddda9d.TableProps, typing.Dict[builtins.str, typing.Any]]] = None,
285
+ existing_lambda_obj: typing.Optional[_aws_cdk_aws_lambda_ceddda9d.Function] = None,
286
+ existing_table_interface: typing.Optional[_aws_cdk_aws_dynamodb_ceddda9d.ITable] = None,
287
+ lambda_function_props: typing.Optional[typing.Union[_aws_cdk_aws_lambda_ceddda9d.FunctionProps, typing.Dict[builtins.str, typing.Any]]] = None,
288
+ sqs_dlq_queue_props: typing.Optional[typing.Union[_aws_cdk_aws_sqs_ceddda9d.QueueProps, typing.Dict[builtins.str, typing.Any]]] = None,
289
+ ) -> None:
290
+ """Type checking stubs"""
291
+ pass
@@ -0,0 +1,46 @@
1
+ from pkgutil import extend_path
2
+ __path__ = extend_path(__path__, __name__)
3
+
4
+ import abc
5
+ import builtins
6
+ import datetime
7
+ import enum
8
+ import typing
9
+
10
+ import jsii
11
+ import publication
12
+ import typing_extensions
13
+
14
+ import typeguard
15
+ from importlib.metadata import version as _metadata_package_version
16
+ TYPEGUARD_MAJOR_VERSION = int(_metadata_package_version('typeguard').split('.')[0])
17
+
18
+ def check_type(argname: str, value: object, expected_type: typing.Any) -> typing.Any:
19
+ if TYPEGUARD_MAJOR_VERSION <= 2:
20
+ return typeguard.check_type(argname=argname, value=value, expected_type=expected_type) # type:ignore
21
+ else:
22
+ if isinstance(value, jsii._reference_map.InterfaceDynamicProxy): # pyright: ignore [reportAttributeAccessIssue]
23
+ pass
24
+ else:
25
+ if TYPEGUARD_MAJOR_VERSION == 3:
26
+ typeguard.config.collection_check_strategy = typeguard.CollectionCheckStrategy.ALL_ITEMS # type:ignore
27
+ typeguard.check_type(value=value, expected_type=expected_type) # type:ignore
28
+ else:
29
+ typeguard.check_type(value=value, expected_type=expected_type, collection_check_strategy=typeguard.CollectionCheckStrategy.ALL_ITEMS) # type:ignore
30
+
31
+ import aws_cdk._jsii
32
+ import aws_solutions_constructs.core._jsii
33
+ import constructs._jsii
34
+
35
+ __jsii_assembly__ = jsii.JSIIAssembly.load(
36
+ "@aws-solutions-constructs/aws-dynamodbstreams-lambda",
37
+ "2.95.1",
38
+ __name__[0:-6],
39
+ "aws-dynamodbstreams-lambda@2.95.1.jsii.tgz",
40
+ )
41
+
42
+ __all__ = [
43
+ "__jsii_assembly__",
44
+ ]
45
+
46
+ publication.publish()
@@ -0,0 +1,28 @@
1
+ Metadata-Version: 2.1
2
+ Name: aws-solutions-constructs.aws-dynamodbstreams-lambda
3
+ Version: 2.95.1
4
+ Summary: CDK Constructs for AWS DynamoDB Streams to AWS Lambda integration.
5
+ Home-page: https://github.com/awslabs/aws-solutions-constructs.git
6
+ Author: Amazon Web Services
7
+ License: Apache-2.0
8
+ Project-URL: Source, https://github.com/awslabs/aws-solutions-constructs.git
9
+ Classifier: Intended Audience :: Developers
10
+ Classifier: Operating System :: OS Independent
11
+ Classifier: Programming Language :: JavaScript
12
+ Classifier: Programming Language :: Python :: 3 :: Only
13
+ Classifier: Programming Language :: Python :: 3.9
14
+ Classifier: Programming Language :: Python :: 3.10
15
+ Classifier: Programming Language :: Python :: 3.11
16
+ Classifier: Typing :: Typed
17
+ Classifier: License :: OSI Approved
18
+ Requires-Python: ~=3.9
19
+ Description-Content-Type: text/markdown
20
+ License-File: LICENSE
21
+ Requires-Dist: aws-cdk-lib<3.0.0,>=2.223.0
22
+ Requires-Dist: aws-solutions-constructs.core==2.95.1
23
+ Requires-Dist: constructs<11.0.0,>=10.0.0
24
+ Requires-Dist: jsii<2.0.0,>=1.119.0
25
+ Requires-Dist: publication>=0.0.3
26
+ Requires-Dist: typeguard<4.3.0,>=2.13.3
27
+
28
+ Documentation for this pattern can be found [here](https://github.com/awslabs/aws-solutions-constructs/blob/main/source/patterns/%40aws-solutions-constructs/aws-dynamodbstreams-lambda/README.adoc)
@@ -11,4 +11,4 @@ src/aws_solutions_constructs.aws_dynamodbstreams_lambda.egg-info/top_level.txt
11
11
  src/aws_solutions_constructs/aws_dynamodbstreams_lambda/__init__.py
12
12
  src/aws_solutions_constructs/aws_dynamodbstreams_lambda/py.typed
13
13
  src/aws_solutions_constructs/aws_dynamodbstreams_lambda/_jsii/__init__.py
14
- src/aws_solutions_constructs/aws_dynamodbstreams_lambda/_jsii/aws-dynamodbstreams-lambda@2.26.0.jsii.tgz
14
+ src/aws_solutions_constructs/aws_dynamodbstreams_lambda/_jsii/aws-dynamodbstreams-lambda@2.95.1.jsii.tgz
@@ -0,0 +1,6 @@
1
+ aws-cdk-lib<3.0.0,>=2.223.0
2
+ aws-solutions-constructs.core==2.95.1
3
+ constructs<11.0.0,>=10.0.0
4
+ jsii<2.0.0,>=1.119.0
5
+ publication>=0.0.3
6
+ typeguard<4.3.0,>=2.13.3
@@ -1,165 +0,0 @@
1
- Metadata-Version: 2.1
2
- Name: aws-solutions-constructs.aws-dynamodbstreams-lambda
3
- Version: 2.26.0
4
- Summary: CDK Constructs for AWS DynamoDB Streams to AWS Lambda integration.
5
- Home-page: https://github.com/awslabs/aws-solutions-constructs.git
6
- Author: Amazon Web Services
7
- License: Apache-2.0
8
- Project-URL: Source, https://github.com/awslabs/aws-solutions-constructs.git
9
- Platform: UNKNOWN
10
- Classifier: Intended Audience :: Developers
11
- Classifier: Operating System :: OS Independent
12
- Classifier: Programming Language :: JavaScript
13
- Classifier: Programming Language :: Python :: 3 :: Only
14
- Classifier: Programming Language :: Python :: 3.7
15
- Classifier: Programming Language :: Python :: 3.8
16
- Classifier: Programming Language :: Python :: 3.9
17
- Classifier: Programming Language :: Python :: 3.10
18
- Classifier: Typing :: Typed
19
- Classifier: License :: OSI Approved
20
- Requires-Python: ~=3.7
21
- Description-Content-Type: text/markdown
22
- License-File: LICENSE
23
-
24
- # aws-dynamodbstreams-lambda module
25
-
26
- <!--BEGIN STABILITY BANNER-->---
27
-
28
-
29
- ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge)
30
-
31
- > All classes are under active development and subject to non-backward compatible changes or removal in any
32
- > future version. These are not subject to the [Semantic Versioning](https://semver.org/) model.
33
- > This means that while you may use them, you may need to update your source code when upgrading to a newer version of this package.
34
-
35
- ---
36
- <!--END STABILITY BANNER-->
37
-
38
- | **Reference Documentation**:| <span style="font-weight: normal">https://docs.aws.amazon.com/solutions/latest/constructs/</span>|
39
- |:-------------|:-------------|
40
-
41
- <div style="height:8px"></div>
42
-
43
- | **Language** | **Package** |
44
- |:-------------|-----------------|
45
- |![Python Logo](https://docs.aws.amazon.com/cdk/api/latest/img/python32.png) Python|`aws_solutions_constructs.aws_dynamodbstreams_lambda`|
46
- |![Typescript Logo](https://docs.aws.amazon.com/cdk/api/latest/img/typescript32.png) Typescript|`@aws-solutions-constructs/aws-dynamodbstreams-lambda`|
47
- |![Java Logo](https://docs.aws.amazon.com/cdk/api/latest/img/java32.png) Java|`software.amazon.awsconstructs.services.dynamodbstreamslambda`|
48
-
49
- ## Overview
50
-
51
- This AWS Solutions Construct implements a pattern Amazon DynamoDB table with stream to invoke the AWS Lambda function with the least privileged permissions.
52
-
53
- Here is a minimal deployable pattern definition:
54
-
55
- Typescript
56
-
57
- ```python
58
- import { Construct } from 'constructs';
59
- import { Stack, StackProps } from 'aws-cdk-lib';
60
- import { DynamoDBStreamsToLambdaProps, DynamoDBStreamsToLambda} from '@aws-solutions-constructs/aws-dynamodbstreams-lambda';
61
- import * as lambda from 'aws-cdk-lib/aws-lambda';
62
-
63
- new DynamoDBStreamsToLambda(this, 'test-dynamodbstreams-lambda', {
64
- lambdaFunctionProps: {
65
- code: lambda.Code.fromAsset(`lambda`),
66
- runtime: lambda.Runtime.NODEJS_14_X,
67
- handler: 'index.handler'
68
- },
69
- });
70
- ```
71
-
72
- Python
73
-
74
- ```python
75
- from aws_solutions_constructs.aws_dynamodbstreams_lambda import DynamoDBStreamsToLambda
76
- from aws_cdk import (
77
- aws_lambda as _lambda,
78
- Stack
79
- )
80
- from constructs import Construct
81
-
82
- DynamoDBStreamsToLambda(self, 'test-dynamodbstreams-lambda',
83
- lambda_function_props=_lambda.FunctionProps(
84
- code=_lambda.Code.from_asset('lambda'),
85
- runtime=_lambda.Runtime.PYTHON_3_9,
86
- handler='index.handler'
87
- )
88
- )
89
- ```
90
-
91
- Java
92
-
93
- ```java
94
- import software.constructs.Construct;
95
-
96
- import software.amazon.awscdk.Stack;
97
- import software.amazon.awscdk.StackProps;
98
- import software.amazon.awscdk.services.lambda.*;
99
- import software.amazon.awscdk.services.lambda.Runtime;
100
- import software.amazon.awsconstructs.services.dynamodbstreamslambda.*;
101
-
102
- new DynamoDBStreamsToLambda(this, "test-dynamodbstreams-lambda",
103
- new DynamoDBStreamsToLambdaProps.Builder()
104
- .lambdaFunctionProps(new FunctionProps.Builder()
105
- .runtime(Runtime.NODEJS_14_X)
106
- .code(Code.fromAsset("lambda"))
107
- .handler("index.handler")
108
- .build())
109
- .build());
110
- ```
111
-
112
- ## Pattern Construct Props
113
-
114
- | **Name** | **Type** | **Description** |
115
- |:-------------|:----------------|-----------------|
116
- |existingLambdaObj?|[`lambda.Function`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_lambda.Function.html)|Existing instance of Lambda Function object, providing both this and `lambdaFunctionProps` will cause an error.|
117
- |lambdaFunctionProps?|[`lambda.FunctionProps`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_lambda.FunctionProps.html)|User provided props to override the default props for the Lambda function.|
118
- |dynamoTableProps?|[`dynamodb.TableProps`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_dynamodb.TableProps.html)|Optional user provided props to override the default props for DynamoDB Table|
119
- |existingTableInterface?|[`dynamodb.ITable`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_dynamodb.ITable.html)|Existing instance of DynamoDB table object or interface, providing both this and `dynamoTableProps` will cause an error.|
120
- |dynamoEventSourceProps?|[`aws-lambda-event-sources.DynamoEventSourceProps`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_lambda_event_sources.DynamoEventSourceProps.html)|Optional user provided props to override the default props for DynamoDB Event Source|
121
-
122
- ## Pattern Properties
123
-
124
- | **Name** | **Type** | **Description** |
125
- |:-------------|:----------------|-----------------|
126
- |dynamoTableInterface|[`dynamodb.ITable`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_dynamodb.ITable.html)|Returns an instance of dynamodb.ITable created by the construct|
127
- |dynamoTable?|[`dynamodb.Table`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_dynamodb.Table.html)|Returns an instance of dynamodb.Table created by the construct. IMPORTANT: If existingTableInterface was provided in Pattern Construct Props, this property will be `undefined`|
128
- |lambdaFunction|[`lambda.Function`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_lambda.Function.html)|Returns an instance of lambda.Function created by the construct|
129
-
130
- ## Lambda Function
131
-
132
- This pattern requires a lambda function that can post data into the Elasticsearch. A sample function is provided [here](https://github.com/awslabs/aws-solutions-constructs/blob/master/source/patterns/%40aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/lambda/index.js).
133
-
134
- ## Default settings
135
-
136
- Out of the box implementation of the Construct without any override will set the following defaults:
137
-
138
- ### Amazon DynamoDB Table
139
-
140
- * Set the billing mode for DynamoDB Table to On-Demand (Pay per request)
141
- * Enable server-side encryption for DynamoDB Table using AWS managed KMS Key
142
- * Creates a partition key called 'id' for DynamoDB Table
143
- * Retain the Table when deleting the CloudFormation stack
144
- * Enable continuous backups and point-in-time recovery
145
-
146
- ### AWS Lambda Function
147
-
148
- * Configure limited privilege access IAM role for Lambda function
149
- * Enable reusing connections with Keep-Alive for NodeJs Lambda function
150
- * Enable X-Ray Tracing
151
- * Enable Failure-Handling features like enable bisect on function Error, set defaults for Maximum Record Age (24 hours) & Maximum Retry Attempts (500) and deploy SQS dead-letter queue as destination on failure
152
- * Set Environment Variables
153
-
154
- * AWS_NODEJS_CONNECTION_REUSE_ENABLED (for Node 10.x and higher functions)
155
-
156
- ## Architecture
157
-
158
- ![Architecture Diagram](architecture.png)
159
-
160
- ---
161
-
162
-
163
- © Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
164
-
165
-