aws-cdk-constructs 2.45.0__tar.gz → 2.46.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. {aws_cdk_constructs-2.45.0/aws_cdk_constructs.egg-info → aws_cdk_constructs-2.46.1}/PKG-INFO +1 -1
  2. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs/__init__.py +1 -1
  3. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs/bucket/bucket.py +31 -7
  4. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1/aws_cdk_constructs.egg-info}/PKG-INFO +1 -1
  5. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/tests/test_bucket.py +41 -0
  6. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/LICENSE.txt +0 -0
  7. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/MANIFEST.in +0 -0
  8. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/README.md +0 -0
  9. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs/api/__init__.py +0 -0
  10. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs/api/api.py +0 -0
  11. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs/bucket/__init__.py +0 -0
  12. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs/bucket/auth_flow.py +0 -0
  13. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs/bucket/base_edge_constructs.py +0 -0
  14. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs/bucket/configuration.py +0 -0
  15. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs/bucket/edge_function.py +0 -0
  16. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs/bucket/edge_role.py +0 -0
  17. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs/bucket/log_level.py +0 -0
  18. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs/bucket/secret_generator.py +0 -0
  19. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs/bucket/with_configuration.py +0 -0
  20. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs/database/__init__.py +0 -0
  21. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs/database/_types/__init__.py +0 -0
  22. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs/database/_types/document.py +0 -0
  23. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs/database/_types/graph.py +0 -0
  24. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs/database/_types/relational.py +0 -0
  25. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs/database/database.py +0 -0
  26. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs/database/types.py +0 -0
  27. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs/ecs/__init__.py +0 -0
  28. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs/ecs/cluster.py +0 -0
  29. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs/ecs/fargate_validator.py +0 -0
  30. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs/ecs/microservice.py +0 -0
  31. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs/efs/__init__.py +0 -0
  32. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs/efs/volume.py +0 -0
  33. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs/lambdas/add-index/index.js +0 -0
  34. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs/lambdas/add-index/index.js.map +0 -0
  35. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs/lambdas/check-auth/index.js +0 -0
  36. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs/lambdas/check-auth/index.js.LICENSE.txt +0 -0
  37. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs/lambdas/check-auth/index.js.map +0 -0
  38. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs/lambdas/parse-auth/index.js +0 -0
  39. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs/lambdas/parse-auth/index.js.LICENSE.txt +0 -0
  40. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs/lambdas/parse-auth/index.js.map +0 -0
  41. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs/lambdas/refresh-auth/index.js +0 -0
  42. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs/lambdas/refresh-auth/index.js.LICENSE.txt +0 -0
  43. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs/lambdas/refresh-auth/index.js.map +0 -0
  44. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs/lambdas/secret-generator/index.js +0 -0
  45. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs/lambdas/secret-generator/index.js.map +0 -0
  46. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs/lambdas/sign-out/index.js +0 -0
  47. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs/lambdas/sign-out/index.js.LICENSE.txt +0 -0
  48. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs/lambdas/sign-out/index.js.map +0 -0
  49. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs/lambdas/with_configuration/index.js +0 -0
  50. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs/lambdas/with_configuration/index.js.LICENSE.txt +0 -0
  51. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs/lambdas/with_configuration/index.js.map +0 -0
  52. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs/load_balancer/__init__.py +0 -0
  53. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs/load_balancer/alb.py +0 -0
  54. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs/load_balancer/nlb.py +0 -0
  55. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs/microservice/__init__.py +0 -0
  56. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs/microservice/base_user_data.sh +0 -0
  57. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs/microservice/manage_connection_to_nlb_instance_security_group_ingress/lambda_function.js +0 -0
  58. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs/microservice/microservice.py +0 -0
  59. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs/security_group/__init__.py +0 -0
  60. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs/security_group/security_group.py +0 -0
  61. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs/service_user_for_iac/__init__.py +0 -0
  62. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs/service_user_for_iac/service_user_for_iac.py +0 -0
  63. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs/service_user_for_static_assets/__init__.py +0 -0
  64. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs/service_user_for_static_assets/service_user_for_static_assets.py +0 -0
  65. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs/utils.py +0 -0
  66. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs/windows_server/__init__.py +0 -0
  67. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs/windows_server/user_data.ps1 +0 -0
  68. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs/windows_server/windows_server.py +0 -0
  69. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs.egg-info/SOURCES.txt +0 -0
  70. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs.egg-info/dependency_links.txt +0 -0
  71. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs.egg-info/requires.txt +0 -0
  72. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/aws_cdk_constructs.egg-info/top_level.txt +0 -0
  73. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/setup.cfg +0 -0
  74. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/setup.py +0 -0
  75. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/tests/test_alb.py +0 -0
  76. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/tests/test_database.py +0 -0
  77. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/tests/test_ecs_cluster.py +0 -0
  78. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/tests/test_ecs_microservice.py +0 -0
  79. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/tests/test_efs_volume.py +0 -0
  80. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/tests/test_fargate_validator.py +0 -0
  81. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/tests/test_microservice.py +0 -0
  82. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/tests/test_nlb.py +0 -0
  83. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/tests/test_security_group.py +0 -0
  84. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/tests/test_service_user_for_iac.py +0 -0
  85. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/tests/test_service_user_for_static_assets.py +0 -0
  86. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/tests/test_utils.py +0 -0
  87. {aws_cdk_constructs-2.45.0 → aws_cdk_constructs-2.46.1}/tests/test_windows_server.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aws_cdk_constructs
