@aws-solutions-constructs/aws-cloudfront-s3 2.0.0-rc.1 → 2.2.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.
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright 2022 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
+ // Imports
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
+ // Setup
20
+ const app = new aws_cdk_lib_1.App();
21
+ const stack = new aws_cdk_lib_1.Stack(app, core_1.generateIntegStackName(__filename));
22
+ stack.templateOptions.description = 'Integration Test for originPath with aws-cloudfront-s3';
23
+ new lib_1.CloudFrontToS3(stack, 'test-cloudfront-s3', {
24
+ originPath: '/testPath'
25
+ });
26
+ // Synth
27
+ app.synth();
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWcuY3VzdG9tLW9yaWdpblBhdGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbnRlZy5jdXN0b20tb3JpZ2luUGF0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7O0FBRUgsVUFBVTtBQUNWLDZDQUF5QztBQUN6QyxnQ0FBd0M7QUFDeEMseURBQXdFO0FBRXhFLFFBQVE7QUFDUixNQUFNLEdBQUcsR0FBRyxJQUFJLGlCQUFHLEVBQUUsQ0FBQztBQUN0QixNQUFNLEtBQUssR0FBRyxJQUFJLG1CQUFLLENBQUMsR0FBRyxFQUFFLDZCQUFzQixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7QUFDakUsS0FBSyxDQUFDLGVBQWUsQ0FBQyxXQUFXLEdBQUcsd0RBQXdELENBQUM7QUFFN0YsSUFBSSxvQkFBYyxDQUFDLEtBQUssRUFBRSxvQkFBb0IsRUFBRTtJQUM5QyxVQUFVLEVBQUUsV0FBVztDQUN4QixDQUFDLENBQUM7QUFFSCxRQUFRO0FBQ1IsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgQ29weXJpZ2h0IDIwMjIgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKS4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuICogIHdpdGggdGhlIExpY2Vuc2UuIEEgY29weSBvZiB0aGUgTGljZW5zZSBpcyBsb2NhdGVkIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiAgb3IgaW4gdGhlICdsaWNlbnNlJyBmaWxlIGFjY29tcGFueWluZyB0aGlzIGZpbGUuIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAnQVMgSVMnIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVNcbiAqICBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xuICogIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG4vLyBJbXBvcnRzXG5pbXBvcnQgeyBBcHAsIFN0YWNrIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBDbG91ZEZyb250VG9TMyB9IGZyb20gXCIuLi9saWJcIjtcbmltcG9ydCB7IGdlbmVyYXRlSW50ZWdTdGFja05hbWUgfSBmcm9tICdAYXdzLXNvbHV0aW9ucy1jb25zdHJ1Y3RzL2NvcmUnO1xuXG4vLyBTZXR1cFxuY29uc3QgYXBwID0gbmV3IEFwcCgpO1xuY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soYXBwLCBnZW5lcmF0ZUludGVnU3RhY2tOYW1lKF9fZmlsZW5hbWUpKTtcbnN0YWNrLnRlbXBsYXRlT3B0aW9ucy5kZXNjcmlwdGlvbiA9ICdJbnRlZ3JhdGlvbiBUZXN0IGZvciBvcmlnaW5QYXRoIHdpdGggYXdzLWNsb3VkZnJvbnQtczMnO1xuXG5uZXcgQ2xvdWRGcm9udFRvUzMoc3RhY2ssICd0ZXN0LWNsb3VkZnJvbnQtczMnLCB7XG4gIG9yaWdpblBhdGg6ICcvdGVzdFBhdGgnXG59KTtcblxuLy8gU3ludGhcbmFwcC5zeW50aCgpOyJdfQ==
@@ -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
@@ -78,7 +78,7 @@
78
78
  "PolicyDocument": {
79
79
  "Statement": [
80
80
  {
81
- "Action": "*",
81
+ "Action": "s3:*",
82
82
  "Condition": {
83
83
  "Bool": {
84
84
  "aws:SecureTransport": "false"
@@ -89,6 +89,12 @@
89
89
  "AWS": "*"
90
90
  },
91
91
  "Resource": [
92
+ {
93
+ "Fn::GetAtt": [
94
+ "testcloudfronts3S3LoggingBucket90D239DD",
95
+ "Arn"
96
+ ]
97
+ },
92
98
  {
93
99
  "Fn::Join": [
94
100
  "",
@@ -102,15 +108,8 @@
102
108
  "/*"
103
109
  ]
104
110
  ]
105
- },
106
- {
107
- "Fn::GetAtt": [
108
- "testcloudfronts3S3LoggingBucket90D239DD",
109
- "Arn"
110
- ]
111
111
  }
112
- ],
113
- "Sid": "HttpsOnly"
112
+ ]
114
113
  }
115
114
  ],
116
115
  "Version": "2012-10-17"
