aws-cdk-lib 2.155.0__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.

@@ -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=[],
@@ -16937,7 +16959,7 @@ class HeadersFrameOption(enum.Enum):
16937
16959
  frame_options=cloudfront.ResponseHeadersFrameOptions(frame_option=cloudfront.HeadersFrameOption.DENY, override=True),
16938
16960
  referrer_policy=cloudfront.ResponseHeadersReferrerPolicy(referrer_policy=cloudfront.HeadersReferrerPolicy.NO_REFERRER, override=True),
16939
16961
  strict_transport_security=cloudfront.ResponseHeadersStrictTransportSecurity(access_control_max_age=Duration.seconds(600), include_subdomains=True, override=True),
16940
- 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)
16941
16963
  ),
16942
16964
  remove_headers=["Server"],
16943
16965
  server_timing_sampling_rate=50
@@ -16997,7 +17019,7 @@ class HeadersReferrerPolicy(enum.Enum):
16997
17019
  frame_options=cloudfront.ResponseHeadersFrameOptions(frame_option=cloudfront.HeadersFrameOption.DENY, override=True),
16998
17020
  referrer_policy=cloudfront.ResponseHeadersReferrerPolicy(referrer_policy=cloudfront.HeadersReferrerPolicy.NO_REFERRER, override=True),
16999
17021
  strict_transport_security=cloudfront.ResponseHeadersStrictTransportSecurity(access_control_max_age=Duration.seconds(600), include_subdomains=True, override=True),
17000
- 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)
17001
17023
  ),
17002
17024
  remove_headers=["Server"],
17003
17025
  server_timing_sampling_rate=50
@@ -17361,11 +17383,13 @@ class IOrigin(typing_extensions.Protocol):
17361
17383
  scope: _constructs_77d1e7e8.Construct,
17362
17384
  *,
17363
17385
  origin_id: builtins.str,
17386
+ distribution_id: typing.Optional[builtins.str] = None,
17364
17387
  ) -> "OriginBindConfig":
17365
17388
  '''The method called when a given Origin is added (for the first time) to a Distribution.
17366
17389
 
17367
17390
  :param scope: -
17368
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
17369
17393
  '''
17370
17394
  ...
17371
17395
 
@@ -17384,16 +17408,20 @@ class _IOriginProxy:
17384
17408
  scope: _constructs_77d1e7e8.Construct,
17385
17409
  *,
17386
17410
  origin_id: builtins.str,
17411
+ distribution_id: typing.Optional[builtins.str] = None,
17387
17412
  ) -> "OriginBindConfig":
17388
17413
  '''The method called when a given Origin is added (for the first time) to a Distribution.
17389
17414
 
17390
17415
  :param scope: -
17391
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
17392
17418
  '''
17393
17419
  if __debug__:
17394
17420
  type_hints = typing.get_type_hints(_typecheckingstub__88031486a507fddae1a9cd6ed970521f2a57d7953a1e564c2c5d97b8591065f2)
17395
17421
  check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
17396
- options = OriginBindOptions(origin_id=origin_id)
17422
+ options = OriginBindOptions(
17423
+ origin_id=origin_id, distribution_id=distribution_id
17424
+ )
17397
17425
 
17398
17426
  return typing.cast("OriginBindConfig", jsii.invoke(self, "bind", [scope, options]))
17399
17427
 
@@ -17401,6 +17429,40 @@ class _IOriginProxy:
17401
17429
  typing.cast(typing.Any, IOrigin).__jsii_proxy_class__ = lambda : _IOriginProxy
17402
17430
 
17403
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
+
17404
17466
  @jsii.interface(jsii_type="aws-cdk-lib.aws_cloudfront.IOriginAccessIdentity")
17405
17467
  class IOriginAccessIdentity(
17406
17468
  _IResource_c80c4260,
@@ -18394,6 +18456,113 @@ class LoggingConfiguration:
18394
18456
  )
18395
18457
 
18396
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
+
18397
18566
  @jsii.implements(IOriginAccessIdentity)
