aws-cdk-lib 2.154.1__py3-none-any.whl → 2.156.0__py3-none-any.whl

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.

Potentially problematic release.


This version of aws-cdk-lib might be problematic. Click here for more details.

Files changed (37) hide show
  1. aws_cdk/__init__.py +2 -2
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.154.1.jsii.tgz → aws-cdk-lib@2.156.0.jsii.tgz} +0 -0
  4. aws_cdk/assertions/__init__.py +17 -17
  5. aws_cdk/aws_bedrock/__init__.py +22 -4
  6. aws_cdk/aws_cloudfront/__init__.py +654 -59
  7. aws_cdk/aws_cloudfront_origins/__init__.py +2034 -91
  8. aws_cdk/aws_codebuild/__init__.py +349 -8
  9. aws_cdk/aws_docdb/__init__.py +78 -6
  10. aws_cdk/aws_ec2/__init__.py +250 -61
  11. aws_cdk/aws_ecs/__init__.py +18 -14
  12. aws_cdk/aws_ecs_patterns/__init__.py +129 -11
  13. aws_cdk/aws_eks/__init__.py +74 -8
  14. aws_cdk/aws_elasticloadbalancingv2/__init__.py +22 -46
  15. aws_cdk/aws_events/__init__.py +40 -14
  16. aws_cdk/aws_events_targets/__init__.py +357 -0
  17. aws_cdk/aws_iam/__init__.py +7 -8
  18. aws_cdk/aws_ivs/__init__.py +10 -8
  19. aws_cdk/aws_kms/__init__.py +89 -10
  20. aws_cdk/aws_lambda/__init__.py +38 -23
  21. aws_cdk/aws_lambda_event_sources/__init__.py +27 -0
  22. aws_cdk/aws_rds/__init__.py +12 -0
  23. aws_cdk/aws_s3/__init__.py +13 -14
  24. aws_cdk/aws_secretsmanager/__init__.py +3 -2
  25. aws_cdk/aws_ses/__init__.py +7 -7
  26. aws_cdk/aws_ssmcontacts/__init__.py +12 -0
  27. aws_cdk/aws_stepfunctions/__init__.py +12 -14
  28. aws_cdk/aws_stepfunctions_tasks/__init__.py +178 -41
  29. aws_cdk/aws_synthetics/__init__.py +26 -0
  30. aws_cdk/custom_resources/__init__.py +106 -1
  31. aws_cdk/cx_api/__init__.py +16 -0
  32. {aws_cdk_lib-2.154.1.dist-info → aws_cdk_lib-2.156.0.dist-info}/METADATA +1 -1
  33. {aws_cdk_lib-2.154.1.dist-info → aws_cdk_lib-2.156.0.dist-info}/RECORD +37 -37
  34. {aws_cdk_lib-2.154.1.dist-info → aws_cdk_lib-2.156.0.dist-info}/LICENSE +0 -0
  35. {aws_cdk_lib-2.154.1.dist-info → aws_cdk_lib-2.156.0.dist-info}/NOTICE +0 -0
  36. {aws_cdk_lib-2.154.1.dist-info → aws_cdk_lib-2.156.0.dist-info}/WHEEL +0 -0
  37. {aws_cdk_lib-2.154.1.dist-info → aws_cdk_lib-2.156.0.dist-info}/top_level.txt +0 -0
@@ -8,7 +8,7 @@ possible performance.
8
8
 
9
9
  ## Distribution API
10
10
 
11
- The `Distribution` API is currently being built to replace the existing `CloudFrontWebDistribution` API. The `Distribution` API is optimized for the
11
+ The `Distribution` API replaces the `CloudFrontWebDistribution` API which is now deprecated. The `Distribution` API is optimized for the
12
12
  most common use cases of CloudFront distributions (e.g., single origin and behavior, few customizations) while still providing the ability for more
13
13
  advanced use cases. The API focuses on simplicity for the common use cases, and convenience methods for creating the behaviors and origins necessary
14
14
  for more complex use cases.
@@ -25,22 +25,19 @@ among other settings.
25
25
 
26
26
  #### From an S3 Bucket
27
27
 