@@ -169,7 +168,7 @@
169
168
  "PolicyDocument": {
170
169
  "Statement": [
171
170
  {
172
- "Action": "*",
171
+ "Action": "s3:*",
173
172
  "Condition": {
174
173
  "Bool": {
175
174
  "aws:SecureTransport": "false"
@@ -180,6 +179,12 @@
180
179
  "AWS": "*"
181
180
  },
182
181
  "Resource": [
182
+ {
183
+ "Fn::GetAtt": [
184
+ "testcloudfronts3S3BucketE0C5F76E",
185
+ "Arn"
186
+ ]
187
+ },
183
188
  {
184
189
  "Fn::Join": [
185
190
  "",
@@ -193,15 +198,8 @@
193
198
  "/*"
194
199
  ]
195
200
  ]
196
- },
197
- {
198
- "Fn::GetAtt": [
199
- "testcloudfronts3S3BucketE0C5F76E",
200
- "Arn"
201
- ]
202
201
  }
203
- ],
204
- "Sid": "HttpsOnly"
202
+ ]
205
203
  },
206
204
  {
207
205
  "Action": "s3:GetObject",
@@ -301,7 +299,7 @@
301
299
  "PolicyDocument": {
302
300
  "Statement": [
303
301
  {
304
- "Action": "*",
302
+ "Action": "s3:*",
305
303
  "Condition": {
306
304
  "Bool": {
307
305
  "aws:SecureTransport": "false"
@@ -312,6 +310,12 @@
312
310
  "AWS": "*"
313
311
  },
314
312
  "Resource": [
313
+ {
314
+ "Fn::GetAtt": [
315
+ "testcloudfronts3CloudfrontLoggingBucket985C0FE8",
316
+ "Arn"
317
+ ]
318
+ },
315
319
  {
316
320
  "Fn::Join": [
317
321
  "",
@@ -325,15 +329,8 @@
325
329
  "/*"
326
330
  ]
327
331
  ]
328
- },
329
- {
330
- "Fn::GetAtt": [
331
- "testcloudfronts3CloudfrontLoggingBucket985C0FE8",
332
- "Arn"
333
- ]
334
332
  }
335
- ],
336
- "Sid": "HttpsOnly"
333
+ ]
337
334
  }
338
335
  ],
339
336
  "Version": "2012-10-17"
@@ -423,7 +420,7 @@
423
420
  "BootstrapVersion": {
424
421
  "Type": "AWS::SSM::Parameter::Value<String>",
425
422
  "Default": "/cdk-bootstrap/hnb659fds/version",
426
- "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store."
423
+ "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]"
427
424
  }
428
425
  },
429
426
  "Rules": {
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  /**
3
- * Copyright 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
4
4
  *
5
5
  * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance
6
6
  * with the License. A copy of the License is located at
@@ -51,4 +51,4 @@ new lib_1.CloudFrontToS3(stack, 'test-cloudfront-s3', {
51
51
  });
52
52
  // Synth
53
53
  app.synth();
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWcuY3VzdG9tLXNlY3VyaXR5LWhlYWRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbnRlZy5jdXN0b20tc2VjdXJpdHktaGVhZGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7O0FBRUgsVUFBVTtBQUNWLDZDQUF3RDtBQUN4RCxnQ0FBd0M7QUFDeEMseURBQXdFO0FBQ3hFLHlEQUF5RDtBQUV6RCxRQUFRO0FBQ1IsTUFBTSxHQUFHLEdBQUcsSUFBSSxpQkFBRyxFQUFFLENBQUM7QUFDdEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxtQkFBSyxDQUFDLEdBQUcsRUFBRSw2QkFBc0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0FBQ2pFLEtBQUssQ0FBQyxlQUFlLENBQUMsV0FBVyxHQUFHLHdDQUF3QyxDQUFDO0FBRTdFLDZCQUE2QjtBQUM3QixNQUFNLGtCQUFrQixHQUFHLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsWUFBWSxFQUFFO0lBQ3RFLElBQUksRUFBRSxVQUFVLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQzs7Ozs7Ozs7O0lBU3ZDLENBQUM7Q0FDSixDQUFDLENBQUM7QUFFSCxJQUFJLG9CQUFjLENBQUMsS0FBSyxFQUFFLG9CQUFvQixFQUFFO0lBQzlDLDJCQUEyQixFQUFFO1FBQzNCLGVBQWUsRUFBRTtZQUNmLG9CQUFvQixFQUFFO2dCQUNwQjtvQkFDRSxTQUFTLEVBQUUsVUFBVSxDQUFDLGlCQUFpQixDQUFDLGVBQWU7b0JBQ3ZELFFBQVEsRUFBRSxrQkFBa0I7aUJBQzdCO2FBQ0Y7U0FDRjtLQUNGO0lBQ0QsV0FBVyxFQUFFO1FBQ1gsYUFBYSxFQUFFLDJCQUFhLENBQUMsT0FBTztLQUNyQztDQUNGLENBQUMsQ0FBQztBQUVILFFBQVE7QUFDUixHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICBDb3B5cmlnaHQgMjAyMSBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8vIEltcG9ydHNcbmltcG9ydCB7IEFwcCwgU3RhY2ssIFJlbW92YWxQb2xpY3kgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IENsb3VkRnJvbnRUb1MzIH0gZnJvbSBcIi4uL2xpYlwiO1xuaW1wb3J0IHsgZ2VuZXJhdGVJbnRlZ1N0YWNrTmFtZSB9IGZyb20gJ0Bhd3Mtc29sdXRpb25zLWNvbnN0cnVjdHMvY29yZSc7XG5pbXBvcnQgKiBhcyBjbG91ZGZyb250IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2xvdWRmcm9udFwiO1xuXG4vLyBTZXR1cFxuY29uc3QgYXBwID0gbmV3IEFwcCgpO1xuY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soYXBwLCBnZW5lcmF0ZUludGVnU3RhY2tOYW1lKF9fZmlsZW5hbWUpKTtcbnN0YWNrLnRlbXBsYXRlT3B0aW9ucy5kZXNjcmlwdGlvbiA9ICdJbnRlZ3JhdGlvbiBUZXN0IGZvciBhd3MtY2xvdWRmcm9udC1zMyc7XG5cbi8vIGN1c3RvbSBjbG91ZGZyb250IGZ1bmN0aW9uXG5jb25zdCBjbG91ZGZyb250RnVuY3Rpb24gPSBuZXcgY2xvdWRmcm9udC5GdW5jdGlvbihzdGFjaywgXCJNeUZ1bmN0aW9uXCIsIHtcbiAgY29kZTogY2xvdWRmcm9udC5GdW5jdGlvbkNvZGUuZnJvbUlubGluZShcImZ1bmN0aW9uIGhhbmRsZXIoZXZlbnQpIHsgdmFyIHJlc3BvbnNlID0gZXZlbnQucmVzcG9uc2U7IFxcXG4gICAgdmFyIGhlYWRlcnMgPSByZXNwb25zZS5oZWFkZXJzOyBcXFxuICAgIGhlYWRlcnNbJ3N0cmljdC10cmFuc3BvcnQtc2VjdXJpdHknXSA9IHsgdmFsdWU6ICdtYXgtYWdlPTYzMDcyMDAwOyBpbmNsdWRlU3ViZG9tYWluczsgcHJlbG9hZCd9OyBcXFxuICAgIGhlYWRlcnNbJ2NvbnRlbnQtc2VjdXJpdHktcG9saWN5J10gPSB7IHZhbHVlOiBcXFwiZGVmYXVsdC1zcmMgJ25vbmUnOyBiYXNlLXVyaSAnc2VsZic7IGltZy1zcmMgJ3NlbGYnOyBzY3JpcHQtc3JjICdzZWxmJzsgc3R5bGUtc3JjICdzZWxmJyBodHRwczo7IG9iamVjdC1zcmMgJ25vbmUnOyBmcmFtZS1hbmNlc3RvcnMgJ25vbmUnOyBmb250LXNyYyAnc2VsZicgaHR0cHM6OyBmb3JtLWFjdGlvbiAnc2VsZic7IG1hbmlmZXN0LXNyYyAnc2VsZic7IGNvbm5lY3Qtc3JjICdzZWxmJ1xcXCIgfTsgXFxcbiAgICBoZWFkZXJzWyd4LWNvbnRlbnQtdHlwZS1vcHRpb25zJ10gPSB7IHZhbHVlOiAnbm9zbmlmZid9OyBcXFxuICAgIGhlYWRlcnNbJ3gtZnJhbWUtb3B0aW9ucyddID0ge3ZhbHVlOiAnREVOWSd9OyBcXFxuICAgIGhlYWRlcnNbJ3gteHNzLXByb3RlY3Rpb24nXSA9IHt2YWx1ZTogJzE7IG1vZGU9YmxvY2snfTsgXFxcbiAgICBoZWFkZXJzWydyZWZlcnJlci1wb2xpY3knXSA9IHsgdmFsdWU6ICdzYW1lLW9yaWdpbicgfTsgXFxcbiAgICByZXR1cm4gcmVzcG9uc2U7IFxcXG4gIH1cIilcbn0pO1xuXG5uZXcgQ2xvdWRGcm9udFRvUzMoc3RhY2ssICd0ZXN0LWNsb3VkZnJvbnQtczMnLCB7XG4gIGNsb3VkRnJvbnREaXN0cmlidXRpb25Qcm9wczoge1xuICAgIGRlZmF1bHRCZWhhdmlvcjoge1xuICAgICAgZnVuY3Rpb25Bc3NvY2lhdGlvbnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGV2ZW50VHlwZTogY2xvdWRmcm9udC5GdW5jdGlvbkV2ZW50VHlwZS5WSUVXRVJfUkVTUE9OU0UsXG4gICAgICAgICAgZnVuY3Rpb246IGNsb3VkZnJvbnRGdW5jdGlvblxuICAgICAgICB9XG4gICAgICBdLFxuICAgIH1cbiAgfSxcbiAgYnVja2V0UHJvcHM6IHtcbiAgICByZW1vdmFsUG9saWN5OiBSZW1vdmFsUG9saWN5LkRFU1RST1ksXG4gIH1cbn0pO1xuXG4vLyBTeW50aFxuYXBwLnN5bnRoKCk7XG4iXX0=
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWcuY3VzdG9tLXNlY3VyaXR5LWhlYWRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbnRlZy5jdXN0b20tc2VjdXJpdHktaGVhZGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7O0FBRUgsVUFBVTtBQUNWLDZDQUF3RDtBQUN4RCxnQ0FBd0M7QUFDeEMseURBQXdFO0FBQ3hFLHlEQUF5RDtBQUV6RCxRQUFRO0FBQ1IsTUFBTSxHQUFHLEdBQUcsSUFBSSxpQkFBRyxFQUFFLENBQUM7QUFDdEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxtQkFBSyxDQUFDLEdBQUcsRUFBRSw2QkFBc0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0FBQ2pFLEtBQUssQ0FBQyxlQUFlLENBQUMsV0FBVyxHQUFHLHdDQUF3QyxDQUFDO0FBRTdFLDZCQUE2QjtBQUM3QixNQUFNLGtCQUFrQixHQUFHLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsWUFBWSxFQUFFO0lBQ3RFLElBQUksRUFBRSxVQUFVLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQzs7Ozs7Ozs7O0lBU3ZDLENBQUM7Q0FDSixDQUFDLENBQUM7QUFFSCxJQUFJLG9CQUFjLENBQUMsS0FBSyxFQUFFLG9CQUFvQixFQUFFO0lBQzlDLDJCQUEyQixFQUFFO1FBQzNCLGVBQWUsRUFBRTtZQUNmLG9CQUFvQixFQUFFO2dCQUNwQjtvQkFDRSxTQUFTLEVBQUUsVUFBVSxDQUFDLGlCQUFpQixDQUFDLGVBQWU7b0JBQ3ZELFFBQVEsRUFBRSxrQkFBa0I7aUJBQzdCO2FBQ0Y7U0FDRjtLQUNGO0lBQ0QsV0FBVyxFQUFFO1FBQ1gsYUFBYSxFQUFFLDJCQUFhLENBQUMsT0FBTztLQUNyQztDQUNGLENBQUMsQ0FBQztBQUVILFFBQVE7QUFDUixHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICBDb3B5cmlnaHQgMjAyMiBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8vIEltcG9ydHNcbmltcG9ydCB7IEFwcCwgU3RhY2ssIFJlbW92YWxQb2xpY3kgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IENsb3VkRnJvbnRUb1MzIH0gZnJvbSBcIi4uL2xpYlwiO1xuaW1wb3J0IHsgZ2VuZXJhdGVJbnRlZ1N0YWNrTmFtZSB9IGZyb20gJ0Bhd3Mtc29sdXRpb25zLWNvbnN0cnVjdHMvY29yZSc7XG5pbXBvcnQgKiBhcyBjbG91ZGZyb250IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2xvdWRmcm9udFwiO1xuXG4vLyBTZXR1cFxuY29uc3QgYXBwID0gbmV3IEFwcCgpO1xuY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soYXBwLCBnZW5lcmF0ZUludGVnU3RhY2tOYW1lKF9fZmlsZW5hbWUpKTtcbnN0YWNrLnRlbXBsYXRlT3B0aW9ucy5kZXNjcmlwdGlvbiA9ICdJbnRlZ3JhdGlvbiBUZXN0IGZvciBhd3MtY2xvdWRmcm9udC1zMyc7XG5cbi8vIGN1c3RvbSBjbG91ZGZyb250IGZ1bmN0aW9uXG5jb25zdCBjbG91ZGZyb250RnVuY3Rpb24gPSBuZXcgY2xvdWRmcm9udC5GdW5jdGlvbihzdGFjaywgXCJNeUZ1bmN0aW9uXCIsIHtcbiAgY29kZTogY2xvdWRmcm9udC5GdW5jdGlvbkNvZGUuZnJvbUlubGluZShcImZ1bmN0aW9uIGhhbmRsZXIoZXZlbnQpIHsgdmFyIHJlc3BvbnNlID0gZXZlbnQucmVzcG9uc2U7IFxcXG4gICAgdmFyIGhlYWRlcnMgPSByZXNwb25zZS5oZWFkZXJzOyBcXFxuICAgIGhlYWRlcnNbJ3N0cmljdC10cmFuc3BvcnQtc2VjdXJpdHknXSA9IHsgdmFsdWU6ICdtYXgtYWdlPTYzMDcyMDAwOyBpbmNsdWRlU3ViZG9tYWluczsgcHJlbG9hZCd9OyBcXFxuICAgIGhlYWRlcnNbJ2NvbnRlbnQtc2VjdXJpdHktcG9saWN5J10gPSB7IHZhbHVlOiBcXFwiZGVmYXVsdC1zcmMgJ25vbmUnOyBiYXNlLXVyaSAnc2VsZic7IGltZy1zcmMgJ3NlbGYnOyBzY3JpcHQtc3JjICdzZWxmJzsgc3R5bGUtc3JjICdzZWxmJyBodHRwczo7IG9iamVjdC1zcmMgJ25vbmUnOyBmcmFtZS1hbmNlc3RvcnMgJ25vbmUnOyBmb250LXNyYyAnc2VsZicgaHR0cHM6OyBmb3JtLWFjdGlvbiAnc2VsZic7IG1hbmlmZXN0LXNyYyAnc2VsZic7IGNvbm5lY3Qtc3JjICdzZWxmJ1xcXCIgfTsgXFxcbiAgICBoZWFkZXJzWyd4LWNvbnRlbnQtdHlwZS1vcHRpb25zJ10gPSB7IHZhbHVlOiAnbm9zbmlmZid9OyBcXFxuICAgIGhlYWRlcnNbJ3gtZnJhbWUtb3B0aW9ucyddID0ge3ZhbHVlOiAnREVOWSd9OyBcXFxuICAgIGhlYWRlcnNbJ3gteHNzLXByb3RlY3Rpb24nXSA9IHt2YWx1ZTogJzE7IG1vZGU9YmxvY2snfTsgXFxcbiAgICBoZWFkZXJzWydyZWZlcnJlci1wb2xpY3knXSA9IHsgdmFsdWU6ICdzYW1lLW9yaWdpbicgfTsgXFxcbiAgICByZXR1cm4gcmVzcG9uc2U7IFxcXG4gIH1cIilcbn0pO1xuXG5uZXcgQ2xvdWRGcm9udFRvUzMoc3RhY2ssICd0ZXN0LWNsb3VkZnJvbnQtczMnLCB7XG4gIGNsb3VkRnJvbnREaXN0cmlidXRpb25Qcm9wczoge1xuICAgIGRlZmF1bHRCZWhhdmlvcjoge1xuICAgICAgZnVuY3Rpb25Bc3NvY2lhdGlvbnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGV2ZW50VHlwZTogY2xvdWRmcm9udC5GdW5jdGlvbkV2ZW50VHlwZS5WSUVXRVJfUkVTUE9OU0UsXG4gICAgICAgICAgZnVuY3Rpb246IGNsb3VkZnJvbnRGdW5jdGlvblxuICAgICAgICB9XG4gICAgICBdLFxuICAgIH1cbiAgfSxcbiAgYnVja2V0UHJvcHM6IHtcbiAgICByZW1vdmFsUG9saWN5OiBSZW1vdmFsUG9saWN5LkRFU1RST1ksXG4gIH1cbn0pO1xuXG4vLyBTeW50aFxuYXBwLnN5bnRoKCk7XG4iXX0=
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance
5
+ * with the License. A copy of the License is located at
6
+ *
7
+ * http://www.apache.org/licenses/LICENSE-2.0
8
+ *
9
+ * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES
10
+ * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions
11
+ * and limitations under the License.
12
+ */
13
+ export {};
@@ -0,0 +1,421 @@
1
+ {
2
+ "Description": "Integration Test for aws-cloudfront-s3 custom CloudFront Logging Bubkcet",
3
+ "Resources": {
4
+ "testcloudfronts3S3LoggingBucket90D239DD": {
5
+ "Type": "AWS::S3::Bucket",
6
+ "Properties": {
7
+ "AccessControl": "LogDeliveryWrite",
8
+ "BucketEncryption": {
9
+ "ServerSideEncryptionConfiguration": [
10
+ {
11
+ "ServerSideEncryptionByDefault": {
12
+ "SSEAlgorithm": "AES256"
13
+ }
14
+ }
15
+ ]
16
+ },
17
+ "PublicAccessBlockConfiguration": {
18
+ "BlockPublicAcls": true,
19
+ "BlockPublicPolicy": true,
20
+ "IgnorePublicAcls": true,
21
+ "RestrictPublicBuckets": true
22
+ },
23
+ "VersioningConfiguration": {
24
+ "Status": "Enabled"
25
+ }
26
+ },
27
+ "UpdateReplacePolicy": "Delete",
28
+ "DeletionPolicy": "Delete",
29
+ "Metadata": {
30
+ "cfn_nag": {
31
+ "rules_to_suppress": [
32
+ {
33
+ "id": "W35",
34
+ "reason": "This S3 bucket is used as the access logging bucket for another bucket"
35
+ }
36
+ ]
37
+ }
38
+ }
39
+ },
40
+ "testcloudfronts3S3LoggingBucketPolicy529D4CFF": {
41
+ "Type": "AWS::S3::BucketPolicy",
42
+ "Properties": {
43
+ "Bucket": {
44
+ "Ref": "testcloudfronts3S3LoggingBucket90D239DD"
45
+ },
46
+ "PolicyDocument": {
47
+ "Statement": [
48
+ {
49
+ "Action": "s3:*",
50
+ "Condition": {
51
+ "Bool": {
52
+ "aws:SecureTransport": "false"
53
+ }
54
+ },
55
+ "Effect": "Deny",
56
+ "Principal": {
57
+ "AWS": "*"
58
+ },
59
+ "Resource": [
60
+ {
61
+ "Fn::GetAtt": [
62
+ "testcloudfronts3S3LoggingBucket90D239DD",
63
+ "Arn"
64
+ ]
65
+ },
66
+ {
67
+ "Fn::Join": [
68
+ "",
69
+ [
70
+ {
71
+ "Fn::GetAtt": [
72
+ "testcloudfronts3S3LoggingBucket90D239DD",
73
+ "Arn"
74
+ ]
75
+ },
76
+ "/*"
77
+ ]
78
+ ]
79
+ }
80
+ ]
81
+ }
82
+ ],
83
+ "Version": "2012-10-17"
84
+ }
85
+ }
86
+ },
87
+ "testcloudfronts3S3BucketE0C5F76E": {
88
+ "Type": "AWS::S3::Bucket",
89
+ "Properties": {
90
+ "BucketEncryption": {
91
+ "ServerSideEncryptionConfiguration": [
92
+ {
93
+ "ServerSideEncryptionByDefault": {
94
+ "SSEAlgorithm": "AES256"
95
+ }
96
+ }
97
+ ]
98
+ },
99
+ "LifecycleConfiguration": {
100
+ "Rules": [
101
+ {
102
+ "NoncurrentVersionTransitions": [
103
+ {
104
+ "StorageClass": "GLACIER",
105
+ "TransitionInDays": 90
106
+ }
107
+ ],
108
+ "Status": "Enabled"
109
+ }
110
+ ]
111
+ },
112
+ "LoggingConfiguration": {
113
+ "DestinationBucketName": {
114
+ "Ref": "testcloudfronts3S3LoggingBucket90D239DD"
115
+ }
116
+ },
117
+ "PublicAccessBlockConfiguration": {
118
+ "BlockPublicAcls": true,
119
+ "BlockPublicPolicy": true,
120
+ "IgnorePublicAcls": true,
121
+ "RestrictPublicBuckets": true
122
+ },
123
+ "VersioningConfiguration": {
124
+ "Status": "Enabled"
125
+ }
126
+ },
127
+ "UpdateReplacePolicy": "Delete",
128
+ "DeletionPolicy": "Delete"
129
+ },
130
+ "testcloudfronts3S3BucketPolicy250F1F61": {
131
+ "Type": "AWS::S3::BucketPolicy",
132
+ "Properties": {
133
+ "Bucket": {
134
+ "Ref": "testcloudfronts3S3BucketE0C5F76E"
135
+ },
136
+ "PolicyDocument": {
137
+ "Statement": [
138
+ {
139
+ "Action": "s3:*",
140
+ "Condition": {
141
+ "Bool": {
142
+ "aws:SecureTransport": "false"
143
+ }
144
+ },
145
+ "Effect": "Deny",
146
+ "Principal": {
147
+ "AWS": "*"
148
+ },
149
+ "Resource": [
150
+ {
151
+ "Fn::GetAtt": [
152
+ "testcloudfronts3S3BucketE0C5F76E",
153
+ "Arn"
154
+ ]
155
+ },
156
+ {
157
+ "Fn::Join": [
158
+ "",
159
+ [
160
+ {
161
+ "Fn::GetAtt": [
162
+ "testcloudfronts3S3BucketE0C5F76E",
163
+ "Arn"
164
+ ]
165
+ },
166
+ "/*"
167
+ ]
168
+ ]
169
+ }
170
+ ]
171
+ },
172
+ {
173
+ "Action": "s3:GetObject",
174
+ "Effect": "Allow",
175
+ "Principal": {
176
+ "CanonicalUser": {
177
+ "Fn::GetAtt": [
178
+ "testcloudfronts3CloudFrontDistributionOrigin1S3Origin4695F058",
179
+ "S3CanonicalUserId"
180
+ ]
181
+ }
182
+ },
183
+ "Resource": {
184
+ "Fn::Join": [
185
+ "",
186
+ [
187
+ {
188
+ "Fn::GetAtt": [
189
+ "testcloudfronts3S3BucketE0C5F76E",
190
+ "Arn"
191
+ ]
192
+ },
193
+ "/*"
194
+ ]
195
+ ]
196
+ }
197
+ }
198
+ ],
199
+ "Version": "2012-10-17"
200
+ }
201
+ },
202
+ "Metadata": {
203
+ "cfn_nag": {
204
+ "rules_to_suppress": [
205
+ {
206
+ "id": "F16",
207
+ "reason": "Public website bucket policy requires a wildcard principal"
208
+ }
209
+ ]
210
+ }
211
+ }
212
+ },
213
+ "testcloudfronts3SetHttpSecurityHeaders6C5A1E69": {
214
+ "Type": "AWS::CloudFront::Function",
215
+ "Properties": {
216
+ "Name": "SetHttpSecurityHeadersc88d4d30b2e66a3bd009aa7f11e35596ee70824ece",
217
+ "AutoPublish": true,
218
+ "FunctionCode": "function handler(event) { var response = event.response; var headers = response.headers; headers['strict-transport-security'] = { value: 'max-age=63072000; includeSubdomains; preload'}; headers['content-security-policy'] = { value: \"default-src 'none'; img-src 'self'; script-src 'self'; style-src 'self'; object-src 'none'\"}; headers['x-content-type-options'] = { value: 'nosniff'}; headers['x-frame-options'] = {value: 'DENY'}; headers['x-xss-protection'] = {value: '1; mode=block'}; return response; }",
219
+ "FunctionConfig": {
220
+ "Comment": "SetHttpSecurityHeadersc88d4d30b2e66a3bd009aa7f11e35596ee70824ece",
221
+ "Runtime": "cloudfront-js-1.0"
222
+ }
223
+ }
224
+ },
225
+ "testcloudfronts3CloudfrontLoggingBucket985C0FE8": {
226
+ "Type": "AWS::S3::Bucket",
227
+ "Properties": {
228
+ "AccessControl": "LogDeliveryWrite",
229
+ "BucketEncryption": {
230
+ "ServerSideEncryptionConfiguration": [
231
+ {
232
+ "ServerSideEncryptionByDefault": {
233
+ "SSEAlgorithm": "AES256"
234
+ }
235
+ }
236
+ ]
237
+ },
238
+ "PublicAccessBlockConfiguration": {
239
+ "BlockPublicAcls": true,
240
+ "BlockPublicPolicy": true,
241
+ "IgnorePublicAcls": true,
242
+ "RestrictPublicBuckets": true
243
+ },
244
+ "VersioningConfiguration": {
245
+ "Status": "Enabled"
246
+ }
247
+ },
248
+ "UpdateReplacePolicy": "Delete",
249
+ "DeletionPolicy": "Delete",
250
+ "Metadata": {
251
+ "cfn_nag": {
252
+ "rules_to_suppress": [
253
+ {
254
+ "id": "W35",
255
+ "reason": "This S3 bucket is used as the access logging bucket for CloudFront Distribution"
256
+ }
257
+ ]
258
+ }
259
+ }
260
+ },
261
+ "testcloudfronts3CloudfrontLoggingBucketPolicyDF55851B": {
262
+ "Type": "AWS::S3::BucketPolicy",
263
+ "Properties": {
264
+ "Bucket": {
265
+ "Ref": "testcloudfronts3CloudfrontLoggingBucket985C0FE8"
266
+ },
267
+ "PolicyDocument": {
268
+ "Statement": [
269
+ {
270
+ "Action": "s3:*",
271
+ "Condition": {
272
+ "Bool": {
273
+ "aws:SecureTransport": "false"
274
+ }
275
+ },
276
+ "Effect": "Deny",
277
+ "Principal": {
278
+ "AWS": "*"
279
+ },
280
+ "Resource": [
281
+ {
282
+ "Fn::GetAtt": [
283
+ "testcloudfronts3CloudfrontLoggingBucket985C0FE8",
284
+ "Arn"
285
+ ]
286
+ },
287
+ {
288
+ "Fn::Join": [
289
+ "",
290
+ [
291
+ {
292
+ "Fn::GetAtt": [
293
+ "testcloudfronts3CloudfrontLoggingBucket985C0FE8",
294
+ "Arn"
295
+ ]
296
+ },
297
+ "/*"
298
+ ]
299
+ ]
300
+ }
301
+ ]
302
+ }
303
+ ],
304
+ "Version": "2012-10-17"
305
+ }
306
+ }
307
+ },
308
+ "testcloudfronts3CloudFrontDistributionOrigin1S3Origin4695F058": {
309
+ "Type": "AWS::CloudFront::CloudFrontOriginAccessIdentity",
310
+ "Properties": {
311
+ "CloudFrontOriginAccessIdentityConfig": {
312
+ "Comment": "Identity for customCloudFrontLoggingBuckettestcloudfronts3CloudFrontDistributionOrigin115B4D0FD"
313
+ }
314
+ }
315
+ },
316
+ "testcloudfronts3CloudFrontDistribution0565DEE8": {
317
+ "Type": "AWS::CloudFront::Distribution",
318
+ "Properties": {
319
+ "DistributionConfig": {
320
+ "DefaultCacheBehavior": {
321
+ "CachePolicyId": "658327ea-f89d-4fab-a63d-7e88639e58f6",
322
+ "Compress": true,
323
+ "FunctionAssociations": [
324
+ {
325
+ "EventType": "viewer-response",
326
+ "FunctionARN": {
327
+ "Fn::GetAtt": [
328
+ "testcloudfronts3SetHttpSecurityHeaders6C5A1E69",
329
+ "FunctionARN"
330
+ ]
331
+ }
332
+ }
333
+ ],
334
+ "TargetOriginId": "customCloudFrontLoggingBuckettestcloudfronts3CloudFrontDistributionOrigin115B4D0FD",
335
+ "ViewerProtocolPolicy": "redirect-to-https"
336
+ },
337
+ "DefaultRootObject": "index.html",
338
+ "Enabled": true,
339
+ "HttpVersion": "http2",
340
+ "IPV6Enabled": true,
341
+ "Logging": {
342
+ "Bucket": {
343
+ "Fn::GetAtt": [
344
+ "testcloudfronts3CloudfrontLoggingBucket985C0FE8",
345
+ "RegionalDomainName"
346
+ ]
347
+ }
348
+ },
349
+ "Origins": [
350
+ {
351
+ "DomainName": {
352
+ "Fn::GetAtt": [
353
+ "testcloudfronts3S3BucketE0C5F76E",
354
+ "RegionalDomainName"
355
+ ]
356
+ },
357
+ "Id": "customCloudFrontLoggingBuckettestcloudfronts3CloudFrontDistributionOrigin115B4D0FD",
358
+ "S3OriginConfig": {
359
+ "OriginAccessIdentity": {
360
+ "Fn::Join": [
361
+ "",
362
+ [
363
+ "origin-access-identity/cloudfront/",
364
+ {
365
+ "Ref": "testcloudfronts3CloudFrontDistributionOrigin1S3Origin4695F058"
366
+ }
367
+ ]
368
+ ]
369
+ }
370
+ }
371
+ }
372
+ ]
373
+ }
374
+ },
375
+ "Metadata": {
376
+ "cfn_nag": {
377
+ "rules_to_suppress": [
378
+ {
379
+ "id": "W70",
380
+ "reason": "Since the distribution uses the CloudFront domain name, CloudFront automatically sets the security policy to TLSv1 regardless of the value of MinimumProtocolVersion"
381
+ }
382
+ ]
383
+ }
384
+ }
385
+ }
386
+ },
387
+ "Parameters": {
388
+ "BootstrapVersion": {
389
+ "Type": "AWS::SSM::Parameter::Value<String>",
390
+ "Default": "/cdk-bootstrap/hnb659fds/version",
391
+ "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]"
392
+ }
393
+ },
394
+ "Rules": {
395
+ "CheckBootstrapVersion": {
396
+ "Assertions": [
397
+ {
398
+ "Assert": {
399
+ "Fn::Not": [
400
+ {
401
+ "Fn::Contains": [
402
+ [
403
+ "1",
404
+ "2",
405
+ "3",
406
+ "4",
407
+ "5"
408
+ ],
409
+ {
410
+ "Ref": "BootstrapVersion"
411
+ }
412
+ ]
413
+ }
414
+ ]
415
+ },
416
+ "AssertDescription": "CDK bootstrap stack version 6 required. Please run 'cdk bootstrap' with a recent version of the CDK CLI."
417
+ }
418
+ ]
419
+ }
420
+ }
421
+ }
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright 2022 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
+ // Imports
16
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
17
+ const aws_s3_1 = require("aws-cdk-lib/aws-s3");
18
+ const lib_1 = require("../lib");
19
+ const core_1 = require("@aws-solutions-constructs/core");
20
+ // Setup
21
+ const app = new aws_cdk_lib_1.App();
22
+ const stack = new aws_cdk_lib_1.Stack(app, core_1.generateIntegStackName(__filename));
23
+ stack.templateOptions.description = 'Integration Test for aws-cloudfront-s3 custom CloudFront Logging Bubkcet';
24
+ new lib_1.CloudFrontToS3(stack, 'test-cloudfront-s3', {
25
+ bucketProps: {
26
+ removalPolicy: aws_cdk_lib_1.RemovalPolicy.DESTROY,
27
+ },
28
+ cloudFrontLoggingBucketProps: {
29
+ removalPolicy: aws_cdk_lib_1.RemovalPolicy.DESTROY,
30
+ encryption: aws_s3_1.BucketEncryption.S3_MANAGED,
31
+ versioned: true
32
+ }
33
+ });
34
+ // Synth
35
+ app.synth();
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWcuY3VzdG9tQ2xvdWRGcm9udExvZ2dpbmdCdWNrZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbnRlZy5jdXN0b21DbG91ZEZyb250TG9nZ2luZ0J1Y2tldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7O0FBRUgsVUFBVTtBQUNWLDZDQUF3RDtBQUN4RCwrQ0FBc0Q7QUFDdEQsZ0NBQXdDO0FBQ3hDLHlEQUF3RTtBQUV4RSxRQUFRO0FBQ1IsTUFBTSxHQUFHLEdBQUcsSUFBSSxpQkFBRyxFQUFFLENBQUM7QUFDdEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxtQkFBSyxDQUFDLEdBQUcsRUFBRSw2QkFBc0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0FBQ2pFLEtBQUssQ0FBQyxlQUFlLENBQUMsV0FBVyxHQUFHLDBFQUEwRSxDQUFDO0FBRS9HLElBQUksb0JBQWMsQ0FBQyxLQUFLLEVBQUUsb0JBQW9CLEVBQUU7SUFDOUMsV0FBVyxFQUFFO1FBQ1gsYUFBYSxFQUFFLDJCQUFhLENBQUMsT0FBTztLQUNyQztJQUNELDRCQUE0QixFQUFFO1FBQzVCLGFBQWEsRUFBRSwyQkFBYSxDQUFDLE9BQU87UUFDcEMsVUFBVSxFQUFFLHlCQUFnQixDQUFDLFVBQVU7UUFDdkMsU0FBUyxFQUFFLElBQUk7S0FDaEI7Q0FDRixDQUFDLENBQUM7QUFFSCxRQUFRO0FBQ1IsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgQ29weXJpZ2h0IDIwMjIgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKS4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuICogIHdpdGggdGhlIExpY2Vuc2UuIEEgY29weSBvZiB0aGUgTGljZW5zZSBpcyBsb2NhdGVkIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiAgb3IgaW4gdGhlICdsaWNlbnNlJyBmaWxlIGFjY29tcGFueWluZyB0aGlzIGZpbGUuIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAnQVMgSVMnIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVNcbiAqICBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xuICogIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG4vLyBJbXBvcnRzXG5pbXBvcnQgeyBBcHAsIFN0YWNrLCBSZW1vdmFsUG9saWN5IH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBCdWNrZXRFbmNyeXB0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zM1wiO1xuaW1wb3J0IHsgQ2xvdWRGcm9udFRvUzMgfSBmcm9tIFwiLi4vbGliXCI7XG5pbXBvcnQgeyBnZW5lcmF0ZUludGVnU3RhY2tOYW1lIH0gZnJvbSAnQGF3cy1zb2x1dGlvbnMtY29uc3RydWN0cy9jb3JlJztcblxuLy8gU2V0dXBcbmNvbnN0IGFwcCA9IG5ldyBBcHAoKTtcbmNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKGFwcCwgZ2VuZXJhdGVJbnRlZ1N0YWNrTmFtZShfX2ZpbGVuYW1lKSk7XG5zdGFjay50ZW1wbGF0ZU9wdGlvbnMuZGVzY3JpcHRpb24gPSAnSW50ZWdyYXRpb24gVGVzdCBmb3IgYXdzLWNsb3VkZnJvbnQtczMgY3VzdG9tIENsb3VkRnJvbnQgTG9nZ2luZyBCdWJrY2V0JztcblxubmV3IENsb3VkRnJvbnRUb1MzKHN0YWNrLCAndGVzdC1jbG91ZGZyb250LXMzJywge1xuICBidWNrZXRQcm9wczoge1xuICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgfSxcbiAgY2xvdWRGcm9udExvZ2dpbmdCdWNrZXRQcm9wczoge1xuICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICBlbmNyeXB0aW9uOiBCdWNrZXRFbmNyeXB0aW9uLlMzX01BTkFHRUQsXG4gICAgdmVyc2lvbmVkOiB0cnVlXG4gIH1cbn0pO1xuXG4vLyBTeW50aFxuYXBwLnN5bnRoKCk7XG4iXX0=
@@ -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