18398
18567
  class OriginAccessIdentity(
18399
18568
  _Resource_45bc6135,
@@ -18403,16 +18572,21 @@ class OriginAccessIdentity(
18403
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.
18404
18573
 
18405
18574
  :resource: AWS::CloudFront::CloudFrontOriginAccessIdentity
18406
- :exampleMetadata: fixture=_generated
18575
+ :exampleMetadata: infused
18407
18576
 
18408
18577
  Example::
18409
18578
 
18410
- # The code below shows an example of how to instantiate this type.
18411
- # The values are placeholders you should change.
18412
- from aws_cdk import aws_cloudfront as cloudfront
18413
-
18414
- origin_access_identity = cloudfront.OriginAccessIdentity(self, "MyOriginAccessIdentity",
18415
- 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
+ )
18416
18590
  )
18417
18591
  '''
18418
18592
 
@@ -18537,16 +18711,21 @@ class OriginAccessIdentityProps:
18537
18711
 
18538
18712
  :param comment: Any comments you want to include about the origin access identity. Default: "Allows CloudFront to reach the bucket"
18539
18713
 
18540
- :exampleMetadata: fixture=_generated
18714
+ :exampleMetadata: infused
18541
18715
 
18542
18716
  Example::
18543
18717
 
18544
- # The code below shows an example of how to instantiate this type.
18545
- # The values are placeholders you should change.
18546
- from aws_cdk import aws_cloudfront as cloudfront
18547
-
18548
- origin_access_identity_props = cloudfront.OriginAccessIdentityProps(
18549
- 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
+ )
18550
18729
  )
18551
18730
  '''
18552
18731
  if __debug__:
@@ -18592,6 +18771,7 @@ class OriginBase(
18592
18771
  connection_attempts: typing.Optional[jsii.Number] = None,
18593
18772
  connection_timeout: typing.Optional[_Duration_4839e8c3] = None,
18594
18773
  custom_headers: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
18774
+ origin_access_control_id: typing.Optional[builtins.str] = None,
18595
18775
  origin_id: typing.Optional[builtins.str] = None,
18596
18776
  origin_shield_enabled: typing.Optional[builtins.bool] = None,
18597
18777
  origin_shield_region: typing.Optional[builtins.str] = None,
@@ -18602,6 +18782,7 @@ class OriginBase(
18602
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
18603
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)
18604
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
18605
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
18606
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
18607
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
@@ -18614,6 +18795,7 @@ class OriginBase(
18614
18795
  connection_attempts=connection_attempts,
18615
18796
  connection_timeout=connection_timeout,
18616
18797
  custom_headers=custom_headers,
18798
+ origin_access_control_id=origin_access_control_id,
18617
18799
  origin_id=origin_id,
18618
18800
  origin_shield_enabled=origin_shield_enabled,
18619
18801
  origin_shield_region=origin_shield_region,
@@ -18627,6 +18809,7 @@ class OriginBase(
18627
18809
  _scope: _constructs_77d1e7e8.Construct,
18628
18810
  *,
18629
18811
  origin_id: builtins.str,
18812
+ distribution_id: typing.Optional[builtins.str] = None,
18630
18813
  ) -> "OriginBindConfig":
18631
18814
  '''Binds the origin to the associated Distribution.
18632
18815
 
@@ -18634,11 +18817,14 @@ class OriginBase(
18634
18817
 
18635
18818
  :param _scope: -
18636
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
18637
18821
  '''
18638
18822
  if __debug__:
18639
18823
  type_hints = typing.get_type_hints(_typecheckingstub__8428dfc90e69bdd5363e69afd9c590a4ed2f1363b22242197295117dc5221878)
18640
18824
  check_type(argname="argument _scope", value=_scope, expected_type=type_hints["_scope"])
18641
- options = OriginBindOptions(origin_id=origin_id)
18825
+ options = OriginBindOptions(
18826
+ origin_id=origin_id, distribution_id=distribution_id
18827
+ )
18642
18828
 
18643
18829
  return typing.cast("OriginBindConfig", jsii.invoke(self, "bind", [_scope, options]))
18644
18830
 
@@ -18779,13 +18965,19 @@ class OriginBindConfig:
18779
18965
  @jsii.data_type(
18780
18966
  jsii_type="aws-cdk-lib.aws_cloudfront.OriginBindOptions",
18781
18967
  jsii_struct_bases=[],
18782
- name_mapping={"origin_id": "originId"},
18968
+ name_mapping={"origin_id": "originId", "distribution_id": "distributionId"},
18783
18969
  )
18784
18970
  class OriginBindOptions:
18785
- 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:
18786
18977
  '''Options passed to Origin.bind().
18787
18978
 
18788
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
18789
18981
 
18790
18982
  :exampleMetadata: fixture=_generated
18791
18983
 
@@ -18796,15 +18988,21 @@ class OriginBindOptions:
18796
18988
  from aws_cdk import aws_cloudfront as cloudfront
18797
18989
 
18798
18990
  origin_bind_options = cloudfront.OriginBindOptions(
18799
- origin_id="originId"
18991
+ origin_id="originId",
18992
+
18993
+ # the properties below are optional
18994
+ distribution_id="distributionId"
18800
18995
  )
18801
18996
  '''
18802
18997
  if __debug__:
18803
18998
  type_hints = typing.get_type_hints(_typecheckingstub__0dbe700920dc77d0410da01e091c5caab2d3bb29313320e6057ed87275ccc649)
18804
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"])
18805
19001
  self._values: typing.Dict[builtins.str, typing.Any] = {
18806
19002
  "origin_id": origin_id,
18807
19003
  }
19004
+ if distribution_id is not None:
19005
+ self._values["distribution_id"] = distribution_id
18808
19006
 
18809
19007
  @builtins.property
18810
19008
  def origin_id(self) -> builtins.str:
@@ -18813,6 +19011,17 @@ class OriginBindOptions:
18813
19011
  assert result is not None, "Required property 'origin_id' is missing"
18814
19012
  return typing.cast(builtins.str, result)
18815
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
+
18816
19025
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
18817
19026
  return isinstance(rhs, self.__class__) and rhs._values == self._values
18818
19027
 
@@ -18904,6 +19113,7 @@ class OriginFailoverConfig:
18904
19113
  "connection_attempts": "connectionAttempts",
18905
19114
  "connection_timeout": "connectionTimeout",
18906
19115
  "custom_headers": "customHeaders",
19116
+ "origin_access_control_id": "originAccessControlId",
18907
19117
  "origin_id": "originId",
18908
19118
  "origin_shield_enabled": "originShieldEnabled",
18909
19119
  "origin_shield_region": "originShieldRegion",
@@ -18916,6 +19126,7 @@ class OriginOptions:
18916
19126
  connection_attempts: typing.Optional[jsii.Number] = None,
18917
19127
  connection_timeout: typing.Optional[_Duration_4839e8c3] = None,
18918
19128
  custom_headers: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
19129
+ origin_access_control_id: typing.Optional[builtins.str] = None,
18919
19130
  origin_id: typing.Optional[builtins.str] = None,
18920
19131
  origin_shield_enabled: typing.Optional[builtins.bool] = None,
18921
19132
  origin_shield_region: typing.Optional[builtins.str] = None,
@@ -18925,6 +19136,7 @@ class OriginOptions:
18925
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
18926
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)
18927
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
18928
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
18929
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
18930
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
@@ -18944,6 +19156,7 @@ class OriginOptions:
18944
19156
  custom_headers={
18945
19157
  "custom_headers_key": "customHeaders"
18946
19158
  },
19159
+ origin_access_control_id="originAccessControlId",
18947
19160
  origin_id="originId",
18948
19161
  origin_shield_enabled=False,
18949
19162
  origin_shield_region="originShieldRegion"
@@ -18954,6 +19167,7 @@ class OriginOptions:
18954
19167
  check_type(argname="argument connection_attempts", value=connection_attempts, expected_type=type_hints["connection_attempts"])
18955
19168
  check_type(argname="argument connection_timeout", value=connection_timeout, expected_type=type_hints["connection_timeout"])
18956
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"])
18957
19171
  check_type(argname="argument origin_id", value=origin_id, expected_type=type_hints["origin_id"])
18958
19172
  check_type(argname="argument origin_shield_enabled", value=origin_shield_enabled, expected_type=type_hints["origin_shield_enabled"])
18959
19173
  check_type(argname="argument origin_shield_region", value=origin_shield_region, expected_type=type_hints["origin_shield_region"])
@@ -18964,6 +19178,8 @@ class OriginOptions:
18964
19178
  self._values["connection_timeout"] = connection_timeout
18965
19179
  if custom_headers is not None:
18966
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
18967
19183
  if origin_id is not None:
18968
19184
  self._values["origin_id"] = origin_id
18969
19185
  if origin_shield_enabled is not None:
@@ -19004,6 +19220,15 @@ class OriginOptions:
19004
19220
  result = self._values.get("custom_headers")
19005
19221
  return typing.cast(typing.Optional[typing.Mapping[builtins.str, builtins.str]], result)
19006
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
+
19007
19232
  @builtins.property
19008
19233
  def origin_id(self) -> typing.Optional[builtins.str]:
19009
19234
  '''A unique identifier for the origin.
@@ -19054,6 +19279,7 @@ class OriginOptions:
19054
19279
  "connection_attempts": "connectionAttempts",
19055
19280
  "connection_timeout": "connectionTimeout",
19056
19281
  "custom_headers": "customHeaders",
19282
+ "origin_access_control_id": "originAccessControlId",
19057
19283
  "origin_id": "originId",
19058
19284
  "origin_shield_enabled": "originShieldEnabled",
19059
19285
  "origin_shield_region": "originShieldRegion",
@@ -19067,6 +19293,7 @@ class OriginProps(OriginOptions):
19067
19293
  connection_attempts: typing.Optional[jsii.Number] = None,
19068
19294
  connection_timeout: typing.Optional[_Duration_4839e8c3] = None,
19069
19295
  custom_headers: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
19296
+ origin_access_control_id: typing.Optional[builtins.str] = None,
19070
19297
  origin_id: typing.Optional[builtins.str] = None,
19071
19298
  origin_shield_enabled: typing.Optional[builtins.bool] = None,
19072
19299
  origin_shield_region: typing.Optional[builtins.str] = None,
@@ -19077,6 +19304,7 @@ class OriginProps(OriginOptions):
19077
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
19078
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)
19079
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
19080
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
19081
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
19082
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
@@ -19097,6 +19325,7 @@ class OriginProps(OriginOptions):
19097
19325
  custom_headers={
19098
19326
  "custom_headers_key": "customHeaders"
19099
19327
  },
19328
+ origin_access_control_id="originAccessControlId",
19100
19329
  origin_id="originId",
19101
19330
  origin_path="originPath",
19102
19331
  origin_shield_enabled=False,
@@ -19108,6 +19337,7 @@ class OriginProps(OriginOptions):
19108
19337
  check_type(argname="argument connection_attempts", value=connection_attempts, expected_type=type_hints["connection_attempts"])
19109
19338
  check_type(argname="argument connection_timeout", value=connection_timeout, expected_type=type_hints["connection_timeout"])
19110
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"])
19111
19341
  check_type(argname="argument origin_id", value=origin_id, expected_type=type_hints["origin_id"])
19112
19342
  check_type(argname="argument origin_shield_enabled", value=origin_shield_enabled, expected_type=type_hints["origin_shield_enabled"])
19113
19343
  check_type(argname="argument origin_shield_region", value=origin_shield_region, expected_type=type_hints["origin_shield_region"])
@@ -19119,6 +19349,8 @@ class OriginProps(OriginOptions):
19119
19349
  self._values["connection_timeout"] = connection_timeout
19120
19350
  if custom_headers is not None:
19121
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
19122
19354
  if origin_id is not None:
19123
19355
  self._values["origin_id"] = origin_id
19124
19356
  if origin_shield_enabled is not None:
@@ -19161,6 +19393,15 @@ class OriginProps(OriginOptions):
19161
19393
  result = self._values.get("custom_headers")
19162
19394
  return typing.cast(typing.Optional[typing.Mapping[builtins.str, builtins.str]], result)
19163
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
+
19164
19405
  @builtins.property
19165
19406
  def origin_id(self) -> typing.Optional[builtins.str]:
19166
19407
  '''A unique identifier for the origin.
@@ -20308,7 +20549,7 @@ class ResponseCustomHeadersBehavior:
20308
20549
  frame_options=cloudfront.ResponseHeadersFrameOptions(frame_option=cloudfront.HeadersFrameOption.DENY, override=True),
20309
20550
  referrer_policy=cloudfront.ResponseHeadersReferrerPolicy(referrer_policy=cloudfront.HeadersReferrerPolicy.NO_REFERRER, override=True),
20310
20551
  strict_transport_security=cloudfront.ResponseHeadersStrictTransportSecurity(access_control_max_age=Duration.seconds(600), include_subdomains=True, override=True),
20311
- 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)
20312
20553
  ),
