@aws-solutions-constructs/core 1.153.1 → 1.156.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
@@ -13,43 +13,43 @@
13
13
  "npmlog": "^4.1.2"
14
14
  },
15
15
  "dependencies": {
16
- "@aws-cdk/aws-apigateway": "1.153.1",
17
- "@aws-cdk/aws-certificatemanager": "1.153.1",
18
- "@aws-cdk/aws-cloudfront": "1.153.1",
19
- "@aws-cdk/aws-cloudfront-origins": "1.153.1",
20
- "@aws-cdk/aws-cloudwatch": "1.153.1",
21
- "@aws-cdk/aws-cognito": "1.153.1",
22
- "@aws-cdk/aws-dynamodb": "1.153.1",
23
- "@aws-cdk/aws-ec2": "1.153.1",
24
- "@aws-cdk/aws-ecr": "1.153.1",
25
- "@aws-cdk/aws-ecs": "1.153.1",
26
- "@aws-cdk/aws-elasticache": "1.153.1",
27
- "@aws-cdk/aws-elasticloadbalancingv2": "1.153.1",
28
- "@aws-cdk/aws-elasticloadbalancingv2-targets": "1.153.1",
29
- "@aws-cdk/aws-elasticsearch": "1.153.1",
30
- "@aws-cdk/aws-events": "1.153.1",
31
- "@aws-cdk/aws-glue": "1.153.1",
32
- "@aws-cdk/aws-iam": "1.153.1",
33
- "@aws-cdk/aws-iot": "1.153.1",
34
- "@aws-cdk/aws-kinesis": "1.153.1",
35
- "@aws-cdk/aws-kinesisanalytics": "1.153.1",
36
- "@aws-cdk/aws-kinesisfirehose": "1.153.1",
37
- "@aws-cdk/aws-kms": "1.153.1",
38
- "@aws-cdk/aws-lambda": "1.153.1",
39
- "@aws-cdk/aws-lambda-event-sources": "1.153.1",
40
- "@aws-cdk/aws-logs": "1.153.1",
41
- "@aws-cdk/aws-mediastore": "1.153.1",
42
- "@aws-cdk/aws-s3": "1.153.1",
43
- "@aws-cdk/aws-s3-assets": "1.153.1",
44
- "@aws-cdk/aws-s3-notifications": "1.153.1",
45
- "@aws-cdk/aws-sagemaker": "1.153.1",
46
- "@aws-cdk/aws-secretsmanager": "1.153.1",
47
- "@aws-cdk/aws-sns": "1.153.1",
48
- "@aws-cdk/aws-sqs": "1.153.1",
49
- "@aws-cdk/aws-ssm": "1.153.1",
50
- "@aws-cdk/aws-stepfunctions": "1.153.1",
51
- "@aws-cdk/aws-wafv2": "1.153.1",
52
- "@aws-cdk/core": "1.153.1"
16
+ "@aws-cdk/aws-apigateway": "1.156.0",
17
+ "@aws-cdk/aws-certificatemanager": "1.156.0",
18
+ "@aws-cdk/aws-cloudfront": "1.156.0",
19
+ "@aws-cdk/aws-cloudfront-origins": "1.156.0",
20
+ "@aws-cdk/aws-cloudwatch": "1.156.0",
21
+ "@aws-cdk/aws-cognito": "1.156.0",
22
+ "@aws-cdk/aws-dynamodb": "1.156.0",
23
+ "@aws-cdk/aws-ec2": "1.156.0",
24
+ "@aws-cdk/aws-ecr": "1.156.0",
25
+ "@aws-cdk/aws-ecs": "1.156.0",
26
+ "@aws-cdk/aws-elasticache": "1.156.0",
27
+ "@aws-cdk/aws-elasticloadbalancingv2": "1.156.0",
28
+ "@aws-cdk/aws-elasticloadbalancingv2-targets": "1.156.0",
29
+ "@aws-cdk/aws-elasticsearch": "1.156.0",
30
+ "@aws-cdk/aws-events": "1.156.0",
31
+ "@aws-cdk/aws-glue": "1.156.0",
32
+ "@aws-cdk/aws-iam": "1.156.0",
33
+ "@aws-cdk/aws-iot": "1.156.0",
34
+ "@aws-cdk/aws-kinesis": "1.156.0",
35
+ "@aws-cdk/aws-kinesisanalytics": "1.156.0",
36
+ "@aws-cdk/aws-kinesisfirehose": "1.156.0",
37
+ "@aws-cdk/aws-kms": "1.156.0",
38
+ "@aws-cdk/aws-lambda": "1.156.0",
39
+ "@aws-cdk/aws-lambda-event-sources": "1.156.0",
40
+ "@aws-cdk/aws-logs": "1.156.0",
41
+ "@aws-cdk/aws-mediastore": "1.156.0",
42
+ "@aws-cdk/aws-s3": "1.156.0",
43
+ "@aws-cdk/aws-s3-assets": "1.156.0",
44
+ "@aws-cdk/aws-s3-notifications": "1.156.0",
45
+ "@aws-cdk/aws-sagemaker": "1.156.0",
46
+ "@aws-cdk/aws-secretsmanager": "1.156.0",
47
+ "@aws-cdk/aws-sns": "1.156.0",
48
+ "@aws-cdk/aws-sqs": "1.156.0",
49
+ "@aws-cdk/aws-ssm": "1.156.0",
50
+ "@aws-cdk/aws-stepfunctions": "1.156.0",
51
+ "@aws-cdk/aws-wafv2": "1.156.0",
52
+ "@aws-cdk/core": "1.156.0"
53
53
  },
54
54
  "dependencyClosure": {
55
55
  "@aws-cdk/assets": {
@@ -3984,6 +3984,6 @@
3984
3984
  "symbolId": "lib/input-validation:VerifiedProps"
3985
3985
  }
3986
3986
  },
3987
- "version": "1.153.1",
3988
- "fingerprint": "NC8zTmpMKp9cK3DSZ18gqKH3sKuQJsRXvy6yuIFw5n4="
3987
+ "version": "1.156.0",
3988
+ "fingerprint": "SDXajbuhCPAwDx2Z/MIOWAXRh61KBgQbyZAYiU6e3Bg="
3989
3989
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-solutions-constructs/core",
3
- "version": "1.153.1",
3
+ "version": "1.156.0",
4
4
  "description": "Core CDK Construct for patterns library",
5
5
  "main": "index.js",
6
6
  "types": "index.ts",
@@ -52,43 +52,43 @@
52
52
  }
53
53
  },
54
54
  "dependencies": {
55
- "@aws-cdk/aws-cloudfront": "1.153.1",
56
- "@aws-cdk/aws-cloudfront-origins": "1.153.1",
57
- "@aws-cdk/aws-dynamodb": "1.153.1",
58
- "@aws-cdk/aws-elasticache": "1.153.1",
59
- "@aws-cdk/aws-elasticloadbalancingv2": "1.153.1",
60
- "@aws-cdk/aws-elasticloadbalancingv2-targets": "1.153.1",
61
- "@aws-cdk/aws-glue": "1.153.1",
62
- "@aws-cdk/aws-iot": "1.153.1",
63
- "@aws-cdk/aws-kinesis": "1.153.1",
64
- "@aws-cdk/aws-kinesisanalytics": "1.153.1",
65
- "@aws-cdk/aws-kinesisfirehose": "1.153.1",
66
- "@aws-cdk/aws-lambda": "1.153.1",
67
- "@aws-cdk/aws-lambda-event-sources": "1.153.1",
68
- "@aws-cdk/aws-logs": "1.153.1",
69
- "@aws-cdk/aws-s3": "1.153.1",
70
- "@aws-cdk/aws-s3-notifications": "1.153.1",
71
- "@aws-cdk/aws-sns": "1.153.1",
72
- "@aws-cdk/aws-sqs": "1.153.1",
73
- "@aws-cdk/core": "1.153.1",
74
- "@aws-cdk/aws-iam": "1.153.1",
75
- "@aws-cdk/aws-apigateway": "1.153.1",
76
- "@aws-cdk/aws-kms": "1.153.1",
77
- "@aws-cdk/aws-events": "1.153.1",
78
- "@aws-cdk/aws-cognito": "1.153.1",
79
- "@aws-cdk/aws-elasticsearch": "1.153.1",
80
- "@aws-cdk/aws-cloudwatch": "1.153.1",
81
- "@aws-cdk/aws-stepfunctions": "1.153.1",
82
- "@aws-cdk/aws-certificatemanager": "1.153.1",
83
- "@aws-cdk/aws-sagemaker": "1.153.1",
84
- "@aws-cdk/aws-ec2": "1.153.1",
85
- "@aws-cdk/aws-ecs": "1.153.1",
86
- "@aws-cdk/aws-ecr": "1.153.1",
87
- "@aws-cdk/aws-mediastore": "1.153.1",
88
- "@aws-cdk/aws-s3-assets": "1.153.1",
89
- "@aws-cdk/aws-secretsmanager": "1.153.1",
90
- "@aws-cdk/aws-ssm": "1.153.1",
91
- "@aws-cdk/aws-wafv2": "1.153.1",
55
+ "@aws-cdk/aws-cloudfront": "1.156.0",
56
+ "@aws-cdk/aws-cloudfront-origins": "1.156.0",
57
+ "@aws-cdk/aws-dynamodb": "1.156.0",
58
+ "@aws-cdk/aws-elasticache": "1.156.0",
59
+ "@aws-cdk/aws-elasticloadbalancingv2": "1.156.0",
60
+ "@aws-cdk/aws-elasticloadbalancingv2-targets": "1.156.0",
61
+ "@aws-cdk/aws-glue": "1.156.0",
62
+ "@aws-cdk/aws-iot": "1.156.0",
63
+ "@aws-cdk/aws-kinesis": "1.156.0",
64
+ "@aws-cdk/aws-kinesisanalytics": "1.156.0",
65
+ "@aws-cdk/aws-kinesisfirehose": "1.156.0",
66
+ "@aws-cdk/aws-lambda": "1.156.0",
67
+ "@aws-cdk/aws-lambda-event-sources": "1.156.0",
68
+ "@aws-cdk/aws-logs": "1.156.0",
69
+ "@aws-cdk/aws-s3": "1.156.0",
70
+ "@aws-cdk/aws-s3-notifications": "1.156.0",
71
+ "@aws-cdk/aws-sns": "1.156.0",
72
+ "@aws-cdk/aws-sqs": "1.156.0",
73
+ "@aws-cdk/core": "1.156.0",
74
+ "@aws-cdk/aws-iam": "1.156.0",
75
+ "@aws-cdk/aws-apigateway": "1.156.0",
76
+ "@aws-cdk/aws-kms": "1.156.0",
77
+ "@aws-cdk/aws-events": "1.156.0",
78
+ "@aws-cdk/aws-cognito": "1.156.0",
79
+ "@aws-cdk/aws-elasticsearch": "1.156.0",
80
+ "@aws-cdk/aws-cloudwatch": "1.156.0",
81
+ "@aws-cdk/aws-stepfunctions": "1.156.0",
82
+ "@aws-cdk/aws-certificatemanager": "1.156.0",
83
+ "@aws-cdk/aws-sagemaker": "1.156.0",
84
+ "@aws-cdk/aws-ec2": "1.156.0",
85
+ "@aws-cdk/aws-ecs": "1.156.0",
86
+ "@aws-cdk/aws-ecr": "1.156.0",
87
+ "@aws-cdk/aws-mediastore": "1.156.0",
88
+ "@aws-cdk/aws-s3-assets": "1.156.0",
89
+ "@aws-cdk/aws-secretsmanager": "1.156.0",
90
+ "@aws-cdk/aws-ssm": "1.156.0",
91
+ "@aws-cdk/aws-wafv2": "1.156.0",
92
92
  "deep-diff": "^1.0.2",
93
93
  "deepmerge": "^4.0.0",
94
94
  "npmlog": "^4.1.2"
@@ -96,7 +96,8 @@
96
96
  "devDependencies": {
97
97
  "@types/deep-diff": "^1.0.0",
98
98
  "@types/npmlog": "^4.1.2",
99
- "@aws-cdk/assert": "1.153.1",
99
+ "@aws-cdk/assert": "1.156.0",
100
+ "@types/prettier": "2.6.0",
100
101
  "@types/jest": "^27.4.0",
101
102
  "@types/node": "^10.3.0"
102
103
  },
@@ -120,37 +121,37 @@
120
121
  "deep-diff"
121
122
  ],
