@aws-solutions-constructs/aws-lambda-dynamodb 2.0.0 → 2.3.0

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.
package/.jsii CHANGED
@@ -8,8 +8,8 @@
8
8
  "url": "https://aws.amazon.com"
9
9
  },
10
10
  "dependencies": {
11
- "@aws-solutions-constructs/core": "2.0.0",
12
- "aws-cdk-lib": "^2.0.0-rc.23",
11
+ "@aws-solutions-constructs/core": "2.3.0",
12
+ "aws-cdk-lib": "^2.7.0",
13
13
  "constructs": "^10.0.0"
14
14
  },
15
15
  "dependencyClosure": {
@@ -52,6 +52,19 @@
52
52
  }
53
53
  }
54
54
  },
55
+ "aws-cdk-lib.assertions": {
56
+ "targets": {
57
+ "dotnet": {
58
+ "namespace": "Amazon.CDK.Assertions"
59
+ },
60
+ "java": {
61
+ "package": "software.amazon.awscdk.assertions"
62
+ },
63
+ "python": {
64
+ "module": "aws_cdk.assertions"
65
+ }
66
+ }
67
+ },
55
68
  "aws-cdk-lib.assets": {
56
69
  "targets": {
57
70
  "dotnet": {
@@ -117,6 +130,19 @@
117
130
  }
118
131
  }
119
132
  },