20313
20554
  remove_headers=["Server"],
20314
20555
  server_timing_sampling_rate=50
@@ -20403,7 +20644,7 @@ class ResponseHeadersContentSecurityPolicy:
20403
20644
  frame_options=cloudfront.ResponseHeadersFrameOptions(frame_option=cloudfront.HeadersFrameOption.DENY, override=True),
20404
20645
  referrer_policy=cloudfront.ResponseHeadersReferrerPolicy(referrer_policy=cloudfront.HeadersReferrerPolicy.NO_REFERRER, override=True),
20405
20646
  strict_transport_security=cloudfront.ResponseHeadersStrictTransportSecurity(access_control_max_age=Duration.seconds(600), include_subdomains=True, override=True),
20406
- 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)
20407
20648
  ),
20408
20649
  remove_headers=["Server"],
20409
20650
  server_timing_sampling_rate=50
@@ -20498,7 +20739,7 @@ class ResponseHeadersContentTypeOptions:
20498
20739
  frame_options=cloudfront.ResponseHeadersFrameOptions(frame_option=cloudfront.HeadersFrameOption.DENY, override=True),
20499
20740
  referrer_policy=cloudfront.ResponseHeadersReferrerPolicy(referrer_policy=cloudfront.HeadersReferrerPolicy.NO_REFERRER, override=True),