122
123
  "peerDependencies": {
123
- "@aws-cdk/aws-cloudfront": "1.153.1",
124
- "@aws-cdk/aws-dynamodb": "1.153.1",
125
- "@aws-cdk/aws-iot": "1.153.1",
126
- "@aws-cdk/aws-kinesis": "1.153.1",
127
- "@aws-cdk/aws-kinesisanalytics": "1.153.1",
128
- "@aws-cdk/aws-kinesisfirehose": "1.153.1",
129
- "@aws-cdk/aws-lambda": "1.153.1",
130
- "@aws-cdk/aws-lambda-event-sources": "1.153.1",
131
- "@aws-cdk/aws-logs": "1.153.1",
132
- "@aws-cdk/aws-s3": "1.153.1",
133
- "@aws-cdk/aws-s3-notifications": "1.153.1",
134
- "@aws-cdk/aws-sns": "1.153.1",
135
- "@aws-cdk/aws-sqs": "1.153.1",
136
- "@aws-cdk/core": "1.153.1",
137
- "@aws-cdk/aws-iam": "1.153.1",
138
- "@aws-cdk/aws-apigateway": "1.153.1",
139
- "@aws-cdk/aws-kms": "1.153.1",
140
- "@aws-cdk/aws-events": "1.153.1",
141
- "@aws-cdk/aws-cognito": "1.153.1",
142
- "@aws-cdk/aws-elasticsearch": "1.153.1",
143
- "@aws-cdk/aws-cloudwatch": "1.153.1",
144
- "@aws-cdk/aws-stepfunctions": "1.153.1",
145
- "@aws-cdk/aws-cloudfront-origins": "1.153.1",
146
- "@aws-cdk/aws-certificatemanager": "1.153.1",
147
- "@aws-cdk/aws-sagemaker": "1.153.1",
148
- "@aws-cdk/aws-ec2": "1.153.1",
149
- "@aws-cdk/aws-mediastore": "1.153.1",
150
- "@aws-cdk/aws-glue": "1.153.1",
151
- "@aws-cdk/aws-s3-assets": "1.153.1",
152
- "@aws-cdk/aws-secretsmanager": "1.153.1",
153
- "@aws-cdk/aws-ssm": "1.153.1",
154
- "@aws-cdk/aws-wafv2": "1.153.1"
124
+ "@aws-cdk/aws-cloudfront": "1.156.0",
125
+ "@aws-cdk/aws-dynamodb": "1.156.0",
126
+ "@aws-cdk/aws-iot": "1.156.0",
127
+ "@aws-cdk/aws-kinesis": "1.156.0",
128
+ "@aws-cdk/aws-kinesisanalytics": "1.156.0",
129
+ "@aws-cdk/aws-kinesisfirehose": "1.156.0",
130
+ "@aws-cdk/aws-lambda": "1.156.0",
131
+ "@aws-cdk/aws-lambda-event-sources": "1.156.0",
132
+ "@aws-cdk/aws-logs": "1.156.0",
133
+ "@aws-cdk/aws-s3": "1.156.0",
134
+ "@aws-cdk/aws-s3-notifications": "1.156.0",
135
+ "@aws-cdk/aws-sns": "1.156.0",
136
+ "@aws-cdk/aws-sqs": "1.156.0",
137
+ "@aws-cdk/core": "1.156.0",
138
+ "@aws-cdk/aws-iam": "1.156.0",
139
+ "@aws-cdk/aws-apigateway": "1.156.0",
140
+ "@aws-cdk/aws-kms": "1.156.0",
141
+ "@aws-cdk/aws-events": "1.156.0",
142
+ "@aws-cdk/aws-cognito": "1.156.0",
143
+ "@aws-cdk/aws-elasticsearch": "1.156.0",
144
+ "@aws-cdk/aws-cloudwatch": "1.156.0",
145
+ "@aws-cdk/aws-stepfunctions": "1.156.0",
146
+ "@aws-cdk/aws-cloudfront-origins": "1.156.0",
147
+ "@aws-cdk/aws-certificatemanager": "1.156.0",
148
+ "@aws-cdk/aws-sagemaker": "1.156.0",
149
+ "@aws-cdk/aws-ec2": "1.156.0",
150
+ "@aws-cdk/aws-mediastore": "1.156.0",
151
+ "@aws-cdk/aws-glue": "1.156.0",
152
+ "@aws-cdk/aws-s3-assets": "1.156.0",
153
+ "@aws-cdk/aws-secretsmanager": "1.156.0",
154
+ "@aws-cdk/aws-ssm": "1.156.0",
155
+ "@aws-cdk/aws-wafv2": "1.156.0"
155
156
  }
156
157
  }
@@ -10,4 +10,4 @@
10
10
  * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions
11
11
  * and limitations under the License.
12
12
  */
13
- import '@aws-cdk/assert/jest';
13
+ import "@aws-cdk/assert/jest";
@@ -13,25 +13,29 @@
13
13
  */
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  const core_1 = require("@aws-cdk/core");
16
+ const cdk = require("@aws-cdk/core");
16
17
  const kinesisanalytics = require("@aws-cdk/aws-kinesisanalytics");
18
+ const kinesisFirehose = require("@aws-cdk/aws-kinesisfirehose");
19
+ const iam = require("@aws-cdk/aws-iam");
20
+ const kms = require("@aws-cdk/aws-kms");
17
21
  const defaults = require("../index");
18
22
  const utils_1 = require("../lib/utils");
19
23
  require("@aws-cdk/assert/jest");