133
+ "aws-cdk-lib.aws_amplifyuibuilder": {
134
+ "targets": {
135
+ "dotnet": {
136
+ "namespace": "Amazon.CDK.AWS.AmplifyUIBuilder"
137
+ },
138
+ "java": {
139
+ "package": "software.amazon.awscdk.services.amplifyuibuilder"
140
+ },
141
+ "python": {
142
+ "module": "aws_cdk.aws_amplifyuibuilder"
143
+ }
144
+ }
145
+ },
120
146
  "aws-cdk-lib.aws_apigateway": {
121
147
  "targets": {
122
148
  "dotnet": {
@@ -250,7 +276,7 @@
250
276
  "aws-cdk-lib.aws_appsync": {
251
277
  "targets": {
252
278
  "dotnet": {
253
- "namespace": "Amazon.CDK.AWS.Appsync"
279
+ "namespace": "Amazon.CDK.AWS.AppSync"
254
280
  },
255
281
  "java": {
256
282
  "package": "software.amazon.awscdk.services.appsync"
@@ -260,6 +286,19 @@
260
286
  }
261
287
  }
262
288
  },
289
+ "aws-cdk-lib.aws_aps": {
290
+ "targets": {
291
+ "dotnet": {
292
+ "namespace": "Amazon.CDK.AWS.APS"
293
+ },
294
+ "java": {
295
+ "package": "software.amazon.awscdk.services.aps"
296
+ },
297
+ "python": {
298
+ "module": "aws_cdk.aws_aps"
299
+ }
300
+ }
301
+ },
263
302
  "aws-cdk-lib.aws_athena": {
264
303
  "targets": {
265
304
  "dotnet": {
@@ -1119,6 +1158,19 @@
1119
1158
  }
1120
1159
  }
1121
1160
  },
1161
+ "aws-cdk-lib.aws_evidently": {
1162
+ "targets": {
1163
+ "dotnet": {
1164
+ "namespace": "Amazon.CDK.AWS.Evidently"
1165
+ },
1166
+ "java": {
1167
+ "package": "software.amazon.awscdk.services.evidently"
1168
+ },
1169
+ "python": {
1170
+ "module": "aws_cdk.aws_evidently"
1171
+ }
1172
+ }
1173
+ },
1122
1174
  "aws-cdk-lib.aws_finspace": {
1123
1175
  "targets": {
1124
1176
  "dotnet": {
@@ -1288,6 +1340,19 @@
1288
1340
  }
1289
1341
  }
1290
1342
  },
1343
+ "aws-cdk-lib.aws_healthlake": {
1344
+ "targets": {
1345
+ "dotnet": {
1346
+ "namespace": "Amazon.CDK.AWS.HealthLake"
1347
+ },
1348
+ "java": {
1349
+ "package": "software.amazon.awscdk.services.healthlake"
1350
+ },
1351
+ "python": {
1352
+ "module": "aws_cdk.aws_healthlake"
1353
+ }
1354
+ }
1355
+ },
1291
1356
  "aws-cdk-lib.aws_iam": {
1292
1357
  "targets": {
1293
1358
  "dotnet": {
@@ -1587,6 +1652,19 @@
1587
1652
  }
1588
1653
  }
1589
1654
  },
1655
+ "aws-cdk-lib.aws_lex": {
1656
+ "targets": {
1657
+ "dotnet": {
1658
+ "namespace": "Amazon.CDK.AWS.Lex"
1659
+ },
1660
+ "java": {
1661
+ "package": "software.amazon.awscdk.services.lex"
1662
+ },
1663
+ "python": {
1664
+ "module": "aws_cdk.aws_lex"
1665
+ }
1666
+ }
1667
+ },
1590
1668
  "aws-cdk-lib.aws_licensemanager": {
1591
1669
  "targets": {
1592
1670
  "dotnet": {
@@ -1600,6 +1678,19 @@
1600
1678
  }
1601
1679
  }
1602
1680
  },
1681
+ "aws-cdk-lib.aws_lightsail": {
1682
+ "targets": {
1683
+ "dotnet": {
1684
+ "namespace": "Amazon.CDK.AWS.Lightsail"
1685
+ },
1686
+ "java": {
1687
+ "package": "software.amazon.awscdk.services.lightsail"
1688
+ },
1689
+ "python": {
1690
+ "module": "aws_cdk.aws_lightsail"
1691
+ }
1692
+ }
1693
+ },
1603
1694
  "aws-cdk-lib.aws_location": {
1604
1695
  "targets": {
1605
1696
  "dotnet": {
@@ -1769,10 +1860,23 @@
1769
1860
  }
1770
1861
  }
1771
1862
  },
1863
+ "aws-cdk-lib.aws_memorydb": {
1864
+ "targets": {
1865
+ "dotnet": {
1866
+ "namespace": "Amazon.CDK.AWS.MemoryDB"
1867
+ },
1868
+ "java": {
1869
+ "package": "software.amazon.awscdk.services.memorydb"
1870
+ },
1871
+ "python": {
1872
+ "module": "aws_cdk.aws_memorydb"
1873
+ }
1874
+ }
1875
+ },
1772
1876
  "aws-cdk-lib.aws_msk": {
1773
1877
  "targets": {
1774
1878
  "dotnet": {
1775
- "namespace": "Amazon.CDK.AWS.Msk"
1879
+ "namespace": "Amazon.CDK.AWS.MSK"
1776
1880
  },
1777
1881
  "java": {
1778
1882
  "package": "software.amazon.awscdk.services.msk"
@@ -1847,6 +1951,19 @@
1847
1951
  }
1848
1952
  }
1849
1953
  },
1954
+ "aws-cdk-lib.aws_opensearchservice": {
1955
+ "targets": {
1956
+ "dotnet": {
1957
+ "namespace": "Amazon.CDK.AWS.OpenSearchService"
1958
+ },
1959
+ "java": {
1960
+ "package": "software.amazon.awscdk.services.opensearchservice"
1961
+ },
1962
+ "python": {
1963
+ "module": "aws_cdk.aws_opensearchservice"
1964
+ }
1965
+ }
1966
+ },
1850
1967
  "aws-cdk-lib.aws_opsworks": {
1851
1968
  "targets": {
1852
1969
  "dotnet": {
@@ -1873,6 +1990,19 @@
1873
1990
  }
1874
1991
  }
1875
1992
  },
1993
+ "aws-cdk-lib.aws_panorama": {
1994
+ "targets": {
1995
+ "dotnet": {
1996
+ "namespace": "Amazon.CDK.AWS.Panorama"
1997
+ },
1998
+ "java": {
1999
+ "package": "software.amazon.awscdk.services.panorama"
2000
+ },
2001
+ "python": {
2002
+ "module": "aws_cdk.aws_panorama"
2003
+ }
2004
+ }
2005
+ },
1876
2006
  "aws-cdk-lib.aws_pinpoint": {
1877
2007
  "targets": {
1878
2008
  "dotnet": {
@@ -1964,6 +2094,45 @@
1964
2094
  }
1965
2095
  }
1966
2096
  },
2097
+ "aws-cdk-lib.aws_refactorspaces": {
2098
+ "targets": {
2099
+ "dotnet": {
2100
+ "namespace": "Amazon.CDK.AWS.RefactorSpaces"
2101
+ },
2102
+ "java": {
2103
+ "package": "software.amazon.awscdk.services.refactorspaces"
2104
+ },
2105
+ "python": {
2106
+ "module": "aws_cdk.aws_refactorspaces"
2107
+ }
2108
+ }
2109
+ },
2110
+ "aws-cdk-lib.aws_rekognition": {
2111
+ "targets": {
2112
+ "dotnet": {
2113
+ "namespace": "Amazon.CDK.AWS.Rekognition"
2114
+ },
2115
+ "java": {
2116
+ "package": "software.amazon.awscdk.services.rekognition"
2117
+ },
2118
+ "python": {
2119
+ "module": "aws_cdk.aws_rekognition"
2120
+ }
2121
+ }
2122
+ },
2123
+ "aws-cdk-lib.aws_resiliencehub": {
2124
+ "targets": {
2125
+ "dotnet": {
2126
+ "namespace": "Amazon.CDK.AWS.ResilienceHub"
2127
+ },
2128
+ "java": {
2129
+ "package": "software.amazon.awscdk.services.resiliencehub"
2130
+ },
2131
+ "python": {
2132
+ "module": "aws_cdk.aws_resiliencehub"
2133
+ }
2134
+ }
2135
+ },
1967
2136
  "aws-cdk-lib.aws_resourcegroups": {
1968
2137
  "targets": {
1969
2138
  "dotnet": {
@@ -2068,6 +2237,19 @@
2068
2237
  }
2069
2238
  }
2070
2239
  },
2240
+ "aws-cdk-lib.aws_rum": {
2241
+ "targets": {
2242
+ "dotnet": {
2243
+ "namespace": "Amazon.CDK.AWS.RUM"
2244
+ },
2245
+ "java": {
2246
+ "package": "software.amazon.awscdk.services.rum"
2247
+ },
2248
+ "python": {
2249
+ "module": "aws_cdk.aws_rum"
2250
+ }
2251
+ }
2252
+ },
2071
2253
  "aws-cdk-lib.aws_s3": {
2072
2254
  "targets": {
2073
2255
  "dotnet": {
@@ -2484,6 +2666,19 @@
2484
2666
  }
2485
2667
  }
2486
2668
  },
2669
+ "aws-cdk-lib.aws_wisdom": {
2670
+ "targets": {
2671
+ "dotnet": {
2672
+ "namespace": "Amazon.CDK.AWS.Wisdom"
2673
+ },
2674
+ "java": {
2675
+ "package": "software.amazon.awscdk.services.wisdom"
2676
+ },
2677
+ "python": {
2678
+ "module": "aws_cdk.aws_wisdom"
2679
+ }
2680
+ }
2681
+ },
2487
2682
  "aws-cdk-lib.aws_workspaces": {
2488
2683
  "targets": {
2489
2684
  "dotnet": {
@@ -2588,6 +2783,19 @@
2588
2783
  }
2589
2784
  }
2590
2785
  },
2786
+ "aws-cdk-lib.lambda_layer_node_proxy_agent": {
2787
+ "targets": {
2788
+ "dotnet": {
2789
+ "namespace": "Amazon.CDK.LambdaLayer.NodeProxyAgent"
2790
+ },
2791
+ "java": {
2792
+ "package": "software.amazon.awscdk.lambda.layer.node.proxy.agent"
2793
+ },
2794
+ "python": {
2795
+ "module": "aws_cdk.lambda_layer_node_proxy_agent"
2796
+ }
2797
+ }
2798
+ },
2591
2799
  "aws-cdk-lib.pipelines": {
2592
2800
  "targets": {
2593
2801
  "dotnet": {
@@ -2669,7 +2877,7 @@
2669
2877
  },
2670
2878
  "description": "CDK Constructs for AWS Lambda to AWS DynamoDB integration.",
2671
2879
  "homepage": "https://github.com/awslabs/aws-solutions-constructs.git",
2672
- "jsiiVersion": "1.46.0 (build cd08c55)",
2880
+ "jsiiVersion": "1.54.0 (build b1b977a)",
2673
2881
  "keywords": [
2674
2882
  "aws",
2675
2883
  "cdk",
@@ -2688,7 +2896,7 @@
2688
2896
  },
2689
2897
  "name": "@aws-solutions-constructs/aws-lambda-dynamodb",
2690
2898
  "readme": {
2691
- "markdown": "# aws-lambda-dynamodb module\n<!--BEGIN STABILITY BANNER-->\n\n---\n\n![Stability: Stable](https://img.shields.io/badge/cfn--resources-stable-success.svg?style=for-the-badge)\n\n---\n<!--END STABILITY BANNER-->\n\n| **Reference Documentation**:| <span style=\"font-weight: normal\">https://docs.aws.amazon.com/solutions/latest/constructs/</span>|\n|:-------------|:-------------|\n<div style=\"height:8px\"></div>\n\n| **Language** | **Package** |\n|:-------------|-----------------|\n|![Python Logo](https://docs.aws.amazon.com/cdk/api/latest/img/python32.png) Python|`aws_solutions_constructs.aws_lambda_dynamodb`|\n|![Typescript Logo](https://docs.aws.amazon.com/cdk/api/latest/img/typescript32.png) Typescript|`@aws-solutions-constructs/aws-lambda-dynamodb`|\n|![Java Logo](https://docs.aws.amazon.com/cdk/api/latest/img/java32.png) Java|`software.amazon.awsconstructs.services.lambdadynamodb`|\n\nThis AWS Solutions Construct implements the AWS Lambda function and Amazon DynamoDB table with the least privileged permissions.\n\nHere is a minimal deployable pattern definition in Typescript:\n\n``` javascript\nconst { LambdaToDynamoDBProps, LambdaToDynamoDB } from '@aws-solutions-constructs/aws-lambda-dynamodb';\n\nconst props: LambdaToDynamoDBProps = {\n lambdaFunctionProps: {\n code: lambda.Code.fromAsset(`${__dirname}/lambda`),\n runtime: lambda.Runtime.NODEJS_12_X,\n handler: 'index.handler'\n },\n};\n\nnew LambdaToDynamoDB(this, 'test-lambda-dynamodb-stack', props);\n\n```\n\n## Initializer\n\n``` text\nnew LambdaToDynamoDB(scope: Construct, id: string, props: LambdaToDynamoDBProps);\n```\n\n_Parameters_\n\n* scope [`Construct`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_core.Construct.html)\n* id `string`\n* props [`LambdaToDynamoDBProps`](#pattern-construct-props)\n\n## Pattern Construct Props\n\n| **Name** | **Type** | **Description** |\n|:-------------|:----------------|-----------------|\n|existingLambdaObj?|[`lambda.Function`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html)|Existing instance of Lambda Function object, providing both this and `lambdaFunctionProps` will cause an error.|\n|lambdaFunctionProps?|[`lambda.FunctionProps`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.FunctionProps.html)|User provided props to override the default props for the Lambda function.|\n|dynamoTableProps?|[`dynamodb.TableProps`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-dynamodb.TableProps.html)|Optional user provided props to override the default props for DynamoDB Table|\n|existingTableObj?|[`dynamodb.Table`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-dynamodb.Table.html)|Existing instance of DynamoDB table object, providing both this and `dynamoTableProps` will cause an error.|\n|tablePermissions?|`string`|Optional table permissions to grant to the Lambda function. One of the following may be specified: `All`, `Read`, `ReadWrite`, `Write`.|\n|tableEnvironmentVariableName?|`string`|Optional Name for the DynamoDB table environment variable set for the Lambda function.|\n|existingVpc?|[`ec2.IVpc`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.IVpc.html)|An optional, existing VPC into which this pattern should be deployed. When deployed in a VPC, the Lambda function will use ENIs in the VPC to access network resources and a Gateway Endpoint will be created in the VPC for Amazon DynamoDB. If an existing VPC is provided, the `deployVpc` property cannot be `true`. This uses `ec2.IVpc` to allow clients to supply VPCs that exist outside the stack using the [`ec2.Vpc.fromLookup()`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.Vpc.html#static-fromwbrlookupscope-id-options) method.|\n|vpcProps?|[`ec2.VpcProps`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.VpcProps.html)|Optional user-provided properties to override the default properties for the new VPC. `enableDnsHostnames`, `enableDnsSupport`, `natGateways` and `subnetConfiguration` are set by the pattern, so any values for those properties supplied here will be overrriden. If `deployVpc` is not `true` then this property will be ignored.|\n|deployVpc?|`boolean`|Whether to create a new VPC based on `vpcProps` into which to deploy this pattern. Setting this to true will deploy the minimal, most private VPC to run the pattern:<ul><li> One isolated subnet in each Availability Zone used by the CDK program</li><li>`enableDnsHostnames` and `enableDnsSupport` will both be set to true</li></ul>If this property is `true` then `existingVpc` cannot be specified. Defaults to `false`.|\n\n## Pattern Properties\n\n| **Name** | **Type** | **Description** |\n|:-------------|:----------------|-----------------|\n|lambdaFunction|[`lambda.Function`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html)|Returns an instance of lambda.Function created by the construct|\n|dynamoTable|[`dynamodb.Table`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-dynamodb.Table.html)|Returns an instance of dynamodb.Table created by the construct|\n|vpc?|[`ec2.IVpc`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.IVpc.html)|Returns an interface on the VPC used by the pattern (if any). This may be a VPC created by the pattern or the VPC supplied to the pattern constructor.|\n\n## Default settings\n\nOut of the box implementation of the Construct without any override will set the following defaults:\n\n### AWS Lambda Function\n* Configure limited privilege access IAM role for Lambda function\n* Enable reusing connections with Keep-Alive for NodeJs Lambda function\n* Enable X-Ray Tracing\n* Set Environment Variables\n * (default) DDB_TABLE_NAME\n * AWS_NODEJS_CONNECTION_REUSE_ENABLED (for Node 10.x and higher functions)\n\n### Amazon DynamoDB Table\n* Set the billing mode for DynamoDB Table to On-Demand (Pay per request)\n* Enable server-side encryption for DynamoDB Table using AWS managed KMS Key\n* Creates a partition key called 'id' for DynamoDB Table\n* Retain the Table when deleting the CloudFormation stack\n* Enable continuous backups and point-in-time recovery\n\n## Architecture\n![Architecture Diagram](architecture.png)\n\n***\n&copy; Copyright 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n"
2899
+ "markdown": "# aws-lambda-dynamodb module\n<!--BEGIN STABILITY BANNER-->\n\n---\n\n![Stability: Stable](https://img.shields.io/badge/cfn--resources-stable-success.svg?style=for-the-badge)\n\n---\n<!--END STABILITY BANNER-->\n\n| **Reference Documentation**:| <span style=\"font-weight: normal\">https://docs.aws.amazon.com/solutions/latest/constructs/</span>|\n|:-------------|:-------------|\n<div style=\"height:8px\"></div>\n\n| **Language** | **Package** |\n|:-------------|-----------------|\n|![Python Logo](https://docs.aws.amazon.com/cdk/api/latest/img/python32.png) Python|`aws_solutions_constructs.aws_lambda_dynamodb`|\n|![Typescript Logo](https://docs.aws.amazon.com/cdk/api/latest/img/typescript32.png) Typescript|`@aws-solutions-constructs/aws-lambda-dynamodb`|\n|![Java Logo](https://docs.aws.amazon.com/cdk/api/latest/img/java32.png) Java|`software.amazon.awsconstructs.services.lambdadynamodb`|\n\nThis AWS Solutions Construct implements the AWS Lambda function and Amazon DynamoDB table with the least privileged permissions.\n\nHere is a minimal deployable pattern definition in Typescript:\n\n``` javascript\nconst { LambdaToDynamoDBProps, LambdaToDynamoDB } from '@aws-solutions-constructs/aws-lambda-dynamodb';\n\nconst props: LambdaToDynamoDBProps = {\n lambdaFunctionProps: {\n code: lambda.Code.fromAsset(`${__dirname}/lambda`),\n runtime: lambda.Runtime.NODEJS_14_X,\n handler: 'index.handler'\n },\n};\n\nnew LambdaToDynamoDB(this, 'test-lambda-dynamodb-stack', props);\n\n```\n\n## Initializer\n\n``` text\nnew LambdaToDynamoDB(scope: Construct, id: string, props: LambdaToDynamoDBProps);\n```\n\n_Parameters_\n\n* scope [`Construct`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_core.Construct.html)\n* id `string`\n* props [`LambdaToDynamoDBProps`](#pattern-construct-props)\n\n## Pattern Construct Props\n\n| **Name** | **Type** | **Description** |\n|:-------------|:----------------|-----------------|\n|existingLambdaObj?|[`lambda.Function`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html)|Existing instance of Lambda Function object, providing both this and `lambdaFunctionProps` will cause an error.|\n|lambdaFunctionProps?|[`lambda.FunctionProps`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.FunctionProps.html)|User provided props to override the default props for the Lambda function.|\n|dynamoTableProps?|[`dynamodb.TableProps`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-dynamodb.TableProps.html)|Optional user provided props to override the default props for DynamoDB Table|\n|existingTableObj?|[`dynamodb.Table`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-dynamodb.Table.html)|Existing instance of DynamoDB table object, providing both this and `dynamoTableProps` will cause an error.|\n|tablePermissions?|`string`|Optional table permissions to grant to the Lambda function. One of the following may be specified: `All`, `Read`, `ReadWrite`, `Write`.|\n|tableEnvironmentVariableName?|`string`|Optional Name for the DynamoDB table environment variable set for the Lambda function.|\n|existingVpc?|[`ec2.IVpc`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.IVpc.html)|An optional, existing VPC into which this pattern should be deployed. When deployed in a VPC, the Lambda function will use ENIs in the VPC to access network resources and a Gateway Endpoint will be created in the VPC for Amazon DynamoDB. If an existing VPC is provided, the `deployVpc` property cannot be `true`. This uses `ec2.IVpc` to allow clients to supply VPCs that exist outside the stack using the [`ec2.Vpc.fromLookup()`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.Vpc.html#static-fromwbrlookupscope-id-options) method.|\n|vpcProps?|[`ec2.VpcProps`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.VpcProps.html)|Optional user-provided properties to override the default properties for the new VPC. `enableDnsHostnames`, `enableDnsSupport`, `natGateways` and `subnetConfiguration` are set by the pattern, so any values for those properties supplied here will be overrriden. If `deployVpc` is not `true` then this property will be ignored.|\n|deployVpc?|`boolean`|Whether to create a new VPC based on `vpcProps` into which to deploy this pattern. Setting this to true will deploy the minimal, most private VPC to run the pattern:<ul><li> One isolated subnet in each Availability Zone used by the CDK program</li><li>`enableDnsHostnames` and `enableDnsSupport` will both be set to true</li></ul>If this property is `true` then `existingVpc` cannot be specified. Defaults to `false`.|\n\n## Pattern Properties\n\n| **Name** | **Type** | **Description** |\n|:-------------|:----------------|-----------------|\n|lambdaFunction|[`lambda.Function`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html)|Returns an instance of lambda.Function created by the construct|\n|dynamoTable|[`dynamodb.Table`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-dynamodb.Table.html)|Returns an instance of dynamodb.Table created by the construct|\n|vpc?|[`ec2.IVpc`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-ec2.IVpc.html)|Returns an interface on the VPC used by the pattern (if any). This may be a VPC created by the pattern or the VPC supplied to the pattern constructor.|\n\n## Default settings\n\nOut of the box implementation of the Construct without any override will set the following defaults:\n\n### AWS Lambda Function\n* Configure limited privilege access IAM role for Lambda function\n* Enable reusing connections with Keep-Alive for NodeJs Lambda function\n* Enable X-Ray Tracing\n* Set Environment Variables\n * (default) DDB_TABLE_NAME\n * AWS_NODEJS_CONNECTION_REUSE_ENABLED (for Node 10.x and higher functions)\n\n### Amazon DynamoDB Table\n* Set the billing mode for DynamoDB Table to On-Demand (Pay per request)\n* Enable server-side encryption for DynamoDB Table using AWS managed KMS Key\n* Creates a partition key called 'id' for DynamoDB Table\n* Retain the Table when deleting the CloudFormation stack\n* Enable continuous backups and point-in-time recovery\n\n## Architecture\n![Architecture Diagram](architecture.png)\n\n***\n&copy; Copyright 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n"
2692
2900
  },
2693
2901
  "repository": {
2694
2902
  "directory": "source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb",
@@ -2733,7 +2941,7 @@
2733
2941
  },
2734
2942
  "locationInModule": {
2735
2943
  "filename": "lib/index.ts",
2736
- "line": 92
2944
+ "line": 91
2737
2945
  },
2738
2946
  "parameters": [
2739
2947
  {
@@ -2768,7 +2976,7 @@
2768
2976
  "kind": "class",
2769
2977
  "locationInModule": {
2770
2978
  "filename": "lib/index.ts",
2771
- "line": 79
2979
+ "line": 78
2772
2980
  },
2773
2981
  "name": "LambdaToDynamoDB",
2774
2982
  "properties": [
@@ -2776,7 +2984,7 @@
2776
2984
  "immutable": true,
2777
2985
  "locationInModule": {
2778
2986
  "filename": "lib/index.ts",
2779
- "line": 81
2987
+ "line": 80
2780
2988
  },
2781
2989
  "name": "dynamoTable",
2782
2990
  "type": {
@@ -2787,7 +2995,7 @@
2787
2995
  "immutable": true,
2788
2996
  "locationInModule": {
2789
2997
  "filename": "lib/index.ts",
2790
- "line": 80
2998
+ "line": 79
2791
2999
  },
2792
3000
  "name": "lambdaFunction",
2793
3001
  "type": {
@@ -2798,7 +3006,7 @@
2798
3006
  "immutable": true,
2799
3007
  "locationInModule": {
2800
3008
  "filename": "lib/index.ts",
2801
- "line": 82
3009
+ "line": 81
2802
3010
  },
2803
3011
  "name": "vpc",
2804
3012
  "optional": true,
@@ -2821,7 +3029,7 @@
2821
3029
  "kind": "interface",
2822
3030
  "locationInModule": {
2823
3031
  "filename": "lib/index.ts",
2824
- "line": 25
3032
+ "line": 24
2825
3033
  },
2826
3034
  "name": "LambdaToDynamoDBProps",
2827
3035
  "properties": [
@@ -2834,7 +3042,7 @@
2834
3042
  "immutable": true,
2835
3043
  "locationInModule": {
2836
3044
  "filename": "lib/index.ts",
2837
- "line": 76
3045
+ "line": 75
2838
3046
  },
2839
3047
  "name": "deployVpc",
2840
3048
  "optional": true,
@@ -2851,7 +3059,7 @@
2851
3059
  "immutable": true,
2852
3060
  "locationInModule": {
2853
3061
  "filename": "lib/index.ts",
2854
- "line": 43
3062
+ "line": 42
2855
3063
  },
2856
3064
  "name": "dynamoTableProps",
2857
3065
  "optional": true,
@@ -2868,7 +3076,7 @@
2868
3076
  "immutable": true,
2869
3077
  "locationInModule": {
2870
3078
  "filename": "lib/index.ts",
2871
- "line": 31
3079
+ "line": 30
2872
3080
  },
2873
3081
  "name": "existingLambdaObj",
2874
3082
  "optional": true,
@@ -2885,7 +3093,7 @@
2885
3093
  "immutable": true,
2886
3094
  "locationInModule": {
2887
3095
  "filename": "lib/index.ts",
2888
- "line": 49
3096
+ "line": 48
2889
3097
  },
2890
3098
  "name": "existingTableObj",
2891
3099
  "optional": true,
@@ -2901,7 +3109,7 @@
2901
3109
  "immutable": true,
2902
3110
  "locationInModule": {
2903
3111
  "filename": "lib/index.ts",
2904
- "line": 66
3112
+ "line": 65
2905
3113
  },
2906
3114
  "name": "existingVpc",
2907
3115
  "optional": true,
@@ -2918,7 +3126,7 @@
2918
3126
  "immutable": true,
2919
3127
  "locationInModule": {
2920
3128
  "filename": "lib/index.ts",
2921
- "line": 37
3129
+ "line": 36
2922
3130
  },
2923
3131
  "name": "lambdaFunctionProps",
2924
3132
  "optional": true,
@@ -2935,7 +3143,7 @@
2935
3143
  "immutable": true,
2936
3144
  "locationInModule": {
2937
3145
  "filename": "lib/index.ts",
2938
- "line": 62
3146
+ "line": 61
2939
3147
  },
2940
3148
  "name": "tableEnvironmentVariableName",
2941
3149
  "optional": true,
@@ -2953,7 +3161,7 @@
2953
3161
  "immutable": true,
2954
3162
  "locationInModule": {
2955
3163
  "filename": "lib/index.ts",
2956
- "line": 56
3164
+ "line": 55
2957
3165
  },
2958
3166
  "name": "tablePermissions",
2959
3167
  "optional": true,
@@ -2969,7 +3177,7 @@
2969
3177
  "immutable": true,
2970
3178
  "locationInModule": {
2971
3179
  "filename": "lib/index.ts",
2972
- "line": 70
3180
+ "line": 69
2973
3181
  },
2974
3182
  "name": "vpcProps",
2975
3183
  "optional": true,
@@ -2981,6 +3189,6 @@
2981
3189
  "symbolId": "lib/index:LambdaToDynamoDBProps"
2982
3190
  }
2983
3191
  },
2984
- "version": "2.0.0",
2985
- "fingerprint": "SoWaMaohcEy/oxKOja9j0asY4LZ+FosWhAZq/Ua+6vk="
3192
+ "version": "2.3.0",
3193
+ "fingerprint": "ah6Gto1TFXlZxJnNMtWsOTxO+NKtqxHHs0cEN07hBiw="
2986
3194
  }
package/README.md CHANGED
@@ -28,7 +28,7 @@ const { LambdaToDynamoDBProps, LambdaToDynamoDB } from '@aws-solutions-construc
28
28
  const props: LambdaToDynamoDBProps = {
29
29
  lambdaFunctionProps: {
30
30
  code: lambda.Code.fromAsset(`${__dirname}/lambda`),
31
- runtime: lambda.Runtime.NODEJS_12_X,
31
+ runtime: lambda.Runtime.NODEJS_14_X,
32
32
  handler: 'index.handler'
33
33
  },
34
34
  };
package/lib/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
3
  *
4
4
  * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance
5
5
  * with the License. A copy of the License is located at
@@ -31,7 +31,7 @@ export interface LambdaToDynamoDBProps {
31
31
  */
32
32
  readonly lambdaFunctionProps?: lambda.FunctionProps;
33
33
  /**
34
- * Optional user provided props to override the default props.
34
+ * Optional user provided props to override the default props
35
35
  *
36
36
  * @default - Default props are used
37
37
  */
@@ -44,7 +44,6 @@ export interface LambdaToDynamoDBProps {
44
44
  readonly existingTableObj?: dynamodb.Table;
45
45
  /**
46
46
  * Optional table permissions to grant to the Lambda function.
47
- *
48
47
  * One of the following may be specified: "All", "Read", "ReadWrite", "Write".
49
48
  *
50
49
  * @default - Read/write access is given to the Lambda function if no value is specified.
@@ -57,15 +56,15 @@ export interface LambdaToDynamoDBProps {
57
56
  */
58
57
  readonly tableEnvironmentVariableName?: string;
59
58
  /**
60
- * An existing VPC for the construct to use (construct will NOT create a new VPC in this case).
59
+ * An existing VPC for the construct to use (construct will NOT create a new VPC in this case)
61
60
  */
62
61
  readonly existingVpc?: ec2.IVpc;
63
62
  /**
64
- * Properties to override default properties if deployVpc is true.
63
+ * Properties to override default properties if deployVpc is true
65
64
  */
66
65
  readonly vpcProps?: ec2.VpcProps;
67
66
  /**
68
- * Whether to deploy a new VPC.
67
+ * Whether to deploy a new VPC
69
68
  *
70
69
  * @default - false
71
70
  */
@@ -76,10 +75,10 @@ export declare class LambdaToDynamoDB extends Construct {
76
75
  readonly dynamoTable: dynamodb.Table;
77
76
  readonly vpc?: ec2.IVpc;
78
77
  /**
79
- * @param scope - represents the scope for all the resources.
80
- * @param id - this is a a scope-unique id.
81
- * @param props - user provided props for the construct.
82
78
  * @summary Constructs a new instance of the LambdaToDynamoDB class.
79
+ * @param {cdk.App} scope - represents the scope for all the resources.
80
+ * @param {string} id - this is a a scope-unique id.
81
+ * @param {LambdaToDynamoDBProps} props - user provided props for the construct
83
82
  * @since 0.8.0
84
83
  * @access public
85
84
  */
package/lib/index.js CHANGED
@@ -5,13 +5,14 @@ exports.LambdaToDynamoDB = void 0;
5
5
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
6
  const dynamodb = require("aws-cdk-lib/aws-dynamodb");
7
7
  const defaults = require("@aws-solutions-constructs/core");
8
+ // Note: To ensure CDKv2 compatibility, keep the import statement for Construct separate
8
9
  const constructs_1 = require("constructs");
9
10
  class LambdaToDynamoDB extends constructs_1.Construct {
10
11
  /**
11
- * @param scope - represents the scope for all the resources.
12
- * @param id - this is a a scope-unique id.
13
- * @param props - user provided props for the construct.
14
12
  * @summary Constructs a new instance of the LambdaToDynamoDB class.
13
+ * @param {cdk.App} scope - represents the scope for all the resources.
14
+ * @param {string} id - this is a a scope-unique id.
15
+ * @param {LambdaToDynamoDBProps} props - user provided props for the construct
15
16
  * @since 0.8.0
16
17
  * @access public
17
18
  */
@@ -78,5 +79,5 @@ class LambdaToDynamoDB extends constructs_1.Construct {
78
79
  }
79
80
  exports.LambdaToDynamoDB = LambdaToDynamoDB;
80
81
  _a = JSII_RTTI_SYMBOL_1;
81
- LambdaToDynamoDB[_a] = { fqn: "@aws-solutions-constructs/aws-lambda-dynamodb.LambdaToDynamoDB", version: "2.0.0" };
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQWNBLHFEQUFxRDtBQUNyRCwyREFBMkQ7QUFJM0QsMkNBQXVDO0FBd0J2QyxNQUFhLGdCQUFpQixTQUFRLHNCQUFTOzs7Ozs7Ozs7SUFNN0MsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUE0Qjs7UUFDcEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQixRQUFRLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTNCLElBQUksS0FBSyxDQUFDLFNBQVMsSUFBSSxLQUFLLENBQUMsV0FBVyxFQUFFO1lBQ3hDLElBQUksS0FBSyxDQUFDLFNBQVMsSUFBSSxLQUFLLENBQUMsV0FBVyxFQUFFO2dCQUN4QyxNQUFNLElBQUksS0FBSyxDQUFDLDZDQUE2QyxDQUFDLENBQUM7YUFDaEU7WUFFRCxJQUFJLENBQUMsR0FBRyxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFO2dCQUNsQyxlQUFlLEVBQUUsUUFBUSxDQUFDLHVCQUF1QixFQUFFO2dCQUNuRCxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7Z0JBQzlCLFlBQVksRUFBRSxLQUFLLENBQUMsUUFBUTtnQkFDNUIsaUJBQWlCLEVBQUU7b0JBQ2pCLGtCQUFrQixFQUFFLElBQUk7b0JBQ3hCLGdCQUFnQixFQUFFLElBQUk7aUJBQ3ZCO2FBQ0YsQ0FBQyxDQUFDO1lBRUgsUUFBUSxDQUFDLHFCQUFxQixDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUN6RjtRQUVELElBQUksQ0FBQyxjQUFjLEdBQUcsUUFBUSxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRTtZQUN2RCxpQkFBaUIsRUFBRSxLQUFLLENBQUMsaUJBQWlCO1lBQzFDLG1CQUFtQixFQUFFLEtBQUssQ0FBQyxtQkFBbUI7WUFDOUMsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHO1NBQ2QsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFO1lBQ25ELGdCQUFnQixFQUFFLEtBQUssQ0FBQyxnQkFBZ0I7WUFDeEMsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLGdCQUFnQjtTQUN6QyxDQUFDLENBQUM7UUFFSCxrQ0FBa0M7UUFDbEMsTUFBTSw0QkFBNEIsR0FBRyxLQUFLLENBQUMsNEJBQTRCLElBQUksZ0JBQWdCLENBQUM7UUFDNUYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsNEJBQTRCLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUU3RixpREFBaUQ7UUFDakQsSUFBSSxLQUFLLENBQUMsZ0JBQWdCLEVBQUU7WUFDMUIsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzFELElBQUksWUFBWSxLQUFLLEtBQUssRUFBRTtnQkFDMUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsQ0FBQzthQUN0RTtpQkFBTSxJQUFJLFlBQVksS0FBTyxNQUFNLEVBQUU7Z0JBQ3BDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLENBQUM7YUFDcEU7aUJBQU0sSUFBSSxZQUFZLEtBQU8sV0FBVyxFQUFFO2dCQUN6QyxJQUFJLENBQUMsV0FBVyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLENBQUM7YUFDekU7aUJBQU0sSUFBSSxZQUFZLEtBQU8sT0FBTyxFQUFFO2dCQUNyQyxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxDQUFDO2FBQ3JFO1NBQ0Y7YUFBTTtZQUNMLElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUN6RTtRQUVELG1DQUFtQztRQUNuQyxJQUFJLE9BQUEsS0FBSyxDQUFDLGdCQUFnQiwwQ0FBRSxXQUFXLE1BQUssUUFBUSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUU7WUFDNUUsUUFBUSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQzdDO29CQUNFLEVBQUUsRUFBRSxLQUFLO29CQUNULE1BQU0sRUFBRSxtRkFBbUY7aUJBQzVGO2FBQ0YsQ0FBQyxDQUFDO1NBRUo7SUFDSCxDQUFDOztBQXJFSCw0Q0FzRUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICBDb3B5cmlnaHQgMjAyMSBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCAqIGFzIGR5bmFtb2RiIGZyb20gJ2F3cy1jZGstbGliL2F3cy1keW5hbW9kYic7XG5pbXBvcnQgKiBhcyBkZWZhdWx0cyBmcm9tICdAYXdzLXNvbHV0aW9ucy1jb25zdHJ1Y3RzL2NvcmUnO1xuaW1wb3J0ICogYXMgZWMyIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWMyXCI7XG4vLyBOb3RlOiBUbyBlbnN1cmUgQ0RLdjIgY29tcGF0aWJpbGl0eSwga2VlcCB0aGUgaW1wb3J0IHN0YXRlbWVudCBmb3IgQ29uc3RydWN0IHNlcGFyYXRlXG5pbXBvcnQgeyAgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgaW50ZXJmYWNlIExhbWJkYVRvRHluYW1vREJQcm9wcyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGV4aXN0aW5nTGFtYmRhT2JqPzogbGFtYmRhLkZ1bmN0aW9uO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGxhbWJkYUZ1bmN0aW9uUHJvcHM/OiBsYW1iZGEuRnVuY3Rpb25Qcm9wcztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGR5bmFtb1RhYmxlUHJvcHM/OiBkeW5hbW9kYi5UYWJsZVByb3BzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGV4aXN0aW5nVGFibGVPYmo/OiBkeW5hbW9kYi5UYWJsZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IHRhYmxlUGVybWlzc2lvbnM/OiBzdHJpbmc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgdGFibGVFbnZpcm9ubWVudFZhcmlhYmxlTmFtZT86IHN0cmluZztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBleGlzdGluZ1ZwYz86IGVjMi5JVnBjO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSB2cGNQcm9wcz86IGVjMi5WcGNQcm9wcztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGRlcGxveVZwYz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBMYW1iZGFUb0R5bmFtb0RCIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IGxhbWJkYUZ1bmN0aW9uOiBsYW1iZGEuRnVuY3Rpb247XG4gIHB1YmxpYyByZWFkb25seSBkeW5hbW9UYWJsZTogZHluYW1vZGIuVGFibGU7XG4gIHB1YmxpYyByZWFkb25seSB2cGM/OiBlYzIuSVZwYztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogTGFtYmRhVG9EeW5hbW9EQlByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICBkZWZhdWx0cy5DaGVja1Byb3BzKHByb3BzKTtcblxuICAgIGlmIChwcm9wcy5kZXBsb3lWcGMgfHwgcHJvcHMuZXhpc3RpbmdWcGMpIHtcbiAgICAgIGlmIChwcm9wcy5kZXBsb3lWcGMgJiYgcHJvcHMuZXhpc3RpbmdWcGMpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTW9yZSB0aGFuIDEgVlBDIHNwZWNpZmllZCBpbiB0aGUgcHJvcGVydGllc1wiKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy52cGMgPSBkZWZhdWx0cy5idWlsZFZwYyhzY29wZSwge1xuICAgICAgICBkZWZhdWx0VnBjUHJvcHM6IGRlZmF1bHRzLkRlZmF1bHRJc29sYXRlZFZwY1Byb3BzKCksXG4gICAgICAgIGV4aXN0aW5nVnBjOiBwcm9wcy5leGlzdGluZ1ZwYyxcbiAgICAgICAgdXNlclZwY1Byb3BzOiBwcm9wcy52cGNQcm9wcyxcbiAgICAgICAgY29uc3RydWN0VnBjUHJvcHM6IHtcbiAgICAgICAgICBlbmFibGVEbnNIb3N0bmFtZXM6IHRydWUsXG4gICAgICAgICAgZW5hYmxlRG5zU3VwcG9ydDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICBkZWZhdWx0cy5BZGRBd3NTZXJ2aWNlRW5kcG9pbnQoc2NvcGUsIHRoaXMudnBjLCBkZWZhdWx0cy5TZXJ2aWNlRW5kcG9pbnRUeXBlcy5EWU5BTU9EQik7XG4gICAgfVxuXG4gICAgdGhpcy5sYW1iZGFGdW5jdGlvbiA9IGRlZmF1bHRzLmJ1aWxkTGFtYmRhRnVuY3Rpb24odGhpcywge1xuICAgICAgZXhpc3RpbmdMYW1iZGFPYmo6IHByb3BzLmV4aXN0aW5nTGFtYmRhT2JqLFxuICAgICAgbGFtYmRhRnVuY3Rpb25Qcm9wczogcHJvcHMubGFtYmRhRnVuY3Rpb25Qcm9wcyxcbiAgICAgIHZwYzogdGhpcy52cGNcbiAgICB9KTtcblxuICAgIHRoaXMuZHluYW1vVGFibGUgPSBkZWZhdWx0cy5idWlsZER5bmFtb0RCVGFibGUodGhpcywge1xuICAgICAgZHluYW1vVGFibGVQcm9wczogcHJvcHMuZHluYW1vVGFibGVQcm9wcyxcbiAgICAgIGV4aXN0aW5nVGFibGVPYmo6IHByb3BzLmV4aXN0aW5nVGFibGVPYmpcbiAgICB9KTtcblxuICAgIC8vIENvbmZpZ3VyZSBlbnZpcm9ubWVudCB2YXJpYWJsZXNcbiAgICBjb25zdCB0YWJsZUVudmlyb25tZW50VmFyaWFibGVOYW1lID0gcHJvcHMudGFibGVFbnZpcm9ubWVudFZhcmlhYmxlTmFtZSB8fCAnRERCX1RBQkxFX05BTUUnO1xuICAgIHRoaXMubGFtYmRhRnVuY3Rpb24uYWRkRW52aXJvbm1lbnQodGFibGVFbnZpcm9ubWVudFZhcmlhYmxlTmFtZSwgdGhpcy5keW5hbW9UYWJsZS50YWJsZU5hbWUpO1xuXG4gICAgLy8gQWRkIHRoZSByZXF1ZXN0ZWQgb3IgZGVmYXVsdCB0YWJsZSBwZXJtaXNzaW9uc1xuICAgIGlmIChwcm9wcy50YWJsZVBlcm1pc3Npb25zKSB7XG4gICAgICBjb25zdCBfcGVybWlzc2lvbnMgPSBwcm9wcy50YWJsZVBlcm1pc3Npb25zLnRvVXBwZXJDYXNlKCk7XG4gICAgICBpZiAoX3Blcm1pc3Npb25zID09PSAnQUxMJykge1xuICAgICAgICB0aGlzLmR5bmFtb1RhYmxlLmdyYW50RnVsbEFjY2Vzcyh0aGlzLmxhbWJkYUZ1bmN0aW9uLmdyYW50UHJpbmNpcGFsKTtcbiAgICAgIH0gZWxzZSBpZiAoX3Blcm1pc3Npb25zICA9PT0gICdSRUFEJykge1xuICAgICAgICB0aGlzLmR5bmFtb1RhYmxlLmdyYW50UmVhZERhdGEodGhpcy5sYW1iZGFGdW5jdGlvbi5ncmFudFByaW5jaXBhbCk7XG4gICAgICB9IGVsc2UgaWYgKF9wZXJtaXNzaW9ucyAgPT09ICAnUkVBRFdSSVRFJykge1xuICAgICAgICB0aGlzLmR5bmFtb1RhYmxlLmdyYW50UmVhZFdyaXRlRGF0YSh0aGlzLmxhbWJkYUZ1bmN0aW9uLmdyYW50UHJpbmNpcGFsKTtcbiAgICAgIH0gZWxzZSBpZiAoX3Blcm1pc3Npb25zICA9PT0gICdXUklURScpIHtcbiAgICAgICAgdGhpcy5keW5hbW9UYWJsZS5ncmFudFdyaXRlRGF0YSh0aGlzLmxhbWJkYUZ1bmN0aW9uLmdyYW50UHJpbmNpcGFsKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5keW5hbW9UYWJsZS5ncmFudFJlYWRXcml0ZURhdGEodGhpcy5sYW1iZGFGdW5jdGlvbi5ncmFudFByaW5jaXBhbCk7XG4gICAgfVxuXG4gICAgLy8gQ29uZGl0aW9uYWwgbWV0YWRhdGEgZm9yIGNmbl9uYWdcbiAgICBpZiAocHJvcHMuZHluYW1vVGFibGVQcm9wcz8uYmlsbGluZ01vZGUgPT09IGR5bmFtb2RiLkJpbGxpbmdNb2RlLlBST1ZJU0lPTkVEKSB7XG4gICAgICBkZWZhdWx0cy5hZGRDZm5TdXBwcmVzc1J1bGVzKHRoaXMuZHluYW1vVGFibGUsIFtcbiAgICAgICAge1xuICAgICAgICAgIGlkOiBcIlc3M1wiLFxuICAgICAgICAgIHJlYXNvbjogYFBST1ZJU0lPTkVEIGJpbGxpbmcgbW9kZSBpcyBhIGRlZmF1bHQgYW5kIGlzIG5vdCBleHBsaWNpdGx5IGFwcGxpZWQgYXMgYSBzZXR0aW5nLmAsXG4gICAgICAgIH0sXG4gICAgICBdKTtcblxuICAgIH1cbiAgfVxufVxuIl19
82
+ LambdaToDynamoDB[_a] = { fqn: "@aws-solutions-constructs/aws-lambda-dynamodb.LambdaToDynamoDB", version: "2.3.0" };
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQWNBLHFEQUFxRDtBQUNyRCwyREFBMkQ7QUFFM0Qsd0ZBQXdGO0FBQ3hGLDJDQUF1QztBQTJEdkMsTUFBYSxnQkFBaUIsU0FBUSxzQkFBUztJQUs3Qzs7Ozs7OztPQU9HO0lBQ0gsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUE0Qjs7UUFDcEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQixRQUFRLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTNCLElBQUksS0FBSyxDQUFDLFNBQVMsSUFBSSxLQUFLLENBQUMsV0FBVyxFQUFFO1lBQ3hDLElBQUksS0FBSyxDQUFDLFNBQVMsSUFBSSxLQUFLLENBQUMsV0FBVyxFQUFFO2dCQUN4QyxNQUFNLElBQUksS0FBSyxDQUFDLDZDQUE2QyxDQUFDLENBQUM7YUFDaEU7WUFFRCxJQUFJLENBQUMsR0FBRyxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFO2dCQUNsQyxlQUFlLEVBQUUsUUFBUSxDQUFDLHVCQUF1QixFQUFFO2dCQUNuRCxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7Z0JBQzlCLFlBQVksRUFBRSxLQUFLLENBQUMsUUFBUTtnQkFDNUIsaUJBQWlCLEVBQUU7b0JBQ2pCLGtCQUFrQixFQUFFLElBQUk7b0JBQ3hCLGdCQUFnQixFQUFFLElBQUk7aUJBQ3ZCO2FBQ0YsQ0FBQyxDQUFDO1lBRUgsUUFBUSxDQUFDLHFCQUFxQixDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUN6RjtRQUVELElBQUksQ0FBQyxjQUFjLEdBQUcsUUFBUSxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRTtZQUN2RCxpQkFBaUIsRUFBRSxLQUFLLENBQUMsaUJBQWlCO1lBQzFDLG1CQUFtQixFQUFFLEtBQUssQ0FBQyxtQkFBbUI7WUFDOUMsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHO1NBQ2QsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFO1lBQ25ELGdCQUFnQixFQUFFLEtBQUssQ0FBQyxnQkFBZ0I7WUFDeEMsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLGdCQUFnQjtTQUN6QyxDQUFDLENBQUM7UUFFSCxrQ0FBa0M7UUFDbEMsTUFBTSw0QkFBNEIsR0FBRyxLQUFLLENBQUMsNEJBQTRCLElBQUksZ0JBQWdCLENBQUM7UUFDNUYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsNEJBQTRCLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUU3RixpREFBaUQ7UUFDakQsSUFBSSxLQUFLLENBQUMsZ0JBQWdCLEVBQUU7WUFDMUIsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzFELElBQUksWUFBWSxLQUFLLEtBQUssRUFBRTtnQkFDMUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsQ0FBQzthQUN0RTtpQkFBTSxJQUFJLFlBQVksS0FBTyxNQUFNLEVBQUU7Z0JBQ3BDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLENBQUM7YUFDcEU7aUJBQU0sSUFBSSxZQUFZLEtBQU8sV0FBVyxFQUFFO2dCQUN6QyxJQUFJLENBQUMsV0FBVyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLENBQUM7YUFDekU7aUJBQU0sSUFBSSxZQUFZLEtBQU8sT0FBTyxFQUFFO2dCQUNyQyxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxDQUFDO2FBQ3JFO1NBQ0Y7YUFBTTtZQUNMLElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUN6RTtRQUVELG1DQUFtQztRQUNuQyxJQUFJLE9BQUEsS0FBSyxDQUFDLGdCQUFnQiwwQ0FBRSxXQUFXLE1BQUssUUFBUSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUU7WUFDNUUsUUFBUSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQzdDO29CQUNFLEVBQUUsRUFBRSxLQUFLO29CQUNULE1BQU0sRUFBRSxtRkFBbUY7aUJBQzVGO2FBQ0YsQ0FBQyxDQUFDO1NBRUo7SUFDSCxDQUFDOztBQTVFSCw0Q0E2RUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICBDb3B5cmlnaHQgMjAyMiBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCAqIGFzIGR5bmFtb2RiIGZyb20gJ2F3cy1jZGstbGliL2F3cy1keW5hbW9kYic7XG5pbXBvcnQgKiBhcyBkZWZhdWx0cyBmcm9tICdAYXdzLXNvbHV0aW9ucy1jb25zdHJ1Y3RzL2NvcmUnO1xuaW1wb3J0ICogYXMgZWMyIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWMyXCI7XG4vLyBOb3RlOiBUbyBlbnN1cmUgQ0RLdjIgY29tcGF0aWJpbGl0eSwga2VlcCB0aGUgaW1wb3J0IHN0YXRlbWVudCBmb3IgQ29uc3RydWN0IHNlcGFyYXRlXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuLyoqXG4gKiBAc3VtbWFyeSBUaGUgcHJvcGVydGllcyBmb3IgdGhlIExhbWJkYVRvRHluYW1vREIgQ29uc3RydWN0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGFtYmRhVG9EeW5hbW9EQlByb3BzIHtcbiAgLyoqXG4gICAqIEV4aXN0aW5nIGluc3RhbmNlIG9mIExhbWJkYSBGdW5jdGlvbiBvYmplY3QsIHByb3ZpZGluZyBib3RoIHRoaXMgYW5kIGBsYW1iZGFGdW5jdGlvblByb3BzYCB3aWxsIGNhdXNlIGFuIGVycm9yLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vbmVcbiAgICovXG4gIHJlYWRvbmx5IGV4aXN0aW5nTGFtYmRhT2JqPzogbGFtYmRhLkZ1bmN0aW9uO1xuICAvKipcbiAgICogVXNlciBwcm92aWRlZCBwcm9wcyB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBwcm9wcyBmb3IgdGhlIExhbWJkYSBmdW5jdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBEZWZhdWx0IHByb3BzIGFyZSB1c2VkXG4gICAqL1xuICByZWFkb25seSBsYW1iZGFGdW5jdGlvblByb3BzPzogbGFtYmRhLkZ1bmN0aW9uUHJvcHM7XG4gIC8qKlxuICAgKiBPcHRpb25hbCB1c2VyIHByb3ZpZGVkIHByb3BzIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0IHByb3BzXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gRGVmYXVsdCBwcm9wcyBhcmUgdXNlZFxuICAgKi9cbiAgcmVhZG9ubHkgZHluYW1vVGFibGVQcm9wcz86IGR5bmFtb2RiLlRhYmxlUHJvcHM7XG4gIC8qKlxuICAgKiBFeGlzdGluZyBpbnN0YW5jZSBvZiBEeW5hbW9EQiB0YWJsZSBvYmplY3QsIHByb3ZpZGluZyBib3RoIHRoaXMgYW5kIGBkeW5hbW9UYWJsZVByb3BzYCB3aWxsIGNhdXNlIGFuIGVycm9yLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vbmVcbiAgICovXG4gIHJlYWRvbmx5IGV4aXN0aW5nVGFibGVPYmo/OiBkeW5hbW9kYi5UYWJsZTtcbiAgLyoqXG4gICAqIE9wdGlvbmFsIHRhYmxlIHBlcm1pc3Npb25zIHRvIGdyYW50IHRvIHRoZSBMYW1iZGEgZnVuY3Rpb24uXG4gICAqIE9uZSBvZiB0aGUgZm9sbG93aW5nIG1heSBiZSBzcGVjaWZpZWQ6IFwiQWxsXCIsIFwiUmVhZFwiLCBcIlJlYWRXcml0ZVwiLCBcIldyaXRlXCIuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gUmVhZC93cml0ZSBhY2Nlc3MgaXMgZ2l2ZW4gdG8gdGhlIExhbWJkYSBmdW5jdGlvbiBpZiBubyB2YWx1ZSBpcyBzcGVjaWZpZWQuXG4gICAqL1xuICByZWFkb25seSB0YWJsZVBlcm1pc3Npb25zPzogc3RyaW5nO1xuICAvKipcbiAgICogT3B0aW9uYWwgTmFtZSBmb3IgdGhlIER5bmFtb0RCIHRhYmxlIGVudmlyb25tZW50IHZhcmlhYmxlIHNldCBmb3IgdGhlIExhbWJkYSBmdW5jdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBOb25lXG4gICAqL1xuICByZWFkb25seSB0YWJsZUVudmlyb25tZW50VmFyaWFibGVOYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogQW4gZXhpc3RpbmcgVlBDIGZvciB0aGUgY29uc3RydWN0IHRvIHVzZSAoY29uc3RydWN0IHdpbGwgTk9UIGNyZWF0ZSBhIG5ldyBWUEMgaW4gdGhpcyBjYXNlKVxuICAgKi9cbiAgcmVhZG9ubHkgZXhpc3RpbmdWcGM/OiBlYzIuSVZwYztcbiAgLyoqXG4gICAqIFByb3BlcnRpZXMgdG8gb3ZlcnJpZGUgZGVmYXVsdCBwcm9wZXJ0aWVzIGlmIGRlcGxveVZwYyBpcyB0cnVlXG4gICAqL1xuICByZWFkb25seSB2cGNQcm9wcz86IGVjMi5WcGNQcm9wcztcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZGVwbG95IGEgbmV3IFZQQ1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIGZhbHNlXG4gICAqL1xuICByZWFkb25seSBkZXBsb3lWcGM/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgTGFtYmRhVG9EeW5hbW9EQiBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBsYW1iZGFGdW5jdGlvbjogbGFtYmRhLkZ1bmN0aW9uO1xuICBwdWJsaWMgcmVhZG9ubHkgZHluYW1vVGFibGU6IGR5bmFtb2RiLlRhYmxlO1xuICBwdWJsaWMgcmVhZG9ubHkgdnBjPzogZWMyLklWcGM7XG5cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IENvbnN0cnVjdHMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIExhbWJkYVRvRHluYW1vREIgY2xhc3MuXG4gICAqIEBwYXJhbSB7Y2RrLkFwcH0gc2NvcGUgLSByZXByZXNlbnRzIHRoZSBzY29wZSBmb3IgYWxsIHRoZSByZXNvdXJjZXMuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBpZCAtIHRoaXMgaXMgYSBhIHNjb3BlLXVuaXF1ZSBpZC5cbiAgICogQHBhcmFtIHtMYW1iZGFUb0R5bmFtb0RCUHJvcHN9IHByb3BzIC0gdXNlciBwcm92aWRlZCBwcm9wcyBmb3IgdGhlIGNvbnN0cnVjdFxuICAgKiBAc2luY2UgMC44LjBcbiAgICogQGFjY2VzcyBwdWJsaWNcbiAgICovXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBMYW1iZGFUb0R5bmFtb0RCUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIGRlZmF1bHRzLkNoZWNrUHJvcHMocHJvcHMpO1xuXG4gICAgaWYgKHByb3BzLmRlcGxveVZwYyB8fCBwcm9wcy5leGlzdGluZ1ZwYykge1xuICAgICAgaWYgKHByb3BzLmRlcGxveVZwYyAmJiBwcm9wcy5leGlzdGluZ1ZwYykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJNb3JlIHRoYW4gMSBWUEMgc3BlY2lmaWVkIGluIHRoZSBwcm9wZXJ0aWVzXCIpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnZwYyA9IGRlZmF1bHRzLmJ1aWxkVnBjKHNjb3BlLCB7XG4gICAgICAgIGRlZmF1bHRWcGNQcm9wczogZGVmYXVsdHMuRGVmYXVsdElzb2xhdGVkVnBjUHJvcHMoKSxcbiAgICAgICAgZXhpc3RpbmdWcGM6IHByb3BzLmV4aXN0aW5nVnBjLFxuICAgICAgICB1c2VyVnBjUHJvcHM6IHByb3BzLnZwY1Byb3BzLFxuICAgICAgICBjb25zdHJ1Y3RWcGNQcm9wczoge1xuICAgICAgICAgIGVuYWJsZURuc0hvc3RuYW1lczogdHJ1ZSxcbiAgICAgICAgICBlbmFibGVEbnNTdXBwb3J0OiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIGRlZmF1bHRzLkFkZEF3c1NlcnZpY2VFbmRwb2ludChzY29wZSwgdGhpcy52cGMsIGRlZmF1bHRzLlNlcnZpY2VFbmRwb2ludFR5cGVzLkRZTkFNT0RCKTtcbiAgICB9XG5cbiAgICB0aGlzLmxhbWJkYUZ1bmN0aW9uID0gZGVmYXVsdHMuYnVpbGRMYW1iZGFGdW5jdGlvbih0aGlzLCB7XG4gICAgICBleGlzdGluZ0xhbWJkYU9iajogcHJvcHMuZXhpc3RpbmdMYW1iZGFPYmosXG4gICAgICBsYW1iZGFGdW5jdGlvblByb3BzOiBwcm9wcy5sYW1iZGFGdW5jdGlvblByb3BzLFxuICAgICAgdnBjOiB0aGlzLnZwY1xuICAgIH0pO1xuXG4gICAgdGhpcy5keW5hbW9UYWJsZSA9IGRlZmF1bHRzLmJ1aWxkRHluYW1vREJUYWJsZSh0aGlzLCB7XG4gICAgICBkeW5hbW9UYWJsZVByb3BzOiBwcm9wcy5keW5hbW9UYWJsZVByb3BzLFxuICAgICAgZXhpc3RpbmdUYWJsZU9iajogcHJvcHMuZXhpc3RpbmdUYWJsZU9ialxuICAgIH0pO1xuXG4gICAgLy8gQ29uZmlndXJlIGVudmlyb25tZW50IHZhcmlhYmxlc1xuICAgIGNvbnN0IHRhYmxlRW52aXJvbm1lbnRWYXJpYWJsZU5hbWUgPSBwcm9wcy50YWJsZUVudmlyb25tZW50VmFyaWFibGVOYW1lIHx8ICdEREJfVEFCTEVfTkFNRSc7XG4gICAgdGhpcy5sYW1iZGFGdW5jdGlvbi5hZGRFbnZpcm9ubWVudCh0YWJsZUVudmlyb25tZW50VmFyaWFibGVOYW1lLCB0aGlzLmR5bmFtb1RhYmxlLnRhYmxlTmFtZSk7XG5cbiAgICAvLyBBZGQgdGhlIHJlcXVlc3RlZCBvciBkZWZhdWx0IHRhYmxlIHBlcm1pc3Npb25zXG4gICAgaWYgKHByb3BzLnRhYmxlUGVybWlzc2lvbnMpIHtcbiAgICAgIGNvbnN0IF9wZXJtaXNzaW9ucyA9IHByb3BzLnRhYmxlUGVybWlzc2lvbnMudG9VcHBlckNhc2UoKTtcbiAgICAgIGlmIChfcGVybWlzc2lvbnMgPT09ICdBTEwnKSB7XG4gICAgICAgIHRoaXMuZHluYW1vVGFibGUuZ3JhbnRGdWxsQWNjZXNzKHRoaXMubGFtYmRhRnVuY3Rpb24uZ3JhbnRQcmluY2lwYWwpO1xuICAgICAgfSBlbHNlIGlmIChfcGVybWlzc2lvbnMgID09PSAgJ1JFQUQnKSB7XG4gICAgICAgIHRoaXMuZHluYW1vVGFibGUuZ3JhbnRSZWFkRGF0YSh0aGlzLmxhbWJkYUZ1bmN0aW9uLmdyYW50UHJpbmNpcGFsKTtcbiAgICAgIH0gZWxzZSBpZiAoX3Blcm1pc3Npb25zICA9PT0gICdSRUFEV1JJVEUnKSB7XG4gICAgICAgIHRoaXMuZHluYW1vVGFibGUuZ3JhbnRSZWFkV3JpdGVEYXRhKHRoaXMubGFtYmRhRnVuY3Rpb24uZ3JhbnRQcmluY2lwYWwpO1xuICAgICAgfSBlbHNlIGlmIChfcGVybWlzc2lvbnMgID09PSAgJ1dSSVRFJykge1xuICAgICAgICB0aGlzLmR5bmFtb1RhYmxlLmdyYW50V3JpdGVEYXRhKHRoaXMubGFtYmRhRnVuY3Rpb24uZ3JhbnRQcmluY2lwYWwpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmR5bmFtb1RhYmxlLmdyYW50UmVhZFdyaXRlRGF0YSh0aGlzLmxhbWJkYUZ1bmN0aW9uLmdyYW50UHJpbmNpcGFsKTtcbiAgICB9XG5cbiAgICAvLyBDb25kaXRpb25hbCBtZXRhZGF0YSBmb3IgY2ZuX25hZ1xuICAgIGlmIChwcm9wcy5keW5hbW9UYWJsZVByb3BzPy5iaWxsaW5nTW9kZSA9PT0gZHluYW1vZGIuQmlsbGluZ01vZGUuUFJPVklTSU9ORUQpIHtcbiAgICAgIGRlZmF1bHRzLmFkZENmblN1cHByZXNzUnVsZXModGhpcy5keW5hbW9UYWJsZSwgW1xuICAgICAgICB7XG4gICAgICAgICAgaWQ6IFwiVzczXCIsXG4gICAgICAgICAgcmVhc29uOiBgUFJPVklTSU9ORUQgYmlsbGluZyBtb2RlIGlzIGEgZGVmYXVsdCBhbmQgaXMgbm90IGV4cGxpY2l0bHkgYXBwbGllZCBhcyBhIHNldHRpbmcuYCxcbiAgICAgICAgfSxcbiAgICAgIF0pO1xuXG4gICAgfVxuICB9XG59XG4iXX0=