20500
20741
  strict_transport_security=cloudfront.ResponseHeadersStrictTransportSecurity(access_control_max_age=Duration.seconds(600), include_subdomains=True, override=True),
20501
- 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)
20502
20743
  ),
20503
20744
  remove_headers=["Server"],
20504
20745
  server_timing_sampling_rate=50
@@ -20611,7 +20852,7 @@ class ResponseHeadersCorsBehavior:
20611
20852
  frame_options=cloudfront.ResponseHeadersFrameOptions(frame_option=cloudfront.HeadersFrameOption.DENY, override=True),
20612
20853
  referrer_policy=cloudfront.ResponseHeadersReferrerPolicy(referrer_policy=cloudfront.HeadersReferrerPolicy.NO_REFERRER, override=True),
20613
20854
  strict_transport_security=cloudfront.ResponseHeadersStrictTransportSecurity(access_control_max_age=Duration.seconds(600), include_subdomains=True, override=True),
20614
- 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)
20615
20856
  ),
20616
20857
  remove_headers=["Server"],
20617
20858
  server_timing_sampling_rate=50
@@ -20773,7 +21014,7 @@ class ResponseHeadersFrameOptions:
20773
21014
  frame_options=cloudfront.ResponseHeadersFrameOptions(frame_option=cloudfront.HeadersFrameOption.DENY, override=True),