20
- test('test kinesisanalytics override inputProperty', () => {
24
+ test("test kinesisanalytics override inputProperty", () => {
21
25
  const stack = new core_1.Stack();
22
26
  const inputProperty = {
23
27
  inputSchema: {
24
- recordColumns: [{ name: 'x', sqlType: 'y' }],
25
- recordFormat: { recordFormatType: 'csv' }
28
+ recordColumns: [{ name: "x", sqlType: "y" }],
29
+ recordFormat: { recordFormatType: "csv" },
26
30
  },
27
- namePrefix: 'zzz'
31
+ namePrefix: "zzz",
28
32
  };
29
33
  const defaultProps = defaults.DefaultCfnApplicationProps;
30
34
  const inProps = {
31
- inputs: [inputProperty]
35
+ inputs: [inputProperty],
32
36
  };
33
37
  const outProps = utils_1.overrideProps(defaultProps, inProps);
34
- new kinesisanalytics.CfnApplication(stack, 'KinesisAnalytics', outProps);
38
+ new kinesisanalytics.CfnApplication(stack, "KinesisAnalytics", outProps);
35
39
  expect(stack).toHaveResource("AWS::KinesisAnalytics::Application", {
36
40
  Inputs: [
37
41
  {
@@ -39,16 +43,112 @@ test('test kinesisanalytics override inputProperty', () => {
39
43
  RecordColumns: [
40
44
  {
41
45
  Name: "x",
42
- SqlType: "y"
43
- }
46
+ SqlType: "y",
47
+ },
44
48
  ],
45
49
  RecordFormat: {
46
- RecordFormatType: "csv"
47
- }
50
+ RecordFormatType: "csv",
51
+ },
48
52
  },
49
- NamePrefix: "zzz"
50
- }
51
- ]
53
+ NamePrefix: "zzz",
54
+ },
55
+ ],
52
56
  });
53
57
  });
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2luZXNpcy1hbmFseXRpY3MudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImtpbmVzaXMtYW5hbHl0aWNzLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7OztHQVdHOztBQUVILHdDQUFzQztBQUN0QyxrRUFBa0U7QUFDbEUscUNBQXFDO0FBQ3JDLHdDQUE2QztBQUM3QyxnQ0FBOEI7QUFFOUIsSUFBSSxDQUFDLDhDQUE4QyxFQUFFLEdBQUcsRUFBRTtJQUN4RCxNQUFNLEtBQUssR0FBRyxJQUFJLFlBQUssRUFBRSxDQUFDO0lBRTFCLE1BQU0sYUFBYSxHQUFrRDtRQUNuRSxXQUFXLEVBQUU7WUFDWCxhQUFhLEVBQUUsQ0FBQyxFQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBQyxDQUFDO1lBQzFDLFlBQVksRUFBRSxFQUFFLGdCQUFnQixFQUFFLEtBQUssRUFBRTtTQUMxQztRQUNELFVBQVUsRUFBRSxLQUFLO0tBQ2xCLENBQUM7SUFFRixNQUFNLFlBQVksR0FBeUMsUUFBUSxDQUFDLDBCQUEwQixDQUFDO0lBRS9GLE1BQU0sT0FBTyxHQUF5QztRQUNwRCxNQUFNLEVBQUUsQ0FBQyxhQUFhLENBQUM7S0FDeEIsQ0FBQztJQUVGLE1BQU0sUUFBUSxHQUFHLHFCQUFhLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBRXRELElBQUksZ0JBQWdCLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUV6RSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsY0FBYyxDQUFDLG9DQUFvQyxFQUFFO1FBQ2pFLE1BQU0sRUFBRTtZQUNOO2dCQUNFLFdBQVcsRUFBRTtvQkFDWCxhQUFhLEVBQUU7d0JBQ2I7NEJBQ0UsSUFBSSxFQUFFLEdBQUc7NEJBQ1QsT0FBTyxFQUFFLEdBQUc7eUJBQ2I7cUJBQ0Y7b0JBQ0QsWUFBWSxFQUFFO3dCQUNaLGdCQUFnQixFQUFFLEtBQUs7cUJBQ3hCO2lCQUNGO2dCQUNELFVBQVUsRUFBRSxLQUFLO2FBQ2xCO1NBQ0Y7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCAyMDIyIEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIikuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2VcbiAqICB3aXRoIHRoZSBMaWNlbnNlLiBBIGNvcHkgb2YgdGhlIExpY2Vuc2UgaXMgbG9jYXRlZCBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogIG9yIGluIHRoZSAnbGljZW5zZScgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gJ0FTIElTJyBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTXG4gKiAgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnNcbiAqICBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgU3RhY2sgfSBmcm9tICdAYXdzLWNkay9jb3JlJztcbmltcG9ydCAqIGFzIGtpbmVzaXNhbmFseXRpY3MgZnJvbSAnQGF3cy1jZGsvYXdzLWtpbmVzaXNhbmFseXRpY3MnO1xuaW1wb3J0ICogYXMgZGVmYXVsdHMgZnJvbSAnLi4vaW5kZXgnO1xuaW1wb3J0IHsgb3ZlcnJpZGVQcm9wcyB9IGZyb20gJy4uL2xpYi91dGlscyc7XG5pbXBvcnQgJ0Bhd3MtY2RrL2Fzc2VydC9qZXN0JztcblxudGVzdCgndGVzdCBraW5lc2lzYW5hbHl0aWNzIG92ZXJyaWRlIGlucHV0UHJvcGVydHknLCAoKSA9PiB7XG4gIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKCk7XG5cbiAgY29uc3QgaW5wdXRQcm9wZXJ0eToga2luZXNpc2FuYWx5dGljcy5DZm5BcHBsaWNhdGlvbi5JbnB1dFByb3BlcnR5ID0ge1xuICAgIGlucHV0U2NoZW1hOiB7XG4gICAgICByZWNvcmRDb2x1bW5zOiBbe25hbWU6ICd4Jywgc3FsVHlwZTogJ3knfV0sXG4gICAgICByZWNvcmRGb3JtYXQ6IHsgcmVjb3JkRm9ybWF0VHlwZTogJ2NzdicgfVxuICAgIH0sXG4gICAgbmFtZVByZWZpeDogJ3p6eidcbiAgfTtcblxuICBjb25zdCBkZWZhdWx0UHJvcHM6IGtpbmVzaXNhbmFseXRpY3MuQ2ZuQXBwbGljYXRpb25Qcm9wcyA9IGRlZmF1bHRzLkRlZmF1bHRDZm5BcHBsaWNhdGlvblByb3BzO1xuXG4gIGNvbnN0IGluUHJvcHM6IGtpbmVzaXNhbmFseXRpY3MuQ2ZuQXBwbGljYXRpb25Qcm9wcyA9IHtcbiAgICBpbnB1dHM6IFtpbnB1dFByb3BlcnR5XVxuICB9O1xuXG4gIGNvbnN0IG91dFByb3BzID0gb3ZlcnJpZGVQcm9wcyhkZWZhdWx0UHJvcHMsIGluUHJvcHMpO1xuXG4gIG5ldyBraW5lc2lzYW5hbHl0aWNzLkNmbkFwcGxpY2F0aW9uKHN0YWNrLCAnS2luZXNpc0FuYWx5dGljcycsIG91dFByb3BzKTtcblxuICBleHBlY3Qoc3RhY2spLnRvSGF2ZVJlc291cmNlKFwiQVdTOjpLaW5lc2lzQW5hbHl0aWNzOjpBcHBsaWNhdGlvblwiLCB7XG4gICAgSW5wdXRzOiBbXG4gICAgICB7XG4gICAgICAgIElucHV0U2NoZW1hOiB7XG4gICAgICAgICAgUmVjb3JkQ29sdW1uczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBOYW1lOiBcInhcIixcbiAgICAgICAgICAgICAgU3FsVHlwZTogXCJ5XCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdLFxuICAgICAgICAgIFJlY29yZEZvcm1hdDoge1xuICAgICAgICAgICAgUmVjb3JkRm9ybWF0VHlwZTogXCJjc3ZcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgTmFtZVByZWZpeDogXCJ6enpcIlxuICAgICAgfVxuICAgIF1cbiAgfSk7XG59KTsiXX0=
58
+ test("Test default implementation", () => {
59
+ const stack = new core_1.Stack();
60
+ const newFirehose = CreateFirehose(stack);
61
+ const kinesisProps = {
62
+ kinesisFirehose: newFirehose,
63
+ kinesisAnalyticsProps: {
64
+ inputs: [{
65
+ inputSchema: {
66
+ recordColumns: [{
67
+ name: 'ts',
68
+ sqlType: 'TIMESTAMP',
69
+ mapping: '$.timestamp'
70
+ }, {
71
+ name: 'trip_id',
72
+ sqlType: 'VARCHAR(64)',
73
+ mapping: '$.trip_id'
74
+ }],
75
+ recordFormat: {
76
+ recordFormatType: 'JSON'
77
+ },
78
+ recordEncoding: 'UTF-8'
79
+ },
80
+ namePrefix: 'SOURCE_SQL_STREAM'
81
+ }]
82
+ },
83
+ };
84
+ defaults.buildKinesisAnalyticsApp(stack, kinesisProps);
85
+ expect(stack).toHaveResourceLike("AWS::KinesisAnalytics::Application", {
86
+ Inputs: [{
87
+ InputSchema: {
88
+ RecordColumns: [{
89
+ Name: 'ts',
90
+ SqlType: 'TIMESTAMP',
91
+ Mapping: '$.timestamp'
92
+ }, {
93
+ Name: 'trip_id',
94
+ SqlType: 'VARCHAR(64)',
95
+ Mapping: '$.trip_id'
96
+ }],
97
+ RecordFormat: {
98
+ RecordFormatType: 'JSON'
99
+ },
100
+ RecordEncoding: 'UTF-8'
101
+ },
102
+ NamePrefix: 'SOURCE_SQL_STREAM'
103
+ }]
104
+ });
105
+ });
106
+ // test('Test for customer overrides', {
107
+ // test('Check policy created', {
108
+ function CreateFirehose(stack) {
109
+ // Creating the Firehose is kind of a big deal. FirehoseToS3 is not readily available here in core,
110
+ // so this routine pretty much replicates it. If this function ceases to work correctly, look at
111
+ // FirehoseToS3 and see if that changed.
112
+ const destinationBucket = defaults.CreateScrapBucket(stack, {
113
+ removalPolicy: core_1.RemovalPolicy.DESTROY,
114
+ autoDeleteObjects: true,
115
+ });
116
+ const kinesisFirehoseLogGroup = defaults.buildLogGroup(stack, "firehose-log-group", {});
117
+ const cwLogStream = kinesisFirehoseLogGroup.addStream("firehose-log-stream");
118
+ const firehoseRole = new iam.Role(stack, "test-role", {
119
+ assumedBy: new iam.ServicePrincipal("firehose.amazonaws.com"),
120
+ });
121
+ // Setup the IAM policy for Kinesis Firehose
122
+ const firehosePolicy = new iam.Policy(stack, "KinesisFirehosePolicy", {
123
+ statements: [
124
+ new iam.PolicyStatement({
125
+ actions: [
126
+ "s3:AbortMultipartUpload",
127
+ "s3:GetBucketLocation",
128
+ "s3:GetObject",
129
+ "s3:ListBucket",
130
+ "s3:ListBucketMultipartUploads",
131
+ "s3:PutObject",
132
+ ],
133
+ resources: [
134
+ `${destinationBucket.bucketArn}`,
135
+ `${destinationBucket.bucketArn}/*`,
136
+ ],
137
+ }),
138
+ new iam.PolicyStatement({
139
+ actions: ["logs:PutLogEvents"],
140
+ resources: [
141
+ `arn:${cdk.Aws.PARTITION}:logs:${cdk.Aws.REGION}:${cdk.Aws.ACCOUNT_ID}:log-group:${kinesisFirehoseLogGroup.logGroupName}:log-stream:${cwLogStream.logStreamName}`,
142
+ ],
143
+ }),
144
+ ],
145
+ });
146
+ // Attach policy to role
147
+ firehosePolicy.attachToRole(firehoseRole);
148
+ const awsManagedKey = kms.Alias.fromAliasName(stack, "aws-managed-key", "alias/aws/s3");
149
+ const defaultKinesisFirehoseProps = defaults.DefaultCfnDeliveryStreamProps(destinationBucket.bucketArn, firehoseRole.roleArn, kinesisFirehoseLogGroup.logGroupName, cwLogStream.logStreamName, awsManagedKey);
150
+ destinationBucket.grantPut(firehoseRole);
151
+ const firehose = new kinesisFirehose.CfnDeliveryStream(stack, "KinesisFirehose", defaultKinesisFirehoseProps);
152
+ return firehose;
153
+ }
154
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2luZXNpcy1hbmFseXRpY3MudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImtpbmVzaXMtYW5hbHl0aWNzLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7OztHQVdHOztBQUVILHdDQUFxRDtBQUNyRCxxQ0FBcUM7QUFDckMsa0VBQWtFO0FBQ2xFLGdFQUFnRTtBQUNoRSx3Q0FBd0M7QUFDeEMsd0NBQXdDO0FBRXhDLHFDQUFxQztBQUNyQyx3Q0FBNkM7QUFDN0MsZ0NBQThCO0FBRTlCLElBQUksQ0FBQyw4Q0FBOEMsRUFBRSxHQUFHLEVBQUU7SUFDeEQsTUFBTSxLQUFLLEdBQUcsSUFBSSxZQUFLLEVBQUUsQ0FBQztJQUUxQixNQUFNLGFBQWEsR0FBa0Q7UUFDbkUsV0FBVyxFQUFFO1lBQ1gsYUFBYSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQztZQUM1QyxZQUFZLEVBQUUsRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUU7U0FDMUM7UUFDRCxVQUFVLEVBQUUsS0FBSztLQUNsQixDQUFDO0lBRUYsTUFBTSxZQUFZLEdBQ2hCLFFBQVEsQ0FBQywwQkFBMEIsQ0FBQztJQUV0QyxNQUFNLE9BQU8sR0FBeUM7UUFDcEQsTUFBTSxFQUFFLENBQUMsYUFBYSxDQUFDO0tBQ3hCLENBQUM7SUFFRixNQUFNLFFBQVEsR0FBRyxxQkFBYSxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsQ0FBQztJQUV0RCxJQUFJLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFFekUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLGNBQWMsQ0FBQyxvQ0FBb0MsRUFBRTtRQUNqRSxNQUFNLEVBQUU7WUFDTjtnQkFDRSxXQUFXLEVBQUU7b0JBQ1gsYUFBYSxFQUFFO3dCQUNiOzRCQUNFLElBQUksRUFBRSxHQUFHOzRC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aHQgMjAyMiBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IFN0YWNrLCBSZW1vdmFsUG9saWN5IH0gZnJvbSBcIkBhd3MtY2RrL2NvcmVcIjtcbmltcG9ydCAqIGFzIGNkayBmcm9tIFwiQGF3cy1jZGsvY29yZVwiO1xuaW1wb3J0ICogYXMga2luZXNpc2FuYWx5dGljcyBmcm9tIFwiQGF3cy1jZGsvYXdzLWtpbmVzaXNhbmFseXRpY3NcIjtcbmltcG9ydCAqIGFzIGtpbmVzaXNGaXJlaG9zZSBmcm9tIFwiQGF3cy1jZGsvYXdzLWtpbmVzaXNmaXJlaG9zZVwiO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gXCJAYXdzLWNkay9hd3MtaWFtXCI7XG5pbXBvcnQgKiBhcyBrbXMgZnJvbSBcIkBhd3MtY2RrL2F3cy1rbXNcIjtcbmltcG9ydCAqIGFzIGxvZ3MgZnJvbSBcIkBhd3MtY2RrL2F3cy1sb2dzXCI7XG5pbXBvcnQgKiBhcyBkZWZhdWx0cyBmcm9tIFwiLi4vaW5kZXhcIjtcbmltcG9ydCB7IG92ZXJyaWRlUHJvcHMgfSBmcm9tIFwiLi4vbGliL3V0aWxzXCI7XG5pbXBvcnQgXCJAYXdzLWNkay9hc3NlcnQvamVzdFwiO1xuXG50ZXN0KFwidGVzdCBraW5lc2lzYW5hbHl0aWNzIG92ZXJyaWRlIGlucHV0UHJvcGVydHlcIiwgKCkgPT4ge1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuXG4gIGNvbnN0IGlucHV0UHJvcGVydHk6IGtpbmVzaXNhbmFseXRpY3MuQ2ZuQXBwbGljYXRpb24uSW5wdXRQcm9wZXJ0eSA9IHtcbiAgICBpbnB1dFNjaGVtYToge1xuICAgICAgcmVjb3JkQ29sdW1uczogW3sgbmFtZTogXCJ4XCIsIHNxbFR5cGU6IFwieVwiIH1dLFxuICAgICAgcmVjb3JkRm9ybWF0OiB7IHJlY29yZEZvcm1hdFR5cGU6IFwiY3N2XCIgfSxcbiAgICB9LFxuICAgIG5hbWVQcmVmaXg6IFwienp6XCIsXG4gIH07XG5cbiAgY29uc3QgZGVmYXVsdFByb3BzOiBraW5lc2lzYW5hbHl0aWNzLkNmbkFwcGxpY2F0aW9uUHJvcHMgPVxuICAgIGRlZmF1bHRzLkRlZmF1bHRDZm5BcHBsaWNhdGlvblByb3BzO1xuXG4gIGNvbnN0IGluUHJvcHM6IGtpbmVzaXNhbmFseXRpY3MuQ2ZuQXBwbGljYXRpb25Qcm9wcyA9IHtcbiAgICBpbnB1dHM6IFtpbnB1dFByb3BlcnR5XSxcbiAgfTtcblxuICBjb25zdCBvdXRQcm9wcyA9IG92ZXJyaWRlUHJvcHMoZGVmYXVsdFByb3BzLCBpblByb3BzKTtcblxuICBuZXcga2luZXNpc2FuYWx5dGljcy5DZm5BcHBsaWNhdGlvbihzdGFjaywgXCJLaW5lc2lzQW5hbHl0aWNzXCIsIG91dFByb3BzKTtcblxuICBleHBlY3Qoc3RhY2spLnRvSGF2ZVJlc291cmNlKFwiQVdTOjpLaW5lc2lzQW5hbHl0aWNzOjpBcHBsaWNhdGlvblwiLCB7XG4gICAgSW5wdXRzOiBbXG4gICAgICB7XG4gICAgICAgIElucHV0U2NoZW1hOiB7XG4gICAgICAgICAgUmVjb3JkQ29sdW1uczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBOYW1lOiBcInhcIixcbiAgICAgICAgICAgICAgU3FsVHlwZTogXCJ5XCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgUmVjb3JkRm9ybWF0OiB7XG4gICAgICAgICAgICBSZWNvcmRGb3JtYXRUeXBlOiBcImNzdlwiLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIE5hbWVQcmVmaXg6IFwienp6XCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0pO1xufSk7XG5cbnRlc3QoXCJUZXN0IGRlZmF1bHQgaW1wbGVtZW50YXRpb25cIiwgKCkgPT4ge1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuXG4gIGNvbnN0IG5ld0ZpcmVob3NlID0gQ3JlYXRlRmlyZWhvc2Uoc3RhY2spO1xuICBjb25zdCBraW5lc2lzUHJvcHM6IGRlZmF1bHRzLkJ1aWxkS2luZXNpc0FuYWx5dGljc0FwcFByb3BzID0ge1xuICAgIGtpbmVzaXNGaXJlaG9zZTogbmV3RmlyZWhvc2UsXG4gICAga2luZXNpc0FuYWx5dGljc1Byb3BzOiB7XG4gICAgICBpbnB1dHM6IFt7XG4gICAgICAgIGlucHV0U2NoZW1hOiB7XG4gICAgICAgICAgcmVjb3JkQ29sdW1uczogW3tcbiAgICAgICAgICAgIG5hbWU6ICd0cycsXG4gICAgICAgICAgICBzcWxUeXBlOiAnVElNRVNUQU1QJyxcbiAgICAgICAgICAgIG1hcHBpbmc6ICckLnRpbWVzdGFtcCdcbiAgICAgICAgICB9LCB7XG4gICAgICAgICAgICBuYW1lOiAndHJpcF9pZCcsXG4gICAgICAgICAgICBzcWxUeXBlOiAnVkFSQ0hBUig2NCknLFxuICAgICAgICAgICAgbWFwcGluZzogJyQudHJpcF9pZCdcbiAgICAgICAgICB9XSxcbiAgICAgICAgICByZWNvcmRGb3JtYXQ6IHtcbiAgICAgICAgICAgIHJlY29yZEZvcm1hdFR5cGU6ICdKU09OJ1xuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVjb3JkRW5jb2Rpbmc6ICdVVEYtOCdcbiAgICAgICAgfSxcbiAgICAgICAgbmFtZVByZWZpeDogJ1NPVVJDRV9TUUxfU1RSRUFNJ1xuICAgICAgfV1cbiAgICB9LFxuICB9O1xuXG4gIGRlZmF1bHRzLmJ1aWxkS2luZXNpc0FuYWx5dGljc0FwcChzdGFjaywga2luZXNpc1Byb3BzKTtcblxuICBleHBlY3Qoc3RhY2spLnRvSGF2ZVJlc291cmNlTGlrZShcIkFXUzo6S2luZXNpc0FuYWx5dGljczo6QXBwbGljYXRpb25cIiwge1xuICAgIElucHV0czogW3tcbiAgICAgIElucHV0U2NoZW1hOiB7XG4gICAgICAgIFJlY29yZENvbHVtbnM6IFt7XG4gICAgICAgICAgTmFtZTogJ3RzJyxcbiAgICAgICAgICBTcWxUeXBlOiAnVElNRVNUQU1QJyxcbiAgICAgICAgICBNYXBwaW5nOiAnJC50aW1lc3RhbXAnXG4gICAgICAgIH0sIHtcbiAgICAgICAgICBOYW1lOiAndHJpcF9pZCcsXG4gICAgICAgICAgU3FsVHlwZTogJ1ZBUkNIQVIoNjQpJyxcbiAgICAgICAgICBNYXBwaW5nOiAnJC50cmlwX2lkJ1xuICAgICAgICB9XSxcbiAgICAgICAgUmVjb3JkRm9ybWF0OiB7XG4gICAgICAgICAgUmVjb3JkRm9ybWF0VHlwZTogJ0pTT04nXG4gICAgICAgIH0sXG4gICAgICAgIFJlY29yZEVuY29kaW5nOiAnVVRGLTgnXG4gICAgICB9LFxuICAgICAgTmFtZVByZWZpeDogJ1NPVVJDRV9TUUxfU1RSRUFNJ1xuICAgIH1dXG4gIH0pO1xufSk7XG5cbi8vIHRlc3QoJ1Rlc3QgZm9yIGN1c3RvbWVyIG92ZXJyaWRlcycsIHtcbi8vIHRlc3QoJ0NoZWNrIHBvbGljeSBjcmVhdGVkJywge1xuXG5mdW5jdGlvbiBDcmVhdGVGaXJlaG9zZShzdGFjazogU3RhY2spOiBraW5lc2lzRmlyZWhvc2UuQ2ZuRGVsaXZlcnlTdHJlYW0ge1xuICAvLyBDcmVhdGluZyB0aGUgRmlyZWhvc2UgaXMga2luZCBvZiBhIGJpZyBkZWFsLiBGaXJlaG9zZVRvUzMgaXMgbm90IHJlYWRpbHkgYXZhaWxhYmxlIGhlcmUgaW4gY29yZSxcbiAgLy8gc28gdGhpcyByb3V0aW5lIHByZXR0eSBtdWNoIHJlcGxpY2F0ZXMgaXQuIElmIHRoaXMgZnVuY3Rpb24gY2Vhc2VzIHRvIHdvcmsgY29ycmVjdGx5LCBsb29rIGF0XG4gIC8vIEZpcmVob3NlVG9TMyBhbmQgc2VlIGlmIHRoYXQgY2hhbmdlZC5cbiAgY29uc3QgZGVzdGluYXRpb25CdWNrZXQgPSBkZWZhdWx0cy5DcmVhdGVTY3JhcEJ1Y2tldChzdGFjaywge1xuICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICBhdXRvRGVsZXRlT2JqZWN0czogdHJ1ZSxcbiAgfSk7XG5cbiAgY29uc3Qga2luZXNpc0ZpcmVob3NlTG9nR3JvdXAgPSBkZWZhdWx0cy5idWlsZExvZ0dyb3VwKFxuICAgIHN0YWNrLFxuICAgIFwiZmlyZWhvc2UtbG9nLWdyb3VwXCIsXG4gICAge31cbiAgKTtcblxuICBjb25zdCBjd0xvZ1N0cmVhbTogbG9ncy5Mb2dTdHJlYW0gPSBraW5lc2lzRmlyZWhvc2VMb2dHcm91cC5hZGRTdHJlYW0oXG4gICAgXCJmaXJlaG9zZS1sb2ctc3RyZWFtXCJcbiAgKTtcblxuICBjb25zdCBmaXJlaG9zZVJvbGUgPSBuZXcgaWFtLlJvbGUoc3RhY2ssIFwidGVzdC1yb2xlXCIsIHtcbiAgICBhc3N1bWVkQnk6IG5ldyBpYW0uU2VydmljZVByaW5jaXBhbChcImZpcmVob3NlLmFtYXpvbmF3cy5jb21cIiksXG4gIH0pO1xuXG4gIC8vIFNldHVwIHRoZSBJQU0gcG9saWN5IGZvciBLaW5lc2lzIEZpcmVob3NlXG4gIGNvbnN0IGZpcmVob3NlUG9saWN5ID0gbmV3IGlhbS5Qb2xpY3koc3RhY2ssIFwiS2luZXNpc0ZpcmVob3NlUG9saWN5XCIsIHtcbiAgICBzdGF0ZW1lbnRzOiBbXG4gICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICBcInMzOkFib3J0TXVsdGlwYXJ0VXBsb2FkXCIsXG4gICAgICAgICAgXCJzMzpHZXRCdWNrZXRMb2NhdGlvblwiLFxuICAgICAgICAgIFwiczM6R2V0T2JqZWN0XCIsXG4gICAgICAgICAgXCJzMzpMaXN0QnVja2V0XCIsXG4gICAgICAgICAgXCJzMzpMaXN0QnVja2V0TXVsdGlwYXJ0VXBsb2Fkc1wiLFxuICAgICAgICAgIFwiczM6UHV0T2JqZWN0XCIsXG4gICAgICAgIF0sXG4gICAgICAgIHJlc291cmNlczogW1xuICAgICAgICAgIGAke2Rlc3RpbmF0aW9uQnVja2V0LmJ1Y2tldEFybn1gLFxuICAgICAgICAgIGAke2Rlc3RpbmF0aW9uQnVja2V0LmJ1Y2tldEFybn0vKmAsXG4gICAgICAgIF0sXG4gICAgICB9KSxcbiAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgYWN0aW9uczogW1wibG9nczpQdXRMb2dFdmVudHNcIl0sXG4gICAgICAgIHJlc291cmNlczogW1xuICAgICAgICAgIGBhcm46JHtjZGsuQXdzLlBBUlRJVElPTn06bG9nczoke2Nkay5Bd3MuUkVHSU9OfToke2Nkay5Bd3MuQUNDT1VOVF9JRH06bG9nLWdyb3VwOiR7a2luZXNpc0ZpcmVob3NlTG9nR3JvdXAubG9nR3JvdXBOYW1lfTpsb2ctc3RyZWFtOiR7Y3dMb2dTdHJlYW0ubG9nU3RyZWFtTmFtZX1gLFxuICAgICAgICBdLFxuICAgICAgfSksXG4gICAgXSxcbiAgfSk7XG5cbiAgLy8gQXR0YWNoIHBvbGljeSB0byByb2xlXG4gIGZpcmVob3NlUG9saWN5LmF0dGFjaFRvUm9sZShmaXJlaG9zZVJvbGUpO1xuXG4gIGNvbnN0IGF3c01hbmFnZWRLZXk6IGttcy5JS2V5ID0ga21zLkFsaWFzLmZyb21BbGlhc05hbWUoXG4gICAgc3RhY2ssXG4gICAgXCJhd3MtbWFuYWdlZC1rZXlcIixcbiAgICBcImFsaWFzL2F3cy9zM1wiXG4gICk7XG5cbiAgY29uc3QgZGVmYXVsdEtpbmVzaXNGaXJlaG9zZVByb3BzOiBraW5lc2lzRmlyZWhvc2UuQ2ZuRGVsaXZlcnlTdHJlYW1Qcm9wcyA9IGRlZmF1bHRzLkRlZmF1bHRDZm5EZWxpdmVyeVN0cmVhbVByb3BzKFxuICAgIGRlc3RpbmF0aW9uQnVja2V0LmJ1Y2tldEFybixcbiAgICBmaXJlaG9zZVJvbGUucm9sZUFybixcbiAgICBraW5lc2lzRmlyZWhvc2VMb2dHcm91cC5sb2dHcm91cE5hbWUsXG4gICAgY3dMb2dTdHJlYW0ubG9nU3RyZWFtTmFtZSxcbiAgICBhd3NNYW5hZ2VkS2V5XG4gICk7XG5cbiAgZGVzdGluYXRpb25CdWNrZXQuZ3JhbnRQdXQoZmlyZWhvc2VSb2xlKTtcblxuICBjb25zdCBmaXJlaG9zZSA9IG5ldyBraW5lc2lzRmlyZWhvc2UuQ2ZuRGVsaXZlcnlTdHJlYW0oXG4gICAgc3RhY2ssXG4gICAgXCJLaW5lc2lzRmlyZWhvc2VcIixcbiAgICBkZWZhdWx0S2luZXNpc0ZpcmVob3NlUHJvcHNcbiAgKTtcbiAgcmV0dXJuIGZpcmVob3NlO1xufVxuIl19
@@ -14,8 +14,10 @@
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  // Imports
16
16
  const core_1 = require("@aws-cdk/core");
