@aws-solutions-constructs/aws-cloudfront-s3 1.126.0 → 1.130.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 +63 -30
- package/README.md +5 -2
- package/lib/index.d.ts +17 -1
- package/lib/index.js +10 -7
- package/package.json +18 -18
- package/test/integ.custom-originPath.d.ts +13 -0
- package/test/integ.custom-originPath.expected.json +425 -0
- package/test/integ.custom-originPath.js +28 -0
- package/test/integ.custom-security-headers.expected.json +1 -1
- package/test/integ.customCloudFrontLoggingBucket.expected.json +1 -1
- package/test/integ.customLoggingBucket.expected.json +1 -1
- package/test/integ.existing-bucket.expected.json +1 -1
- package/test/integ.existing-bucket.js +2 -2
- package/test/integ.no-arguments.expected.json +12 -91
- package/test/integ.no-arguments.js +10 -3
- package/test/integ.no-security-headers.expected.json +1 -1
- package/test/test.cloudfront-s3.test.js +50 -5
package/.jsii
CHANGED
|
@@ -8,13 +8,13 @@
|
|
|
8
8
|
"url": "https://aws.amazon.com"
|
|
9
9
|
},
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"@aws-cdk/aws-certificatemanager": "1.
|
|
12
|
-
"@aws-cdk/aws-cloudfront": "1.
|
|
13
|
-
"@aws-cdk/aws-cloudfront-origins": "1.
|
|
14
|
-
"@aws-cdk/aws-lambda": "1.
|
|
15
|
-
"@aws-cdk/aws-s3": "1.
|
|
16
|
-
"@aws-cdk/core": "1.
|
|
17
|
-
"@aws-solutions-constructs/core": "1.
|
|
11
|
+
"@aws-cdk/aws-certificatemanager": "1.130.0",
|
|
12
|
+
"@aws-cdk/aws-cloudfront": "1.130.0",
|
|
13
|
+
"@aws-cdk/aws-cloudfront-origins": "1.130.0",
|
|
14
|
+
"@aws-cdk/aws-lambda": "1.130.0",
|
|
15
|
+
"@aws-cdk/aws-s3": "1.130.0",
|
|
16
|
+
"@aws-cdk/core": "1.130.0",
|
|
17
|
+
"@aws-solutions-constructs/core": "1.130.0",
|
|
18
18
|
"constructs": "^3.2.0"
|
|
19
19
|
},
|
|
20
20
|
"dependencyClosure": {
|
|
@@ -182,12 +182,7 @@
|
|
|
182
182
|
},
|
|
183
183
|
"@aws-cdk/aws-cloudfront": {
|
|
184
184
|
"submodules": {
|
|
185
|
-
"@aws-cdk/aws-cloudfront.experimental": {
|
|
186
|
-
"locationInModule": {
|
|
187
|
-
"filename": "lib/index.ts",
|
|
188
|
-
"line": 12
|
|
189
|
-
}
|
|
190
|
-
}
|
|
185
|
+
"@aws-cdk/aws-cloudfront.experimental": {}
|
|
191
186
|
},
|
|
192
187
|
"targets": {
|
|
193
188
|
"dotnet": {
|
|
@@ -1455,7 +1450,7 @@
|
|
|
1455
1450
|
},
|
|
1456
1451
|
"description": "CDK Constructs for AWS Cloudfront to AWS S3 integration.",
|
|
1457
1452
|
"homepage": "https://github.com/awslabs/aws-solutions-constructs.git",
|
|
1458
|
-
"jsiiVersion": "1.
|
|
1453
|
+
"jsiiVersion": "1.47.0 (build 86d2c33)",
|
|
1459
1454
|
"keywords": [
|
|
1460
1455
|
"aws",
|
|
1461
1456
|
"cdk",
|
|
@@ -1474,7 +1469,7 @@
|
|
|
1474
1469
|
},
|
|
1475
1470
|
"name": "@aws-solutions-constructs/aws-cloudfront-s3",
|
|
1476
1471
|
"readme": {
|
|
1477
|
-
"markdown": "# aws-cloudfront-s3 module\n<!--BEGIN STABILITY BANNER-->\n\n---\n\n\n\n---\n<!--END STABILITY BANNER-->\n\n| **Reference Documentation**:| <span style=\"font-weight: normal\">https://docs.aws.amazon.com/solutions/latest/constructs/</span>|\n|:-------------|:-------------|\n<div style=\"height:8px\"></div>\n\n| **Language** | **Package** |\n|:-------------|-----------------|\n| Python|`aws_solutions_constructs.aws_cloudfront_s3`|\n| Typescript|`@aws-solutions-constructs/aws-cloudfront-s3`|\n| Java|`software.amazon.awsconstructs.services.cloudfronts3`|\n\nThis AWS Solutions Construct implements an AWS CloudFront fronting an AWS S3 Bucket.\n\nHere is a minimal deployable pattern definition in Typescript:\n\n``` typescript\nimport { CloudFrontToS3 } from '@aws-solutions-constructs/aws-cloudfront-s3';\n\nnew CloudFrontToS3(this, 'test-cloudfront-s3', {});\n\n```\n\n## Initializer\n\n``` text\nnew CloudFrontToS3(scope: Construct, id: string, props: CloudFrontToS3Props);\n```\n\n_Parameters_\n\n* scope [`Construct`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_core.Construct.html)\n* id `string`\n* props [`CloudFrontToS3Props`](#pattern-construct-props)\n\n## Pattern Construct Props\n\n| **Name** | **Type** | **Description** |\n|:-------------|:----------------|-----------------|\n|
|
|
1472
|
+
"markdown": "# aws-cloudfront-s3 module\n<!--BEGIN STABILITY BANNER-->\n\n---\n\n\n\n---\n<!--END STABILITY BANNER-->\n\n| **Reference Documentation**:| <span style=\"font-weight: normal\">https://docs.aws.amazon.com/solutions/latest/constructs/</span>|\n|:-------------|:-------------|\n<div style=\"height:8px\"></div>\n\n| **Language** | **Package** |\n|:-------------|-----------------|\n| Python|`aws_solutions_constructs.aws_cloudfront_s3`|\n| Typescript|`@aws-solutions-constructs/aws-cloudfront-s3`|\n| Java|`software.amazon.awsconstructs.services.cloudfronts3`|\n\nThis AWS Solutions Construct implements an AWS CloudFront fronting an AWS S3 Bucket.\n\nHere is a minimal deployable pattern definition in Typescript:\n\n``` typescript\nimport { CloudFrontToS3 } from '@aws-solutions-constructs/aws-cloudfront-s3';\n\nnew CloudFrontToS3(this, 'test-cloudfront-s3', {});\n\n```\n\n## Initializer\n\n``` text\nnew CloudFrontToS3(scope: Construct, id: string, props: CloudFrontToS3Props);\n```\n\n_Parameters_\n\n* scope [`Construct`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_core.Construct.html)\n* id `string`\n* props [`CloudFrontToS3Props`](#pattern-construct-props)\n\n## Pattern Construct Props\n\n| **Name** | **Type** | **Description** |\n|:-------------|:----------------|-----------------|\n|existingBucketObj?|[`s3.IBucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.IBucket.html)|Existing instance of S3 Bucket object or interface. If this is provided, then also providing bucketProps will cause an error. |\n|bucketProps?|[`s3.BucketProps`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.BucketProps.html)|Optional user provided props to override the default props for the S3 Bucket.|\n|cloudFrontDistributionProps?|[`cloudfront.DistributionProps`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cloudfront.DistributionProps.html)|Optional user provided props to override the default props for CloudFront Distribution|\n|insertHttpSecurityHeaders?|`boolean`|Optional user provided props to turn on/off the automatic injection of best practice HTTP security headers in all responses from CloudFront|\n|originPath?|`string`|Optional user provided props to provide an[originPath](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cloudfront-origins.S3OriginProps.html#originpath) that CloudFront appends to the origin domain name when CloudFront requests content from the origin. The string should start with a `/`, for example: `/production`. Default value is `'/'`|\n|loggingBucketProps?|[`s3.BucketProps`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.BucketProps.html)|Optional user provided props to override the default props for the S3 Logging Bucket.|\n|cloudFrontLoggingBucketProps?|[`s3.BucketProps`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.BucketProps.html)|Optional user provided props to override the default props for the CloudFront Logging Bucket.|\n|logS3AccessLogs?| boolean|Whether to turn on Access Logging for the S3 bucket. Creates an S3 bucket with associated storage costs for the logs. Enabling Access Logging is a best practice. default - true|\n\n## Pattern Properties\n\n| **Name** | **Type** | **Description** |\n|:-------------|:----------------|-----------------|\n|cloudFrontWebDistribution|[`cloudfront.CloudFrontWebDistribution`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cloudfront.CloudFrontWebDistribution.html)|Returns an instance of cloudfront.CloudFrontWebDistribution created by the construct|\n|cloudFrontFunction?|[`cloudfront.Function`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cloudfront.Function.html)|Returns an instance of the Cloudfront function created by the pattern.|\n|cloudFrontLoggingBucket|[`s3.Bucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/aws-s3-readme.html)|Returns an instance of the logging bucket for CloudFront WebDistribution.|\n|s3BucketInterface|[`s3.IBucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.IBucket.html)|Returns an instance of s3.IBucket created by the construct|\n|s3Bucket?|[`s3.Bucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)|Returns an instance of s3.Bucket created by the construct. IMPORTANT: If existingBucketObj was provided in Pattern Construct Props, this property will be `undefined`|\n|s3LoggingBucket?|[`s3.Bucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)|Returns an instance of s3.Bucket created by the construct as the logging bucket for the primary bucket.|\n\n## Default settings\n\nOut of the box implementation of the Construct without any override will set the following defaults:\n\n### Amazon CloudFront\n* Configure Access logging for CloudFront WebDistribution\n* Enable automatic injection of best practice HTTP security headers in all responses from CloudFront WebDistribution\n* CloudFront originPath set to `'/'`\n\n### Amazon S3 Bucket\n* Configure Access logging for S3 Bucket\n* Enable server-side encryption for S3 Bucket using AWS managed KMS Key\n* Enforce encryption of data in transit\n* Turn on the versioning for S3 Bucket\n* Don't allow public access for S3 Bucket\n* Retain the S3 Bucket when deleting the CloudFormation stack\n* Applies Lifecycle rule to move noncurrent object versions to Glacier storage after 90 days\n\n## Architecture\n\n\n***\n© Copyright 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n"
|
|
1478
1473
|
},
|
|
1479
1474
|
"repository": {
|
|
1480
1475
|
"directory": "source/patterns/@aws-solutions-constructs/aws-cloudfront-s3",
|
|
@@ -1485,8 +1480,8 @@
|
|
|
1485
1480
|
"targets": {
|
|
1486
1481
|
"dotnet": {
|
|
1487
1482
|
"iconUrl": "https://raw.githubusercontent.com/aws/aws-cdk/master/logo/default-256-dark.png",
|
|
1488
|
-
"namespace": "Amazon.
|
|
1489
|
-
"packageId": "Amazon.
|
|
1483
|
+
"namespace": "Amazon.SolutionsConstructs.AWS.CloudfrontS3",
|
|
1484
|
+
"packageId": "Amazon.SolutionsConstructs.AWS.CloudfrontS3",
|
|
1490
1485
|
"signAssembly": true
|
|
1491
1486
|
},
|
|
1492
1487
|
"java": {
|
|
@@ -1519,7 +1514,7 @@
|
|
|
1519
1514
|
},
|
|
1520
1515
|
"locationInModule": {
|
|
1521
1516
|
"filename": "lib/index.ts",
|
|
1522
|
-
"line":
|
|
1517
|
+
"line": 93
|
|
1523
1518
|
},
|
|
1524
1519
|
"parameters": [
|
|
1525
1520
|
{
|
|
@@ -1554,7 +1549,7 @@
|
|
|
1554
1549
|
"kind": "class",
|
|
1555
1550
|
"locationInModule": {
|
|
1556
1551
|
"filename": "lib/index.ts",
|
|
1557
|
-
"line":
|
|
1552
|
+
"line": 77
|
|
1558
1553
|
},
|
|
1559
1554
|
"name": "CloudFrontToS3",
|
|
1560
1555
|
"properties": [
|
|
@@ -1562,7 +1557,7 @@
|
|
|
1562
1557
|
"immutable": true,
|
|
1563
1558
|
"locationInModule": {
|
|
1564
1559
|
"filename": "lib/index.ts",
|
|
1565
|
-
"line":
|
|
1560
|
+
"line": 78
|
|
1566
1561
|
},
|
|
1567
1562
|
"name": "cloudFrontWebDistribution",
|
|
1568
1563
|
"type": {
|
|
@@ -1573,7 +1568,7 @@
|
|
|
1573
1568
|
"immutable": true,
|
|
1574
1569
|
"locationInModule": {
|
|
1575
1570
|
"filename": "lib/index.ts",
|
|
1576
|
-
"line":
|
|
1571
|
+
"line": 81
|
|
1577
1572
|
},
|
|
1578
1573
|
"name": "s3BucketInterface",
|
|
1579
1574
|
"type": {
|
|
@@ -1584,7 +1579,7 @@
|
|
|
1584
1579
|
"immutable": true,
|
|
1585
1580
|
"locationInModule": {
|
|
1586
1581
|
"filename": "lib/index.ts",
|
|
1587
|
-
"line":
|
|
1582
|
+
"line": 79
|
|
1588
1583
|
},
|
|
1589
1584
|
"name": "cloudFrontFunction",
|
|
1590
1585
|
"optional": true,
|
|
@@ -1596,7 +1591,7 @@
|
|
|
1596
1591
|
"immutable": true,
|
|
1597
1592
|
"locationInModule": {
|
|
1598
1593
|
"filename": "lib/index.ts",
|
|
1599
|
-
"line":
|
|
1594
|
+
"line": 80
|
|
1600
1595
|
},
|
|
1601
1596
|
"name": "cloudFrontLoggingBucket",
|
|
1602
1597
|
"optional": true,
|
|
@@ -1608,7 +1603,7 @@
|
|
|
1608
1603
|
"immutable": true,
|
|
1609
1604
|
"locationInModule": {
|
|
1610
1605
|
"filename": "lib/index.ts",
|
|
1611
|
-
"line":
|
|
1606
|
+
"line": 82
|
|
1612
1607
|
},
|
|
1613
1608
|
"name": "s3Bucket",
|
|
1614
1609
|
"optional": true,
|
|
@@ -1620,7 +1615,7 @@
|
|
|
1620
1615
|
"immutable": true,
|
|
1621
1616
|
"locationInModule": {
|
|
1622
1617
|
"filename": "lib/index.ts",
|
|
1623
|
-
"line":
|
|
1618
|
+
"line": 83
|
|
1624
1619
|
},
|
|
1625
1620
|
"name": "s3LoggingBucket",
|
|
1626
1621
|
"optional": true,
|
|
@@ -1690,7 +1685,7 @@
|
|
|
1690
1685
|
"immutable": true,
|
|
1691
1686
|
"locationInModule": {
|
|
1692
1687
|
"filename": "lib/index.ts",
|
|
1693
|
-
"line":
|
|
1688
|
+
"line": 67
|
|
1694
1689
|
},
|
|
1695
1690
|
"name": "cloudFrontLoggingBucketProps",
|
|
1696
1691
|
"optional": true,
|
|
@@ -1709,7 +1704,7 @@
|
|
|
1709
1704
|
"filename": "lib/index.ts",
|
|
1710
1705
|
"line": 29
|
|
1711
1706
|
},
|
|
1712
|
-
"name": "
|
|
1707
|
+
"name": "existingBucketObj",
|
|
1713
1708
|
"optional": true,
|
|
1714
1709
|
"type": {
|
|
1715
1710
|
"fqn": "@aws-cdk/aws-s3.IBucket"
|
|
@@ -1741,18 +1736,56 @@
|
|
|
1741
1736
|
"immutable": true,
|
|
1742
1737
|
"locationInModule": {
|
|
1743
1738
|
"filename": "lib/index.ts",
|
|
1744
|
-
"line":
|
|
1739
|
+
"line": 61
|
|
1745
1740
|
},
|
|
1746
1741
|
"name": "loggingBucketProps",
|
|
1747
1742
|
"optional": true,
|
|
1748
1743
|
"type": {
|
|
1749
1744
|
"fqn": "@aws-cdk/aws-s3.BucketProps"
|
|
1750
1745
|
}
|
|
1746
|
+
},
|
|
1747
|
+
{
|
|
1748
|
+
"abstract": true,
|
|
1749
|
+
"docs": {
|
|
1750
|
+
"default": "- true",
|
|
1751
|
+
"remarks": "Enabling Access Logging is a best practice.",
|
|
1752
|
+
"summary": "Whether to turn on Access Logs for the S3 bucket with the associated storage costs."
|
|
1753
|
+
},
|
|
1754
|
+
"immutable": true,
|
|
1755
|
+
"locationInModule": {
|
|
1756
|
+
"filename": "lib/index.ts",
|
|
1757
|
+
"line": 74
|
|
1758
|
+
},
|
|
1759
|
+
"name": "logS3AccessLogs",
|
|
1760
|
+
"optional": true,
|
|
1761
|
+
"type": {
|
|
1762
|
+
"primitive": "boolean"
|
|
1763
|
+
}
|
|
1764
|
+
},
|
|
1765
|
+
{
|
|
1766
|
+
"abstract": true,
|
|
1767
|
+
"docs": {
|
|
1768
|
+
"custom": {
|
|
1769
|
+
"dafault": "= '/'"
|
|
1770
|
+
},
|
|
1771
|
+
"remarks": "The string should start with a `/`, for example `/production`.",
|
|
1772
|
+
"summary": "Optional user provided props to provide an originPath that CloudFront appends to the origin domain name when CloudFront requests content from the origin."
|
|
1773
|
+
},
|
|
1774
|
+
"immutable": true,
|
|
1775
|
+
"locationInModule": {
|
|
1776
|
+
"filename": "lib/index.ts",
|
|
1777
|
+
"line": 55
|
|
1778
|
+
},
|
|
1779
|
+
"name": "originPath",
|
|
1780
|
+
"optional": true,
|
|
1781
|
+
"type": {
|
|
1782
|
+
"primitive": "string"
|
|
1783
|
+
}
|
|
1751
1784
|
}
|
|
1752
1785
|
],
|
|
1753
1786
|
"symbolId": "lib/index:CloudFrontToS3Props"
|
|
1754
1787
|
}
|
|
1755
1788
|
},
|
|
1756
|
-
"version": "1.
|
|
1757
|
-
"fingerprint": "
|
|
1789
|
+
"version": "1.130.0",
|
|
1790
|
+
"fingerprint": "9QV1LXeV/XU1Od5Rie8v3osxenIZzYASOFJFkpFCNLo="
|
|
1758
1791
|
}
|
package/README.md
CHANGED
|
@@ -45,12 +45,14 @@ _Parameters_
|
|
|
45
45
|
|
|
46
46
|
| **Name** | **Type** | **Description** |
|
|
47
47
|
|:-------------|:----------------|-----------------|
|
|
48
|
-
|
|
|
48
|
+
|existingBucketObj?|[`s3.IBucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.IBucket.html)|Existing instance of S3 Bucket object or interface. If this is provided, then also providing bucketProps will cause an error. |
|
|
49
49
|
|bucketProps?|[`s3.BucketProps`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.BucketProps.html)|Optional user provided props to override the default props for the S3 Bucket.|
|
|
50
50
|
|cloudFrontDistributionProps?|[`cloudfront.DistributionProps`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cloudfront.DistributionProps.html)|Optional user provided props to override the default props for CloudFront Distribution|
|
|
51
51
|
|insertHttpSecurityHeaders?|`boolean`|Optional user provided props to turn on/off the automatic injection of best practice HTTP security headers in all responses from CloudFront|
|
|
52
|
+
|originPath?|`string`|Optional user provided props to provide an[originPath](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cloudfront-origins.S3OriginProps.html#originpath) that CloudFront appends to the origin domain name when CloudFront requests content from the origin. The string should start with a `/`, for example: `/production`. Default value is `'/'`|
|
|
52
53
|
|loggingBucketProps?|[`s3.BucketProps`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.BucketProps.html)|Optional user provided props to override the default props for the S3 Logging Bucket.|
|
|
53
54
|
|cloudFrontLoggingBucketProps?|[`s3.BucketProps`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.BucketProps.html)|Optional user provided props to override the default props for the CloudFront Logging Bucket.|
|
|
55
|
+
|logS3AccessLogs?| boolean|Whether to turn on Access Logging for the S3 bucket. Creates an S3 bucket with associated storage costs for the logs. Enabling Access Logging is a best practice. default - true|
|
|
54
56
|
|
|
55
57
|
## Pattern Properties
|
|
56
58
|
|
|
@@ -60,7 +62,7 @@ _Parameters_
|
|
|
60
62
|
|cloudFrontFunction?|[`cloudfront.Function`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cloudfront.Function.html)|Returns an instance of the Cloudfront function created by the pattern.|
|
|
61
63
|
|cloudFrontLoggingBucket|[`s3.Bucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/aws-s3-readme.html)|Returns an instance of the logging bucket for CloudFront WebDistribution.|
|
|
62
64
|
|s3BucketInterface|[`s3.IBucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.IBucket.html)|Returns an instance of s3.IBucket created by the construct|
|
|
63
|
-
|s3Bucket?|[`s3.Bucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)|Returns an instance of s3.Bucket created by the construct. IMPORTANT: If
|
|
65
|
+
|s3Bucket?|[`s3.Bucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)|Returns an instance of s3.Bucket created by the construct. IMPORTANT: If existingBucketObj was provided in Pattern Construct Props, this property will be `undefined`|
|
|
64
66
|
|s3LoggingBucket?|[`s3.Bucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)|Returns an instance of s3.Bucket created by the construct as the logging bucket for the primary bucket.|
|
|
65
67
|
|
|
66
68
|
## Default settings
|
|
@@ -70,6 +72,7 @@ Out of the box implementation of the Construct without any override will set the
|
|
|
70
72
|
### Amazon CloudFront
|
|
71
73
|
* Configure Access logging for CloudFront WebDistribution
|
|
72
74
|
* Enable automatic injection of best practice HTTP security headers in all responses from CloudFront WebDistribution
|
|
75
|
+
* CloudFront originPath set to `'/'`
|
|
73
76
|
|
|
74
77
|
### Amazon S3 Bucket
|
|
75
78
|
* Configure Access logging for S3 Bucket
|
package/lib/index.d.ts
CHANGED
|
@@ -22,7 +22,7 @@ export interface CloudFrontToS3Props {
|
|
|
22
22
|
*
|
|
23
23
|
* @default - None
|
|
24
24
|
*/
|
|
25
|
-
readonly
|
|
25
|
+
readonly existingBucketObj?: s3.IBucket;
|
|
26
26
|
/**
|
|
27
27
|
* Optional user provided props to override the default props for the S3 Bucket.
|
|
28
28
|
*
|
|
@@ -41,6 +41,14 @@ export interface CloudFrontToS3Props {
|
|
|
41
41
|
* @default - true
|
|
42
42
|
*/
|
|
43
43
|
readonly insertHttpSecurityHeaders?: boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Optional user provided props to provide an originPath that CloudFront appends to the origin domain name when CloudFront requests content from the origin.
|
|
46
|
+
*
|
|
47
|
+
* The string should start with a `/`, for example `/production`.
|
|
48
|
+
*
|
|
49
|
+
* @dafault = '/'
|
|
50
|
+
*/
|
|
51
|
+
readonly originPath?: string;
|
|
44
52
|
/**
|
|
45
53
|
* Optional user provided props to override the default props for the S3 Logging Bucket.
|
|
46
54
|
*
|
|
@@ -53,6 +61,14 @@ export interface CloudFrontToS3Props {
|
|
|
53
61
|
* @default - Default props are used
|
|
54
62
|
*/
|
|
55
63
|
readonly cloudFrontLoggingBucketProps?: s3.BucketProps;
|
|
64
|
+
/**
|
|
65
|
+
* Whether to turn on Access Logs for the S3 bucket with the associated storage costs.
|
|
66
|
+
*
|
|
67
|
+
* Enabling Access Logging is a best practice.
|
|
68
|
+
*
|
|
69
|
+
* @default - true
|
|
70
|
+
*/
|
|
71
|
+
readonly logS3AccessLogs?: boolean;
|
|
56
72
|
}
|
|
57
73
|
export declare class CloudFrontToS3 extends Construct {
|
|
58
74
|
readonly cloudFrontWebDistribution: cloudfront.Distribution;
|
package/lib/index.js
CHANGED
|
@@ -18,21 +18,24 @@ class CloudFrontToS3 extends core_1.Construct {
|
|
|
18
18
|
constructor(scope, id, props) {
|
|
19
19
|
super(scope, id);
|
|
20
20
|
defaults.CheckProps(props);
|
|
21
|
-
|
|
21
|
+
let bucket;
|
|
22
|
+
if (!props.existingBucketObj) {
|
|
22
23
|
[this.s3Bucket, this.s3LoggingBucket] = defaults.buildS3Bucket(this, {
|
|
23
24
|
bucketProps: props.bucketProps,
|
|
24
|
-
loggingBucketProps: props.loggingBucketProps
|
|
25
|
+
loggingBucketProps: props.loggingBucketProps,
|
|
26
|
+
logS3AccessLogs: props.logS3AccessLogs
|
|
25
27
|
});
|
|
26
|
-
|
|
28
|
+
bucket = this.s3Bucket;
|
|
27
29
|
}
|
|
28
30
|
else {
|
|
29
|
-
|
|
31
|
+
bucket = props.existingBucketObj;
|
|
30
32
|
}
|
|
33
|
+
this.s3BucketInterface = bucket;
|
|
31
34
|
[this.cloudFrontWebDistribution, this.cloudFrontFunction, this.cloudFrontLoggingBucket] =
|
|
32
|
-
defaults.CloudFrontDistributionForS3(this, this.s3BucketInterface, props.cloudFrontDistributionProps, props.insertHttpSecurityHeaders, props.cloudFrontLoggingBucketProps);
|
|
35
|
+
defaults.CloudFrontDistributionForS3(this, this.s3BucketInterface, props.cloudFrontDistributionProps, props.insertHttpSecurityHeaders, props.originPath, props.cloudFrontLoggingBucketProps);
|
|
33
36
|
}
|
|
34
37
|
}
|
|
35
38
|
exports.CloudFrontToS3 = CloudFrontToS3;
|
|
36
39
|
_a = JSII_RTTI_SYMBOL_1;
|
|
37
|
-
CloudFrontToS3[_a] = { fqn: "@aws-solutions-constructs/aws-cloudfront-s3.CloudFrontToS3", version: "1.
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
CloudFrontToS3[_a] = { fqn: "@aws-solutions-constructs/aws-cloudfront-s3.CloudFrontToS3", version: "1.130.0" };
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQWVBLHdGQUF3RjtBQUN4Rix3Q0FBMEM7QUFDMUMsMkRBQTJEO0FBc0IzRCxNQUFhLGNBQWUsU0FBUSxnQkFBUzs7Ozs7Ozs7O0lBUzNDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBMEI7UUFDbEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQixRQUFRLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTNCLElBQUksTUFBa0IsQ0FBQztRQUV2QixJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixFQUFFO1lBQzVCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUU7Z0JBQ25FLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztnQkFDOUIsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLGtCQUFrQjtnQkFDNUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxlQUFlO2FBQ3ZDLENBQUMsQ0FBQztZQUNILE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1NBQ3hCO2FBQU07WUFDTCxNQUFNLEdBQUcsS0FBSyxDQUFDLGlCQUFpQixDQUFDO1NBQ2xDO1FBRUQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLE1BQU0sQ0FBQztRQUVoQyxDQUFDLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLHVCQUF1QixDQUFDO1lBQ3JGLFFBQVEsQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUMvRCxLQUFLLENBQUMsMkJBQTJCLEVBQUUsS0FBSyxDQUFDLHlCQUF5QixFQUFFLEtBQUssQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUM7SUFDaEksQ0FBQzs7QUEvQkgsd0NBaUNDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgQ29weXJpZ2h0IDIwMjEgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKS4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuICogIHdpdGggdGhlIExpY2Vuc2UuIEEgY29weSBvZiB0aGUgTGljZW5zZSBpcyBsb2NhdGVkIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiAgb3IgaW4gdGhlICdsaWNlbnNlJyBmaWxlIGFjY29tcGFueWluZyB0aGlzIGZpbGUuIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAnQVMgSVMnIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVNcbiAqICBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xuICogIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgKiBhcyBjbG91ZGZyb250IGZyb20gJ0Bhd3MtY2RrL2F3cy1jbG91ZGZyb250JztcbmltcG9ydCAqIGFzIHMzIGZyb20gJ0Bhd3MtY2RrL2F3cy1zMyc7XG4vLyBOb3RlOiBUbyBlbnN1cmUgQ0RLdjIgY29tcGF0aWJpbGl0eSwga2VlcCB0aGUgaW1wb3J0IHN0YXRlbWVudCBmb3IgQ29uc3RydWN0IHNlcGFyYXRlXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdAYXdzLWNkay9jb3JlJztcbmltcG9ydCAqIGFzIGRlZmF1bHRzIGZyb20gJ0Bhd3Mtc29sdXRpb25zLWNvbnN0cnVjdHMvY29yZSc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBpbnRlcmZhY2UgQ2xvdWRGcm9udFRvUzNQcm9wcyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBleGlzdGluZ0J1Y2tldE9iaj86IHMzLklCdWNrZXQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgYnVja2V0UHJvcHM/OiBzMy5CdWNrZXRQcm9wcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGNsb3VkRnJvbnREaXN0cmlidXRpb25Qcm9wcz86IGNsb3VkZnJvbnQuRGlzdHJpYnV0aW9uUHJvcHMgfCBhbnksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGluc2VydEh0dHBTZWN1cml0eUhlYWRlcnM/OiBib29sZWFuO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgb3JpZ2luUGF0aD86IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGxvZ2dpbmdCdWNrZXRQcm9wcz86IHMzLkJ1Y2tldFByb3BzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGNsb3VkRnJvbnRMb2dnaW5nQnVja2V0UHJvcHM/OiBzMy5CdWNrZXRQcm9wc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBsb2dTM0FjY2Vzc0xvZ3M/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgQ2xvdWRGcm9udFRvUzMgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgY2xvdWRGcm9udFdlYkRpc3RyaWJ1dGlvbjogY2xvdWRmcm9udC5EaXN0cmlidXRpb247XG4gIHB1YmxpYyByZWFkb25seSBjbG91ZEZyb250RnVuY3Rpb24/OiBjbG91ZGZyb250LkZ1bmN0aW9uO1xuICBwdWJsaWMgcmVhZG9ubHkgY2xvdWRGcm9udExvZ2dpbmdCdWNrZXQ/OiBzMy5CdWNrZXQ7XG4gIHB1YmxpYyByZWFkb25seSBzM0J1Y2tldEludGVyZmFjZTogczMuSUJ1Y2tldDtcbiAgcHVibGljIHJlYWRvbmx5IHMzQnVja2V0PzogczMuQnVja2V0O1xuICBwdWJsaWMgcmVhZG9ubHkgczNMb2dnaW5nQnVja2V0PzogczMuQnVja2V0O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IENsb3VkRnJvbnRUb1MzUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIGRlZmF1bHRzLkNoZWNrUHJvcHMocHJvcHMpO1xuXG4gICAgbGV0IGJ1Y2tldDogczMuSUJ1Y2tldDtcblxuICAgIGlmICghcHJvcHMuZXhpc3RpbmdCdWNrZXRPYmopIHtcbiAgICAgIFt0aGlzLnMzQnVja2V0LCB0aGlzLnMzTG9nZ2luZ0J1Y2tldF0gPSBkZWZhdWx0cy5idWlsZFMzQnVja2V0KHRoaXMsIHtcbiAgICAgICAgYnVja2V0UHJvcHM6IHByb3BzLmJ1Y2tldFByb3BzLFxuICAgICAgICBsb2dnaW5nQnVja2V0UHJvcHM6IHByb3BzLmxvZ2dpbmdCdWNrZXRQcm9wcyxcbiAgICAgICAgbG9nUzNBY2Nlc3NMb2dzOiBwcm9wcy5sb2dTM0FjY2Vzc0xvZ3NcbiAgICAgIH0pO1xuICAgICAgYnVja2V0ID0gdGhpcy5zM0J1Y2tldDtcbiAgICB9IGVsc2Uge1xuICAgICAgYnVja2V0ID0gcHJvcHMuZXhpc3RpbmdCdWNrZXRPYmo7XG4gICAgfVxuXG4gICAgdGhpcy5zM0J1Y2tldEludGVyZmFjZSA9IGJ1Y2tldDtcblxuICAgIFt0aGlzLmNsb3VkRnJvbnRXZWJEaXN0cmlidXRpb24sIHRoaXMuY2xvdWRGcm9udEZ1bmN0aW9uLCB0aGlzLmNsb3VkRnJvbnRMb2dnaW5nQnVja2V0XSA9XG4gICAgICBkZWZhdWx0cy5DbG91ZEZyb250RGlzdHJpYnV0aW9uRm9yUzModGhpcywgdGhpcy5zM0J1Y2tldEludGVyZmFjZSxcbiAgICAgICAgcHJvcHMuY2xvdWRGcm9udERpc3RyaWJ1dGlvblByb3BzLCBwcm9wcy5pbnNlcnRIdHRwU2VjdXJpdHlIZWFkZXJzLCBwcm9wcy5vcmlnaW5QYXRoLCBwcm9wcy5jbG91ZEZyb250TG9nZ2luZ0J1Y2tldFByb3BzKTtcbiAgfVxuXG59XG4iXX0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-solutions-constructs/aws-cloudfront-s3",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.130.0",
|
|
4
4
|
"description": "CDK Constructs for AWS Cloudfront to AWS S3 integration.",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|
|
@@ -41,8 +41,8 @@
|
|
|
41
41
|
}
|
|
42
42
|
},
|
|
43
43
|
"dotnet": {
|
|
44
|
-
"namespace": "Amazon.
|
|
45
|
-
"packageId": "Amazon.
|
|
44
|
+
"namespace": "Amazon.SolutionsConstructs.AWS.CloudfrontS3",
|
|
45
|
+
"packageId": "Amazon.SolutionsConstructs.AWS.CloudfrontS3",
|
|
46
46
|
"signAssembly": true,
|
|
47
47
|
"iconUrl": "https://raw.githubusercontent.com/aws/aws-cdk/master/logo/default-256-dark.png"
|
|
48
48
|
},
|
|
@@ -53,17 +53,17 @@
|
|
|
53
53
|
}
|
|
54
54
|
},
|
|
55
55
|
"dependencies": {
|
|
56
|
-
"@aws-cdk/core": "1.
|
|
57
|
-
"@aws-cdk/aws-cloudfront": "1.
|
|
58
|
-
"@aws-cdk/aws-s3": "1.
|
|
59
|
-
"@aws-cdk/aws-lambda": "1.
|
|
60
|
-
"@aws-solutions-constructs/core": "1.
|
|
61
|
-
"@aws-cdk/aws-certificatemanager": "1.
|
|
62
|
-
"@aws-cdk/aws-cloudfront-origins": "1.
|
|
56
|
+
"@aws-cdk/core": "1.130.0",
|
|
57
|
+
"@aws-cdk/aws-cloudfront": "1.130.0",
|
|
58
|
+
"@aws-cdk/aws-s3": "1.130.0",
|
|
59
|
+
"@aws-cdk/aws-lambda": "1.130.0",
|
|
60
|
+
"@aws-solutions-constructs/core": "1.130.0",
|
|
61
|
+
"@aws-cdk/aws-certificatemanager": "1.130.0",
|
|
62
|
+
"@aws-cdk/aws-cloudfront-origins": "1.130.0",
|
|
63
63
|
"constructs": "^3.2.0"
|
|
64
64
|
},
|
|
65
65
|
"devDependencies": {
|
|
66
|
-
"@aws-cdk/assert": "1.
|
|
66
|
+
"@aws-cdk/assert": "1.130.0",
|
|
67
67
|
"@types/jest": "^26.0.22",
|
|
68
68
|
"@types/node": "^10.3.0"
|
|
69
69
|
},
|
|
@@ -82,14 +82,14 @@
|
|
|
82
82
|
]
|
|
83
83
|
},
|
|
84
84
|
"peerDependencies": {
|
|
85
|
-
"@aws-cdk/core": "1.
|
|
86
|
-
"@aws-cdk/aws-cloudfront": "1.
|
|
87
|
-
"@aws-cdk/aws-s3": "1.
|
|
88
|
-
"@aws-solutions-constructs/core": "1.
|
|
85
|
+
"@aws-cdk/core": "1.130.0",
|
|
86
|
+
"@aws-cdk/aws-cloudfront": "1.130.0",
|
|
87
|
+
"@aws-cdk/aws-s3": "1.130.0",
|
|
88
|
+
"@aws-solutions-constructs/core": "1.130.0",
|
|
89
89
|
"constructs": "^3.2.0",
|
|
90
|
-
"@aws-cdk/aws-lambda": "1.
|
|
91
|
-
"@aws-cdk/aws-certificatemanager": "1.
|
|
92
|
-
"@aws-cdk/aws-cloudfront-origins": "1.
|
|
90
|
+
"@aws-cdk/aws-lambda": "1.130.0",
|
|
91
|
+
"@aws-cdk/aws-certificatemanager": "1.130.0",
|
|
92
|
+
"@aws-cdk/aws-cloudfront-origins": "1.130.0"
|
|
93
93
|
},
|
|
94
94
|
"keywords": [
|
|
95
95
|
"aws",
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2021 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 {};
|