20774
21015
  referrer_policy=cloudfront.ResponseHeadersReferrerPolicy(referrer_policy=cloudfront.HeadersReferrerPolicy.NO_REFERRER, override=True),
20775
21016
  strict_transport_security=cloudfront.ResponseHeadersStrictTransportSecurity(access_control_max_age=Duration.seconds(600), include_subdomains=True, override=True),
20776
- 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)
20777
21018
  ),
20778
21019
  remove_headers=["Server"],
20779
21020
  server_timing_sampling_rate=50
@@ -20866,7 +21107,7 @@ class ResponseHeadersPolicy(
20866
21107
  frame_options=cloudfront.ResponseHeadersFrameOptions(frame_option=cloudfront.HeadersFrameOption.DENY, override=True),
20867
21108
  referrer_policy=cloudfront.ResponseHeadersReferrerPolicy(referrer_policy=cloudfront.HeadersReferrerPolicy.NO_REFERRER, override=True),
20868
21109
  strict_transport_security=cloudfront.ResponseHeadersStrictTransportSecurity(access_control_max_age=Duration.seconds(600), include_subdomains=True, override=True),
20869
- 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)
20870
21111
  ),
20871
21112
  remove_headers=["Server"],
20872
21113
  server_timing_sampling_rate=50
@@ -21051,7 +21292,7 @@ class ResponseHeadersPolicyProps:
21051
21292
  frame_options=cloudfront.ResponseHeadersFrameOptions(frame_option=cloudfront.HeadersFrameOption.DENY, override=True),
21052
21293
  referrer_policy=cloudfront.ResponseHeadersReferrerPolicy(referrer_policy=cloudfront.HeadersReferrerPolicy.NO_REFERRER, override=True),
21053
21294
  strict_transport_security=cloudfront.ResponseHeadersStrictTransportSecurity(access_control_max_age=Duration.seconds(600), include_subdomains=True, override=True),
21054
- 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)
21055
21296
  ),
21056
21297
  remove_headers=["Server"],
21057
21298
  server_timing_sampling_rate=50
@@ -21225,7 +21466,7 @@ class ResponseHeadersReferrerPolicy:
21225
21466
  frame_options=cloudfront.ResponseHeadersFrameOptions(frame_option=cloudfront.HeadersFrameOption.DENY, override=True),
21226
21467
  referrer_policy=cloudfront.ResponseHeadersReferrerPolicy(referrer_policy=cloudfront.HeadersReferrerPolicy.NO_REFERRER, override=True),
21227
21468
  strict_transport_security=cloudfront.ResponseHeadersStrictTransportSecurity(access_control_max_age=Duration.seconds(600), include_subdomains=True, override=True),
21228
- 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)
21229
21470
  ),
21230
21471
  remove_headers=["Server"],
21231
21472
  server_timing_sampling_rate=50
@@ -21335,7 +21576,7 @@ class ResponseHeadersStrictTransportSecurity:
21335
21576
  frame_options=cloudfront.ResponseHeadersFrameOptions(frame_option=cloudfront.HeadersFrameOption.DENY, override=True),
21336
21577
  referrer_policy=cloudfront.ResponseHeadersReferrerPolicy(referrer_policy=cloudfront.HeadersReferrerPolicy.NO_REFERRER, override=True),
21337
21578
  strict_transport_security=cloudfront.ResponseHeadersStrictTransportSecurity(access_control_max_age=Duration.seconds(600), include_subdomains=True, override=True),
21338
- 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)
21339
21580
  ),
21340
21581
  remove_headers=["Server"],
21341
21582
  server_timing_sampling_rate=50
@@ -21469,7 +21710,7 @@ class ResponseHeadersXSSProtection:
21469
21710
  frame_options=cloudfront.ResponseHeadersFrameOptions(frame_option=cloudfront.HeadersFrameOption.DENY, override=True),
21470
21711
  referrer_policy=cloudfront.ResponseHeadersReferrerPolicy(referrer_policy=cloudfront.HeadersReferrerPolicy.NO_REFERRER, override=True),
21471
21712
  strict_transport_security=cloudfront.ResponseHeadersStrictTransportSecurity(access_control_max_age=Duration.seconds(600), include_subdomains=True, override=True),
21472
- 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)
21473
21714
  ),
21474
21715
  remove_headers=["Server"],
21475
21716
  server_timing_sampling_rate=50
