@aws-solutions-constructs/aws-lambda-kinesisstreams 2.44.0 → 2.46.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.
Files changed (36) hide show
  1. package/.jsii +106 -15
  2. package/README.md +1 -1
  3. package/lib/index.js +5 -3
  4. package/package.json +5 -5
  5. package/test/{integ.existingLambda.expected.json → integ.lamkin-existingLambda.expected.json} +8 -8
  6. package/test/integ.lamkin-existingLambda.js +31 -0
  7. package/test/{integ.existingStream.expected.json → integ.lamkin-existingStream.expected.json} +8 -8
  8. package/test/integ.lamkin-existingStream.js +37 -0
  9. package/test/{integ.existingStreamWithCmk.expected.json → integ.lamkin-existingStreamWithCmk.expected.json} +10 -10
  10. package/test/integ.lamkin-existingStreamWithCmk.js +39 -0
  11. package/test/{integ.existingVpc.expected.json → integ.lamkin-existingVpc.expected.json} +129 -129
  12. package/test/integ.lamkin-existingVpc.js +34 -0
  13. package/test/{integ.newStreamFromProps.expected.json → integ.lamkin-newStreamFromProps.expected.json} +8 -8
  14. package/test/{integ.noArguments.js → integ.lamkin-newStreamFromProps.js} +5 -1
  15. package/test/{integ.newVpc.expected.json → integ.lamkin-newVpc.expected.json} +62 -62
  16. package/test/integ.lamkin-newVpc.js +31 -0
  17. package/test/{integ.newVpcFromProps.expected.json → integ.lamkin-newVpcFromProps.expected.json} +42 -42
  18. package/test/integ.lamkin-newVpcFromProps.js +34 -0
  19. package/test/{integ.noArguments.expected.json → integ.lamkin-noArguments.expected.json} +8 -8
  20. package/test/integ.lamkin-noArguments.js +30 -0
  21. package/test/lambda-kinesisstream.test.js +65 -1
  22. package/test/integ.existingLambda.js +0 -31
  23. package/test/integ.existingStream.js +0 -37
  24. package/test/integ.existingStreamWithCmk.js +0 -39
  25. package/test/integ.existingVpc.js +0 -34
  26. package/test/integ.newStreamFromProps.js +0 -34
  27. package/test/integ.newVpc.js +0 -31
  28. package/test/integ.newVpcFromProps.js +0 -34
  29. /package/test/{integ.existingLambda.d.ts → integ.lamkin-existingLambda.d.ts} +0 -0
  30. /package/test/{integ.existingStream.d.ts → integ.lamkin-existingStream.d.ts} +0 -0
  31. /package/test/{integ.existingStreamWithCmk.d.ts → integ.lamkin-existingStreamWithCmk.d.ts} +0 -0
  32. /package/test/{integ.existingVpc.d.ts → integ.lamkin-existingVpc.d.ts} +0 -0
  33. /package/test/{integ.newStreamFromProps.d.ts → integ.lamkin-newStreamFromProps.d.ts} +0 -0
  34. /package/test/{integ.newVpc.d.ts → integ.lamkin-newVpc.d.ts} +0 -0
  35. /package/test/{integ.newVpcFromProps.d.ts → integ.lamkin-newVpcFromProps.d.ts} +0 -0
  36. /package/test/{integ.noArguments.d.ts → integ.lamkin-noArguments.d.ts} +0 -0
@@ -112,12 +112,6 @@
112
112
  },
113
113
  "S3Key": "c7dc0cc1b24bda1d2a5345f61897eee32184906649fdb1de93853c512e129dbf.zip"
114
114
  },