3
- Version: 2.45.0
3
+ Version: 2.46.1
4
4
  Summary: AWS CDK constructs
5
5
  Home-page: https://bitbucket.org/cioapps/aws-cdk-constructs
6
6
  Author: author
@@ -15,4 +15,4 @@ from .load_balancer import Alb, Nlb
15
15
  from .security_group import SecurityGroup
16
16
  from .windows_server import WindowsServer
17
17
 
18
- __version__ = '2.45.0'
18
+ __version__ = '2.46.1'
@@ -107,6 +107,8 @@ class Bucket(Construct):
107
107
  cdn_ssl_certificate_arn (str): If "will_implement_cdn" is "True" and you want to enable HTTPS for your CloudFront distribution, specify the SSL certificate ARN to use. NB: this certificate must be in North Virginia
108
108
 
109
109
  bucket_policy_statements: List[_iam.PolicyStatement]: List of policy statements to be added to the Bucket policy. Default: []
110
+
111
+ bucket_static_website_origin (str): Whether or not the S3 Bucket should be configured as Static Website Origin on CloudFront. It cannot be combined with bucket_has_authentication='True'. Default: false
110
112
  """
111
113
 
112
114
  @property
@@ -459,6 +461,7 @@ class Bucket(Construct):
459
461
  _cloudfront.ResponseHeadersPolicy, None
460
462
  ] = None,
461
463
  user_pool_client: Union[None, _cognito.UserPoolClient] = None,
464
+ bucket_static_website_origin: str = 'false',
462
465
  **kwargs,
463
466
  ) -> None:
464
467
  super().__init__(scope, id, **kwargs)
@@ -521,6 +524,23 @@ class Bucket(Construct):
521
524
  and will_implement_cdn.lower() == 'true'
522
525
  )
523
526
 
527
+ if (
528
+ bucket_static_website_origin
529
+ and bucket_static_website_origin.lower() == 'true'
530
+ and bucket_has_authentication
531
+ and bucket_has_authentication.lower() == 'true'
532
+ ):
533
+ raise ValueError(
534
+ 'bucket_static_website_origin and bucket_has_authentication cannot both be enabled. '
535
+ 'Static website origin requires public bucket access, which conflicts with authenticated access.'
536
+ )
537
+
538
+ static_website_origin = (
539
+ bucket_static_website_origin
540
+ and isinstance(bucket_static_website_origin, str)
541
+ and bucket_static_website_origin.lower() == 'true'
542
+ )
543
+
524
544
  # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CloudFormation outputs
525
545
  if not omit_cloudformation_template_outputs:
526
546
  cdk.CfnOutput(
@@ -707,12 +727,20 @@ class Bucket(Construct):
707
727
  allowed_headers=['*'],
708
728
  )
709
729
 
730
+ # Define origin type
731
+ if static_website_origin:
732
+ origin = _cloudfront_origins.S3StaticWebsiteOrigin(self.bucket)
733
+ else:
734
+ origin = (
735
+ _cloudfront_origins.S3BucketOrigin.with_origin_access_control(
736
+ self.bucket
737
+ )
738
+ )
739
+
710
740
  # Create CloudFront distribution
711
741
  if create_cdn:
712
742
  default_behavior = _cloudfront.BehaviorOptions(
713
- origin=_cloudfront_origins.S3BucketOrigin.with_origin_access_control(
714
- self.bucket
715
- ),
743
+ origin=origin,
716
744
  compress=True,
717
745
  # viewer_protocol_policy=_cloudfront.ViewerProtocolPolicy.HTTPS_ONLY,
718
746
  allowed_methods=_cloudfront.AllowedMethods.ALLOW_GET_HEAD_OPTIONS,
@@ -805,10 +833,6 @@ class Bucket(Construct):
805
833
  )
806
834
  )
807
835
 
808
- origin = origins.S3BucketOrigin.with_origin_access_control(
809
- self.bucket
810
- )
811
-
812
836
  redirect_paths = RedirectPaths(
813
837
  sign_in='/parseauth',
814
838
  auth_refresh='/refreshauth',
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aws_cdk_constructs
3
- Version: 2.45.0
3
+ Version: 2.46.1
4
4
  Summary: AWS CDK constructs
5
5
  Home-page: https://bitbucket.org/cioapps/aws-cdk-constructs
6
6
  Author: author
@@ -725,6 +725,47 @@ def test_bucket_includes_cloudfront(app, stack, environment_parameters):
725
725
  )
726
726
 
727
727
 
728
+ def test_bucket_static_website_origin(app, stack, environment_parameters):
729
+ cdn_domain = 'test.dev.fao.org'
730
+ cdn_ssl_certificate_arn = 'arn:aws:acm:us-east-1:test:certificate/test'
731
+ Bucket(
732
+ scope=stack,
733
+ id='test-bucket-id',
734
+ app_name='test-app',
735
+ environment='Development',
736
+ environments_parameters=environment_parameters,
737
+ bucket_name='test-bucket-name',
738
+ will_implement_cdn='True',
739
+ cdn_domain_names=[cdn_domain],
740
+ cdn_ssl_certificate_arn=cdn_ssl_certificate_arn,
741
+ bucket_static_website_origin='True',
742
+ )
743
+
744
+ template = Template.from_stack(stack)
745
+ template.has_resource_properties(
746
+ 'AWS::CloudFront::Distribution',
747
+ {
748
+ 'DistributionConfig': {
749
+ 'Aliases': [cdn_domain],
750
+ 'PriceClass': 'PriceClass_100',
751
+ 'ViewerCertificate': {
752
+ 'AcmCertificateArn': cdn_ssl_certificate_arn,
753
+ 'MinimumProtocolVersion': 'TLSv1.2_2021',
754
+ 'SslSupportMethod': 'sni-only',
755
+ },
756
+ 'Origins': [
757
+ {
758
+ 'CustomOriginConfig': {
759
+ 'OriginProtocolPolicy': 'http-only',
760
+ 'OriginSSLProtocols': ['TLSv1.2'],
761
+ },
762
+ },
763
+ ],
764
+ },
765
+ },
766
+ )
767
+
768
+
728
769
  def test_bucket_with_object_ownership_when_no_public_read_access(
729
770
  app, stack, environment_parameters
730
771
  ):