@@ -21618,7 +21859,7 @@ class ResponseSecurityHeadersBehavior:
21618
21859
  frame_options=cloudfront.ResponseHeadersFrameOptions(frame_option=cloudfront.HeadersFrameOption.DENY, override=True),
21619
21860
  referrer_policy=cloudfront.ResponseHeadersReferrerPolicy(referrer_policy=cloudfront.HeadersReferrerPolicy.NO_REFERRER, override=True),
21620
21861
  strict_transport_security=cloudfront.ResponseHeadersStrictTransportSecurity(access_control_max_age=Duration.seconds(600), include_subdomains=True, override=True),
21621
- 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)
21622
21863
  ),
21623
21864
  remove_headers=["Server"],
21624
21865
  server_timing_sampling_rate=50
@@ -21818,6 +22059,187 @@ class S3ImportSource(
21818
22059
  return typing.cast(builtins.str, jsii.get(self, "key"))
21819
22060
 
21820
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
+
21821
22243
  @jsii.data_type(
21822
22244
  jsii_type="aws-cdk-lib.aws_cloudfront.S3OriginConfig",
21823
22245
  jsii_struct_bases=[],
@@ -22017,6 +22439,100 @@ class SecurityPolicyProtocol(enum.Enum):
22017
22439
  TLS_V1_2_2021 = "TLS_V1_2_2021"
22018
22440
 
22019
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
+
22020
22536
  @jsii.data_type(
22021
22537
  jsii_type="aws-cdk-lib.aws_cloudfront.SourceConfiguration",
22022
22538
  jsii_struct_bases=[],
@@ -22808,7 +23324,7 @@ class CloudFrontWebDistribution(
22808
23324
  metaclass=jsii.JSIIMeta,
22809
23325
  jsii_type="aws-cdk-lib.aws_cloudfront.CloudFrontWebDistribution",
22810
23326
  ):
22811
- '''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.
22812
23328
 
22813
23329
  CloudFront fronts user provided content and caches it at edge locations across the world.
22814
23330
 
@@ -22830,6 +23346,9 @@ class CloudFrontWebDistribution(
22830
23346
 
22831
23347
  You can customize the distribution using additional properties from the CloudFrontWebDistributionProps interface.
22832
23348
 
23349
+ :deprecated: Use ``Distribution`` instead
23350
+
23351
+ :stability: deprecated
22833
23352
  :resource: AWS::CloudFront::Distribution
22834
23353
  :exampleMetadata: infused
22835
23354
 
@@ -22888,6 +23407,8 @@ class CloudFrontWebDistribution(
22888
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()
22889
23408
  :param viewer_protocol_policy: The default viewer policy for incoming clients. Default: RedirectToHTTPs
22890
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
22891
23412
  '''
22892
23413
  if __debug__:
22893
23414
  type_hints = typing.get_type_hints(_typecheckingstub__10cf4b33f291ebea192f1ea6c37ed91936b858def6e1350c920f21db71902d54)
@@ -22921,12 +23442,14 @@ class CloudFrontWebDistribution(
22921
23442
  distribution_id: builtins.str,
22922
23443
  domain_name: builtins.str,
22923
23444
  ) -> IDistribution:
22924
- '''Creates a construct that represents an external (imported) distribution.
23445
+ '''(deprecated) Creates a construct that represents an external (imported) distribution.
22925
23446
 
22926
23447
  :param scope: -
22927
23448
  :param id: -
22928
23449
  :param distribution_id: The distribution ID for this distribution.
22929
23450
  :param domain_name: The generated domain name of the Distribution, such as d111111abcdef8.cloudfront.net.
23451
+
23452
+ :stability: deprecated
22930
23453
  '''
22931
23454
  if __debug__:
22932
23455
  type_hints = typing.get_type_hints(_typecheckingstub__ea3b674a8185c8a9d03501ece5d860a4700034e19e03fc3a57d05fc8623fafc9)
@@ -22944,10 +23467,12 @@ class CloudFrontWebDistribution(
22944
23467
  identity: _IGrantable_71c4f5de,
22945
23468
  *actions: builtins.str,
22946
23469
  ) -> _Grant_a7ae64f8:
22947
- '''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.
22948
23471
 
22949
23472
  :param identity: The principal.
22950
23473
  :param actions: The set of actions to allow (i.e. "cloudfront:ListInvalidations").
23474
+
23475
+ :stability: deprecated
22951
23476
  '''
22952
23477
  if __debug__:
22953
23478
  type_hints = typing.get_type_hints(_typecheckingstub__bbe540671a65a5420a5e19288df418399a2c78bc5c1c07de38b3f735b89a36ed)
@@ -22960,9 +23485,11 @@ class CloudFrontWebDistribution(
22960
23485
  self,
22961
23486
  identity: _IGrantable_71c4f5de,
22962
23487
  ) -> _Grant_a7ae64f8:
22963
- '''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).
22964
23489
 
22965
23490
  :param identity: The principal.
23491
+
23492
+ :stability: deprecated
22966
23493
  '''
22967
23494
  if __debug__:
22968
23495
  type_hints = typing.get_type_hints(_typecheckingstub__1e035551f14cb51c65a18baf4f340f3be55199133afe180ca2138a8a0e86e6f8)
@@ -22972,25 +23499,32 @@ class CloudFrontWebDistribution(
22972
23499
  @builtins.property
22973
23500
  @jsii.member(jsii_name="distributionDomainName")
22974
23501
  def distribution_domain_name(self) -> builtins.str:
22975
- '''The domain name created by CloudFront for this distribution.
23502
+ '''(deprecated) The domain name created by CloudFront for this distribution.
22976
23503
 
22977
23504
  If you are using aliases for your distribution, this is the domainName your DNS records should point to.
22978
23505
  (In Route53, you could create an ALIAS record to this value, for example.)
23506
+
23507
+ :stability: deprecated
22979
23508
  '''
22980
23509
  return typing.cast(builtins.str, jsii.get(self, "distributionDomainName"))
22981
23510
 
22982
23511
  @builtins.property
22983
23512
  @jsii.member(jsii_name="distributionId")
22984
23513
  def distribution_id(self) -> builtins.str:
22985
- '''The distribution ID for this distribution.'''
23514
+ '''(deprecated) The distribution ID for this distribution.
23515
+
23516
+ :stability: deprecated
23517
+ '''
22986
23518
  return typing.cast(builtins.str, jsii.get(self, "distributionId"))
22987
23519
 
22988
23520
  @builtins.property
22989
23521
  @jsii.member(jsii_name="loggingBucket")
22990
23522
  def logging_bucket(self) -> typing.Optional[_IBucket_42e086fd]:
22991
- '''The logging bucket for this CloudFront distribution.
23523
+ '''(deprecated) The logging bucket for this CloudFront distribution.
22992
23524
 
22993
23525
  If logging is not enabled for this distribution - this property will be undefined.
23526
+
23527
+ :stability: deprecated
22994
23528
  '''
22995
23529
  return typing.cast(typing.Optional[_IBucket_42e086fd], jsii.get(self, "loggingBucket"))
22996
23530
 
@@ -23974,6 +24508,7 @@ class Function(
23974
24508
 
23975
24509
 
23976
24510
  __all__ = [
24511
+ "AccessLevel",
23977
24512
  "AddBehaviorOptions",
23978
24513
  "AllowedMethods",
23979
24514
  "AssetImportSource",
@@ -24044,6 +24579,7 @@ __all__ = [
24044
24579
  "IKeyGroup",
24045
24580
  "IKeyValueStore",
24046
24581
  "IOrigin",
24582
+ "IOriginAccessControl",
24047
24583
  "IOriginAccessIdentity",
24048
24584
  "IOriginRequestPolicy",
24049
24585
  "IPublicKey",
@@ -24058,6 +24594,8 @@ __all__ = [
24058
24594
  "LambdaEdgeEventType",
24059
24595
  "LambdaFunctionAssociation",
24060
24596
  "LoggingConfiguration",
24597
+ "OriginAccessControlBaseProps",
24598
+ "OriginAccessControlOriginType",
24061
24599
  "OriginAccessIdentity",
24062
24600
  "OriginAccessIdentityProps",
24063
24601
  "OriginBase",
@@ -24091,9 +24629,14 @@ __all__ = [
24091
24629
  "ResponseHeadersXSSProtection",
24092
24630
  "ResponseSecurityHeadersBehavior",
24093
24631
  "S3ImportSource",
24632
+ "S3OriginAccessControl",
24633
+ "S3OriginAccessControlProps",
24094
24634
  "S3OriginConfig",
24095
24635
  "SSLMethod",
24096
24636
  "SecurityPolicyProtocol",
24637
+ "Signing",
24638
+ "SigningBehavior",
24639
+ "SigningProtocol",
24097
24640
  "SourceConfiguration",
24098
24641
  "ViewerCertificate",
24099
24642
  "ViewerCertificateOptions",
@@ -25670,6 +26213,7 @@ def _typecheckingstub__88031486a507fddae1a9cd6ed970521f2a57d7953a1e564c2c5d97b85
25670
26213
  scope: _constructs_77d1e7e8.Construct,
25671
26214
  *,
25672
26215
  origin_id: builtins.str,
26216
+ distribution_id: typing.Optional[builtins.str] = None,
25673
26217
  ) -> None:
25674
26218
  """Type checking stubs"""
25675
26219
  pass
@@ -25782,6 +26326,15 @@ def _typecheckingstub__c1c495121d3f25343764da863019d723da4b7d05ac74ed07b91c30326
25782
26326
  """Type checking stubs"""
25783
26327
  pass
25784
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
+
25785
26338
  def _typecheckingstub__ff86c7c3a54c3012c2e56787024ba13254594b3c0ca9aa271798797fe668270a(
25786
26339
  scope: _constructs_77d1e7e8.Construct,
25787
26340
  id: builtins.str,
@@ -25821,6 +26374,7 @@ def _typecheckingstub__5b13f814bf47a5f3949ffc4b53034b4702a02836213167c9ba4c6a8d6
25821
26374
  connection_attempts: typing.Optional[jsii.Number] = None,
25822
26375
  connection_timeout: typing.Optional[_Duration_4839e8c3] = None,
25823
26376
  custom_headers: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
26377
+ origin_access_control_id: typing.Optional[builtins.str] = None,
25824
26378
  origin_id: typing.Optional[builtins.str] = None,
25825
26379
  origin_shield_enabled: typing.Optional[builtins.bool] = None,
25826
26380
  origin_shield_region: typing.Optional[builtins.str] = None,
@@ -25832,6 +26386,7 @@ def _typecheckingstub__8428dfc90e69bdd5363e69afd9c590a4ed2f1363b22242197295117dc
25832
26386
  _scope: _constructs_77d1e7e8.Construct,
25833
26387
  *,
25834
26388
  origin_id: builtins.str,
26389
+ distribution_id: typing.Optional[builtins.str] = None,
25835
26390
  ) -> None:
25836
26391
  """Type checking stubs"""
25837
26392
  pass
@@ -25847,6 +26402,7 @@ def _typecheckingstub__d3e6a8992dd905a0c0d851cfed62aa0f881803068317a0b59eb845712
25847
26402
  def _typecheckingstub__0dbe700920dc77d0410da01e091c5caab2d3bb29313320e6057ed87275ccc649(
25848
26403
  *,
25849
26404
  origin_id: builtins.str,
26405
+ distribution_id: typing.Optional[builtins.str] = None,
25850
26406
  ) -> None:
25851
26407
  """Type checking stubs"""
25852
26408
  pass
@@ -25864,6 +26420,7 @@ def _typecheckingstub__554f93c57439378c8175676cc442eaea5c8ec961a156b1f26e60df9cd
25864
26420
  connection_attempts: typing.Optional[jsii.Number] = None,
25865
26421
  connection_timeout: typing.Optional[_Duration_4839e8c3] = None,
25866
26422
  custom_headers: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
26423
+ origin_access_control_id: typing.Optional[builtins.str] = None,
25867
26424
  origin_id: typing.Optional[builtins.str] = None,
25868
26425
  origin_shield_enabled: typing.Optional[builtins.bool] = None,
25869
26426
  origin_shield_region: typing.Optional[builtins.str] = None,
@@ -25876,6 +26433,7 @@ def _typecheckingstub__e1f5da480c426bb32e14bbbeb482146cc90bcd3678f902c46f0f2f739
25876
26433
  connection_attempts: typing.Optional[jsii.Number] = None,
25877
26434
  connection_timeout: typing.Optional[_Duration_4839e8c3] = None,
25878
26435
  custom_headers: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
26436
+ origin_access_control_id: typing.Optional[builtins.str] = None,
25879
26437
  origin_id: typing.Optional[builtins.str] = None,
25880
26438
  origin_shield_enabled: typing.Optional[builtins.bool] = None,
25881
26439
  origin_shield_region: typing.Optional[builtins.str] = None,
@@ -26143,6 +26701,34 @@ def _typecheckingstub__50b2e52880076ae956da5eb2d05fa8de1161eb1b2df762d8dafbf8e6b
26143
26701
  """Type checking stubs"""
26144
26702
  pass
26145
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
+
26146
26732
  def _typecheckingstub__e5837aa017bcf235e169321284a6cfe3cd3ac7b3c0baef0d9b68b55e8da518be(
26147
26733
  *,
26148
26734
  s3_bucket_source: _IBucket_42e086fd,
@@ -26154,6 +26740,13 @@ def _typecheckingstub__e5837aa017bcf235e169321284a6cfe3cd3ac7b3c0baef0d9b68b55e8
26154
26740
  """Type checking stubs"""
26155
26741
  pass
26156
26742
 
26743
+ def _typecheckingstub__8c00ffc80ad080f771484098ccaf55fd1d267675565e970bd2559fe788ce72e6(
26744
+ protocol: SigningProtocol,
26745
+ behavior: SigningBehavior,
26746
+ ) -> None:
26747
+ """Type checking stubs"""
26748
+ pass
26749
+
26157
26750
  def _typecheckingstub__ccea0761c172529885c07d5e167927d1ae78b92776ef8b892c36faadf6bb0dce(
26158
26751
  *,
26159
26752
  behaviors: typing.Sequence[typing.Union[Behavior, typing.Dict[builtins.str, typing.Any]]],