17
+ const sqs = require("@aws-cdk/aws-sqs");
17
18
  const defaults = require("../");
18
19
  require("@aws-cdk/assert/jest");
20
+ const sqs_helper_1 = require("../lib/sqs-helper");
19
21
  // --------------------------------------------------------------
20
22
  // Test deployment w/ imported encryption key
21
23
  // --------------------------------------------------------------
@@ -54,4 +56,100 @@ test('Test deployment without imported encryption key', () => {
54
56
  KmsMasterKeyId: "alias/aws/sqs"
55
57
  });
56
58
  });
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3FzLWhlbHBlci50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic3FzLWhlbHBlci50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7R0FXRzs7QUFFSCxVQUFVO0FBQ1Ysd0NBQXNDO0FBQ3RDLGdDQUFnQztBQUNoQyxnQ0FBOEI7QUFFOUIsaUVBQWlFO0FBQ2pFLDZDQUE2QztBQUM3QyxpRUFBaUU7QUFDakUsSUFBSSxDQUFDLDRDQUE0QyxFQUFFLEdBQUcsRUFBRTtJQUN0RCxRQUFRO0lBQ1IsTUFBTSxLQUFLLEdBQUcsSUFBSSxZQUFLLEVBQUUsQ0FBQztJQUMxQixxQkFBcUI7SUFDckIsUUFBUSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUU7UUFDM0MsVUFBVSxFQUFFO1lBQ1YsU0FBUyxFQUFFLGdCQUFnQjtTQUM1QjtRQUNELHNDQUFzQyxFQUFFLElBQUk7UUFDNUMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUM7S0FDbEQsQ0FBQyxDQUFDO0lBRUgsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsRUFBRTtRQUM5QyxTQUFTLEVBQUUsZ0JBQWdCO0tBQzVCLENBQUMsQ0FBQztJQUNILE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxjQUFjLENBQUMsZUFBZSxFQUFFO1FBQzVDLGlCQUFpQixFQUFFLElBQUk7S0FDeEIsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUM7QUFFSCxpRUFBaUU7QUFDakUsa0RBQWtEO0FBQ2xELGlFQUFpRTtBQUNqRSxJQUFJLENBQUMsaURBQWlELEVBQUUsR0FBRyxFQUFFO0lBQzNELFFBQVE7SUFDUixNQUFNLEtBQUssR0FBRyxJQUFJLFlBQUssRUFBRSxDQUFDO0lBQzFCLHFCQUFxQjtJQUNyQixRQUFRLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxnQkFBZ0IsRUFBRTtRQUMzQyxVQUFVLEVBQUU7WUFDVixTQUFTLEVBQUUsZ0JBQWdCO1NBQzVCO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsRUFBRTtRQUM5QyxTQUFTLEVBQUUsZ0JBQWdCO1FBQzNCLGNBQWMsRUFBRSxlQUFlO0tBQ2hDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgQ29weXJpZ2h0IDIwMjIgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKS4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuICogIHdpdGggdGhlIExpY2Vuc2UuIEEgY29weSBvZiB0aGUgTGljZW5zZSBpcyBsb2NhdGVkIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiAgb3IgaW4gdGhlICdsaWNlbnNlJyBmaWxlIGFjY29tcGFueWluZyB0aGlzIGZpbGUuIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAnQVMgSVMnIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVNcbiAqICBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xuICogIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG4vLyBJbXBvcnRzXG5pbXBvcnQgeyBTdGFjayB9IGZyb20gXCJAYXdzLWNkay9jb3JlXCI7XG5pbXBvcnQgKiBhcyBkZWZhdWx0cyBmcm9tICcuLi8nO1xuaW1wb3J0ICdAYXdzLWNkay9hc3NlcnQvamVzdCc7XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBUZXN0IGRlcGxveW1lbnQgdy8gaW1wb3J0ZWQgZW5jcnlwdGlvbiBrZXlcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG50ZXN0KCdUZXN0IGRlcGxveW1lbnQgdy8gaW1wb3J0ZWQgZW5jcnlwdGlvbiBrZXknLCAoKSA9PiB7XG4gIC8vIFN0YWNrXG4gIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKCk7XG4gIC8vIEhlbHBlciBkZWNsYXJhdGlvblxuICBkZWZhdWx0cy5idWlsZFF1ZXVlKHN0YWNrLCAnZXhpc3RpbmctcXVldWUnLCB7XG4gICAgcXVldWVQcm9wczoge1xuICAgICAgcXVldWVOYW1lOiAnZXhpc3RpbmctcXVldWUnXG4gICAgfSxcbiAgICBlbmFibGVFbmNyeXB0aW9uV2l0aEN1c3RvbWVyTWFuYWdlZEtleTogdHJ1ZSxcbiAgICBlbmNyeXB0aW9uS2V5OiBkZWZhdWx0cy5idWlsZEVuY3J5cHRpb25LZXkoc3RhY2spXG4gIH0pO1xuXG4gIGV4cGVjdChzdGFjaykudG9IYXZlUmVzb3VyY2UoXCJBV1M6OlNRUzo6UXVldWVcIiwge1xuICAgIFF1ZXVlTmFtZTogXCJleGlzdGluZy1xdWV1ZVwiXG4gIH0pO1xuICBleHBlY3Qoc3RhY2spLnRvSGF2ZVJlc291cmNlKFwiQVdTOjpLTVM6OktleVwiLCB7XG4gICAgRW5hYmxlS2V5Um90YXRpb246IHRydWVcbiAgfSk7XG59KTtcblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFRlc3QgZGVwbG95bWVudCB3aXRob3V0IGltcG9ydGVkIGVuY3J5cHRpb24ga2V5XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxudGVzdCgnVGVzdCBkZXBsb3ltZW50IHdpdGhvdXQgaW1wb3J0ZWQgZW5jcnlwdGlvbiBrZXknLCAoKSA9PiB7XG4gIC8vIFN0YWNrXG4gIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKCk7XG4gIC8vIEhlbHBlciBkZWNsYXJhdGlvblxuICBkZWZhdWx0cy5idWlsZFF1ZXVlKHN0YWNrLCAnZXhpc3RpbmctcXVldWUnLCB7XG4gICAgcXVldWVQcm9wczoge1xuICAgICAgcXVldWVOYW1lOiAnZXhpc3RpbmctcXVldWUnXG4gICAgfVxuICB9KTtcblxuICBleHBlY3Qoc3RhY2spLnRvSGF2ZVJlc291cmNlKFwiQVdTOjpTUVM6OlF1ZXVlXCIsIHtcbiAgICBRdWV1ZU5hbWU6IFwiZXhpc3RpbmctcXVldWVcIixcbiAgICBLbXNNYXN0ZXJLZXlJZDogXCJhbGlhcy9hd3Mvc3FzXCJcbiAgfSk7XG59KTtcbiJdfQ==
59
+ // --------------------------------------------------------------
60
+ // Test deployment w/ construct created encryption key
61
+ // --------------------------------------------------------------
62
+ test('Test deployment w/ construct created encryption key', () => {
63
+ // Stack
64
+ const stack = new core_1.Stack();
65
+ // Helper declaration
66
+ const [queue, key] = defaults.buildQueue(stack, 'existing-queue', {
67
+ queueProps: {
68
+ queueName: 'existing-queue'
69
+ },
70
+ enableEncryptionWithCustomerManagedKey: true,
71
+ });
72
+ expect(stack).toHaveResource("AWS::SQS::Queue", {
73
+ QueueName: "existing-queue"
74
+ });
75
+ expect(stack).toHaveResource("AWS::KMS::Key", {
76
+ EnableKeyRotation: true
77
+ });
78
+ expect(queue).toBeDefined();
79
+ expect(key).toBeDefined();
80
+ });
81
+ test('Test DLQ when existing Queue Provided', () => {
82
+ const stack = new core_1.Stack();
83
+ const existingQueue = new sqs.Queue(stack, 'test-queue');
84
+ const buildDlqProps = {
85
+ existingQueueObj: existingQueue,
86
+ };
87
+ const returnedQueueu = defaults.buildDeadLetterQueue(stack, buildDlqProps);
88
+ expect(returnedQueueu).toBeUndefined();
89
+ expect(stack).toCountResources("AWS::SQS::Queue", 1);
90
+ });
91
+ test('Test DLQ with all defaults', () => {
92
+ const stack = new core_1.Stack();
93
+ sqs_helper_1.buildDeadLetterQueue(stack, {});
94
+ expect(stack).toHaveResourceLike("AWS::SQS::Queue", {
95
+ KmsMasterKeyId: "alias/aws/sqs"
96
+ });
97
+ });
98
+ test("Test DLQ with a provided properties", () => {
99
+ const stack = new core_1.Stack();
100
+ const testQueueName = "test-unique252";
101
+ const returnedQueue = sqs_helper_1.buildDeadLetterQueue(stack, {
102
+ deadLetterQueueProps: {
103
+ queueName: testQueueName,
104
+ },
105
+ });
106
+ expect(stack).toHaveResourceLike("AWS::SQS::Queue", {
107
+ QueueName: testQueueName,
108
+ });
109
+ expect(returnedQueue).toBeDefined();
110
+ });
111
+ test('Test DLQ with a provided maxReceiveCount', () => {
112
+ const stack = new core_1.Stack();
113
+ const testMaxReceiveCount = 31;
114
+ const dlqInterface = sqs_helper_1.buildDeadLetterQueue(stack, {
115
+ maxReceiveCount: testMaxReceiveCount
116
+ });
117
+ expect(dlqInterface === null || dlqInterface === void 0 ? void 0 : dlqInterface.maxReceiveCount).toEqual(testMaxReceiveCount);
118
+ });
119
+ test('Test returning an existing Queue', () => {
120
+ const stack = new core_1.Stack();
121
+ const testQueueName = 'existing-queue';
122
+ const existingQueue = new sqs.Queue(stack, 'test-queue', {
123
+ queueName: testQueueName
124
+ });
125
+ const [returnedQueue] = defaults.buildQueue(stack, 'newQueue', {
126
+ existingQueueObj: existingQueue
127
+ });
128
+ expect(stack).toHaveResourceLike("AWS::SQS::Queue", {
129
+ QueueName: testQueueName,
130
+ });
131
+ expect(existingQueue.queueName).toEqual(returnedQueue.queueName);
132
+ });
133
+ test('Test creating a queue with a DLQ', () => {
134
+ const stack = new core_1.Stack();
135
+ const dlqInterface = sqs_helper_1.buildDeadLetterQueue(stack, {});
136
+ const [newQueue] = sqs_helper_1.buildQueue(stack, 'new-queue', {
137
+ deadLetterQueue: dlqInterface
138
+ });
139
+ expect(stack).toCountResources("AWS::SQS::Queue", 2);
140
+ expect(newQueue).toBeDefined();
141
+ expect(newQueue.deadLetterQueue).toBeDefined();
142
+ });
143
+ test('Test creating a FIFO queue', () => {
144
+ const stack = new core_1.Stack();
145
+ const [newFifoQueue] = sqs_helper_1.buildQueue(stack, 'new-queue', {
146
+ queueProps: {
147
+ fifo: true
148
+ }
149
+ });
150
+ expect(stack).toHaveResourceLike("AWS::SQS::Queue", {
151
+ FifoQueue: true
152
+ });
153
+ expect(newFifoQueue.fifo).toBe(true);
154
+ });
155
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3FzLWhlbHBlci50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic3FzLWhlbHBlci50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7R0FXRzs7QUFFSCxVQUFVO0FBQ1Ysd0NBQXNDO0FBQ3RDLHdDQUF3QztBQUN4QyxnQ0FBZ0M7QUFDaEMsZ0NBQThCO0FBQzlCLGtEQUFxRTtBQUVyRSxpRUFBaUU7QUFDakUsNkNBQTZDO0FBQzdDLGlFQUFpRTtBQUNqRSxJQUFJLENBQUMsNENBQTRDLEVBQUUsR0FBRyxFQUFFO0lBQ3RELFFBQVE7SUFDUixNQUFNLEtBQUssR0FBRyxJQUFJLFlBQUssRUFBRSxDQUFDO0lBQzFCLHFCQUFxQjtJQUNyQixRQUFRLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxnQkFBZ0IsRUFBRTtRQUMzQyxVQUFVLEVBQUU7WUFDVixTQUFTLEVBQUUsZ0JBQWdCO1NBQzVCO1FBQ0Qsc0NBQXNDLEVBQUUsSUFBSTtRQUM1QyxhQUFhLEVBQUUsUUFBUSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQztLQUNsRCxDQUFDLENBQUM7SUFFSCxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsY0FBYyxDQUFDLGlCQUFpQixFQUFFO1FBQzlDLFNBQVMsRUFBRSxnQkFBZ0I7S0FDNUIsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLGNBQWMsQ0FBQyxlQUFlLEVBQUU7UUFDNUMsaUJBQWlCLEVBQUUsSUFBSTtLQUN4QixDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQztBQUVILGlFQUFpRTtBQUNqRSxrREFBa0Q7QUFDbEQsaUVBQWlFO0FBQ2pFLElBQUksQ0FBQyxpREFBaUQsRUFBRSxHQUFHLEVBQUU7SUFDM0QsUUFBUTtJQUNSLE1BQU0sS0FBSyxHQUFHLElBQUksWUFBSyxFQUFFLENBQUM7SUFDMUIscUJBQXFCO0lBQ3JCLFFBQVEsQ0FBQyxVQUFVLENBQUMsS0FBSyxF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RSxDQUFDO0lBRTFCLE1BQU0sWUFBWSxHQUFHLGlDQUFvQixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUVyRCxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsdUJBQVUsQ0FBQyxLQUFLLEVBQUUsV0FBVyxFQUFFO1FBQ2hELGVBQWUsRUFBRSxZQUFZO0tBQzlCLENBQUMsQ0FBQztJQUVILE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNyRCxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDL0IsTUFBTSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztBQUNqRCxDQUFDLENBQUMsQ0FBQztBQUVILElBQUksQ0FBQyw0QkFBNEIsRUFBRSxHQUFHLEVBQUU7SUFDdEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxZQUFLLEVBQUUsQ0FBQztJQUUxQixNQUFNLENBQUMsWUFBWSxDQUFDLEdBQUcsdUJBQVUsQ0FBQyxLQUFLLEVBQUUsV0FBVyxFQUFFO1FBQ3BELFVBQVUsRUFBRTtZQUNWLElBQUksRUFBRSxJQUFJO1NBQ1g7S0FDRixDQUFDLENBQUM7SUFFSCxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsa0JBQWtCLENBQUMsaUJBQWlCLEVBQUU7UUFDbEQsU0FBUyxFQUFFLElBQUk7S0FDaEIsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDdkMsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICBDb3B5cmlnaHQgMjAyMiBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8vIEltcG9ydHNcbmltcG9ydCB7IFN0YWNrIH0gZnJvbSBcIkBhd3MtY2RrL2NvcmVcIjtcbmltcG9ydCAqIGFzIHNxcyBmcm9tICdAYXdzLWNkay9hd3Mtc3FzJztcbmltcG9ydCAqIGFzIGRlZmF1bHRzIGZyb20gJy4uLyc7XG5pbXBvcnQgJ0Bhd3MtY2RrL2Fzc2VydC9qZXN0JztcbmltcG9ydCB7IGJ1aWxkRGVhZExldHRlclF1ZXVlLCBidWlsZFF1ZXVlIH0gZnJvbSBcIi4uL2xpYi9zcXMtaGVscGVyXCI7XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBUZXN0IGRlcGxveW1lbnQgdy8gaW1wb3J0ZWQgZW5jcnlwdGlvbiBrZXlcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG50ZXN0KCdUZXN0IGRlcGxveW1lbnQgdy8gaW1wb3J0ZWQgZW5jcnlwdGlvbiBrZXknLCAoKSA9PiB7XG4gIC8vIFN0YWNrXG4gIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKCk7XG4gIC8vIEhlbHBlciBkZWNsYXJhdGlvblxuICBkZWZhdWx0cy5idWlsZFF1ZXVlKHN0YWNrLCAnZXhpc3RpbmctcXVldWUnLCB7XG4gICAgcXVldWVQcm9wczoge1xuICAgICAgcXVldWVOYW1lOiAnZXhpc3RpbmctcXVldWUnXG4gICAgfSxcbiAgICBlbmFibGVFbmNyeXB0aW9uV2l0aEN1c3RvbWVyTWFuYWdlZEtleTogdHJ1ZSxcbiAgICBlbmNyeXB0aW9uS2V5OiBkZWZhdWx0cy5idWlsZEVuY3J5cHRpb25LZXkoc3RhY2spXG4gIH0pO1xuXG4gIGV4cGVjdChzdGFjaykudG9IYXZlUmVzb3VyY2UoXCJBV1M6OlNRUzo6UXVldWVcIiwge1xuICAgIFF1ZXVlTmFtZTogXCJleGlzdGluZy1xdWV1ZVwiXG4gIH0pO1xuICBleHBlY3Qoc3RhY2spLnRvSGF2ZVJlc291cmNlKFwiQVdTOjpLTVM6OktleVwiLCB7XG4gICAgRW5hYmxlS2V5Um90YXRpb246IHRydWVcbiAgfSk7XG59KTtcblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFRlc3QgZGVwbG95bWVudCB3aXRob3V0IGltcG9ydGVkIGVuY3J5cHRpb24ga2V5XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxudGVzdCgnVGVzdCBkZXBsb3ltZW50IHdpdGhvdXQgaW1wb3J0ZWQgZW5jcnlwdGlvbiBrZXknLCAoKSA9PiB7XG4gIC8vIFN0YWNrXG4gIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKCk7XG4gIC8vIEhlbHBlciBkZWNsYXJhdGlvblxuICBkZWZhdWx0cy5idWlsZFF1ZXVlKHN0YWNrLCAnZXhpc3RpbmctcXVldWUnLCB7XG4gICAgcXVldWVQcm9wczoge1xuICAgICAgcXVldWVOYW1lOiAnZXhpc3RpbmctcXVldWUnXG4gICAgfVxuICB9KTtcblxuICBleHBlY3Qoc3RhY2spLnRvSGF2ZVJlc291cmNlKFwiQVdTOjpTUVM6OlF1ZXVlXCIsIHtcbiAgICBRdWV1ZU5hbWU6IFwiZXhpc3RpbmctcXVldWVcIixcbiAgICBLbXNNYXN0ZXJLZXlJZDogXCJhbGlhcy9hd3Mvc3FzXCJcbiAgfSk7XG59KTtcblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFRlc3QgZGVwbG95bWVudCB3LyBjb25zdHJ1Y3QgY3JlYXRlZCBlbmNyeXB0aW9uIGtleVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbnRlc3QoJ1Rlc3QgZGVwbG95bWVudCB3LyBjb25zdHJ1Y3QgY3JlYXRlZCBlbmNyeXB0aW9uIGtleScsICgpID0+IHtcbiAgLy8gU3RhY2tcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcbiAgLy8gSGVscGVyIGRlY2xhcmF0aW9uXG4gIGNvbnN0IFtxdWV1ZSwga2V5XSA9IGRlZmF1bHRzLmJ1aWxkUXVldWUoc3RhY2ssICdleGlzdGluZy1xdWV1ZScsIHtcbiAgICBxdWV1ZVByb3BzOiB7XG4gICAgICBxdWV1ZU5hbWU6ICdleGlzdGluZy1xdWV1ZSdcbiAgICB9LFxuICAgIGVuYWJsZUVuY3J5cHRpb25XaXRoQ3VzdG9tZXJNYW5hZ2VkS2V5OiB0cnVlLFxuICB9KTtcblxuICBleHBlY3Qoc3RhY2spLnRvSGF2ZVJlc291cmNlKFwiQVdTOjpTUVM6OlF1ZXVlXCIsIHtcbiAgICBRdWV1ZU5hbWU6IFwiZXhpc3RpbmctcXVldWVcIlxuICB9KTtcbiAgZXhwZWN0KHN0YWNrKS50b0hhdmVSZXNvdXJjZShcIkFXUzo6S01TOjpLZXlcIiwge1xuICAgIEVuYWJsZUtleVJvdGF0aW9uOiB0cnVlXG4gIH0pO1xuICBleHBlY3QocXVldWUpLnRvQmVEZWZpbmVkKCk7XG4gIGV4cGVjdChrZXkpLnRvQmVEZWZpbmVkKCk7XG59KTtcblxudGVzdCgnVGVzdCBETFEgd2hlbiBleGlzdGluZyBRdWV1ZSBQcm92aWRlZCcsICgpID0+IHtcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcblxuICBjb25zdCBleGlzdGluZ1F1ZXVlID0gbmV3IHNxcy5RdWV1ZShzdGFjaywgJ3Rlc3QtcXVldWUnKTtcbiAgY29uc3QgYnVpbGREbHFQcm9wczogZGVmYXVsdHMuQnVpbGREZWFkTGV0dGVyUXVldWVQcm9wcyA9IHtcbiAgICBleGlzdGluZ1F1ZXVlT2JqOiBleGlzdGluZ1F1ZXVlLFxuICB9O1xuXG4gIGNvbnN0IHJldHVybmVkUXVldWV1ID0gZGVmYXVsdHMuYnVpbGREZWFkTGV0dGVyUXVldWUoc3RhY2ssIGJ1aWxkRGxxUHJvcHMpO1xuXG4gIGV4cGVjdChyZXR1cm5lZFF1ZXVldSkudG9CZVVuZGVmaW5lZCgpO1xuICBleHBlY3Qoc3RhY2spLnRvQ291bnRSZXNvdXJjZXMoXCJBV1M6OlNRUzo6UXVldWVcIiwgMSk7XG59KTtcblxudGVzdCgnVGVzdCBETFEgd2l0aCBhbGwgZGVmYXVsdHMnLCAoKSA9PiB7XG4gIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKCk7XG5cbiAgYnVpbGREZWFkTGV0dGVyUXVldWUoc3RhY2ssIHt9KTtcbiAgZXhwZWN0KHN0YWNrKS50b0hhdmVSZXNvdXJjZUxpa2UoXCJBV1M6OlNRUzo6UXVldWVcIiwge1xuICAgIEttc01hc3RlcktleUlkOiBcImFsaWFzL2F3cy9zcXNcIlxuICB9KTtcbn0pO1xuXG50ZXN0KFwiVGVzdCBETFEgd2l0aCBhIHByb3ZpZGVkIHByb3BlcnRpZXNcIiwgKCkgPT4ge1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuICBjb25zdCB0ZXN0UXVldWVOYW1lID0gXCJ0ZXN0LXVuaXF1ZTI1MlwiO1xuXG4gIGNvbnN0IHJldHVybmVkUXVldWUgPSBidWlsZERlYWRMZXR0ZXJRdWV1ZShzdGFjaywge1xuICAgIGRlYWRMZXR0ZXJRdWV1ZVByb3BzOiB7XG4gICAgICBxdWV1ZU5hbWU6IHRlc3RRdWV1ZU5hbWUsXG4gICAgfSxcbiAgfSk7XG4gIGV4cGVjdChzdGFjaykudG9IYXZlUmVzb3VyY2VMaWtlKFwiQVdTOjpTUVM6OlF1ZXVlXCIsIHtcbiAgICBRdWV1ZU5hbWU6IHRlc3RRdWV1ZU5hbWUsXG4gIH0pO1xuICBleHBlY3QocmV0dXJuZWRRdWV1ZSkudG9CZURlZmluZWQoKTtcbn0pO1xuXG50ZXN0KCdUZXN0IERMUSB3aXRoIGEgcHJvdmlkZWQgbWF4UmVjZWl2ZUNvdW50JywgKCkgPT4ge1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuICBjb25zdCB0ZXN0TWF4UmVjZWl2ZUNvdW50ID0gMzE7XG5cbiAgY29uc3QgZGxxSW50ZXJmYWNlID0gYnVpbGREZWFkTGV0dGVyUXVldWUoc3RhY2ssIHtcbiAgICBtYXhSZWNlaXZlQ291bnQ6IHRlc3RNYXhSZWNlaXZlQ291bnRcbiAgfSk7XG4gIGV4cGVjdChkbHFJbnRlcmZhY2U/Lm1heFJlY2VpdmVDb3VudCkudG9FcXVhbCh0ZXN0TWF4UmVjZWl2ZUNvdW50KTtcbn0pO1xuXG50ZXN0KCdUZXN0IHJldHVybmluZyBhbiBleGlzdGluZyBRdWV1ZScsICgpID0+IHtcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcbiAgY29uc3QgdGVzdFF1ZXVlTmFtZSA9ICdleGlzdGluZy1xdWV1ZSc7XG5cbiAgY29uc3QgZXhpc3RpbmdRdWV1ZSA9IG5ldyBzcXMuUXVldWUoc3RhY2ssICd0ZXN0LXF1ZXVlJywge1xuICAgIHF1ZXVlTmFtZTogdGVzdFF1ZXVlTmFtZVxuICB9KTtcblxuICBjb25zdCBbcmV0dXJuZWRRdWV1ZV0gPSBkZWZhdWx0cy5idWlsZFF1ZXVlKHN0YWNrLCAnbmV3UXVldWUnLCB7XG4gICAgZXhpc3RpbmdRdWV1ZU9iajogZXhpc3RpbmdRdWV1ZVxuICB9KTtcblxuICBleHBlY3Qoc3RhY2spLnRvSGF2ZVJlc291cmNlTGlrZShcIkFXUzo6U1FTOjpRdWV1ZVwiLCB7XG4gICAgUXVldWVOYW1lOiB0ZXN0UXVldWVOYW1lLFxuICB9KTtcbiAgZXhwZWN0KGV4aXN0aW5nUXVldWUucXVldWVOYW1lKS50b0VxdWFsKHJldHVybmVkUXVldWUucXVldWVOYW1lKTtcbn0pO1xuXG50ZXN0KCdUZXN0IGNyZWF0aW5nIGEgcXVldWUgd2l0aCBhIERMUScsICgpID0+IHtcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcblxuICBjb25zdCBkbHFJbnRlcmZhY2UgPSBidWlsZERlYWRMZXR0ZXJRdWV1ZShzdGFjaywge30pO1xuXG4gIGNvbnN0IFtuZXdRdWV1ZV0gPSBidWlsZFF1ZXVlKHN0YWNrLCAnbmV3LXF1ZXVlJywge1xuICAgIGRlYWRMZXR0ZXJRdWV1ZTogZGxxSW50ZXJmYWNlXG4gIH0pO1xuXG4gIGV4cGVjdChzdGFjaykudG9Db3VudFJlc291cmNlcyhcIkFXUzo6U1FTOjpRdWV1ZVwiLCAyKTtcbiAgZXhwZWN0KG5ld1F1ZXVlKS50b0JlRGVmaW5lZCgpO1xuICBleHBlY3QobmV3UXVldWUuZGVhZExldHRlclF1ZXVlKS50b0JlRGVmaW5lZCgpO1xufSk7XG5cbnRlc3QoJ1Rlc3QgY3JlYXRpbmcgYSBGSUZPIHF1ZXVlJywgKCkgPT4ge1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuXG4gIGNvbnN0IFtuZXdGaWZvUXVldWVdID0gYnVpbGRRdWV1ZShzdGFjaywgJ25ldy1xdWV1ZScsIHtcbiAgICBxdWV1ZVByb3BzOiB7XG4gICAgICBmaWZvOiB0cnVlXG4gICAgfVxuICB9KTtcblxuICBleHBlY3Qoc3RhY2spLnRvSGF2ZVJlc291cmNlTGlrZShcIkFXUzo6U1FTOjpRdWV1ZVwiLCB7XG4gICAgRmlmb1F1ZXVlOiB0cnVlXG4gIH0pO1xuICBleHBlY3QobmV3Rmlmb1F1ZXVlLmZpZm8pLnRvQmUodHJ1ZSk7XG59KTtcbiJdfQ==