28
- An S3 bucket can be added as an origin. If the bucket is configured as a website endpoint, the distribution can use S3 redirects and S3 custom error
29
- documents.
28
+ An S3 bucket can be added as an origin. An S3 bucket origin can either be configured as a standard bucket or as a website endpoint (see AWS docs for [Using an S3 Bucket](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/DownloadDistS3AndCustomOrigins.html#using-s3-as-origin)).
30
29
 
31
30
  ```python
32
- # Creates a distribution from an S3 bucket.
31
+ # Creates a distribution from an S3 bucket with origin access control
33
32
  my_bucket = s3.Bucket(self, "myBucket")
34
33
  cloudfront.Distribution(self, "myDist",
35
- default_behavior=cloudfront.BehaviorOptions(origin=origins.S3Origin(my_bucket))
34
+ default_behavior=cloudfront.BehaviorOptions(
35
+ origin=origins.S3BucketOrigin.with_origin_access_control(my_bucket)
36
+ )
36
37
  )
37
38
  ```
38
39
 
39
- The above will treat the bucket differently based on if `IBucket.isWebsite` is set or not. If the bucket is configured as a website, the bucket is
40
- treated as an HTTP origin, and the built-in S3 redirects and error pages can be used. Otherwise, the bucket is handled as a bucket origin and
41
- CloudFront's redirect and error handling will be used. In the latter case, the Origin will create an origin access identity and grant it access to the
42
- underlying bucket. This can be used in conjunction with a bucket that is not public to require that your users access your content using CloudFront
43
- URLs and not S3 URLs directly.
40
+ See the README of the [`aws-cdk-lib/aws-cloudfront-origins`](https://github.com/aws/aws-cdk/blob/main/packages/aws-cdk-lib/aws-cloudfront-origins/README.md) module for more information on setting up S3 origins and origin access control (OAC).
44
41
 
45
42
  #### ELBv2 Load Balancer
46
43
 
@@ -234,7 +231,7 @@ You can use a cache policy to improve your cache hit ratio by controlling the va
234
231
  that are included in the cache key, and/or adjusting how long items remain in the cache via the time-to-live (TTL) settings.
235
232
  CloudFront provides some predefined cache policies, known as managed policies, for common use cases. You can use these managed policies,
236
233
  or you can create your own cache policy that’s specific to your needs.
237
- See https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html for more details.
234
+ See [https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html) for more details.
238
235
 
239
236
  ```python
240
237
  # Using an existing cache policy for a Distribution
@@ -279,7 +276,7 @@ Other information from the viewer request, such as URL query strings, HTTP heade
279
276
  You can use an origin request policy to control the information that’s included in an origin request.
280
277
  CloudFront provides some predefined origin request policies, known as managed policies, for common use cases. You can use these managed policies,
281
278
  or you can create your own origin request policy that’s specific to your needs.
282
- See https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html for more details.
279
+ See [https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html) for more details.
283
280
 
284
281
  ```python
285
282
  # Using an existing origin request policy for a Distribution
@@ -317,7 +314,10 @@ cloudfront.Distribution(self, "myDistCustomPolicy",
317
314
 
318
315
  You can configure CloudFront to add one or more HTTP headers to the responses that it sends to viewers (web browsers or other clients), without making any changes to the origin or writing any code.
319
316
  To specify the headers that CloudFront adds to HTTP responses, you use a response headers policy. CloudFront adds the headers regardless of whether it serves the object from the cache or has to retrieve the object from the origin. If the origin response includes one or more of the headers that’s in a response headers policy, the policy can specify whether CloudFront uses the header it received from the origin or overwrites it with the one in the policy.
320
- See https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/adding-response-headers.html
317
+ See [https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/adding-response-headers.html](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/adding-response-headers.html)
318
+
319
+ > [!NOTE]
320
+ > If xssProtection `reportUri` is specified, then `modeBlock` cannot be set to `true`.
321
321
 
322
322
  ```python
323
323
  # Using an existing managed response headers policy
@@ -353,7 +353,7 @@ my_response_headers_policy = cloudfront.ResponseHeadersPolicy(self, "ResponseHea
353
353
  frame_options=cloudfront.ResponseHeadersFrameOptions(frame_option=cloudfront.HeadersFrameOption.DENY, override=True),
354
354
  referrer_policy=cloudfront.ResponseHeadersReferrerPolicy(referrer_policy=cloudfront.HeadersReferrerPolicy.NO_REFERRER, override=True),
355
355
  strict_transport_security=cloudfront.ResponseHeadersStrictTransportSecurity(access_control_max_age=Duration.seconds(600), include_subdomains=True, override=True),
356
- xss_protection=cloudfront.ResponseHeadersXSSProtection(protection=True, mode_block=True, report_uri="https://example.com/csp-report", override=True)
356
+ xss_protection=cloudfront.ResponseHeadersXSSProtection(protection=True, mode_block=False, report_uri="https://example.com/csp-report", override=True)
357
357
  ),
358
358
  remove_headers=["Server"],
359
359
  server_timing_sampling_rate=50
@@ -435,7 +435,7 @@ cloudfront.Distribution(self, "myDist",
435
435
  > The `EdgeFunction` construct will automatically request a function in `us-east-1`, regardless of the region of the current stack.
436
436
  > `EdgeFunction` has the same interface as `Function` and can be created and used interchangeably.
437
437
  > Please note that using `EdgeFunction` requires that the `us-east-1` region has been bootstrapped.
438
- > See https://docs.aws.amazon.com/cdk/latest/guide/bootstrapping.html for more about bootstrapping regions.
438
+ > See [https://docs.aws.amazon.com/cdk/latest/guide/bootstrapping.html](https://docs.aws.amazon.com/cdk/latest/guide/bootstrapping.html) for more about bootstrapping regions.
439
439
 
440
440
  If the stack is in `us-east-1`, a "normal" `lambda.Function` can be used instead of an `EdgeFunction`.
441
441
 
@@ -966,7 +966,7 @@ If no changes are desired during migration, you will at the least be able to use
966
966
 
967
967
  ## CloudFrontWebDistribution API
968
968
 
969
- > The `CloudFrontWebDistribution` construct is the original construct written for working with CloudFront distributions.
969
+ > The `CloudFrontWebDistribution` construct is the original construct written for working with CloudFront distributions and has been marked as deprecated.
970
970
  > Users are encouraged to use the newer `Distribution` instead, as it has a simpler interface and receives new features faster.
971
971
 
972
972
  Example usage:
@@ -1226,8 +1226,8 @@ cloudfront.KeyGroup(self, "MyKeyGroup",
1226
1226
 
1227
1227
  See:
1228
1228
 
1229
- * https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html
1230
- * https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-trusted-signers.html
1229
+ * [https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html)
1230
+ * [https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-trusted-signers.html](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-trusted-signers.html)
1231
1231
  '''
1232
1232
  from pkgutil import extend_path
1233
1233
  __path__ = extend_path(__path__, __name__)
@@ -1281,6 +1281,28 @@ from ..aws_s3 import IBucket as _IBucket_42e086fd
1281
1281
  from ..aws_s3_assets import AssetOptions as _AssetOptions_2aa69621
1282
1282
 
1283
1283
 
1284
+ @jsii.enum(jsii_type="aws-cdk-lib.aws_cloudfront.AccessLevel")
1285
+ class AccessLevel(enum.Enum):
1286
+ '''The level of permissions granted to the CloudFront Distribution when configuring OAC.
1287
+
1288
+ :exampleMetadata: infused
1289
+
1290
+ Example::
1291
+
1292
+ my_bucket = s3.Bucket(self, "myBucket")
1293
+ s3_origin = origins.S3BucketOrigin.with_origin_access_control(my_bucket,
1294
+ origin_access_levels=[cloudfront.AccessLevel.READ, cloudfront.AccessLevel.WRITE, cloudfront.AccessLevel.DELETE]
1295
+ )
1296
+ '''
1297
+
1298
+ READ = "READ"
1299
+ '''Grants read permissions to CloudFront Distribution.'''
1300
+ WRITE = "WRITE"
1301
+ '''Grants write permission to CloudFront Distribution.'''
1302
+ DELETE = "DELETE"
1303
+ '''Grants delete permission to CloudFront Distribution.'''
1304
+
1305
+
1284
1306
  @jsii.data_type(
1285
1307
  jsii_type="aws-cdk-lib.aws_cloudfront.AddBehaviorOptions",
1286
1308
  jsii_struct_bases=[],
@@ -2321,7 +2343,7 @@ class CachePolicyProps:
2321
2343
  '''Properties for creating a Cache Policy.
2322
2344
 
2323
2345
  :param cache_policy_name: A unique name to identify the cache policy. The name must only include '-', '_', or alphanumeric characters. Default: - generated from the ``id``
2324
- :param comment: A comment to describe the cache policy. Default: - no comment
2346
+ :param comment: A comment to describe the cache policy. The comment cannot be longer than 128 characters. Default: - no comment
2325
2347
  :param cookie_behavior: Determines whether any cookies in viewer requests are included in the cache key and automatically included in requests that CloudFront sends to the origin. Default: CacheCookieBehavior.none()
2326
2348
  :param default_ttl: The default amount of time for objects to stay in the CloudFront cache. Only used when the origin does not send Cache-Control or Expires headers with the object. Default: - The greater of 1 day and ``minTtl``
2327
2349
  :param enable_accept_encoding_brotli: Whether to normalize and include the ``Accept-Encoding`` header in the cache key when the ``Accept-Encoding`` header is 'br'. Default: false
@@ -2406,6 +2428,8 @@ class CachePolicyProps:
2406
2428
  def comment(self) -> typing.Optional[builtins.str]:
2407
2429
  '''A comment to describe the cache policy.
2408
2430
 
2431
+ The comment cannot be longer than 128 characters.
2432
+
2409
2433
  :default: - no comment
2410
2434
  '''
2411
2435
  result = self._values.get("comment")
@@ -16935,7 +16959,7 @@ class HeadersFrameOption(enum.Enum):
16935
16959
  frame_options=cloudfront.ResponseHeadersFrameOptions(frame_option=cloudfront.HeadersFrameOption.DENY, override=True),
16936
16960
  referrer_policy=cloudfront.ResponseHeadersReferrerPolicy(referrer_policy=cloudfront.HeadersReferrerPolicy.NO_REFERRER, override=True),
16937
16961
  strict_transport_security=cloudfront.ResponseHeadersStrictTransportSecurity(access_control_max_age=Duration.seconds(600), include_subdomains=True, override=True),
16938
- xss_protection=cloudfront.ResponseHeadersXSSProtection(protection=True, mode_block=True, report_uri="https://example.com/csp-report", override=True)
16962
+ xss_protection=cloudfront.ResponseHeadersXSSProtection(protection=True, mode_block=False, report_uri="https://example.com/csp-report", override=True)
16939
16963
  ),
16940
16964
  remove_headers=["Server"],
16941
16965
  server_timing_sampling_rate=50
@@ -16995,7 +17019,7 @@ class HeadersReferrerPolicy(enum.Enum):
16995
17019
  frame_options=cloudfront.ResponseHeadersFrameOptions(frame_option=cloudfront.HeadersFrameOption.DENY, override=True),
16996
17020
  referrer_policy=cloudfront.ResponseHeadersReferrerPolicy(referrer_policy=cloudfront.HeadersReferrerPolicy.NO_REFERRER, override=True),
16997
17021
  strict_transport_security=cloudfront.ResponseHeadersStrictTransportSecurity(access_control_max_age=Duration.seconds(600), include_subdomains=True, override=True),
16998
- xss_protection=cloudfront.ResponseHeadersXSSProtection(protection=True, mode_block=True, report_uri="https://example.com/csp-report", override=True)
17022
+ xss_protection=cloudfront.ResponseHeadersXSSProtection(protection=True, mode_block=False, report_uri="https://example.com/csp-report", override=True)
16999
17023
  ),
17000
17024
  remove_headers=["Server"],
17001
17025
  server_timing_sampling_rate=50
@@ -17359,11 +17383,13 @@ class IOrigin(typing_extensions.Protocol):
17359
17383
  scope: _constructs_77d1e7e8.Construct,
17360
17384
  *,
17361
17385
  origin_id: builtins.str,
17386
+ distribution_id: typing.Optional[builtins.str] = None,
17362
17387
  ) -> "OriginBindConfig":
17363
17388
  '''The method called when a given Origin is added (for the first time) to a Distribution.
17364
17389
 
17365
17390
  :param scope: -
17366
17391
  :param origin_id: The identifier of this Origin, as assigned by the Distribution this Origin has been used added to.
17392
+ :param distribution_id: The identifier of the Distribution this Origin is used for. This is used to grant origin access permissions to the distribution for origin access control. Default: - no distribution id
17367
17393
  '''
17368
17394
  ...
17369
17395
 
@@ -17382,16 +17408,20 @@ class _IOriginProxy:
17382
17408
  scope: _constructs_77d1e7e8.Construct,
17383
17409
  *,
17384
17410
  origin_id: builtins.str,
17411
+ distribution_id: typing.Optional[builtins.str] = None,
17385
17412
  ) -> "OriginBindConfig":
17386
17413
  '''The method called when a given Origin is added (for the first time) to a Distribution.
17387
17414
 
17388
17415
  :param scope: -
17389
17416
  :param origin_id: The identifier of this Origin, as assigned by the Distribution this Origin has been used added to.
17417
+ :param distribution_id: The identifier of the Distribution this Origin is used for. This is used to grant origin access permissions to the distribution for origin access control. Default: - no distribution id
17390
17418
  '''
17391
17419
  if __debug__:
17392
17420
  type_hints = typing.get_type_hints(_typecheckingstub__88031486a507fddae1a9cd6ed970521f2a57d7953a1e564c2c5d97b8591065f2)
17393
17421
  check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
17394
- options = OriginBindOptions(origin_id=origin_id)
17422
+ options = OriginBindOptions(
17423
+ origin_id=origin_id, distribution_id=distribution_id
17424
+ )
17395
17425
 
17396
17426
  return typing.cast("OriginBindConfig", jsii.invoke(self, "bind", [scope, options]))
17397
17427
 
@@ -17399,6 +17429,40 @@ class _IOriginProxy:
17399
17429
  typing.cast(typing.Any, IOrigin).__jsii_proxy_class__ = lambda : _IOriginProxy
17400
17430
 
17401
17431
 
17432
+ @jsii.interface(jsii_type="aws-cdk-lib.aws_cloudfront.IOriginAccessControl")
17433
+ class IOriginAccessControl(_IResource_c80c4260, typing_extensions.Protocol):
17434
+ '''Represents a CloudFront Origin Access Control.'''
17435
+
17436
+ @builtins.property
17437
+ @jsii.member(jsii_name="originAccessControlId")
17438
+ def origin_access_control_id(self) -> builtins.str:
17439
+ '''The unique identifier of the origin access control.
17440
+
17441
+ :attribute: true
17442
+ '''
17443
+ ...
17444
+
17445
+
17446
+ class _IOriginAccessControlProxy(
17447
+ jsii.proxy_for(_IResource_c80c4260), # type: ignore[misc]
17448
+ ):
17449
+ '''Represents a CloudFront Origin Access Control.'''
17450
+
17451
+ __jsii_type__: typing.ClassVar[str] = "aws-cdk-lib.aws_cloudfront.IOriginAccessControl"
17452
+
17453
+ @builtins.property
17454
+ @jsii.member(jsii_name="originAccessControlId")
17455
+ def origin_access_control_id(self) -> builtins.str:
17456
+ '''The unique identifier of the origin access control.
17457
+
17458
+ :attribute: true
17459
+ '''
17460
+ return typing.cast(builtins.str, jsii.get(self, "originAccessControlId"))
17461
+
17462
+ # Adding a "__jsii_proxy_class__(): typing.Type" function to the interface
17463
+ typing.cast(typing.Any, IOriginAccessControl).__jsii_proxy_class__ = lambda : _IOriginAccessControlProxy
17464
+
17465
+
17402
17466
  @jsii.interface(jsii_type="aws-cdk-lib.aws_cloudfront.IOriginAccessIdentity")
17403
17467
  class IOriginAccessIdentity(
17404
17468
  _IResource_c80c4260,
@@ -18392,6 +18456,113 @@ class LoggingConfiguration:
18392
18456
  )
18393
18457
 
18394
18458
 
18459
+ @jsii.data_type(
18460
+ jsii_type="aws-cdk-lib.aws_cloudfront.OriginAccessControlBaseProps",
18461
+ jsii_struct_bases=[],
18462
+ name_mapping={
18463
+ "description": "description",
18464
+ "origin_access_control_name": "originAccessControlName",
18465
+ "signing": "signing",
18466
+ },
18467
+ )
18468
+ class OriginAccessControlBaseProps:
18469
+ def __init__(
18470
+ self,
18471
+ *,
18472
+ description: typing.Optional[builtins.str] = None,
18473
+ origin_access_control_name: typing.Optional[builtins.str] = None,
18474
+ signing: typing.Optional["Signing"] = None,
18475
+ ) -> None:
18476
+ '''Common properties for creating a Origin Access Control resource.
18477
+
18478
+ :param description: A description of the origin access control. Default: - no description
18479
+ :param origin_access_control_name: A name to identify the origin access control, with a maximum length of 64 characters. Default: - a generated name
18480
+ :param signing: Specifies which requests CloudFront signs and the signing protocol. Default: SIGV4_ALWAYS
18481
+
18482
+ :exampleMetadata: fixture=_generated
18483
+
18484
+ Example::
18485
+
18486
+ # The code below shows an example of how to instantiate this type.
18487
+ # The values are placeholders you should change.
18488
+ from aws_cdk import aws_cloudfront as cloudfront
18489
+
18490
+ # signing: cloudfront.Signing
18491
+
18492
+ origin_access_control_base_props = cloudfront.OriginAccessControlBaseProps(
18493
+ description="description",
18494
+ origin_access_control_name="originAccessControlName",
18495
+ signing=signing
18496
+ )
18497
+ '''
18498
+ if __debug__:
18499
+ type_hints = typing.get_type_hints(_typecheckingstub__a8b924ff1ec7417df56da9ecb0d84f08365a3b3c38c90dae9c47f3745f55d369)
18500
+ check_type(argname="argument description", value=description, expected_type=type_hints["description"])
18501
+ check_type(argname="argument origin_access_control_name", value=origin_access_control_name, expected_type=type_hints["origin_access_control_name"])
18502
+ check_type(argname="argument signing", value=signing, expected_type=type_hints["signing"])
18503
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
18504
+ if description is not None:
18505
+ self._values["description"] = description
18506
+ if origin_access_control_name is not None:
18507
+ self._values["origin_access_control_name"] = origin_access_control_name
18508
+ if signing is not None:
18509
+ self._values["signing"] = signing
18510
+
18511
+ @builtins.property
18512
+ def description(self) -> typing.Optional[builtins.str]:
18513
+ '''A description of the origin access control.
18514
+
18515
+ :default: - no description
18516
+ '''
18517
+ result = self._values.get("description")
18518
+ return typing.cast(typing.Optional[builtins.str], result)
18519
+
18520
+ @builtins.property
18521
+ def origin_access_control_name(self) -> typing.Optional[builtins.str]:
18522
+ '''A name to identify the origin access control, with a maximum length of 64 characters.
18523
+
18524
+ :default: - a generated name
18525
+ '''
18526
+ result = self._values.get("origin_access_control_name")
18527
+ return typing.cast(typing.Optional[builtins.str], result)
18528
+
18529
+ @builtins.property
18530
+ def signing(self) -> typing.Optional["Signing"]:
18531
+ '''Specifies which requests CloudFront signs and the signing protocol.
18532
+
18533
+ :default: SIGV4_ALWAYS
18534
+
18535
+ :see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-originaccesscontrol-originaccesscontrolconfig.html#cfn-cloudfront-originaccesscontrol-originaccesscontrolconfig-signingbehavior
18536
+ '''
18537
+ result = self._values.get("signing")
18538
+ return typing.cast(typing.Optional["Signing"], result)
18539
+
18540
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
18541
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
18542
+
18543
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
18544
+ return not (rhs == self)
18545
+
18546
+ def __repr__(self) -> str:
18547
+ return "OriginAccessControlBaseProps(%s)" % ", ".join(
18548
+ k + "=" + repr(v) for k, v in self._values.items()
18549
+ )
18550
+
18551
+
18552
+ @jsii.enum(jsii_type="aws-cdk-lib.aws_cloudfront.OriginAccessControlOriginType")
18553
+ class OriginAccessControlOriginType(enum.Enum):
18554
+ '''Origin types supported by Origin Access Control.'''
18555
+
18556
+ S3 = "S3"
18557
+ '''Uses an Amazon S3 bucket origin.'''
18558
+ LAMBDA = "LAMBDA"
18559
+ '''Uses a Lambda function URL origin.'''
18560
+ MEDIASTORE = "MEDIASTORE"
18561
+ '''Uses an AWS Elemental MediaStore origin.'''
18562
+ MEDIAPACKAGEV2 = "MEDIAPACKAGEV2"
18563
+ '''Uses an AWS Elemental MediaPackage v2 origin.'''
18564
+
18565
+
18395
18566
  @jsii.implements(IOriginAccessIdentity)
18396
18567
  class OriginAccessIdentity(
18397
18568
  _Resource_45bc6135,
@@ -18401,16 +18572,21 @@ class OriginAccessIdentity(
18401
18572
  '''An origin access identity is a special CloudFront user that you can associate with Amazon S3 origins, so that you can secure all or just some of your Amazon S3 content.
18402
18573
 
18403
18574
  :resource: AWS::CloudFront::CloudFrontOriginAccessIdentity
18404
- :exampleMetadata: fixture=_generated
18575
+ :exampleMetadata: infused
18405
18576
 
18406
18577
  Example::
18407
18578
 
18408
- # The code below shows an example of how to instantiate this type.
18409
- # The values are placeholders you should change.
18410
- from aws_cdk import aws_cloudfront as cloudfront
18411
-
18412
- origin_access_identity = cloudfront.OriginAccessIdentity(self, "MyOriginAccessIdentity",
18413
- comment="comment"
18579
+ my_bucket = s3.Bucket(self, "myBucket")
18580
+ my_oai = cloudfront.OriginAccessIdentity(self, "myOAI",
18581
+ comment="My custom OAI"
18582
+ )
18583
+ s3_origin = origins.S3BucketOrigin.with_origin_access_identity(my_bucket,
18584
+ origin_access_identity=my_oai
18585
+ )
18586
+ cloudfront.Distribution(self, "myDist",
18587
+ default_behavior=cloudfront.BehaviorOptions(
18588
+ origin=s3_origin
18589
+ )
18414
18590
  )
18415
18591
  '''
18416
18592
 
@@ -18535,16 +18711,21 @@ class OriginAccessIdentityProps:
18535
18711
 
18536
18712
  :param comment: Any comments you want to include about the origin access identity. Default: "Allows CloudFront to reach the bucket"
18537
18713
 
18538
- :exampleMetadata: fixture=_generated
18714
+ :exampleMetadata: infused
18539
18715
 
18540
18716
  Example::
18541
18717
 
18542
- # The code below shows an example of how to instantiate this type.
18543
- # The values are placeholders you should change.
18544
- from aws_cdk import aws_cloudfront as cloudfront
18545
-
18546
- origin_access_identity_props = cloudfront.OriginAccessIdentityProps(
18547
- comment="comment"
18718
+ my_bucket = s3.Bucket(self, "myBucket")
18719
+ my_oai = cloudfront.OriginAccessIdentity(self, "myOAI",
18720
+ comment="My custom OAI"
18721
+ )
18722
+ s3_origin = origins.S3BucketOrigin.with_origin_access_identity(my_bucket,
18723
+ origin_access_identity=my_oai
18724
+ )
18725
+ cloudfront.Distribution(self, "myDist",
18726
+ default_behavior=cloudfront.BehaviorOptions(
18727
+ origin=s3_origin
18728
+ )
18548
18729
  )
18549
18730
  '''
18550
18731
  if __debug__:
@@ -18590,6 +18771,7 @@ class OriginBase(
18590
18771
  connection_attempts: typing.Optional[jsii.Number] = None,
18591
18772
  connection_timeout: typing.Optional[_Duration_4839e8c3] = None,
18592
18773
  custom_headers: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
18774
+ origin_access_control_id: typing.Optional[builtins.str] = None,
18593
18775
  origin_id: typing.Optional[builtins.str] = None,
18594
18776
  origin_shield_enabled: typing.Optional[builtins.bool] = None,
18595
18777
  origin_shield_region: typing.Optional[builtins.str] = None,
@@ -18600,6 +18782,7 @@ class OriginBase(
18600
18782
  :param connection_attempts: The number of times that CloudFront attempts to connect to the origin; valid values are 1, 2, or 3 attempts. Default: 3
18601
18783
  :param connection_timeout: The number of seconds that CloudFront waits when trying to establish a connection to the origin. Valid values are 1-10 seconds, inclusive. Default: Duration.seconds(10)
18602
18784
  :param custom_headers: A list of HTTP header names and values that CloudFront adds to requests it sends to the origin. Default: {}
18785
+ :param origin_access_control_id: The unique identifier of an origin access control for this origin. Default: - no origin access control
18603
18786
  :param origin_id: A unique identifier for the origin. This value must be unique within the distribution. Default: - an originid will be generated for you
18604
18787
  :param origin_shield_enabled: Origin Shield is enabled by setting originShieldRegion to a valid region, after this to disable Origin Shield again you must set this flag to false. Default: - true
18605
18788
  :param origin_shield_region: When you enable Origin Shield in the AWS Region that has the lowest latency to your origin, you can get better network performance. Default: - origin shield not enabled
@@ -18612,6 +18795,7 @@ class OriginBase(
18612
18795
  connection_attempts=connection_attempts,
18613
18796
  connection_timeout=connection_timeout,
18614
18797
  custom_headers=custom_headers,
18798
+ origin_access_control_id=origin_access_control_id,
18615
18799
  origin_id=origin_id,
18616
18800
  origin_shield_enabled=origin_shield_enabled,
18617
18801
  origin_shield_region=origin_shield_region,
@@ -18625,6 +18809,7 @@ class OriginBase(
18625
18809
  _scope: _constructs_77d1e7e8.Construct,
18626
18810
  *,
18627
18811
  origin_id: builtins.str,
18812
+ distribution_id: typing.Optional[builtins.str] = None,
18628
18813
  ) -> "OriginBindConfig":
18629
18814
  '''Binds the origin to the associated Distribution.
18630
18815
 
@@ -18632,11 +18817,14 @@ class OriginBase(
18632
18817
 
18633
18818
  :param _scope: -
18634
18819
  :param origin_id: The identifier of this Origin, as assigned by the Distribution this Origin has been used added to.
18820
+ :param distribution_id: The identifier of the Distribution this Origin is used for. This is used to grant origin access permissions to the distribution for origin access control. Default: - no distribution id
18635
18821
  '''
18636
18822
  if __debug__:
18637
18823
  type_hints = typing.get_type_hints(_typecheckingstub__8428dfc90e69bdd5363e69afd9c590a4ed2f1363b22242197295117dc5221878)
18638
18824
  check_type(argname="argument _scope", value=_scope, expected_type=type_hints["_scope"])
18639
- options = OriginBindOptions(origin_id=origin_id)
18825
+ options = OriginBindOptions(
18826
+ origin_id=origin_id, distribution_id=distribution_id
18827
+ )
18640
18828
 
18641
18829
  return typing.cast("OriginBindConfig", jsii.invoke(self, "bind", [_scope, options]))
18642
18830
 
@@ -18777,13 +18965,19 @@ class OriginBindConfig:
18777
18965
  @jsii.data_type(
18778
18966
  jsii_type="aws-cdk-lib.aws_cloudfront.OriginBindOptions",
18779
18967
  jsii_struct_bases=[],
18780
- name_mapping={"origin_id": "originId"},
18968
+ name_mapping={"origin_id": "originId", "distribution_id": "distributionId"},
18781
18969
  )
18782
18970
  class OriginBindOptions:
18783
- def __init__(self, *, origin_id: builtins.str) -> None:
18971
+ def __init__(
18972
+ self,
18973
+ *,
18974
+ origin_id: builtins.str,
18975
+ distribution_id: typing.Optional[builtins.str] = None,
18976
+ ) -> None:
18784
18977
  '''Options passed to Origin.bind().
18785
18978
 
18786
18979
  :param origin_id: The identifier of this Origin, as assigned by the Distribution this Origin has been used added to.
18980
+ :param distribution_id: The identifier of the Distribution this Origin is used for. This is used to grant origin access permissions to the distribution for origin access control. Default: - no distribution id
18787
18981
 
18788
18982
  :exampleMetadata: fixture=_generated
18789
18983
 
@@ -18794,15 +18988,21 @@ class OriginBindOptions:
18794
18988
  from aws_cdk import aws_cloudfront as cloudfront
18795
18989
 
18796
18990
  origin_bind_options = cloudfront.OriginBindOptions(
18797
- origin_id="originId"
18991
+ origin_id="originId",
18992
+
18993
+ # the properties below are optional
18994
+ distribution_id="distributionId"
18798
18995
  )
18799
18996
  '''
18800
18997
  if __debug__:
18801
18998
  type_hints = typing.get_type_hints(_typecheckingstub__0dbe700920dc77d0410da01e091c5caab2d3bb29313320e6057ed87275ccc649)
18802
18999
  check_type(argname="argument origin_id", value=origin_id, expected_type=type_hints["origin_id"])
19000
+ check_type(argname="argument distribution_id", value=distribution_id, expected_type=type_hints["distribution_id"])
18803
19001
  self._values: typing.Dict[builtins.str, typing.Any] = {
18804
19002
  "origin_id": origin_id,
18805
19003
  }
19004
+ if distribution_id is not None:
19005
+ self._values["distribution_id"] = distribution_id
18806
19006
 
18807
19007
  @builtins.property
18808
19008
  def origin_id(self) -> builtins.str:
@@ -18811,6 +19011,17 @@ class OriginBindOptions:
18811
19011
  assert result is not None, "Required property 'origin_id' is missing"
18812
19012
  return typing.cast(builtins.str, result)
18813
19013
 
19014
+ @builtins.property
19015
+ def distribution_id(self) -> typing.Optional[builtins.str]:
19016
+ '''The identifier of the Distribution this Origin is used for.
19017
+
19018
+ This is used to grant origin access permissions to the distribution for origin access control.
19019
+
19020
+ :default: - no distribution id
19021
+ '''
19022
+ result = self._values.get("distribution_id")
19023
+ return typing.cast(typing.Optional[builtins.str], result)
19024
+
18814
19025
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
18815
19026
  return isinstance(rhs, self.__class__) and rhs._values == self._values
18816
19027
 
@@ -18902,6 +19113,7 @@ class OriginFailoverConfig:
18902
19113
  "connection_attempts": "connectionAttempts",
18903
19114
  "connection_timeout": "connectionTimeout",
18904
19115
  "custom_headers": "customHeaders",
19116
+ "origin_access_control_id": "originAccessControlId",
18905
19117
  "origin_id": "originId",
18906
19118
  "origin_shield_enabled": "originShieldEnabled",
18907
19119
  "origin_shield_region": "originShieldRegion",
@@ -18914,6 +19126,7 @@ class OriginOptions:
18914
19126
  connection_attempts: typing.Optional[jsii.Number] = None,
18915
19127
  connection_timeout: typing.Optional[_Duration_4839e8c3] = None,
18916
19128
  custom_headers: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
19129
+ origin_access_control_id: typing.Optional[builtins.str] = None,
18917
19130
  origin_id: typing.Optional[builtins.str] = None,
18918
19131
  origin_shield_enabled: typing.Optional[builtins.bool] = None,
18919
19132
  origin_shield_region: typing.Optional[builtins.str] = None,
@@ -18923,6 +19136,7 @@ class OriginOptions:
18923
19136
  :param connection_attempts: The number of times that CloudFront attempts to connect to the origin; valid values are 1, 2, or 3 attempts. Default: 3
18924
19137
  :param connection_timeout: The number of seconds that CloudFront waits when trying to establish a connection to the origin. Valid values are 1-10 seconds, inclusive. Default: Duration.seconds(10)
18925
19138
  :param custom_headers: A list of HTTP header names and values that CloudFront adds to requests it sends to the origin. Default: {}
19139
+ :param origin_access_control_id: The unique identifier of an origin access control for this origin. Default: - no origin access control
18926
19140
  :param origin_id: A unique identifier for the origin. This value must be unique within the distribution. Default: - an originid will be generated for you
18927
19141
  :param origin_shield_enabled: Origin Shield is enabled by setting originShieldRegion to a valid region, after this to disable Origin Shield again you must set this flag to false. Default: - true
18928
19142
  :param origin_shield_region: When you enable Origin Shield in the AWS Region that has the lowest latency to your origin, you can get better network performance. Default: - origin shield not enabled
@@ -18942,6 +19156,7 @@ class OriginOptions:
18942
19156
  custom_headers={
18943
19157
  "custom_headers_key": "customHeaders"
18944
19158
  },
19159
+ origin_access_control_id="originAccessControlId",
18945
19160
  origin_id="originId",
18946
19161
  origin_shield_enabled=False,
18947
19162
  origin_shield_region="originShieldRegion"
@@ -18952,6 +19167,7 @@ class OriginOptions:
18952
19167
  check_type(argname="argument connection_attempts", value=connection_attempts, expected_type=type_hints["connection_attempts"])
18953
19168
  check_type(argname="argument connection_timeout", value=connection_timeout, expected_type=type_hints["connection_timeout"])
18954
19169
  check_type(argname="argument custom_headers", value=custom_headers, expected_type=type_hints["custom_headers"])
19170
+ check_type(argname="argument origin_access_control_id", value=origin_access_control_id, expected_type=type_hints["origin_access_control_id"])
18955
19171
  check_type(argname="argument origin_id", value=origin_id, expected_type=type_hints["origin_id"])
18956
19172
  check_type(argname="argument origin_shield_enabled", value=origin_shield_enabled, expected_type=type_hints["origin_shield_enabled"])
18957
19173
  check_type(argname="argument origin_shield_region", value=origin_shield_region, expected_type=type_hints["origin_shield_region"])
@@ -18962,6 +19178,8 @@ class OriginOptions:
18962
19178
  self._values["connection_timeout"] = connection_timeout
18963
19179
  if custom_headers is not None:
18964
19180
  self._values["custom_headers"] = custom_headers
19181
+ if origin_access_control_id is not None:
19182
+ self._values["origin_access_control_id"] = origin_access_control_id
18965
19183
  if origin_id is not None:
18966
19184
  self._values["origin_id"] = origin_id
18967
19185
  if origin_shield_enabled is not None:
@@ -19002,6 +19220,15 @@ class OriginOptions:
19002
19220
  result = self._values.get("custom_headers")
19003
19221
  return typing.cast(typing.Optional[typing.Mapping[builtins.str, builtins.str]], result)
19004
19222
 
19223
+ @builtins.property
19224
+ def origin_access_control_id(self) -> typing.Optional[builtins.str]:
19225
+ '''The unique identifier of an origin access control for this origin.
19226
+
19227
+ :default: - no origin access control
19228
+ '''
19229
+ result = self._values.get("origin_access_control_id")
19230
+ return typing.cast(typing.Optional[builtins.str], result)
19231
+
19005
19232
  @builtins.property
19006
19233
  def origin_id(self) -> typing.Optional[builtins.str]:
19007
19234
  '''A unique identifier for the origin.
@@ -19052,6 +19279,7 @@ class OriginOptions:
19052
19279
  "connection_attempts": "connectionAttempts",
19053
19280
  "connection_timeout": "connectionTimeout",
19054
19281
  "custom_headers": "customHeaders",
19282
+ "origin_access_control_id": "originAccessControlId",
19055
19283
  "origin_id": "originId",
19056
19284
  "origin_shield_enabled": "originShieldEnabled",
19057
19285
  "origin_shield_region": "originShieldRegion",
@@ -19065,6 +19293,7 @@ class OriginProps(OriginOptions):
19065
19293
  connection_attempts: typing.Optional[jsii.Number] = None,
19066
19294
  connection_timeout: typing.Optional[_Duration_4839e8c3] = None,
19067
19295
  custom_headers: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
19296
+ origin_access_control_id: typing.Optional[builtins.str] = None,
19068
19297
  origin_id: typing.Optional[builtins.str] = None,
19069
19298
  origin_shield_enabled: typing.Optional[builtins.bool] = None,
19070
19299
  origin_shield_region: typing.Optional[builtins.str] = None,
@@ -19075,6 +19304,7 @@ class OriginProps(OriginOptions):
19075
19304
  :param connection_attempts: The number of times that CloudFront attempts to connect to the origin; valid values are 1, 2, or 3 attempts. Default: 3
19076
19305
  :param connection_timeout: The number of seconds that CloudFront waits when trying to establish a connection to the origin. Valid values are 1-10 seconds, inclusive. Default: Duration.seconds(10)
19077
19306
  :param custom_headers: A list of HTTP header names and values that CloudFront adds to requests it sends to the origin. Default: {}
19307
+ :param origin_access_control_id: The unique identifier of an origin access control for this origin. Default: - no origin access control
19078
19308
  :param origin_id: A unique identifier for the origin. This value must be unique within the distribution. Default: - an originid will be generated for you
19079
19309
  :param origin_shield_enabled: Origin Shield is enabled by setting originShieldRegion to a valid region, after this to disable Origin Shield again you must set this flag to false. Default: - true
19080
19310
  :param origin_shield_region: When you enable Origin Shield in the AWS Region that has the lowest latency to your origin, you can get better network performance. Default: - origin shield not enabled
@@ -19095,6 +19325,7 @@ class OriginProps(OriginOptions):
19095
19325
  custom_headers={
19096
19326
  "custom_headers_key": "customHeaders"
19097
19327
  },
19328
+ origin_access_control_id="originAccessControlId",
19098
19329
  origin_id="originId",
19099
19330
  origin_path="originPath",
19100
19331
  origin_shield_enabled=False,
@@ -19106,6 +19337,7 @@ class OriginProps(OriginOptions):
19106
19337
  check_type(argname="argument connection_attempts", value=connection_attempts, expected_type=type_hints["connection_attempts"])
19107
19338
  check_type(argname="argument connection_timeout", value=connection_timeout, expected_type=type_hints["connection_timeout"])
19108
19339
  check_type(argname="argument custom_headers", value=custom_headers, expected_type=type_hints["custom_headers"])
19340
+ check_type(argname="argument origin_access_control_id", value=origin_access_control_id, expected_type=type_hints["origin_access_control_id"])
19109
19341
  check_type(argname="argument origin_id", value=origin_id, expected_type=type_hints["origin_id"])
19110
19342
  check_type(argname="argument origin_shield_enabled", value=origin_shield_enabled, expected_type=type_hints["origin_shield_enabled"])
19111
19343
  check_type(argname="argument origin_shield_region", value=origin_shield_region, expected_type=type_hints["origin_shield_region"])
@@ -19117,6 +19349,8 @@ class OriginProps(OriginOptions):
19117
19349
  self._values["connection_timeout"] = connection_timeout
19118
19350
  if custom_headers is not None:
19119
19351
  self._values["custom_headers"] = custom_headers
19352
+ if origin_access_control_id is not None:
19353
+ self._values["origin_access_control_id"] = origin_access_control_id
19120
19354
  if origin_id is not None:
19121
19355
  self._values["origin_id"] = origin_id
19122
19356
  if origin_shield_enabled is not None:
@@ -19159,6 +19393,15 @@ class OriginProps(OriginOptions):
19159
19393
  result = self._values.get("custom_headers")
19160
19394
  return typing.cast(typing.Optional[typing.Mapping[builtins.str, builtins.str]], result)
19161
19395
 
19396
+ @builtins.property
19397
+ def origin_access_control_id(self) -> typing.Optional[builtins.str]:
19398
+ '''The unique identifier of an origin access control for this origin.
19399
+
19400
+ :default: - no origin access control
19401
+ '''
19402
+ result = self._values.get("origin_access_control_id")
19403
+ return typing.cast(typing.Optional[builtins.str], result)
19404
+
19162
19405
  @builtins.property
19163
19406
  def origin_id(self) -> typing.Optional[builtins.str]:
19164
19407
  '''A unique identifier for the origin.
@@ -20306,7 +20549,7 @@ class ResponseCustomHeadersBehavior:
20306
20549
  frame_options=cloudfront.ResponseHeadersFrameOptions(frame_option=cloudfront.HeadersFrameOption.DENY, override=True),
20307
20550
  referrer_policy=cloudfront.ResponseHeadersReferrerPolicy(referrer_policy=cloudfront.HeadersReferrerPolicy.NO_REFERRER, override=True),
20308
20551
  strict_transport_security=cloudfront.ResponseHeadersStrictTransportSecurity(access_control_max_age=Duration.seconds(600), include_subdomains=True, override=True),
20309
- xss_protection=cloudfront.ResponseHeadersXSSProtection(protection=True, mode_block=True, report_uri="https://example.com/csp-report", override=True)
20552
+ xss_protection=cloudfront.ResponseHeadersXSSProtection(protection=True, mode_block=False, report_uri="https://example.com/csp-report", override=True)
20310
20553
  ),
20311
20554
  remove_headers=["Server"],
20312
20555
  server_timing_sampling_rate=50
@@ -20401,7 +20644,7 @@ class ResponseHeadersContentSecurityPolicy:
20401
20644
  frame_options=cloudfront.ResponseHeadersFrameOptions(frame_option=cloudfront.HeadersFrameOption.DENY, override=True),
20402
20645
  referrer_policy=cloudfront.ResponseHeadersReferrerPolicy(referrer_policy=cloudfront.HeadersReferrerPolicy.NO_REFERRER, override=True),
20403
20646
  strict_transport_security=cloudfront.ResponseHeadersStrictTransportSecurity(access_control_max_age=Duration.seconds(600), include_subdomains=True, override=True),
20404
- xss_protection=cloudfront.ResponseHeadersXSSProtection(protection=True, mode_block=True, report_uri="https://example.com/csp-report", override=True)
20647
+ xss_protection=cloudfront.ResponseHeadersXSSProtection(protection=True, mode_block=False, report_uri="https://example.com/csp-report", override=True)
20405
20648
  ),
20406
20649
  remove_headers=["Server"],
20407
20650
  server_timing_sampling_rate=50
@@ -20496,7 +20739,7 @@ class ResponseHeadersContentTypeOptions:
20496
20739
  frame_options=cloudfront.ResponseHeadersFrameOptions(frame_option=cloudfront.HeadersFrameOption.DENY, override=True),
20497
20740
  referrer_policy=cloudfront.ResponseHeadersReferrerPolicy(referrer_policy=cloudfront.HeadersReferrerPolicy.NO_REFERRER, override=True),
20498
20741
  strict_transport_security=cloudfront.ResponseHeadersStrictTransportSecurity(access_control_max_age=Duration.seconds(600), include_subdomains=True, override=True),
20499
- xss_protection=cloudfront.ResponseHeadersXSSProtection(protection=True, mode_block=True, report_uri="https://example.com/csp-report", override=True)
20742
+ xss_protection=cloudfront.ResponseHeadersXSSProtection(protection=True, mode_block=False, report_uri="https://example.com/csp-report", override=True)
20500
20743
  ),
20501
20744
  remove_headers=["Server"],
20502
20745
  server_timing_sampling_rate=50
@@ -20609,7 +20852,7 @@ class ResponseHeadersCorsBehavior:
20609
20852
  frame_options=cloudfront.ResponseHeadersFrameOptions(frame_option=cloudfront.HeadersFrameOption.DENY, override=True),
20610
20853
  referrer_policy=cloudfront.ResponseHeadersReferrerPolicy(referrer_policy=cloudfront.HeadersReferrerPolicy.NO_REFERRER, override=True),
20611
20854
  strict_transport_security=cloudfront.ResponseHeadersStrictTransportSecurity(access_control_max_age=Duration.seconds(600), include_subdomains=True, override=True),
20612
- xss_protection=cloudfront.ResponseHeadersXSSProtection(protection=True, mode_block=True, report_uri="https://example.com/csp-report", override=True)
20855
+ xss_protection=cloudfront.ResponseHeadersXSSProtection(protection=True, mode_block=False, report_uri="https://example.com/csp-report", override=True)
20613
20856
  ),
20614
20857
  remove_headers=["Server"],
20615
20858
  server_timing_sampling_rate=50
@@ -20771,7 +21014,7 @@ class ResponseHeadersFrameOptions:
20771
21014
  frame_options=cloudfront.ResponseHeadersFrameOptions(frame_option=cloudfront.HeadersFrameOption.DENY, override=True),
20772
21015
  referrer_policy=cloudfront.ResponseHeadersReferrerPolicy(referrer_policy=cloudfront.HeadersReferrerPolicy.NO_REFERRER, override=True),
20773
21016
  strict_transport_security=cloudfront.ResponseHeadersStrictTransportSecurity(access_control_max_age=Duration.seconds(600), include_subdomains=True, override=True),
20774
- xss_protection=cloudfront.ResponseHeadersXSSProtection(protection=True, mode_block=True, report_uri="https://example.com/csp-report", override=True)
21017
+ xss_protection=cloudfront.ResponseHeadersXSSProtection(protection=True, mode_block=False, report_uri="https://example.com/csp-report", override=True)
20775
21018
  ),
20776
21019
  remove_headers=["Server"],
20777
21020
  server_timing_sampling_rate=50
@@ -20864,7 +21107,7 @@ class ResponseHeadersPolicy(
20864
21107
  frame_options=cloudfront.ResponseHeadersFrameOptions(frame_option=cloudfront.HeadersFrameOption.DENY, override=True),
20865
21108
  referrer_policy=cloudfront.ResponseHeadersReferrerPolicy(referrer_policy=cloudfront.HeadersReferrerPolicy.NO_REFERRER, override=True),
20866
21109
  strict_transport_security=cloudfront.ResponseHeadersStrictTransportSecurity(access_control_max_age=Duration.seconds(600), include_subdomains=True, override=True),
20867
- xss_protection=cloudfront.ResponseHeadersXSSProtection(protection=True, mode_block=True, report_uri="https://example.com/csp-report", override=True)
21110
+ xss_protection=cloudfront.ResponseHeadersXSSProtection(protection=True, mode_block=False, report_uri="https://example.com/csp-report", override=True)
20868
21111
  ),
20869
21112
  remove_headers=["Server"],
20870
21113
  server_timing_sampling_rate=50
@@ -21049,7 +21292,7 @@ class ResponseHeadersPolicyProps:
21049
21292
  frame_options=cloudfront.ResponseHeadersFrameOptions(frame_option=cloudfront.HeadersFrameOption.DENY, override=True),
21050
21293
  referrer_policy=cloudfront.ResponseHeadersReferrerPolicy(referrer_policy=cloudfront.HeadersReferrerPolicy.NO_REFERRER, override=True),
21051
21294
  strict_transport_security=cloudfront.ResponseHeadersStrictTransportSecurity(access_control_max_age=Duration.seconds(600), include_subdomains=True, override=True),
21052
- xss_protection=cloudfront.ResponseHeadersXSSProtection(protection=True, mode_block=True, report_uri="https://example.com/csp-report", override=True)
21295
+ xss_protection=cloudfront.ResponseHeadersXSSProtection(protection=True, mode_block=False, report_uri="https://example.com/csp-report", override=True)
21053
21296
  ),
21054
21297
  remove_headers=["Server"],
21055
21298
  server_timing_sampling_rate=50
@@ -21223,7 +21466,7 @@ class ResponseHeadersReferrerPolicy:
21223
21466
  frame_options=cloudfront.ResponseHeadersFrameOptions(frame_option=cloudfront.HeadersFrameOption.DENY, override=True),
21224
21467
  referrer_policy=cloudfront.ResponseHeadersReferrerPolicy(referrer_policy=cloudfront.HeadersReferrerPolicy.NO_REFERRER, override=True),
21225
21468
  strict_transport_security=cloudfront.ResponseHeadersStrictTransportSecurity(access_control_max_age=Duration.seconds(600), include_subdomains=True, override=True),
21226
- xss_protection=cloudfront.ResponseHeadersXSSProtection(protection=True, mode_block=True, report_uri="https://example.com/csp-report", override=True)
21469
+ xss_protection=cloudfront.ResponseHeadersXSSProtection(protection=True, mode_block=False, report_uri="https://example.com/csp-report", override=True)
21227
21470
  ),
21228
21471
  remove_headers=["Server"],
21229
21472
  server_timing_sampling_rate=50
@@ -21333,7 +21576,7 @@ class ResponseHeadersStrictTransportSecurity:
21333
21576
  frame_options=cloudfront.ResponseHeadersFrameOptions(frame_option=cloudfront.HeadersFrameOption.DENY, override=True),
21334
21577
  referrer_policy=cloudfront.ResponseHeadersReferrerPolicy(referrer_policy=cloudfront.HeadersReferrerPolicy.NO_REFERRER, override=True),
21335
21578
  strict_transport_security=cloudfront.ResponseHeadersStrictTransportSecurity(access_control_max_age=Duration.seconds(600), include_subdomains=True, override=True),
21336
- xss_protection=cloudfront.ResponseHeadersXSSProtection(protection=True, mode_block=True, report_uri="https://example.com/csp-report", override=True)
21579
+ xss_protection=cloudfront.ResponseHeadersXSSProtection(protection=True, mode_block=False, report_uri="https://example.com/csp-report", override=True)
21337
21580
  ),
21338
21581
  remove_headers=["Server"],
21339
21582
  server_timing_sampling_rate=50
@@ -21467,7 +21710,7 @@ class ResponseHeadersXSSProtection:
21467
21710
  frame_options=cloudfront.ResponseHeadersFrameOptions(frame_option=cloudfront.HeadersFrameOption.DENY, override=True),
21468
21711
  referrer_policy=cloudfront.ResponseHeadersReferrerPolicy(referrer_policy=cloudfront.HeadersReferrerPolicy.NO_REFERRER, override=True),
21469
21712
  strict_transport_security=cloudfront.ResponseHeadersStrictTransportSecurity(access_control_max_age=Duration.seconds(600), include_subdomains=True, override=True),
21470
- xss_protection=cloudfront.ResponseHeadersXSSProtection(protection=True, mode_block=True, report_uri="https://example.com/csp-report", override=True)
21713
+ xss_protection=cloudfront.ResponseHeadersXSSProtection(protection=True, mode_block=False, report_uri="https://example.com/csp-report", override=True)
21471
21714
  ),
21472
21715
  remove_headers=["Server"],
21473
21716
  server_timing_sampling_rate=50
@@ -21616,7 +21859,7 @@ class ResponseSecurityHeadersBehavior:
21616
21859
  frame_options=cloudfront.ResponseHeadersFrameOptions(frame_option=cloudfront.HeadersFrameOption.DENY, override=True),
21617
21860
  referrer_policy=cloudfront.ResponseHeadersReferrerPolicy(referrer_policy=cloudfront.HeadersReferrerPolicy.NO_REFERRER, override=True),
21618
21861
  strict_transport_security=cloudfront.ResponseHeadersStrictTransportSecurity(access_control_max_age=Duration.seconds(600), include_subdomains=True, override=True),
21619
- xss_protection=cloudfront.ResponseHeadersXSSProtection(protection=True, mode_block=True, report_uri="https://example.com/csp-report", override=True)
21862
+ xss_protection=cloudfront.ResponseHeadersXSSProtection(protection=True, mode_block=False, report_uri="https://example.com/csp-report", override=True)
21620
21863
  ),
21621
21864
  remove_headers=["Server"],
21622
21865
  server_timing_sampling_rate=50
@@ -21816,6 +22059,187 @@ class S3ImportSource(
21816
22059
  return typing.cast(builtins.str, jsii.get(self, "key"))
21817
22060
 
21818
22061
 
22062
+ @jsii.implements(IOriginAccessControl)
22063
+ class S3OriginAccessControl(
22064
+ _Resource_45bc6135,
22065
+ metaclass=jsii.JSIIMeta,
22066
+ jsii_type="aws-cdk-lib.aws_cloudfront.S3OriginAccessControl",
22067
+ ):
22068
+ '''An Origin Access Control for Amazon S3 origins.
22069
+
22070
+ :see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-originaccesscontrol.html
22071
+ :resource: AWS::CloudFront::OriginAccessControl
22072
+ :exampleMetadata: infused
22073
+
22074
+ Example::
22075
+
22076
+ my_bucket = s3.Bucket(self, "myBucket")
22077
+ oac = cloudfront.S3OriginAccessControl(self, "MyOAC",
22078
+ signing=cloudfront.Signing.SIGV4_NO_OVERRIDE
22079
+ )
22080
+ s3_origin = origins.S3BucketOrigin.with_origin_access_control(my_bucket,
22081
+ origin_access_control=oac
22082
+ )
22083
+ cloudfront.Distribution(self, "myDist",
22084
+ default_behavior=cloudfront.BehaviorOptions(
22085
+ origin=s3_origin
22086
+ )
22087
+ )
22088
+ '''
22089
+
22090
+ def __init__(
22091
+ self,
22092
+ scope: _constructs_77d1e7e8.Construct,
22093
+ id: builtins.str,
22094
+ *,
22095
+ description: typing.Optional[builtins.str] = None,
22096
+ origin_access_control_name: typing.Optional[builtins.str] = None,
22097
+ signing: typing.Optional["Signing"] = None,
22098
+ ) -> None:
22099
+ '''
22100
+ :param scope: -
22101
+ :param id: -
22102
+ :param description: A description of the origin access control. Default: - no description
22103
+ :param origin_access_control_name: A name to identify the origin access control, with a maximum length of 64 characters. Default: - a generated name
22104
+ :param signing: Specifies which requests CloudFront signs and the signing protocol. Default: SIGV4_ALWAYS
22105
+ '''
22106
+ if __debug__:
22107
+ type_hints = typing.get_type_hints(_typecheckingstub__7b2a85cd0fa604a08b24dc8c92dc0ab531d0bddfb7ae38aea9da131ae6d978b9)
22108
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
22109
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
22110
+ props = S3OriginAccessControlProps(
22111
+ description=description,
22112
+ origin_access_control_name=origin_access_control_name,
22113
+ signing=signing,
22114
+ )
22115
+
22116
+ jsii.create(self.__class__, self, [scope, id, props])
22117
+
22118
+ @jsii.member(jsii_name="fromOriginAccessControlId")
22119
+ @builtins.classmethod
22120
+ def from_origin_access_control_id(
22121
+ cls,
22122
+ scope: _constructs_77d1e7e8.Construct,
22123
+ id: builtins.str,
22124
+ origin_access_control_id: builtins.str,
22125
+ ) -> IOriginAccessControl:
22126
+ '''Imports an S3 origin access control from its id.
22127
+
22128
+ :param scope: -
22129
+ :param id: -
22130
+ :param origin_access_control_id: -
22131
+ '''
22132
+ if __debug__:
22133
+ type_hints = typing.get_type_hints(_typecheckingstub__b29164c2163d9cc22b4d251b78a9ef345abc13ec4b3000f567a67ab55c65e345)
22134
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
22135
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
22136
+ check_type(argname="argument origin_access_control_id", value=origin_access_control_id, expected_type=type_hints["origin_access_control_id"])
22137
+ return typing.cast(IOriginAccessControl, jsii.sinvoke(cls, "fromOriginAccessControlId", [scope, id, origin_access_control_id]))
22138
+
22139
+ @builtins.property
22140
+ @jsii.member(jsii_name="originAccessControlId")
22141
+ def origin_access_control_id(self) -> builtins.str:
22142
+ '''The unique identifier of this Origin Access Control.
22143
+
22144
+ :attribute: true
22145
+ '''
22146
+ return typing.cast(builtins.str, jsii.get(self, "originAccessControlId"))
22147
+
22148
+
22149
+ @jsii.data_type(
22150
+ jsii_type="aws-cdk-lib.aws_cloudfront.S3OriginAccessControlProps",
22151
+ jsii_struct_bases=[OriginAccessControlBaseProps],
22152
+ name_mapping={
22153
+ "description": "description",
22154
+ "origin_access_control_name": "originAccessControlName",
22155
+ "signing": "signing",
22156
+ },
22157
+ )
22158
+ class S3OriginAccessControlProps(OriginAccessControlBaseProps):
22159
+ def __init__(
22160
+ self,
22161
+ *,
22162
+ description: typing.Optional[builtins.str] = None,
22163
+ origin_access_control_name: typing.Optional[builtins.str] = None,
22164
+ signing: typing.Optional["Signing"] = None,
22165
+ ) -> None:
22166
+ '''Properties for creating a S3 Origin Access Control resource.
22167
+
22168
+ :param description: A description of the origin access control. Default: - no description
22169
+ :param origin_access_control_name: A name to identify the origin access control, with a maximum length of 64 characters. Default: - a generated name
22170
+ :param signing: Specifies which requests CloudFront signs and the signing protocol. Default: SIGV4_ALWAYS
22171
+
22172
+ :exampleMetadata: infused
22173
+
22174
+ Example::
22175
+
22176
+ my_bucket = s3.Bucket(self, "myBucket")
22177
+ oac = cloudfront.S3OriginAccessControl(self, "MyOAC",
22178
+ signing=cloudfront.Signing.SIGV4_NO_OVERRIDE
22179
+ )
22180
+ s3_origin = origins.S3BucketOrigin.with_origin_access_control(my_bucket,
22181
+ origin_access_control=oac
22182
+ )
22183
+ cloudfront.Distribution(self, "myDist",
22184
+ default_behavior=cloudfront.BehaviorOptions(
22185
+ origin=s3_origin
22186
+ )
22187
+ )
22188
+ '''
22189
+ if __debug__:
22190
+ type_hints = typing.get_type_hints(_typecheckingstub__8f6d25b92869f9d23abd5a05839feb0af6686aa049fbbe51cca648f46cad1567)
22191
+ check_type(argname="argument description", value=description, expected_type=type_hints["description"])
22192
+ check_type(argname="argument origin_access_control_name", value=origin_access_control_name, expected_type=type_hints["origin_access_control_name"])
22193
+ check_type(argname="argument signing", value=signing, expected_type=type_hints["signing"])
22194
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
22195
+ if description is not None:
22196
+ self._values["description"] = description
22197
+ if origin_access_control_name is not None:
22198
+ self._values["origin_access_control_name"] = origin_access_control_name
22199
+ if signing is not None:
22200
+ self._values["signing"] = signing
22201
+
22202
+ @builtins.property
22203
+ def description(self) -> typing.Optional[builtins.str]:
22204
+ '''A description of the origin access control.
22205
+
22206
+ :default: - no description
22207
+ '''
22208
+ result = self._values.get("description")
22209
+ return typing.cast(typing.Optional[builtins.str], result)
22210
+
22211
+ @builtins.property
22212
+ def origin_access_control_name(self) -> typing.Optional[builtins.str]:
22213
+ '''A name to identify the origin access control, with a maximum length of 64 characters.
22214
+
22215
+ :default: - a generated name
22216
+ '''
22217
+ result = self._values.get("origin_access_control_name")
22218
+ return typing.cast(typing.Optional[builtins.str], result)
22219
+
22220
+ @builtins.property
22221
+ def signing(self) -> typing.Optional["Signing"]:
22222
+ '''Specifies which requests CloudFront signs and the signing protocol.
22223
+
22224
+ :default: SIGV4_ALWAYS
22225
+
22226
+ :see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-originaccesscontrol-originaccesscontrolconfig.html#cfn-cloudfront-originaccesscontrol-originaccesscontrolconfig-signingbehavior
22227
+ '''
22228
+ result = self._values.get("signing")
22229
+ return typing.cast(typing.Optional["Signing"], result)
22230
+
22231
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
22232
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
22233
+
22234
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
22235
+ return not (rhs == self)
22236
+
22237
+ def __repr__(self) -> str:
22238
+ return "S3OriginAccessControlProps(%s)" % ", ".join(
22239
+ k + "=" + repr(v) for k, v in self._values.items()
22240
+ )
22241
+
22242
+
21819
22243
  @jsii.data_type(
21820
22244
  jsii_type="aws-cdk-lib.aws_cloudfront.S3OriginConfig",
21821
22245
  jsii_struct_bases=[],
@@ -22015,6 +22439,100 @@ class SecurityPolicyProtocol(enum.Enum):
22015
22439
  TLS_V1_2_2021 = "TLS_V1_2_2021"
22016
22440
 
22017
22441
 
22442
+ class Signing(metaclass=jsii.JSIIMeta, jsii_type="aws-cdk-lib.aws_cloudfront.Signing"):
22443
+ '''Options for how CloudFront signs requests.
22444
+
22445
+ :exampleMetadata: infused
22446
+
22447
+ Example::
22448
+
22449
+ my_bucket = s3.Bucket(self, "myBucket")
22450
+ oac = cloudfront.S3OriginAccessControl(self, "MyOAC",
22451
+ signing=cloudfront.Signing.SIGV4_NO_OVERRIDE
22452
+ )
22453
+ s3_origin = origins.S3BucketOrigin.with_origin_access_control(my_bucket,
22454
+ origin_access_control=oac
22455
+ )
22456
+ cloudfront.Distribution(self, "myDist",
22457
+ default_behavior=cloudfront.BehaviorOptions(
22458
+ origin=s3_origin
22459
+ )
22460
+ )
22461
+ '''
22462
+
22463
+ def __init__(
22464
+ self,
22465
+ protocol: "SigningProtocol",
22466
+ behavior: "SigningBehavior",
22467
+ ) -> None:
22468
+ '''
22469
+ :param protocol: -
22470
+ :param behavior: -
22471
+ '''
22472
+ if __debug__:
22473
+ type_hints = typing.get_type_hints(_typecheckingstub__8c00ffc80ad080f771484098ccaf55fd1d267675565e970bd2559fe788ce72e6)
22474
+ check_type(argname="argument protocol", value=protocol, expected_type=type_hints["protocol"])
22475
+ check_type(argname="argument behavior", value=behavior, expected_type=type_hints["behavior"])
22476
+ jsii.create(self.__class__, self, [protocol, behavior])
22477
+
22478
+ @jsii.python.classproperty
22479
+ @jsii.member(jsii_name="NEVER")
22480
+ def NEVER(cls) -> "Signing":
22481
+ '''Do not sign any origin requests.'''
22482
+ return typing.cast("Signing", jsii.sget(cls, "NEVER"))
22483
+
22484
+ @jsii.python.classproperty
22485
+ @jsii.member(jsii_name="SIGV4_ALWAYS")
22486
+ def SIGV4_ALWAYS(cls) -> "Signing":
22487
+ '''Sign all origin requests using the AWS Signature Version 4 signing protocol.'''
22488
+ return typing.cast("Signing", jsii.sget(cls, "SIGV4_ALWAYS"))
22489
+
22490
+ @jsii.python.classproperty
22491
+ @jsii.member(jsii_name="SIGV4_NO_OVERRIDE")
22492
+ def SIGV4_NO_OVERRIDE(cls) -> "Signing":
22493
+ '''Sign only if the viewer request doesn't contain the Authorization header using the AWS Signature Version 4 signing protocol.'''
22494
+ return typing.cast("Signing", jsii.sget(cls, "SIGV4_NO_OVERRIDE"))
22495
+
22496
+ @builtins.property
22497
+ @jsii.member(jsii_name="behavior")
22498
+ def behavior(self) -> "SigningBehavior":
22499
+ '''Which requests CloudFront signs.'''
22500
+ return typing.cast("SigningBehavior", jsii.get(self, "behavior"))
22501
+
22502
+ @builtins.property
22503
+ @jsii.member(jsii_name="protocol")
22504
+ def protocol(self) -> "SigningProtocol":
22505
+ '''The signing protocol.'''
22506
+ return typing.cast("SigningProtocol", jsii.get(self, "protocol"))
22507
+
22508
+
22509
+ @jsii.enum(jsii_type="aws-cdk-lib.aws_cloudfront.SigningBehavior")
22510
+ class SigningBehavior(enum.Enum):
22511
+ '''Options for which requests CloudFront signs.
22512
+
22513
+ The recommended setting is ``always``.
22514
+ '''
22515
+
22516
+ ALWAYS = "ALWAYS"
22517
+ '''Sign all origin requests, overwriting the Authorization header from the viewer request if one exists.'''
22518
+ NEVER = "NEVER"
22519
+ '''Do not sign any origin requests.
22520
+
22521
+ This value turns off origin access control for all origins in all
22522
+ distributions that use this origin access control.
22523
+ '''
22524
+ NO_OVERRIDE = "NO_OVERRIDE"
22525
+ '''Sign origin requests only if the viewer request doesn't contain the Authorization header.'''
22526
+
22527
+
22528
+ @jsii.enum(jsii_type="aws-cdk-lib.aws_cloudfront.SigningProtocol")
22529
+ class SigningProtocol(enum.Enum):
22530
+ '''The signing protocol of the Origin Access Control.'''
22531
+
22532
+ SIGV4 = "SIGV4"
22533
+ '''The AWS Signature Version 4 signing protocol.'''
22534
+
22535
+
22018
22536
  @jsii.data_type(
22019
22537
  jsii_type="aws-cdk-lib.aws_cloudfront.SourceConfiguration",
22020
22538
  jsii_struct_bases=[],
@@ -22691,7 +23209,7 @@ class CachePolicy(
22691
23209
  :param scope: -
22692
23210
  :param id: -
22693
23211
  :param cache_policy_name: A unique name to identify the cache policy. The name must only include '-', '_', or alphanumeric characters. Default: - generated from the ``id``
22694
- :param comment: A comment to describe the cache policy. Default: - no comment
23212
+ :param comment: A comment to describe the cache policy. The comment cannot be longer than 128 characters. Default: - no comment
22695
23213
  :param cookie_behavior: Determines whether any cookies in viewer requests are included in the cache key and automatically included in requests that CloudFront sends to the origin. Default: CacheCookieBehavior.none()
22696
23214
  :param default_ttl: The default amount of time for objects to stay in the CloudFront cache. Only used when the origin does not send Cache-Control or Expires headers with the object. Default: - The greater of 1 day and ``minTtl``
22697
23215
  :param enable_accept_encoding_brotli: Whether to normalize and include the ``Accept-Encoding`` header in the cache key when the ``Accept-Encoding`` header is 'br'. Default: false
@@ -22806,7 +23324,7 @@ class CloudFrontWebDistribution(
22806
23324
  metaclass=jsii.JSIIMeta,
22807
23325
  jsii_type="aws-cdk-lib.aws_cloudfront.CloudFrontWebDistribution",
22808
23326
  ):
22809
- '''Amazon CloudFront is a global content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to your viewers with low latency and high transfer speeds.
23327
+ '''(deprecated) Amazon CloudFront is a global content delivery network (CDN) service that securely delivers data, videos, applications, and APIs to your viewers with low latency and high transfer speeds.
22810
23328
 
22811
23329
  CloudFront fronts user provided content and caches it at edge locations across the world.
22812
23330
 
@@ -22828,6 +23346,9 @@ class CloudFrontWebDistribution(
22828
23346
 
22829
23347
  You can customize the distribution using additional properties from the CloudFrontWebDistributionProps interface.
22830
23348
 
23349
+ :deprecated: Use ``Distribution`` instead
23350
+
23351
+ :stability: deprecated
22831
23352
  :resource: AWS::CloudFront::Distribution
22832
23353
  :exampleMetadata: infused
22833
23354
 
@@ -22886,6 +23407,8 @@ class CloudFrontWebDistribution(
22886
23407
  :param viewer_certificate: Specifies whether you want viewers to use HTTP or HTTPS to request your objects, whether you're using an alternate domain name with HTTPS, and if so, if you're using AWS Certificate Manager (ACM) or a third-party certificate authority. Default: ViewerCertificate.fromCloudFrontDefaultCertificate()
22887
23408
  :param viewer_protocol_policy: The default viewer policy for incoming clients. Default: RedirectToHTTPs
22888
23409
  :param web_acl_id: Unique identifier that specifies the AWS WAF web ACL to associate with this CloudFront distribution. To specify a web ACL created using the latest version of AWS WAF, use the ACL ARN, for example ``arn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/473e64fd-f30b-4765-81a0-62ad96dd167a``. To specify a web ACL created using AWS WAF Classic, use the ACL ID, for example ``473e64fd-f30b-4765-81a0-62ad96dd167a``. Default: - No AWS Web Application Firewall web access control list (web ACL).
23410
+
23411
+ :stability: deprecated
22889
23412
  '''
22890
23413
  if __debug__:
22891
23414
  type_hints = typing.get_type_hints(_typecheckingstub__10cf4b33f291ebea192f1ea6c37ed91936b858def6e1350c920f21db71902d54)
@@ -22919,12 +23442,14 @@ class CloudFrontWebDistribution(
22919
23442
  distribution_id: builtins.str,
22920
23443
  domain_name: builtins.str,
22921
23444
  ) -> IDistribution:
22922
- '''Creates a construct that represents an external (imported) distribution.
23445
+ '''(deprecated) Creates a construct that represents an external (imported) distribution.
22923
23446
 
22924
23447
  :param scope: -
22925
23448
  :param id: -
22926
23449
  :param distribution_id: The distribution ID for this distribution.
22927
23450
  :param domain_name: The generated domain name of the Distribution, such as d111111abcdef8.cloudfront.net.
23451
+
23452
+ :stability: deprecated
22928
23453
  '''
22929
23454
  if __debug__:
22930
23455
  type_hints = typing.get_type_hints(_typecheckingstub__ea3b674a8185c8a9d03501ece5d860a4700034e19e03fc3a57d05fc8623fafc9)
@@ -22942,10 +23467,12 @@ class CloudFrontWebDistribution(
22942
23467
  identity: _IGrantable_71c4f5de,
22943
23468
  *actions: builtins.str,
22944
23469
  ) -> _Grant_a7ae64f8:
22945
- '''Adds an IAM policy statement associated with this distribution to an IAM principal's policy.
23470
+ '''(deprecated) Adds an IAM policy statement associated with this distribution to an IAM principal's policy.
22946
23471
 
22947
23472
  :param identity: The principal.
22948
23473
  :param actions: The set of actions to allow (i.e. "cloudfront:ListInvalidations").
23474
+
23475
+ :stability: deprecated
22949
23476
  '''
22950
23477
  if __debug__:
22951
23478
  type_hints = typing.get_type_hints(_typecheckingstub__bbe540671a65a5420a5e19288df418399a2c78bc5c1c07de38b3f735b89a36ed)
@@ -22958,9 +23485,11 @@ class CloudFrontWebDistribution(
22958
23485
  self,
22959
23486
  identity: _IGrantable_71c4f5de,
22960
23487
  ) -> _Grant_a7ae64f8:
22961
- '''Grant to create invalidations for this bucket to an IAM principal (Role/Group/User).
23488
+ '''(deprecated) Grant to create invalidations for this bucket to an IAM principal (Role/Group/User).
22962
23489
 
22963
23490
  :param identity: The principal.
23491
+
23492
+ :stability: deprecated
22964
23493
  '''
22965
23494
  if __debug__:
22966
23495
  type_hints = typing.get_type_hints(_typecheckingstub__1e035551f14cb51c65a18baf4f340f3be55199133afe180ca2138a8a0e86e6f8)
@@ -22970,25 +23499,32 @@ class CloudFrontWebDistribution(
22970
23499
  @builtins.property
22971
23500
  @jsii.member(jsii_name="distributionDomainName")
22972
23501
  def distribution_domain_name(self) -> builtins.str:
22973
- '''The domain name created by CloudFront for this distribution.
23502
+ '''(deprecated) The domain name created by CloudFront for this distribution.
22974
23503
 
22975
23504
  If you are using aliases for your distribution, this is the domainName your DNS records should point to.
22976
23505
  (In Route53, you could create an ALIAS record to this value, for example.)
23506
+
23507
+ :stability: deprecated
22977
23508
  '''
22978
23509
  return typing.cast(builtins.str, jsii.get(self, "distributionDomainName"))
22979
23510
 
22980
23511
  @builtins.property
22981
23512
  @jsii.member(jsii_name="distributionId")
22982
23513
  def distribution_id(self) -> builtins.str:
22983
- '''The distribution ID for this distribution.'''
23514
+ '''(deprecated) The distribution ID for this distribution.
23515
+
23516
+ :stability: deprecated
23517
+ '''
22984
23518
  return typing.cast(builtins.str, jsii.get(self, "distributionId"))
22985
23519
 
22986
23520
  @builtins.property
22987
23521
  @jsii.member(jsii_name="loggingBucket")
22988
23522
  def logging_bucket(self) -> typing.Optional[_IBucket_42e086fd]:
22989
- '''The logging bucket for this CloudFront distribution.
23523
+ '''(deprecated) The logging bucket for this CloudFront distribution.
22990
23524
 
22991
23525
  If logging is not enabled for this distribution - this property will be undefined.
23526
+
23527
+ :stability: deprecated
22992
23528
  '''
22993
23529
  return typing.cast(typing.Optional[_IBucket_42e086fd], jsii.get(self, "loggingBucket"))
22994
23530
 
@@ -23972,6 +24508,7 @@ class Function(
23972
24508
 
23973
24509
 
23974
24510
  __all__ = [
24511
+ "AccessLevel",
23975
24512
  "AddBehaviorOptions",
23976
24513
  "AllowedMethods",
23977
24514
  "AssetImportSource",
@@ -24042,6 +24579,7 @@ __all__ = [
24042
24579
  "IKeyGroup",
24043
24580
  "IKeyValueStore",
24044
24581
  "IOrigin",
24582
+ "IOriginAccessControl",
24045
24583
  "IOriginAccessIdentity",
24046
24584
  "IOriginRequestPolicy",
24047
24585
  "IPublicKey",
@@ -24056,6 +24594,8 @@ __all__ = [
24056
24594
  "LambdaEdgeEventType",
24057
24595
  "LambdaFunctionAssociation",
24058
24596
  "LoggingConfiguration",
24597
+ "OriginAccessControlBaseProps",
24598
+ "OriginAccessControlOriginType",
24059
24599
  "OriginAccessIdentity",
24060
24600
  "OriginAccessIdentityProps",
24061
24601
  "OriginBase",
@@ -24089,9 +24629,14 @@ __all__ = [
24089
24629
  "ResponseHeadersXSSProtection",
24090
24630
  "ResponseSecurityHeadersBehavior",
24091
24631
  "S3ImportSource",
24632
+ "S3OriginAccessControl",
24633
+ "S3OriginAccessControlProps",
24092
24634
  "S3OriginConfig",
24093
24635
  "SSLMethod",
24094
24636
  "SecurityPolicyProtocol",
24637
+ "Signing",
24638
+ "SigningBehavior",
24639
+ "SigningProtocol",
24095
24640
  "SourceConfiguration",
24096
24641
  "ViewerCertificate",
24097
24642
  "ViewerCertificateOptions",
@@ -25668,6 +26213,7 @@ def _typecheckingstub__88031486a507fddae1a9cd6ed970521f2a57d7953a1e564c2c5d97b85
25668
26213
  scope: _constructs_77d1e7e8.Construct,
25669
26214
  *,
25670
26215
  origin_id: builtins.str,
26216
+ distribution_id: typing.Optional[builtins.str] = None,
25671
26217
  ) -> None:
25672
26218
  """Type checking stubs"""
25673
26219
  pass
@@ -25780,6 +26326,15 @@ def _typecheckingstub__c1c495121d3f25343764da863019d723da4b7d05ac74ed07b91c30326
25780
26326
  """Type checking stubs"""
25781
26327
  pass
25782
26328
 
26329
+ def _typecheckingstub__a8b924ff1ec7417df56da9ecb0d84f08365a3b3c38c90dae9c47f3745f55d369(
26330
+ *,
26331
+ description: typing.Optional[builtins.str] = None,
26332
+ origin_access_control_name: typing.Optional[builtins.str] = None,
26333
+ signing: typing.Optional[Signing] = None,
26334
+ ) -> None:
26335
+ """Type checking stubs"""
26336
+ pass
26337
+
25783
26338
  def _typecheckingstub__ff86c7c3a54c3012c2e56787024ba13254594b3c0ca9aa271798797fe668270a(
25784
26339
  scope: _constructs_77d1e7e8.Construct,
25785
26340
  id: builtins.str,
@@ -25819,6 +26374,7 @@ def _typecheckingstub__5b13f814bf47a5f3949ffc4b53034b4702a02836213167c9ba4c6a8d6
25819
26374
  connection_attempts: typing.Optional[jsii.Number] = None,
25820
26375
  connection_timeout: typing.Optional[_Duration_4839e8c3] = None,
25821
26376
  custom_headers: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
26377
+ origin_access_control_id: typing.Optional[builtins.str] = None,
25822
26378
  origin_id: typing.Optional[builtins.str] = None,
25823
26379
  origin_shield_enabled: typing.Optional[builtins.bool] = None,
25824
26380
  origin_shield_region: typing.Optional[builtins.str] = None,
@@ -25830,6 +26386,7 @@ def _typecheckingstub__8428dfc90e69bdd5363e69afd9c590a4ed2f1363b22242197295117dc
25830
26386
  _scope: _constructs_77d1e7e8.Construct,
25831
26387
  *,
25832
26388
  origin_id: builtins.str,
26389
+ distribution_id: typing.Optional[builtins.str] = None,
25833
26390
  ) -> None:
25834
26391
  """Type checking stubs"""
25835
26392
  pass
@@ -25845,6 +26402,7 @@ def _typecheckingstub__d3e6a8992dd905a0c0d851cfed62aa0f881803068317a0b59eb845712
25845
26402
  def _typecheckingstub__0dbe700920dc77d0410da01e091c5caab2d3bb29313320e6057ed87275ccc649(
25846
26403
  *,
25847
26404
  origin_id: builtins.str,
26405
+ distribution_id: typing.Optional[builtins.str] = None,
25848
26406
  ) -> None:
25849
26407
  """Type checking stubs"""
25850
26408
  pass
@@ -25862,6 +26420,7 @@ def _typecheckingstub__554f93c57439378c8175676cc442eaea5c8ec961a156b1f26e60df9cd
25862
26420
  connection_attempts: typing.Optional[jsii.Number] = None,
25863
26421
  connection_timeout: typing.Optional[_Duration_4839e8c3] = None,
25864
26422
  custom_headers: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
26423
+ origin_access_control_id: typing.Optional[builtins.str] = None,
25865
26424
  origin_id: typing.Optional[builtins.str] = None,
25866
26425
  origin_shield_enabled: typing.Optional[builtins.bool] = None,
25867
26426
  origin_shield_region: typing.Optional[builtins.str] = None,
@@ -25874,6 +26433,7 @@ def _typecheckingstub__e1f5da480c426bb32e14bbbeb482146cc90bcd3678f902c46f0f2f739
25874
26433
  connection_attempts: typing.Optional[jsii.Number] = None,
25875
26434
  connection_timeout: typing.Optional[_Duration_4839e8c3] = None,
25876
26435
  custom_headers: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
26436
+ origin_access_control_id: typing.Optional[builtins.str] = None,
25877
26437
  origin_id: typing.Optional[builtins.str] = None,
25878
26438
  origin_shield_enabled: typing.Optional[builtins.bool] = None,
25879
26439
  origin_shield_region: typing.Optional[builtins.str] = None,
@@ -26141,6 +26701,34 @@ def _typecheckingstub__50b2e52880076ae956da5eb2d05fa8de1161eb1b2df762d8dafbf8e6b
26141
26701
  """Type checking stubs"""
26142
26702
  pass
26143
26703
 
26704
+ def _typecheckingstub__7b2a85cd0fa604a08b24dc8c92dc0ab531d0bddfb7ae38aea9da131ae6d978b9(
26705
+ scope: _constructs_77d1e7e8.Construct,
26706
+ id: builtins.str,
26707
+ *,
26708
+ description: typing.Optional[builtins.str] = None,
26709
+ origin_access_control_name: typing.Optional[builtins.str] = None,
26710
+ signing: typing.Optional[Signing] = None,
26711
+ ) -> None:
26712
+ """Type checking stubs"""
26713
+ pass
26714
+
26715
+ def _typecheckingstub__b29164c2163d9cc22b4d251b78a9ef345abc13ec4b3000f567a67ab55c65e345(
26716
+ scope: _constructs_77d1e7e8.Construct,
26717
+ id: builtins.str,
26718
+ origin_access_control_id: builtins.str,
26719
+ ) -> None:
26720
+ """Type checking stubs"""
26721
+ pass
26722
+
26723
+ def _typecheckingstub__8f6d25b92869f9d23abd5a05839feb0af6686aa049fbbe51cca648f46cad1567(
26724
+ *,
26725
+ description: typing.Optional[builtins.str] = None,
26726
+ origin_access_control_name: typing.Optional[builtins.str] = None,
26727
+ signing: typing.Optional[Signing] = None,
26728
+ ) -> None:
26729
+ """Type checking stubs"""
26730
+ pass
26731
+
26144
26732
  def _typecheckingstub__e5837aa017bcf235e169321284a6cfe3cd3ac7b3c0baef0d9b68b55e8da518be(
26145
26733
  *,
26146
26734
  s3_bucket_source: _IBucket_42e086fd,
@@ -26152,6 +26740,13 @@ def _typecheckingstub__e5837aa017bcf235e169321284a6cfe3cd3ac7b3c0baef0d9b68b55e8
26152
26740
  """Type checking stubs"""
26153
26741
  pass
26154
26742
 
26743
+ def _typecheckingstub__8c00ffc80ad080f771484098ccaf55fd1d267675565e970bd2559fe788ce72e6(
26744
+ protocol: SigningProtocol,
26745
+ behavior: SigningBehavior,
26746
+ ) -> None:
26747
+ """Type checking stubs"""
26748
+ pass
26749
+
26155
26750
  def _typecheckingstub__ccea0761c172529885c07d5e167927d1ae78b92776ef8b892c36faadf6bb0dce(
26156
26751
  *,
26157
26752
  behaviors: typing.Sequence[typing.Union[Behavior, typing.Dict[builtins.str, typing.Any]]],