115
- "Role": {
116
- "Fn::GetAtt": [
117
- "testlambdakinesisstreamsLambdaFunctionServiceRole95206CF3",
118
- "Arn"
119
- ]
120
- },
121
115
  "Environment": {
122
116
  "Variables": {
123
117
  "KINESIS_DATASTREAM_NAME": {
@@ -126,6 +120,12 @@
126
120
  }
127
121
  },
128
122
  "Handler": "index.handler",
123
+ "Role": {
124
+ "Fn::GetAtt": [
125
+ "testlambdakinesisstreamsLambdaFunctionServiceRole95206CF3",
126
+ "Arn"
127
+ ]
128
+ },
129
129
  "Runtime": "nodejs18.x",
130
130
  "TracingConfig": {
131
131
  "Mode": "Active"
@@ -170,9 +170,9 @@
170
170
  "testlambdakinesisstreamsKinesisStreamGetRecordsIteratorAgeAlarmC4A0FF00": {
171
171
  "Type": "AWS::CloudWatch::Alarm",
172
172
  "Properties": {
173
+ "AlarmDescription": "Consumer Record Processing Falling Behind, there is risk for data loss due to record expiration.",
173
174
  "ComparisonOperator": "GreaterThanOrEqualToThreshold",
174
175
  "EvaluationPeriods": 1,
175
- "AlarmDescription": "Consumer Record Processing Falling Behind, there is risk for data loss due to record expiration.",
176
176
  "MetricName": "GetRecords.IteratorAgeMilliseconds",
177
177
  "Namespace": "AWS/Kinesis",
178
178
  "Period": 300,
@@ -183,9 +183,9 @@
183
183
  "testlambdakinesisstreamsKinesisStreamReadProvisionedThroughputExceededAlarm9732E188": {
184
184
  "Type": "AWS::CloudWatch::Alarm",
185
185
  "Properties": {
186
+ "AlarmDescription": "Consumer Application is Reading at a Slower Rate Than Expected.",
186
187
  "ComparisonOperator": "GreaterThanThreshold",
187
188
  "EvaluationPeriods": 1,
188
- "AlarmDescription": "Consumer Application is Reading at a Slower Rate Than Expected.",
189
189
  "MetricName": "ReadProvisionedThroughputExceeded",
190
190
  "Namespace": "AWS/Kinesis",
191
191
  "Period": 300,
@@ -17,6 +17,7 @@ const aws_cdk_lib_1 = require("aws-cdk-lib");
17
17
  const lib_1 = require("../lib");
18
18
  const core_1 = require("@aws-solutions-constructs/core");
19
19
  const lambda = require("aws-cdk-lib/aws-lambda");
20
+ const aws_kinesis_1 = require("aws-cdk-lib/aws-kinesis");
20
21
  const app = new aws_cdk_lib_1.App();
21
22
  const stack = new aws_cdk_lib_1.Stack(app, core_1.generateIntegStackName(__filename));
22
23
  new lib_1.LambdaToKinesisStreams(stack, 'test-lambda-kinesisstreams', {
@@ -25,6 +26,9 @@ new lib_1.LambdaToKinesisStreams(stack, 'test-lambda-kinesisstreams', {
25
26
  runtime: lambda.Runtime.NODEJS_18_X,
26
27
  handler: 'index.handler'
27
28
  },
29
+ kinesisStreamProps: {
30
+ streamMode: aws_kinesis_1.StreamMode.ON_DEMAND
31
+ }
28
32
  });
29
33
  app.synth();
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWcubm9Bcmd1bWVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbnRlZy5ub0FyZ3VtZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7O0FBRUgsZ0JBQWdCO0FBQ2hCLDZDQUF5QztBQUN6QyxnQ0FBZ0Q7QUFDaEQseURBQXdFO0FBQ3hFLGlEQUFpRDtBQUVqRCxNQUFNLEdBQUcsR0FBRyxJQUFJLGlCQUFHLEVBQUUsQ0FBQztBQUN0QixNQUFNLEtBQUssR0FBRyxJQUFJLG1CQUFLLENBQUMsR0FBRyxFQUFFLDZCQUFzQixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7QUFFakUsSUFBSSw0QkFBc0IsQ0FBQyxLQUFLLEVBQUUsNEJBQTRCLEVBQUU7SUFDOUQsbUJBQW1CLEVBQUU7UUFDbkIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsU0FBUyxTQUFTLENBQUM7UUFDbEQsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVztRQUNuQyxPQUFPLEVBQUUsZUFBZTtLQUN6QjtDQUNGLENBQUMsQ0FBQztBQUVILEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8vLyAhY2RrLWludGVnICpcbmltcG9ydCB7IEFwcCwgU3RhY2sgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IExhbWJkYVRvS2luZXNpc1N0cmVhbXMgfSBmcm9tIFwiLi4vbGliXCI7XG5pbXBvcnQgeyBnZW5lcmF0ZUludGVnU3RhY2tOYW1lIH0gZnJvbSAnQGF3cy1zb2x1dGlvbnMtY29uc3RydWN0cy9jb3JlJztcbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcblxuY29uc3QgYXBwID0gbmV3IEFwcCgpO1xuY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soYXBwLCBnZW5lcmF0ZUludGVnU3RhY2tOYW1lKF9fZmlsZW5hbWUpKTtcblxubmV3IExhbWJkYVRvS2luZXNpc1N0cmVhbXMoc3RhY2ssICd0ZXN0LWxhbWJkYS1raW5lc2lzc3RyZWFtcycsIHtcbiAgbGFtYmRhRnVuY3Rpb25Qcm9wczoge1xuICAgIGNvZGU6IGxhbWJkYS5Db2RlLmZyb21Bc3NldChgJHtfX2Rpcm5hbWV9L2xhbWJkYWApLFxuICAgIHJ1bnRpbWU6IGxhbWJkYS5SdW50aW1lLk5PREVKU18xOF9YLFxuICAgIGhhbmRsZXI6ICdpbmRleC5oYW5kbGVyJ1xuICB9LFxufSk7XG5cbmFwcC5zeW50aCgpO1xuIl19
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWcubGFta2luLW5ld1N0cmVhbUZyb21Qcm9wcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImludGVnLmxhbWtpbi1uZXdTdHJlYW1Gcm9tUHJvcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7OztHQVdHOztBQUVILGdCQUFnQjtBQUNoQiw2Q0FBeUM7QUFDekMsZ0NBQWdEO0FBQ2hELHlEQUF3RTtBQUN4RSxpREFBaUQ7QUFDakQseURBQXFEO0FBRXJELE1BQU0sR0FBRyxHQUFHLElBQUksaUJBQUcsRUFBRSxDQUFDO0FBQ3RCLE1BQU0sS0FBSyxHQUFHLElBQUksbUJBQUssQ0FBQyxHQUFHLEVBQUUsNkJBQXNCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztBQUVqRSxJQUFJLDRCQUFzQixDQUFDLEtBQUssRUFBRSw0QkFBNEIsRUFBRTtJQUM5RCxtQkFBbUIsRUFBRTtRQUNuQixJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxTQUFTLFNBQVMsQ0FBQztRQUNsRCxPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXO1FBQ25DLE9BQU8sRUFBRSxlQUFlO0tBQ3pCO0lBQ0Qsa0JBQWtCLEVBQUU7UUFDbEIsVUFBVSxFQUFFLHdCQUFVLENBQUMsU0FBUztLQUNqQztDQUNGLENBQUMsQ0FBQztBQUVILEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8vLyAhY2RrLWludGVnICpcbmltcG9ydCB7IEFwcCwgU3RhY2sgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IExhbWJkYVRvS2luZXNpc1N0cmVhbXMgfSBmcm9tIFwiLi4vbGliXCI7XG5pbXBvcnQgeyBnZW5lcmF0ZUludGVnU3RhY2tOYW1lIH0gZnJvbSAnQGF3cy1zb2x1dGlvbnMtY29uc3RydWN0cy9jb3JlJztcbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCB7IFN0cmVhbU1vZGUgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWtpbmVzaXNcIjtcblxuY29uc3QgYXBwID0gbmV3IEFwcCgpO1xuY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soYXBwLCBnZW5lcmF0ZUludGVnU3RhY2tOYW1lKF9fZmlsZW5hbWUpKTtcblxubmV3IExhbWJkYVRvS2luZXNpc1N0cmVhbXMoc3RhY2ssICd0ZXN0LWxhbWJkYS1raW5lc2lzc3RyZWFtcycsIHtcbiAgbGFtYmRhRnVuY3Rpb25Qcm9wczoge1xuICAgIGNvZGU6IGxhbWJkYS5Db2RlLmZyb21Bc3NldChgJHtfX2Rpcm5hbWV9L2xhbWJkYWApLFxuICAgIHJ1bnRpbWU6IGxhbWJkYS5SdW50aW1lLk5PREVKU18xOF9YLFxuICAgIGhhbmRsZXI6ICdpbmRleC5oYW5kbGVyJ1xuICB9LFxuICBraW5lc2lzU3RyZWFtUHJvcHM6IHtcbiAgICBzdHJlYW1Nb2RlOiBTdHJlYW1Nb2RlLk9OX0RFTUFORFxuICB9XG59KTtcblxuYXBwLnN5bnRoKCk7XG4iXX0=
@@ -117,7 +117,7 @@
117
117
  "testlambdakinesisstreamsReplaceDefaultSecurityGroupsecuritygroupFB22266C": {
118
118
  "Type": "AWS::EC2::SecurityGroup",
119
119
  "Properties": {
120
- "GroupDescription": "newVpc/test-lambda-kinesisstreams/ReplaceDefaultSecurityGroup-security-group",
120
+ "GroupDescription": "lamkin-newVpc/test-lambda-kinesisstreams/ReplaceDefaultSecurityGroup-security-group",
121
121
  "SecurityGroupEgress": [
122
122
  {
123
123
  "CidrIp": "0.0.0.0/0",
@@ -153,12 +153,6 @@
153
153
  },
154
154
  "S3Key": "c7dc0cc1b24bda1d2a5345f61897eee32184906649fdb1de93853c512e129dbf.zip"
155
155
  },
156
- "Role": {
157
- "Fn::GetAtt": [
158
- "testlambdakinesisstreamsLambdaFunctionServiceRole95206CF3",
159
- "Arn"
160
- ]
161
- },
162
156
  "Environment": {
163
157
  "Variables": {
164
158
  "KINESIS_DATASTREAM_NAME": {
@@ -167,6 +161,12 @@
167
161
  }
168
162
  },
169
163
  "Handler": "index.handler",
164
+ "Role": {
165
+ "Fn::GetAtt": [
166
+ "testlambdakinesisstreamsLambdaFunctionServiceRole95206CF3",
167
+ "Arn"
168
+ ]
169
+ },
170
170
  "Runtime": "nodejs18.x",
171
171
  "TracingConfig": {
172
172
  "Mode": "Active"
@@ -233,9 +233,9 @@
233
233
  "testlambdakinesisstreamsKinesisStreamGetRecordsIteratorAgeAlarmC4A0FF00": {
234
234
  "Type": "AWS::CloudWatch::Alarm",
235
235
  "Properties": {
236
+ "AlarmDescription": "Consumer Record Processing Falling Behind, there is risk for data loss due to record expiration.",
236
237
  "ComparisonOperator": "GreaterThanOrEqualToThreshold",
237
238
  "EvaluationPeriods": 1,
238
- "AlarmDescription": "Consumer Record Processing Falling Behind, there is risk for data loss due to record expiration.",
239
239
  "MetricName": "GetRecords.IteratorAgeMilliseconds",
240
240
  "Namespace": "AWS/Kinesis",
241
241
  "Period": 300,
@@ -246,9 +246,9 @@
246
246
  "testlambdakinesisstreamsKinesisStreamReadProvisionedThroughputExceededAlarm9732E188": {
247
247
  "Type": "AWS::CloudWatch::Alarm",
248
248
  "Properties": {
249
+ "AlarmDescription": "Consumer Application is Reading at a Slower Rate Than Expected.",
249
250
  "ComparisonOperator": "GreaterThanThreshold",
250
251
  "EvaluationPeriods": 1,
251
- "AlarmDescription": "Consumer Application is Reading at a Slower Rate Than Expected.",
252
252
  "MetricName": "ReadProvisionedThroughputExceeded",
253
253
  "Namespace": "AWS/Kinesis",
254
254
  "Period": 300,
@@ -266,7 +266,7 @@
266
266
  "Tags": [
267
267
  {
268
268
  "Key": "Name",
269
- "Value": "newVpc/Vpc"
269
+ "Value": "lamkin-newVpc/Vpc"
270
270
  }
271
271
  ]
272
272
  }
@@ -274,9 +274,6 @@
274
274
  "VpcisolatedSubnet1SubnetE62B1B9B": {
275
275
  "Type": "AWS::EC2::Subnet",
276
276
  "Properties": {
277
- "VpcId": {
278
- "Ref": "Vpc8378EB38"
279
- },
280
277
  "AvailabilityZone": "test-region-1a",
281
278
  "CidrBlock": "10.0.0.0/18",
282
279
  "MapPublicIpOnLaunch": false,
@@ -291,23 +288,26 @@
291
288
  },
292
289
  {
293
290
  "Key": "Name",
294
- "Value": "newVpc/Vpc/isolatedSubnet1"
291
+ "Value": "lamkin-newVpc/Vpc/isolatedSubnet1"
295
292
  }
296
- ]
293
+ ],
294
+ "VpcId": {
295
+ "Ref": "Vpc8378EB38"
296
+ }
297
297
  }
298
298
  },
299
299
  "VpcisolatedSubnet1RouteTableE442650B": {
300
300
  "Type": "AWS::EC2::RouteTable",
301
301
  "Properties": {
302
- "VpcId": {
303
- "Ref": "Vpc8378EB38"
304
- },
305
302
  "Tags": [
306
303
  {
307
304
  "Key": "Name",
308
- "Value": "newVpc/Vpc/isolatedSubnet1"
305
+ "Value": "lamkin-newVpc/Vpc/isolatedSubnet1"
309
306
  }
310
- ]
307
+ ],
308
+ "VpcId": {
309
+ "Ref": "Vpc8378EB38"
310
+ }
311
311
  }
312
312
  },
313
313
  "VpcisolatedSubnet1RouteTableAssociationD259E31A": {
@@ -324,9 +324,6 @@
324
324
  "VpcisolatedSubnet2Subnet39217055": {
325
325
  "Type": "AWS::EC2::Subnet",
326
326
  "Properties": {
327
- "VpcId": {
328
- "Ref": "Vpc8378EB38"
329
- },
330
327
  "AvailabilityZone": "test-region-1b",
331
328
  "CidrBlock": "10.0.64.0/18",
332
329
  "MapPublicIpOnLaunch": false,
@@ -341,23 +338,26 @@
341
338
  },
342
339
  {
343
340
  "Key": "Name",
344
- "Value": "newVpc/Vpc/isolatedSubnet2"
341
+ "Value": "lamkin-newVpc/Vpc/isolatedSubnet2"
345
342
  }
346
- ]
343
+ ],
344
+ "VpcId": {
345
+ "Ref": "Vpc8378EB38"
346
+ }
347
347
  }
348
348
  },
349
349
  "VpcisolatedSubnet2RouteTable334F9764": {
350
350
  "Type": "AWS::EC2::RouteTable",
351
351
  "Properties": {
352
- "VpcId": {
353
- "Ref": "Vpc8378EB38"
354
- },
355
352
  "Tags": [
356
353
  {
357
354
  "Key": "Name",
358
- "Value": "newVpc/Vpc/isolatedSubnet2"
355
+ "Value": "lamkin-newVpc/Vpc/isolatedSubnet2"
359
356
  }
360
- ]
357
+ ],
358
+ "VpcId": {
359
+ "Ref": "Vpc8378EB38"
360
+ }
361
361
  }
362
362
  },
363
363
  "VpcisolatedSubnet2RouteTableAssociation25A4716F": {
@@ -374,9 +374,6 @@
374
374
  "VpcisolatedSubnet3Subnet44F2537D": {
375
375
  "Type": "AWS::EC2::Subnet",
376
376
  "Properties": {
377
- "VpcId": {
378
- "Ref": "Vpc8378EB38"
379
- },
380
377
  "AvailabilityZone": "test-region-1c",
381
378
  "CidrBlock": "10.0.128.0/18",
382
379
  "MapPublicIpOnLaunch": false,
@@ -391,23 +388,26 @@
391
388
  },
392
389
  {
393
390
  "Key": "Name",
394
- "Value": "newVpc/Vpc/isolatedSubnet3"
391
+ "Value": "lamkin-newVpc/Vpc/isolatedSubnet3"
395
392
  }
396
- ]
393
+ ],
394
+ "VpcId": {
395
+ "Ref": "Vpc8378EB38"
396
+ }
397
397
  }
398
398
  },
399
399
  "VpcisolatedSubnet3RouteTableA2F6BBC0": {
400
400
  "Type": "AWS::EC2::RouteTable",
401
401
  "Properties": {
402
- "VpcId": {
403
- "Ref": "Vpc8378EB38"
404
- },
405
402
  "Tags": [
406
403
  {
407
404
  "Key": "Name",
408
- "Value": "newVpc/Vpc/isolatedSubnet3"
405
+ "Value": "lamkin-newVpc/Vpc/isolatedSubnet3"
409
406
  }
410
- ]
407
+ ],
408
+ "VpcId": {
409
+ "Ref": "Vpc8378EB38"
410
+ }
411
411
  }
412
412
  },
413
413
  "VpcisolatedSubnet3RouteTableAssociationDC010BEB": {
@@ -439,7 +439,7 @@
439
439
  "Tags": [
440
440
  {
441
441
  "Key": "Name",
442
- "Value": "newVpc/Vpc"
442
+ "Value": "lamkin-newVpc/Vpc/FlowLog"
443
443
  }
444
444
  ]
445
445
  }
@@ -491,7 +491,7 @@
491
491
  "Tags": [
492
492
  {
493
493
  "Key": "Name",
494
- "Value": "newVpc/Vpc"
494
+ "Value": "lamkin-newVpc/Vpc/FlowLog"
495
495
  }
496
496
  ]
497
497
  },
@@ -511,10 +511,6 @@
511
511
  "VpcFlowLog8FF33A73": {
512
512
  "Type": "AWS::EC2::FlowLog",
513
513
  "Properties": {
514
- "ResourceId": {
515
- "Ref": "Vpc8378EB38"
516
- },
517
- "ResourceType": "VPC",
518
514
  "DeliverLogsPermissionArn": {
519
515
  "Fn::GetAtt": [
520
516
  "VpcFlowLogIAMRole6A475D41",
@@ -525,10 +521,14 @@
525
521
  "LogGroupName": {
526
522
  "Ref": "VpcFlowLogLogGroup7B5C56B9"
527
523
  },
524
+ "ResourceId": {
525
+ "Ref": "Vpc8378EB38"
526
+ },
527
+ "ResourceType": "VPC",
528
528
  "Tags": [
529
529
  {
530
530
  "Key": "Name",
531
- "Value": "newVpc/Vpc"
531
+ "Value": "lamkin-newVpc/Vpc/FlowLog"
532
532
  }
533
533
  ],
534
534
  "TrafficType": "ALL"
@@ -537,6 +537,15 @@
537
537
  "VpcKINESISSTREAMSC07D91B5": {
538
538
  "Type": "AWS::EC2::VPCEndpoint",
539
539
  "Properties": {
540
+ "PrivateDnsEnabled": true,
541
+ "SecurityGroupIds": [
542
+ {
543
+ "Fn::GetAtt": [
544
+ "lamkinnewVpcKINESISSTREAMSsecuritygroup5C800E5E",
545
+ "GroupId"
546
+ ]
547
+ }
548
+ ],
540
549
  "ServiceName": {
541
550
  "Fn::Join": [
542
551
  "",
@@ -549,18 +558,6 @@
549
558
  ]
550
559
  ]
551
560
  },
552
- "VpcId": {
553
- "Ref": "Vpc8378EB38"
554
- },
555
- "PrivateDnsEnabled": true,
556
- "SecurityGroupIds": [
557
- {
558
- "Fn::GetAtt": [
559
- "newVpcKINESISSTREAMSsecuritygroup88F75AD5",
560
- "GroupId"
561
- ]
562
- }
563
- ],
564
561
  "SubnetIds": [
565
562
  {
566
563
  "Ref": "VpcisolatedSubnet1SubnetE62B1B9B"
@@ -572,13 +569,16 @@
572
569
  "Ref": "VpcisolatedSubnet3Subnet44F2537D"
573
570
  }
574
571
  ],
575
- "VpcEndpointType": "Interface"
572
+ "VpcEndpointType": "Interface",
573
+ "VpcId": {
574
+ "Ref": "Vpc8378EB38"
575
+ }
576
576
  }
577
577
  },
578
- "newVpcKINESISSTREAMSsecuritygroup88F75AD5": {
578
+ "lamkinnewVpcKINESISSTREAMSsecuritygroup5C800E5E": {
579
579
  "Type": "AWS::EC2::SecurityGroup",
580
580
  "Properties": {
581
- "GroupDescription": "newVpc/newVpc-KINESIS_STREAMS-security-group",
581
+ "GroupDescription": "lamkin-newVpc/lamkin-newVpc-KINESIS_STREAMS-security-group",
582
582
  "SecurityGroupEgress": [
583
583
  {
584
584
  "CidrIp": "0.0.0.0/0",
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance
6
+ * with the License. A copy of the License is located at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES
11
+ * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions
12
+ * and limitations under the License.
13
+ */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ /// !cdk-integ *
16
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
17
+ const lib_1 = require("../lib");
18
+ const core_1 = require("@aws-solutions-constructs/core");
19
+ const lambda = require("aws-cdk-lib/aws-lambda");
20
+ const app = new aws_cdk_lib_1.App();
21
+ const stack = new aws_cdk_lib_1.Stack(app, core_1.generateIntegStackName(__filename));
22
+ new lib_1.LambdaToKinesisStreams(stack, 'test-lambda-kinesisstreams', {
23
+ lambdaFunctionProps: {
24
+ code: lambda.Code.fromAsset(`${__dirname}/lambda`),
25
+ runtime: lambda.Runtime.NODEJS_18_X,
26
+ handler: 'index.handler'
27
+ },
28
+ deployVpc: true
29
+ });
30
+ app.synth();
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWcubGFta2luLW5ld1ZwYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImludGVnLmxhbWtpbi1uZXdWcGMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7OztHQVdHOztBQUVILGdCQUFnQjtBQUNoQiw2Q0FBeUM7QUFDekMsZ0NBQWdEO0FBQ2hELHlEQUF3RTtBQUN4RSxpREFBaUQ7QUFFakQsTUFBTSxHQUFHLEdBQUcsSUFBSSxpQkFBRyxFQUFFLENBQUM7QUFDdEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxtQkFBSyxDQUFDLEdBQUcsRUFBRSw2QkFBc0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0FBRWpFLElBQUksNEJBQXNCLENBQUMsS0FBSyxFQUFFLDRCQUE0QixFQUFFO0lBQzlELG1CQUFtQixFQUFFO1FBQ25CLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLFNBQVMsU0FBUyxDQUFDO1FBQ2xELE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVc7UUFDbkMsT0FBTyxFQUFFLGVBQWU7S0FDekI7SUFDRCxTQUFTLEVBQUUsSUFBSTtDQUNoQixDQUFDLENBQUM7QUFFSCxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKS4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuICogIHdpdGggdGhlIExpY2Vuc2UuIEEgY29weSBvZiB0aGUgTGljZW5zZSBpcyBsb2NhdGVkIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiAgb3IgaW4gdGhlICdsaWNlbnNlJyBmaWxlIGFjY29tcGFueWluZyB0aGlzIGZpbGUuIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAnQVMgSVMnIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVNcbiAqICBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xuICogIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG4vLy8gIWNkay1pbnRlZyAqXG5pbXBvcnQgeyBBcHAsIFN0YWNrIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBMYW1iZGFUb0tpbmVzaXNTdHJlYW1zIH0gZnJvbSBcIi4uL2xpYlwiO1xuaW1wb3J0IHsgZ2VuZXJhdGVJbnRlZ1N0YWNrTmFtZSB9IGZyb20gJ0Bhd3Mtc29sdXRpb25zLWNvbnN0cnVjdHMvY29yZSc7XG5pbXBvcnQgKiBhcyBsYW1iZGEgZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSc7XG5cbmNvbnN0IGFwcCA9IG5ldyBBcHAoKTtcbmNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKGFwcCwgZ2VuZXJhdGVJbnRlZ1N0YWNrTmFtZShfX2ZpbGVuYW1lKSk7XG5cbm5ldyBMYW1iZGFUb0tpbmVzaXNTdHJlYW1zKHN0YWNrLCAndGVzdC1sYW1iZGEta2luZXNpc3N0cmVhbXMnLCB7XG4gIGxhbWJkYUZ1bmN0aW9uUHJvcHM6IHtcbiAgICBjb2RlOiBsYW1iZGEuQ29kZS5mcm9tQXNzZXQoYCR7X19kaXJuYW1lfS9sYW1iZGFgKSxcbiAgICBydW50aW1lOiBsYW1iZGEuUnVudGltZS5OT0RFSlNfMThfWCxcbiAgICBoYW5kbGVyOiAnaW5kZXguaGFuZGxlcidcbiAgfSxcbiAgZGVwbG95VnBjOiB0cnVlXG59KTtcblxuYXBwLnN5bnRoKCk7XG4iXX0=
@@ -117,7 +117,7 @@
117
117
  "testlambdakinesisstreamsReplaceDefaultSecurityGroupsecuritygroupFB22266C": {
118
118
  "Type": "AWS::EC2::SecurityGroup",
119
119
  "Properties": {
120
- "GroupDescription": "newVpcFromProps/test-lambda-kinesisstreams/ReplaceDefaultSecurityGroup-security-group",
120
+ "GroupDescription": "lamkin-newVpcFromProps/test-lambda-kinesisstreams/ReplaceDefaultSecurityGroup-security-group",
121
121
  "SecurityGroupEgress": [
122
122
  {
123
123
  "CidrIp": "0.0.0.0/0",
@@ -153,12 +153,6 @@
153
153
  },
154
154
  "S3Key": "c7dc0cc1b24bda1d2a5345f61897eee32184906649fdb1de93853c512e129dbf.zip"
155
155
  },
156
- "Role": {
157
- "Fn::GetAtt": [
158
- "testlambdakinesisstreamsLambdaFunctionServiceRole95206CF3",
159
- "Arn"
160
- ]
161
- },
162
156
  "Environment": {
163
157
  "Variables": {
164
158
  "KINESIS_DATASTREAM_NAME": {
@@ -167,6 +161,12 @@
167
161
  }
168
162
  },
169
163
  "Handler": "index.handler",
164
+ "Role": {
165
+ "Fn::GetAtt": [
166
+ "testlambdakinesisstreamsLambdaFunctionServiceRole95206CF3",
167
+ "Arn"
168
+ ]
169
+ },
170
170
  "Runtime": "nodejs18.x",
171
171
  "TracingConfig": {
172
172
  "Mode": "Active"
@@ -225,9 +225,9 @@
225
225
  "testlambdakinesisstreamsKinesisStreamGetRecordsIteratorAgeAlarmC4A0FF00": {
226
226
  "Type": "AWS::CloudWatch::Alarm",
227
227
  "Properties": {
228
+ "AlarmDescription": "Consumer Record Processing Falling Behind, there is risk for data loss due to record expiration.",
228
229
  "ComparisonOperator": "GreaterThanOrEqualToThreshold",
229
230
  "EvaluationPeriods": 1,
230
- "AlarmDescription": "Consumer Record Processing Falling Behind, there is risk for data loss due to record expiration.",
231
231
  "MetricName": "GetRecords.IteratorAgeMilliseconds",
232
232
  "Namespace": "AWS/Kinesis",
233
233
  "Period": 300,
@@ -238,9 +238,9 @@
238
238
  "testlambdakinesisstreamsKinesisStreamReadProvisionedThroughputExceededAlarm9732E188": {
239
239
  "Type": "AWS::CloudWatch::Alarm",
240
240
  "Properties": {
241
+ "AlarmDescription": "Consumer Application is Reading at a Slower Rate Than Expected.",
241
242
  "ComparisonOperator": "GreaterThanThreshold",
242
243
  "EvaluationPeriods": 1,
243
- "AlarmDescription": "Consumer Application is Reading at a Slower Rate Than Expected.",
244
244
  "MetricName": "ReadProvisionedThroughputExceeded",
245
245
  "Namespace": "AWS/Kinesis",
246
246
  "Period": 300,
@@ -258,7 +258,7 @@
258
258
  "Tags": [
259
259
  {
260
260
  "Key": "Name",
261
- "Value": "newVpcFromProps/Vpc"
261
+ "Value": "lamkin-newVpcFromProps/Vpc"
262
262
  }
263
263
  ]
264
264
  }
@@ -266,9 +266,6 @@
266
266
  "VpcisolatedSubnet1SubnetE62B1B9B": {
267
267
  "Type": "AWS::EC2::Subnet",
268
268
  "Properties": {
269
- "VpcId": {
270
- "Ref": "Vpc8378EB38"
271
- },
272
269
  "AvailabilityZone": "test-region-1a",
273
270
  "CidrBlock": "10.0.0.0/18",
274
271
  "MapPublicIpOnLaunch": false,
@@ -283,23 +280,26 @@
283
280
  },
284
281
  {
285
282
  "Key": "Name",
286
- "Value": "newVpcFromProps/Vpc/isolatedSubnet1"
283
+ "Value": "lamkin-newVpcFromProps/Vpc/isolatedSubnet1"
287
284
  }
288
- ]
285
+ ],
286
+ "VpcId": {
287
+ "Ref": "Vpc8378EB38"
288
+ }
289
289
  }
290
290
  },
291
291
  "VpcisolatedSubnet1RouteTableE442650B": {
292
292
  "Type": "AWS::EC2::RouteTable",
293
293
  "Properties": {
294
- "VpcId": {
295
- "Ref": "Vpc8378EB38"
296
- },
297
294
  "Tags": [
298
295
  {
299
296
  "Key": "Name",
300
- "Value": "newVpcFromProps/Vpc/isolatedSubnet1"
297
+ "Value": "lamkin-newVpcFromProps/Vpc/isolatedSubnet1"
301
298
  }
302
- ]
299
+ ],
300
+ "VpcId": {
301
+ "Ref": "Vpc8378EB38"
302
+ }
303
303
  }
304
304
  },
305
305
  "VpcisolatedSubnet1RouteTableAssociationD259E31A": {
@@ -331,7 +331,7 @@
331
331
  "Tags": [
332
332
  {
333
333
  "Key": "Name",
334
- "Value": "newVpcFromProps/Vpc"
334
+ "Value": "lamkin-newVpcFromProps/Vpc/FlowLog"
335
335
  }
336
336
  ]
337
337
  }
@@ -383,7 +383,7 @@
383
383
  "Tags": [
384
384
  {
385
385
  "Key": "Name",
386
- "Value": "newVpcFromProps/Vpc"
386
+ "Value": "lamkin-newVpcFromProps/Vpc/FlowLog"
387
387
  }
388
388
  ]
389
389
  },
@@ -403,10 +403,6 @@
403
403
  "VpcFlowLog8FF33A73": {
404
404
  "Type": "AWS::EC2::FlowLog",
405
405
  "Properties": {
406
- "ResourceId": {
407
- "Ref": "Vpc8378EB38"
408
- },
409
- "ResourceType": "VPC",
410
406
  "DeliverLogsPermissionArn": {
411
407
  "Fn::GetAtt": [
412
408
  "VpcFlowLogIAMRole6A475D41",
@@ -417,10 +413,14 @@
417
413
  "LogGroupName": {
418
414
  "Ref": "VpcFlowLogLogGroup7B5C56B9"
419
415
  },
416
+ "ResourceId": {
417
+ "Ref": "Vpc8378EB38"
418
+ },
419
+ "ResourceType": "VPC",
420
420
  "Tags": [
421
421
  {
422
422
  "Key": "Name",
423
- "Value": "newVpcFromProps/Vpc"
423
+ "Value": "lamkin-newVpcFromProps/Vpc/FlowLog"
424
424
  }
425
425
  ],
426
426
  "TrafficType": "ALL"
@@ -429,6 +429,15 @@
429
429
  "VpcKINESISSTREAMSC07D91B5": {
430
430
  "Type": "AWS::EC2::VPCEndpoint",
431
431
  "Properties": {
432
+ "PrivateDnsEnabled": true,
433
+ "SecurityGroupIds": [
434
+ {
435
+ "Fn::GetAtt": [
436
+ "lamkinnewVpcFromPropsKINESISSTREAMSsecuritygroup10DC8B01",
437
+ "GroupId"
438
+ ]
439
+ }
440
+ ],
432
441
  "ServiceName": {
433
442
  "Fn::Join": [
434
443
  "",
@@ -441,30 +450,21 @@
441
450
  ]
442
451
  ]
443
452
  },
444
- "VpcId": {
445
- "Ref": "Vpc8378EB38"
446
- },
447
- "PrivateDnsEnabled": true,
448
- "SecurityGroupIds": [
449
- {
450
- "Fn::GetAtt": [
451
- "newVpcFromPropsKINESISSTREAMSsecuritygroup9B3EE931",
452
- "GroupId"
453
- ]
454
- }
455
- ],
456
453
  "SubnetIds": [
457
454
  {
458
455
  "Ref": "VpcisolatedSubnet1SubnetE62B1B9B"
459
456
  }
460
457
  ],
461
- "VpcEndpointType": "Interface"
458
+ "VpcEndpointType": "Interface",
459
+ "VpcId": {
460
+ "Ref": "Vpc8378EB38"
461
+ }
462
462
  }
463
463
  },
464
- "newVpcFromPropsKINESISSTREAMSsecuritygroup9B3EE931": {
464
+ "lamkinnewVpcFromPropsKINESISSTREAMSsecuritygroup10DC8B01": {
465
465
  "Type": "AWS::EC2::SecurityGroup",
466
466
  "Properties": {
467
- "GroupDescription": "newVpcFromProps/newVpcFromProps-KINESIS_STREAMS-security-group",
467
+ "GroupDescription": "lamkin-newVpcFromProps/lamkin-newVpcFromProps-KINESIS_STREAMS-security-group",
468
468
  "SecurityGroupEgress": [
469
469
  {
470
470
  "CidrIp": "0.0.0.0/0",
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance
6
+ * with the License. A copy of the License is located at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES
11
+ * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions
12
+ * and limitations under the License.
13
+ */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ /// !cdk-integ *
16
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
17
+ const lib_1 = require("../lib");
18
+ const core_1 = require("@aws-solutions-constructs/core");
19
+ const lambda = require("aws-cdk-lib/aws-lambda");
20
+ const app = new aws_cdk_lib_1.App();
21
+ const stack = new aws_cdk_lib_1.Stack(app, core_1.generateIntegStackName(__filename));
22
+ new lib_1.LambdaToKinesisStreams(stack, 'test-lambda-kinesisstreams', {
23
+ lambdaFunctionProps: {
24
+ code: lambda.Code.fromAsset(`${__dirname}/lambda`),
25
+ runtime: lambda.Runtime.NODEJS_18_X,
26
+ handler: 'index.handler'
27
+ },
28
+ vpcProps: {
29
+ maxAzs: 1
30
+ },
31
+ deployVpc: true
32
+ });
33
+ app.synth();
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWcubGFta2luLW5ld1ZwY0Zyb21Qcm9wcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImludGVnLmxhbWtpbi1uZXdWcGNGcm9tUHJvcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7OztHQVdHOztBQUVILGdCQUFnQjtBQUNoQiw2Q0FBeUM7QUFDekMsZ0NBQWdEO0FBQ2hELHlEQUF3RTtBQUN4RSxpREFBaUQ7QUFFakQsTUFBTSxHQUFHLEdBQUcsSUFBSSxpQkFBRyxFQUFFLENBQUM7QUFDdEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxtQkFBSyxDQUFDLEdBQUcsRUFBRSw2QkFBc0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0FBRWpFLElBQUksNEJBQXNCLENBQUMsS0FBSyxFQUFFLDRCQUE0QixFQUFFO0lBQzlELG1CQUFtQixFQUFFO1FBQ25CLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLFNBQVMsU0FBUyxDQUFDO1FBQ2xELE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVc7UUFDbkMsT0FBTyxFQUFFLGVBQWU7S0FDekI7SUFDRCxRQUFRLEVBQUU7UUFDUixNQUFNLEVBQUUsQ0FBQztLQUNWO0lBQ0QsU0FBUyxFQUFFLElBQUk7Q0FDaEIsQ0FBQyxDQUFDO0FBRUgsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIikuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2VcbiAqICB3aXRoIHRoZSBMaWNlbnNlLiBBIGNvcHkgb2YgdGhlIExpY2Vuc2UgaXMgbG9jYXRlZCBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogIG9yIGluIHRoZSAnbGljZW5zZScgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gJ0FTIElTJyBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTXG4gKiAgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnNcbiAqICBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuLy8vICFjZGstaW50ZWcgKlxuaW1wb3J0IHsgQXBwLCBTdGFjayB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgTGFtYmRhVG9LaW5lc2lzU3RyZWFtcyB9IGZyb20gXCIuLi9saWJcIjtcbmltcG9ydCB7IGdlbmVyYXRlSW50ZWdTdGFja05hbWUgfSBmcm9tICdAYXdzLXNvbHV0aW9ucy1jb25zdHJ1Y3RzL2NvcmUnO1xuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuXG5jb25zdCBhcHAgPSBuZXcgQXBwKCk7XG5jb25zdCBzdGFjayA9IG5ldyBTdGFjayhhcHAsIGdlbmVyYXRlSW50ZWdTdGFja05hbWUoX19maWxlbmFtZSkpO1xuXG5uZXcgTGFtYmRhVG9LaW5lc2lzU3RyZWFtcyhzdGFjaywgJ3Rlc3QtbGFtYmRhLWtpbmVzaXNzdHJlYW1zJywge1xuICBsYW1iZGFGdW5jdGlvblByb3BzOiB7XG4gICAgY29kZTogbGFtYmRhLkNvZGUuZnJvbUFzc2V0KGAke19fZGlybmFtZX0vbGFtYmRhYCksXG4gICAgcnVudGltZTogbGFtYmRhLlJ1bnRpbWUuTk9ERUpTXzE4X1gsXG4gICAgaGFuZGxlcjogJ2luZGV4LmhhbmRsZXInXG4gIH0sXG4gIHZwY1Byb3BzOiB7XG4gICAgbWF4QXpzOiAxXG4gIH0sXG4gIGRlcGxveVZwYzogdHJ1ZVxufSk7XG5cbmFwcC5zeW50aCgpO1xuIl19