aws-cdk-lib 2.192.0__py3-none-any.whl → 2.194.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 (39) hide show
  1. aws_cdk/_jsii/__init__.py +1 -1
  2. aws_cdk/_jsii/{aws-cdk-lib@2.192.0.jsii.tgz → aws-cdk-lib@2.194.0.jsii.tgz} +0 -0
  3. aws_cdk/aws_apigateway/__init__.py +3 -1
  4. aws_cdk/aws_appsync/__init__.py +4367 -336
  5. aws_cdk/aws_aps/__init__.py +34 -22
  6. aws_cdk/aws_autoscaling/__init__.py +8 -0
  7. aws_cdk/aws_batch/__init__.py +2 -2
  8. aws_cdk/aws_bedrock/__init__.py +6 -4
  9. aws_cdk/aws_ce/__init__.py +34 -22
  10. aws_cdk/aws_cloudfront/__init__.py +3019 -971
  11. aws_cdk/aws_codebuild/__init__.py +19 -10
  12. aws_cdk/aws_codepipeline_actions/__init__.py +526 -0
  13. aws_cdk/aws_dlm/__init__.py +2 -2
  14. aws_cdk/aws_ec2/__init__.py +6 -3
  15. aws_cdk/aws_ecr/__init__.py +417 -0
  16. aws_cdk/aws_ecs/__init__.py +18 -10
  17. aws_cdk/aws_eks/__init__.py +170 -2
  18. aws_cdk/aws_entityresolution/__init__.py +7 -2
  19. aws_cdk/aws_events/__init__.py +41 -8
  20. aws_cdk/aws_lambda/__init__.py +1 -1
  21. aws_cdk/aws_mediapackagev2/__init__.py +50 -6
  22. aws_cdk/aws_memorydb/__init__.py +21 -11
  23. aws_cdk/aws_omics/__init__.py +5 -5
  24. aws_cdk/aws_opensearchservice/__init__.py +45 -25
  25. aws_cdk/aws_qbusiness/__init__.py +2 -2
  26. aws_cdk/aws_quicksight/__init__.py +1 -1
  27. aws_cdk/aws_rds/__init__.py +46 -2
  28. aws_cdk/aws_redshiftserverless/__init__.py +20 -0
  29. aws_cdk/aws_route53resolver/__init__.py +41 -0
  30. aws_cdk/aws_s3/__init__.py +2 -4
  31. aws_cdk/aws_sagemaker/__init__.py +2 -4
  32. aws_cdk/aws_vpclattice/__init__.py +6 -2
  33. aws_cdk/aws_wisdom/__init__.py +25 -6
  34. {aws_cdk_lib-2.192.0.dist-info → aws_cdk_lib-2.194.0.dist-info}/METADATA +1 -1
  35. {aws_cdk_lib-2.192.0.dist-info → aws_cdk_lib-2.194.0.dist-info}/RECORD +39 -39
  36. {aws_cdk_lib-2.192.0.dist-info → aws_cdk_lib-2.194.0.dist-info}/LICENSE +0 -0
  37. {aws_cdk_lib-2.192.0.dist-info → aws_cdk_lib-2.194.0.dist-info}/NOTICE +0 -0
  38. {aws_cdk_lib-2.192.0.dist-info → aws_cdk_lib-2.194.0.dist-info}/WHEEL +0 -0
  39. {aws_cdk_lib-2.192.0.dist-info → aws_cdk_lib-2.194.0.dist-info}/top_level.txt +0 -0
@@ -4347,20 +4347,16 @@ class CfnCloudFrontOriginAccessIdentityProps:
4347
4347
  )
4348
4348
 
4349
4349
 
4350
- @jsii.implements(_IInspectable_c2943556)
4351
- class CfnContinuousDeploymentPolicy(
4350
+ @jsii.implements(_IInspectable_c2943556, _ITaggableV2_4e6798f8)
4351
+ class CfnConnectionGroup(
4352
4352
  _CfnResource_9df397a6,
4353
4353
  metaclass=jsii.JSIIMeta,
4354
- jsii_type="aws-cdk-lib.aws_cloudfront.CfnContinuousDeploymentPolicy",
4354
+ jsii_type="aws-cdk-lib.aws_cloudfront.CfnConnectionGroup",
4355
4355
  ):
4356
- '''Creates a continuous deployment policy that routes a subset of production traffic from a primary distribution to a staging distribution.
4357
-
4358
- After you create and update a staging distribution, you can use a continuous deployment policy to incrementally move traffic to the staging distribution. This enables you to test changes to a distribution's configuration before moving all of your production traffic to the new configuration.
4359
-
4360
- For more information, see `Using CloudFront continuous deployment to safely test CDN configuration changes <https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/continuous-deployment.html>`_ in the *Amazon CloudFront Developer Guide* .
4356
+ '''Resource Type definition for AWS::CloudFront::ConnectionGroup.
4361
4357
 
4362
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-continuousdeploymentpolicy.html
4363
- :cloudformationResource: AWS::CloudFront::ContinuousDeploymentPolicy
4358
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-connectiongroup.html
4359
+ :cloudformationResource: AWS::CloudFront::ConnectionGroup
4364
4360
  :exampleMetadata: fixture=_generated
4365
4361
 
4366
4362
  Example::
@@ -4369,45 +4365,17 @@ class CfnContinuousDeploymentPolicy(
4369
4365
  # The values are placeholders you should change.
4370
4366
  from aws_cdk import aws_cloudfront as cloudfront
4371
4367
 
4372
- cfn_continuous_deployment_policy = cloudfront.CfnContinuousDeploymentPolicy(self, "MyCfnContinuousDeploymentPolicy",
4373
- continuous_deployment_policy_config=cloudfront.CfnContinuousDeploymentPolicy.ContinuousDeploymentPolicyConfigProperty(
4374
- enabled=False,
4375
- staging_distribution_dns_names=["stagingDistributionDnsNames"],
4376
-
4377
- # the properties below are optional
4378
- single_header_policy_config=cloudfront.CfnContinuousDeploymentPolicy.SingleHeaderPolicyConfigProperty(
4379
- header="header",
4380
- value="value"
4381
- ),
4382
- single_weight_policy_config=cloudfront.CfnContinuousDeploymentPolicy.SingleWeightPolicyConfigProperty(
4383
- weight=123,
4384
-
4385
- # the properties below are optional
4386
- session_stickiness_config=cloudfront.CfnContinuousDeploymentPolicy.SessionStickinessConfigProperty(
4387
- idle_ttl=123,
4388
- maximum_ttl=123
4389
- )
4390
- ),
4391
- traffic_config=cloudfront.CfnContinuousDeploymentPolicy.TrafficConfigProperty(
4392
- type="type",
4393
-
4394
- # the properties below are optional
4395
- single_header_config=cloudfront.CfnContinuousDeploymentPolicy.SingleHeaderConfigProperty(
4396
- header="header",
4397
- value="value"
4398
- ),
4399
- single_weight_config=cloudfront.CfnContinuousDeploymentPolicy.SingleWeightConfigProperty(
4400
- weight=123,
4368
+ cfn_connection_group = cloudfront.CfnConnectionGroup(self, "MyCfnConnectionGroup",
4369
+ name="name",
4401
4370
 
4402
- # the properties below are optional
4403
- session_stickiness_config=cloudfront.CfnContinuousDeploymentPolicy.SessionStickinessConfigProperty(
4404
- idle_ttl=123,
4405
- maximum_ttl=123
4406
- )
4407
- )
4408
- ),
4409
- type="type"
4410
- )
4371
+ # the properties below are optional
4372
+ anycast_ip_list_id="anycastIpListId",
4373
+ enabled=False,
4374
+ ipv6_enabled=False,
4375
+ tags=[CfnTag(
4376
+ key="key",
4377
+ value="value"
4378
+ )]
4411
4379
  )
4412
4380
  '''
4413
4381
 
@@ -4416,19 +4384,31 @@ class CfnContinuousDeploymentPolicy(
4416
4384
  scope: _constructs_77d1e7e8.Construct,
4417
4385
  id: builtins.str,
4418
4386
  *,
4419
- continuous_deployment_policy_config: typing.Union[_IResolvable_da3f097b, typing.Union["CfnContinuousDeploymentPolicy.ContinuousDeploymentPolicyConfigProperty", typing.Dict[builtins.str, typing.Any]]],
4387
+ name: builtins.str,
4388
+ anycast_ip_list_id: typing.Optional[builtins.str] = None,
4389
+ enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
4390
+ ipv6_enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
4391
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
4420
4392
  ) -> None:
4421
4393
  '''
4422
4394
  :param scope: Scope in which this resource is defined.
4423
4395
  :param id: Construct identifier for this resource (unique in its scope).
4424
- :param continuous_deployment_policy_config: Contains the configuration for a continuous deployment policy.
4396
+ :param name:
4397
+ :param anycast_ip_list_id: The ID of the Anycast static IP list.
4398
+ :param enabled:
4399
+ :param ipv6_enabled:
4400
+ :param tags: A complex type that contains zero or more ``Tag`` elements.
4425
4401
  '''
4426
4402
  if __debug__:
4427
- type_hints = typing.get_type_hints(_typecheckingstub__b57269fe6faf53d2e30ff31a58c5711db8b8cc3b38dc9ac79efdb585dc8f324b)
4403
+ type_hints = typing.get_type_hints(_typecheckingstub__a7fbc949dbac76664bfea111378c9ea57cd63caa1212fdbe30d64584bd8f53de)
4428
4404
  check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
4429
4405
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
4430
- props = CfnContinuousDeploymentPolicyProps(
4431
- continuous_deployment_policy_config=continuous_deployment_policy_config
4406
+ props = CfnConnectionGroupProps(
4407
+ name=name,
4408
+ anycast_ip_list_id=anycast_ip_list_id,
4409
+ enabled=enabled,
4410
+ ipv6_enabled=ipv6_enabled,
4411
+ tags=tags,
4432
4412
  )
4433
4413
 
4434
4414
  jsii.create(self.__class__, self, [scope, id, props])
@@ -4440,7 +4420,7 @@ class CfnContinuousDeploymentPolicy(
4440
4420
  :param inspector: tree inspector to collect and process attributes.
4441
4421
  '''
4442
4422
  if __debug__:
4443
- type_hints = typing.get_type_hints(_typecheckingstub__95d0eeca39c0c26751595d2bbe6c1247ac12b7acdb2d7c9d28f5fb0eeacb7187)
4423
+ type_hints = typing.get_type_hints(_typecheckingstub__dad045911121964ba7e6a7c8d166ac2aaace23640d9bee11f9fbbbb1b78e3236)
4444
4424
  check_type(argname="argument inspector", value=inspector, expected_type=type_hints["inspector"])
4445
4425
  return typing.cast(None, jsii.invoke(self, "inspect", [inspector]))
4446
4426
 
@@ -4453,7 +4433,7 @@ class CfnContinuousDeploymentPolicy(
4453
4433
  :param props: -
4454
4434
  '''
4455
4435
  if __debug__:
4456
- type_hints = typing.get_type_hints(_typecheckingstub__779f5842b62fc4504802401955475d45973a372c1d8293180cd8ce460b4e4823)
4436
+ type_hints = typing.get_type_hints(_typecheckingstub__d4834ec5a54af69a2e3413ff8a46f3539a6607f6b49adaabe420e5490ae353ea)
4457
4437
  check_type(argname="argument props", value=props, expected_type=type_hints["props"])
4458
4438
  return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "renderProperties", [props]))
4459
4439
 
@@ -4463,312 +4443,475 @@ class CfnContinuousDeploymentPolicy(
4463
4443
  '''The CloudFormation resource type name for this resource class.'''
4464
4444
  return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
4465
4445
 
4446
+ @builtins.property
4447
+ @jsii.member(jsii_name="attrArn")
4448
+ def attr_arn(self) -> builtins.str:
4449
+ '''
4450
+ :cloudformationAttribute: Arn
4451
+ '''
4452
+ return typing.cast(builtins.str, jsii.get(self, "attrArn"))
4453
+
4454
+ @builtins.property
4455
+ @jsii.member(jsii_name="attrCreatedTime")
4456
+ def attr_created_time(self) -> builtins.str:
4457
+ '''
4458
+ :cloudformationAttribute: CreatedTime
4459
+ '''
4460
+ return typing.cast(builtins.str, jsii.get(self, "attrCreatedTime"))
4461
+
4462
+ @builtins.property
4463
+ @jsii.member(jsii_name="attrETag")
4464
+ def attr_e_tag(self) -> builtins.str:
4465
+ '''A complex type that contains ``Tag`` key and ``Tag`` value.
4466
+
4467
+ :cloudformationAttribute: ETag
4468
+ '''
4469
+ return typing.cast(builtins.str, jsii.get(self, "attrETag"))
4470
+
4466
4471
  @builtins.property
4467
4472
  @jsii.member(jsii_name="attrId")
4468
4473
  def attr_id(self) -> builtins.str:
4469
- '''The identifier of the cotinuous deployment policy.
4470
-
4474
+ '''
4471
4475
  :cloudformationAttribute: Id
4472
4476
  '''
4473
4477
  return typing.cast(builtins.str, jsii.get(self, "attrId"))
4474
4478
 
4479
+ @builtins.property
4480
+ @jsii.member(jsii_name="attrIsDefault")
4481
+ def attr_is_default(self) -> _IResolvable_da3f097b:
4482
+ '''
4483
+ :cloudformationAttribute: IsDefault
4484
+ '''
4485
+ return typing.cast(_IResolvable_da3f097b, jsii.get(self, "attrIsDefault"))
4486
+
4475
4487
  @builtins.property
4476
4488
  @jsii.member(jsii_name="attrLastModifiedTime")
4477
4489
  def attr_last_modified_time(self) -> builtins.str:
4478
- '''The date and time when the continuous deployment policy was last modified.
4479
-
4490
+ '''
4480
4491
  :cloudformationAttribute: LastModifiedTime
4481
4492
  '''
4482
4493
  return typing.cast(builtins.str, jsii.get(self, "attrLastModifiedTime"))
4483
4494
 
4495
+ @builtins.property
4496
+ @jsii.member(jsii_name="attrRoutingEndpoint")
4497
+ def attr_routing_endpoint(self) -> builtins.str:
4498
+ '''Contains information about the Amazon Kinesis data stream where you are sending real-time log data in a real-time log configuration.
4499
+
4500
+ :cloudformationAttribute: RoutingEndpoint
4501
+ '''
4502
+ return typing.cast(builtins.str, jsii.get(self, "attrRoutingEndpoint"))
4503
+
4504
+ @builtins.property
4505
+ @jsii.member(jsii_name="attrStatus")
4506
+ def attr_status(self) -> builtins.str:
4507
+ '''
4508
+ :cloudformationAttribute: Status
4509
+ '''
4510
+ return typing.cast(builtins.str, jsii.get(self, "attrStatus"))
4511
+
4512
+ @builtins.property
4513
+ @jsii.member(jsii_name="cdkTagManager")
4514
+ def cdk_tag_manager(self) -> _TagManager_0a598cb3:
4515
+ '''Tag Manager which manages the tags for this resource.'''
4516
+ return typing.cast(_TagManager_0a598cb3, jsii.get(self, "cdkTagManager"))
4517
+
4484
4518
  @builtins.property
4485
4519
  @jsii.member(jsii_name="cfnProperties")
4486
4520
  def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
4487
4521
  return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
4488
4522
 
4489
4523
  @builtins.property
4490
- @jsii.member(jsii_name="continuousDeploymentPolicyConfig")
4491
- def continuous_deployment_policy_config(
4524
+ @jsii.member(jsii_name="name")
4525
+ def name(self) -> builtins.str:
4526
+ return typing.cast(builtins.str, jsii.get(self, "name"))
4527
+
4528
+ @name.setter
4529
+ def name(self, value: builtins.str) -> None:
4530
+ if __debug__:
4531
+ type_hints = typing.get_type_hints(_typecheckingstub__46cb5b39bb34a52a464d8364089e47d3ba47e4a293aaa3f92857d624e7902898)
4532
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
4533
+ jsii.set(self, "name", value) # pyright: ignore[reportArgumentType]
4534
+
4535
+ @builtins.property
4536
+ @jsii.member(jsii_name="anycastIpListId")
4537
+ def anycast_ip_list_id(self) -> typing.Optional[builtins.str]:
4538
+ '''The ID of the Anycast static IP list.'''
4539
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "anycastIpListId"))
4540
+
4541
+ @anycast_ip_list_id.setter
4542
+ def anycast_ip_list_id(self, value: typing.Optional[builtins.str]) -> None:
4543
+ if __debug__:
4544
+ type_hints = typing.get_type_hints(_typecheckingstub__2633385b8f4da7c2341c3b54e4d30ea9345b38862ced8c6f1d893c36ec7c669d)
4545
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
4546
+ jsii.set(self, "anycastIpListId", value) # pyright: ignore[reportArgumentType]
4547
+
4548
+ @builtins.property
4549
+ @jsii.member(jsii_name="enabled")
4550
+ def enabled(
4492
4551
  self,
4493
- ) -> typing.Union[_IResolvable_da3f097b, "CfnContinuousDeploymentPolicy.ContinuousDeploymentPolicyConfigProperty"]:
4494
- '''Contains the configuration for a continuous deployment policy.'''
4495
- return typing.cast(typing.Union[_IResolvable_da3f097b, "CfnContinuousDeploymentPolicy.ContinuousDeploymentPolicyConfigProperty"], jsii.get(self, "continuousDeploymentPolicyConfig"))
4552
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
4553
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], jsii.get(self, "enabled"))
4496
4554
 
4497
- @continuous_deployment_policy_config.setter
4498
- def continuous_deployment_policy_config(
4555
+ @enabled.setter
4556
+ def enabled(
4499
4557
  self,
4500
- value: typing.Union[_IResolvable_da3f097b, "CfnContinuousDeploymentPolicy.ContinuousDeploymentPolicyConfigProperty"],
4558
+ value: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]],
4501
4559
  ) -> None:
4502
4560
  if __debug__:
4503
- type_hints = typing.get_type_hints(_typecheckingstub__f4581f42e1117e6de93836f594986c28a2378e8200e2f4a535cce028879382c9)
4561
+ type_hints = typing.get_type_hints(_typecheckingstub__41addbff9b29ce6c4465d1d973785d727f6742a1723e79dcdce59a1087df694f)
4504
4562
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
4505
- jsii.set(self, "continuousDeploymentPolicyConfig", value) # pyright: ignore[reportArgumentType]
4563
+ jsii.set(self, "enabled", value) # pyright: ignore[reportArgumentType]
4506
4564
 
4507
- @jsii.data_type(
4508
- jsii_type="aws-cdk-lib.aws_cloudfront.CfnContinuousDeploymentPolicy.ContinuousDeploymentPolicyConfigProperty",
4509
- jsii_struct_bases=[],
4510
- name_mapping={
4511
- "enabled": "enabled",
4512
- "staging_distribution_dns_names": "stagingDistributionDnsNames",
4513
- "single_header_policy_config": "singleHeaderPolicyConfig",
4514
- "single_weight_policy_config": "singleWeightPolicyConfig",
4515
- "traffic_config": "trafficConfig",
4516
- "type": "type",
4517
- },
4518
- )
4519
- class ContinuousDeploymentPolicyConfigProperty:
4520
- def __init__(
4521
- self,
4522
- *,
4523
- enabled: typing.Union[builtins.bool, _IResolvable_da3f097b],
4524
- staging_distribution_dns_names: typing.Sequence[builtins.str],
4525
- single_header_policy_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnContinuousDeploymentPolicy.SingleHeaderPolicyConfigProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
4526
- single_weight_policy_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnContinuousDeploymentPolicy.SingleWeightPolicyConfigProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
4527
- traffic_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnContinuousDeploymentPolicy.TrafficConfigProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
4528
- type: typing.Optional[builtins.str] = None,
4529
- ) -> None:
4530
- '''Contains the configuration for a continuous deployment policy.
4565
+ @builtins.property
4566
+ @jsii.member(jsii_name="ipv6Enabled")
4567
+ def ipv6_enabled(
4568
+ self,
4569
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
4570
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], jsii.get(self, "ipv6Enabled"))
4531
4571
 
4532
- :param enabled: A Boolean that indicates whether this continuous deployment policy is enabled (in effect). When this value is ``true`` , this policy is enabled and in effect. When this value is ``false`` , this policy is not enabled and has no effect.
4533
- :param staging_distribution_dns_names: The CloudFront domain name of the staging distribution. For example: ``d111111abcdef8.cloudfront.net`` .
4534
- :param single_header_policy_config: This configuration determines which HTTP requests are sent to the staging distribution. If the HTTP request contains a header and value that matches what you specify here, the request is sent to the staging distribution. Otherwise the request is sent to the primary distribution.
4535
- :param single_weight_policy_config: This configuration determines the percentage of HTTP requests that are sent to the staging distribution.
4536
- :param traffic_config: Contains the parameters for routing production traffic from your primary to staging distributions.
4537
- :param type: The type of traffic configuration.
4572
+ @ipv6_enabled.setter
4573
+ def ipv6_enabled(
4574
+ self,
4575
+ value: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]],
4576
+ ) -> None:
4577
+ if __debug__:
4578
+ type_hints = typing.get_type_hints(_typecheckingstub__2678e60f75fc9c3a75819708e1b8cda159dd49a5c52a78d805d37bb94bd0efa5)
4579
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
4580
+ jsii.set(self, "ipv6Enabled", value) # pyright: ignore[reportArgumentType]
4538
4581
 
4539
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-continuousdeploymentpolicy-continuousdeploymentpolicyconfig.html
4540
- :exampleMetadata: fixture=_generated
4582
+ @builtins.property
4583
+ @jsii.member(jsii_name="tags")
4584
+ def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
4585
+ '''A complex type that contains zero or more ``Tag`` elements.'''
4586
+ return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], jsii.get(self, "tags"))
4541
4587
 
4542
- Example::
4588
+ @tags.setter
4589
+ def tags(self, value: typing.Optional[typing.List[_CfnTag_f6864754]]) -> None:
4590
+ if __debug__:
4591
+ type_hints = typing.get_type_hints(_typecheckingstub__f9f02fbda8fa97b38f114c9910b9d9cef69228aa69dfe80217e98e1707226ce0)
4592
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
4593
+ jsii.set(self, "tags", value) # pyright: ignore[reportArgumentType]
4543
4594
 
4544
- # The code below shows an example of how to instantiate this type.
4545
- # The values are placeholders you should change.
4546
- from aws_cdk import aws_cloudfront as cloudfront
4547
-
4548
- continuous_deployment_policy_config_property = cloudfront.CfnContinuousDeploymentPolicy.ContinuousDeploymentPolicyConfigProperty(
4549
- enabled=False,
4550
- staging_distribution_dns_names=["stagingDistributionDnsNames"],
4551
-
4552
- # the properties below are optional
4553
- single_header_policy_config=cloudfront.CfnContinuousDeploymentPolicy.SingleHeaderPolicyConfigProperty(
4554
- header="header",
4555
- value="value"
4556
- ),
4557
- single_weight_policy_config=cloudfront.CfnContinuousDeploymentPolicy.SingleWeightPolicyConfigProperty(
4558
- weight=123,
4559
-
4560
- # the properties below are optional
4561
- session_stickiness_config=cloudfront.CfnContinuousDeploymentPolicy.SessionStickinessConfigProperty(
4562
- idle_ttl=123,
4563
- maximum_ttl=123
4564
- )
4565
- ),
4566
- traffic_config=cloudfront.CfnContinuousDeploymentPolicy.TrafficConfigProperty(
4567
- type="type",
4568
-
4569
- # the properties below are optional
4570
- single_header_config=cloudfront.CfnContinuousDeploymentPolicy.SingleHeaderConfigProperty(
4571
- header="header",
4572
- value="value"
4573
- ),
4574
- single_weight_config=cloudfront.CfnContinuousDeploymentPolicy.SingleWeightConfigProperty(
4575
- weight=123,
4576
-
4577
- # the properties below are optional
4578
- session_stickiness_config=cloudfront.CfnContinuousDeploymentPolicy.SessionStickinessConfigProperty(
4579
- idle_ttl=123,
4580
- maximum_ttl=123
4581
- )
4582
- )
4583
- ),
4584
- type="type"
4585
- )
4586
- '''
4587
- if __debug__:
4588
- type_hints = typing.get_type_hints(_typecheckingstub__5bd1a74dffe3773a269b4a42a8f5fc37c7934b0931fd845b2923603086ea48cc)
4589
- check_type(argname="argument enabled", value=enabled, expected_type=type_hints["enabled"])
4590
- check_type(argname="argument staging_distribution_dns_names", value=staging_distribution_dns_names, expected_type=type_hints["staging_distribution_dns_names"])
4591
- check_type(argname="argument single_header_policy_config", value=single_header_policy_config, expected_type=type_hints["single_header_policy_config"])
4592
- check_type(argname="argument single_weight_policy_config", value=single_weight_policy_config, expected_type=type_hints["single_weight_policy_config"])
4593
- check_type(argname="argument traffic_config", value=traffic_config, expected_type=type_hints["traffic_config"])
4594
- check_type(argname="argument type", value=type, expected_type=type_hints["type"])
4595
- self._values: typing.Dict[builtins.str, typing.Any] = {
4596
- "enabled": enabled,
4597
- "staging_distribution_dns_names": staging_distribution_dns_names,
4598
- }
4599
- if single_header_policy_config is not None:
4600
- self._values["single_header_policy_config"] = single_header_policy_config
4601
- if single_weight_policy_config is not None:
4602
- self._values["single_weight_policy_config"] = single_weight_policy_config
4603
- if traffic_config is not None:
4604
- self._values["traffic_config"] = traffic_config
4605
- if type is not None:
4606
- self._values["type"] = type
4607
4595
 
4608
- @builtins.property
4609
- def enabled(self) -> typing.Union[builtins.bool, _IResolvable_da3f097b]:
4610
- '''A Boolean that indicates whether this continuous deployment policy is enabled (in effect).
4596
+ @jsii.data_type(
4597
+ jsii_type="aws-cdk-lib.aws_cloudfront.CfnConnectionGroupProps",
4598
+ jsii_struct_bases=[],
4599
+ name_mapping={
4600
+ "name": "name",
4601
+ "anycast_ip_list_id": "anycastIpListId",
4602
+ "enabled": "enabled",
4603
+ "ipv6_enabled": "ipv6Enabled",
4604
+ "tags": "tags",
4605
+ },
4606
+ )
4607
+ class CfnConnectionGroupProps:
4608
+ def __init__(
4609
+ self,
4610
+ *,
4611
+ name: builtins.str,
4612
+ anycast_ip_list_id: typing.Optional[builtins.str] = None,
4613
+ enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
4614
+ ipv6_enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
4615
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
4616
+ ) -> None:
4617
+ '''Properties for defining a ``CfnConnectionGroup``.
4611
4618
 
4612
- When this value is ``true`` , this policy is enabled and in effect. When this value is ``false`` , this policy is not enabled and has no effect.
4619
+ :param name:
4620
+ :param anycast_ip_list_id: The ID of the Anycast static IP list.
4621
+ :param enabled:
4622
+ :param ipv6_enabled:
4623
+ :param tags: A complex type that contains zero or more ``Tag`` elements.
4613
4624
 
4614
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-continuousdeploymentpolicy-continuousdeploymentpolicyconfig.html#cfn-cloudfront-continuousdeploymentpolicy-continuousdeploymentpolicyconfig-enabled
4615
- '''
4616
- result = self._values.get("enabled")
4617
- assert result is not None, "Required property 'enabled' is missing"
4618
- return typing.cast(typing.Union[builtins.bool, _IResolvable_da3f097b], result)
4625
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-connectiongroup.html
4626
+ :exampleMetadata: fixture=_generated
4619
4627
 
4620
- @builtins.property
4621
- def staging_distribution_dns_names(self) -> typing.List[builtins.str]:
4622
- '''The CloudFront domain name of the staging distribution.
4628
+ Example::
4623
4629
 
4624
- For example: ``d111111abcdef8.cloudfront.net`` .
4630
+ # The code below shows an example of how to instantiate this type.
4631
+ # The values are placeholders you should change.
4632
+ from aws_cdk import aws_cloudfront as cloudfront
4633
+
4634
+ cfn_connection_group_props = cloudfront.CfnConnectionGroupProps(
4635
+ name="name",
4636
+
4637
+ # the properties below are optional
4638
+ anycast_ip_list_id="anycastIpListId",
4639
+ enabled=False,
4640
+ ipv6_enabled=False,
4641
+ tags=[CfnTag(
4642
+ key="key",
4643
+ value="value"
4644
+ )]
4645
+ )
4646
+ '''
4647
+ if __debug__:
4648
+ type_hints = typing.get_type_hints(_typecheckingstub__d9f88b4b65d8b9e48fd57e5bde8f7d6681cdcbb9e46fe34c223e63914ee033f4)
4649
+ check_type(argname="argument name", value=name, expected_type=type_hints["name"])
4650
+ check_type(argname="argument anycast_ip_list_id", value=anycast_ip_list_id, expected_type=type_hints["anycast_ip_list_id"])
4651
+ check_type(argname="argument enabled", value=enabled, expected_type=type_hints["enabled"])
4652
+ check_type(argname="argument ipv6_enabled", value=ipv6_enabled, expected_type=type_hints["ipv6_enabled"])
4653
+ check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
4654
+ self._values: typing.Dict[builtins.str, typing.Any] = {
4655
+ "name": name,
4656
+ }
4657
+ if anycast_ip_list_id is not None:
4658
+ self._values["anycast_ip_list_id"] = anycast_ip_list_id
4659
+ if enabled is not None:
4660
+ self._values["enabled"] = enabled
4661
+ if ipv6_enabled is not None:
4662
+ self._values["ipv6_enabled"] = ipv6_enabled
4663
+ if tags is not None:
4664
+ self._values["tags"] = tags
4625
4665
 
4626
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-continuousdeploymentpolicy-continuousdeploymentpolicyconfig.html#cfn-cloudfront-continuousdeploymentpolicy-continuousdeploymentpolicyconfig-stagingdistributiondnsnames
4627
- '''
4628
- result = self._values.get("staging_distribution_dns_names")
4629
- assert result is not None, "Required property 'staging_distribution_dns_names' is missing"
4630
- return typing.cast(typing.List[builtins.str], result)
4666
+ @builtins.property
4667
+ def name(self) -> builtins.str:
4668
+ '''
4669
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-connectiongroup.html#cfn-cloudfront-connectiongroup-name
4670
+ '''
4671
+ result = self._values.get("name")
4672
+ assert result is not None, "Required property 'name' is missing"
4673
+ return typing.cast(builtins.str, result)
4631
4674
 
4632
- @builtins.property
4633
- def single_header_policy_config(
4634
- self,
4635
- ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnContinuousDeploymentPolicy.SingleHeaderPolicyConfigProperty"]]:
4636
- '''This configuration determines which HTTP requests are sent to the staging distribution.
4675
+ @builtins.property
4676
+ def anycast_ip_list_id(self) -> typing.Optional[builtins.str]:
4677
+ '''The ID of the Anycast static IP list.
4637
4678
 
4638
- If the HTTP request contains a header and value that matches what you specify here, the request is sent to the staging distribution. Otherwise the request is sent to the primary distribution.
4679
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-connectiongroup.html#cfn-cloudfront-connectiongroup-anycastiplistid
4680
+ '''
4681
+ result = self._values.get("anycast_ip_list_id")
4682
+ return typing.cast(typing.Optional[builtins.str], result)
4639
4683
 
4640
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-continuousdeploymentpolicy-continuousdeploymentpolicyconfig.html#cfn-cloudfront-continuousdeploymentpolicy-continuousdeploymentpolicyconfig-singleheaderpolicyconfig
4641
- '''
4642
- result = self._values.get("single_header_policy_config")
4643
- return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnContinuousDeploymentPolicy.SingleHeaderPolicyConfigProperty"]], result)
4684
+ @builtins.property
4685
+ def enabled(
4686
+ self,
4687
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
4688
+ '''
4689
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-connectiongroup.html#cfn-cloudfront-connectiongroup-enabled
4690
+ '''
4691
+ result = self._values.get("enabled")
4692
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
4644
4693
 
4645
- @builtins.property
4646
- def single_weight_policy_config(
4647
- self,
4648
- ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnContinuousDeploymentPolicy.SingleWeightPolicyConfigProperty"]]:
4649
- '''This configuration determines the percentage of HTTP requests that are sent to the staging distribution.
4694
+ @builtins.property
4695
+ def ipv6_enabled(
4696
+ self,
4697
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
4698
+ '''
4699
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-connectiongroup.html#cfn-cloudfront-connectiongroup-ipv6enabled
4700
+ '''
4701
+ result = self._values.get("ipv6_enabled")
4702
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
4650
4703
 
4651
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-continuousdeploymentpolicy-continuousdeploymentpolicyconfig.html#cfn-cloudfront-continuousdeploymentpolicy-continuousdeploymentpolicyconfig-singleweightpolicyconfig
4652
- '''
4653
- result = self._values.get("single_weight_policy_config")
4654
- return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnContinuousDeploymentPolicy.SingleWeightPolicyConfigProperty"]], result)
4704
+ @builtins.property
4705
+ def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
4706
+ '''A complex type that contains zero or more ``Tag`` elements.
4655
4707
 
4656
- @builtins.property
4657
- def traffic_config(
4658
- self,
4659
- ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnContinuousDeploymentPolicy.TrafficConfigProperty"]]:
4660
- '''Contains the parameters for routing production traffic from your primary to staging distributions.
4708
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-connectiongroup.html#cfn-cloudfront-connectiongroup-tags
4709
+ '''
4710
+ result = self._values.get("tags")
4711
+ return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], result)
4661
4712
 
4662
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-continuousdeploymentpolicy-continuousdeploymentpolicyconfig.html#cfn-cloudfront-continuousdeploymentpolicy-continuousdeploymentpolicyconfig-trafficconfig
4663
- '''
4664
- result = self._values.get("traffic_config")
4665
- return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnContinuousDeploymentPolicy.TrafficConfigProperty"]], result)
4713
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
4714
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
4666
4715
 
4667
- @builtins.property
4668
- def type(self) -> typing.Optional[builtins.str]:
4669
- '''The type of traffic configuration.
4716
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
4717
+ return not (rhs == self)
4670
4718
 
4671
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-continuousdeploymentpolicy-continuousdeploymentpolicyconfig.html#cfn-cloudfront-continuousdeploymentpolicy-continuousdeploymentpolicyconfig-type
4672
- '''
4673
- result = self._values.get("type")
4674
- return typing.cast(typing.Optional[builtins.str], result)
4719
+ def __repr__(self) -> str:
4720
+ return "CfnConnectionGroupProps(%s)" % ", ".join(
4721
+ k + "=" + repr(v) for k, v in self._values.items()
4722
+ )
4675
4723
 
4676
- def __eq__(self, rhs: typing.Any) -> builtins.bool:
4677
- return isinstance(rhs, self.__class__) and rhs._values == self._values
4678
4724
 
4679
- def __ne__(self, rhs: typing.Any) -> builtins.bool:
4680
- return not (rhs == self)
4725
+ @jsii.implements(_IInspectable_c2943556)
4726
+ class CfnContinuousDeploymentPolicy(
4727
+ _CfnResource_9df397a6,
4728
+ metaclass=jsii.JSIIMeta,
4729
+ jsii_type="aws-cdk-lib.aws_cloudfront.CfnContinuousDeploymentPolicy",
4730
+ ):
4731
+ '''Creates a continuous deployment policy that routes a subset of production traffic from a primary distribution to a staging distribution.
4681
4732
 
4682
- def __repr__(self) -> str:
4683
- return "ContinuousDeploymentPolicyConfigProperty(%s)" % ", ".join(
4684
- k + "=" + repr(v) for k, v in self._values.items()
4685
- )
4733
+ After you create and update a staging distribution, you can use a continuous deployment policy to incrementally move traffic to the staging distribution. This enables you to test changes to a distribution's configuration before moving all of your production traffic to the new configuration.
4686
4734
 
4687
- @jsii.data_type(
4688
- jsii_type="aws-cdk-lib.aws_cloudfront.CfnContinuousDeploymentPolicy.SessionStickinessConfigProperty",
4689
- jsii_struct_bases=[],
4690
- name_mapping={"idle_ttl": "idleTtl", "maximum_ttl": "maximumTtl"},
4691
- )
4692
- class SessionStickinessConfigProperty:
4693
- def __init__(self, *, idle_ttl: jsii.Number, maximum_ttl: jsii.Number) -> None:
4694
- '''Session stickiness provides the ability to define multiple requests from a single viewer as a single session.
4735
+ For more information, see `Using CloudFront continuous deployment to safely test CDN configuration changes <https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/continuous-deployment.html>`_ in the *Amazon CloudFront Developer Guide* .
4695
4736
 
4696
- This prevents the potentially inconsistent experience of sending some of a given user's requests to your staging distribution, while others are sent to your primary distribution. Define the session duration using TTL values.
4737
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-continuousdeploymentpolicy.html
4738
+ :cloudformationResource: AWS::CloudFront::ContinuousDeploymentPolicy
4739
+ :exampleMetadata: fixture=_generated
4697
4740
 
4698
- :param idle_ttl: The amount of time after which you want sessions to cease if no requests are received. Allowed values are 300–3600 seconds (5–60 minutes).
4699
- :param maximum_ttl: The maximum amount of time to consider requests from the viewer as being part of the same session. Allowed values are 300–3600 seconds (5–60 minutes).
4741
+ Example::
4700
4742
 
4701
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-continuousdeploymentpolicy-sessionstickinessconfig.html
4702
- :exampleMetadata: fixture=_generated
4743
+ # The code below shows an example of how to instantiate this type.
4744
+ # The values are placeholders you should change.
4745
+ from aws_cdk import aws_cloudfront as cloudfront
4746
+
4747
+ cfn_continuous_deployment_policy = cloudfront.CfnContinuousDeploymentPolicy(self, "MyCfnContinuousDeploymentPolicy",
4748
+ continuous_deployment_policy_config=cloudfront.CfnContinuousDeploymentPolicy.ContinuousDeploymentPolicyConfigProperty(
4749
+ enabled=False,
4750
+ staging_distribution_dns_names=["stagingDistributionDnsNames"],
4751
+
4752
+ # the properties below are optional
4753
+ single_header_policy_config=cloudfront.CfnContinuousDeploymentPolicy.SingleHeaderPolicyConfigProperty(
4754
+ header="header",
4755
+ value="value"
4756
+ ),
4757
+ single_weight_policy_config=cloudfront.CfnContinuousDeploymentPolicy.SingleWeightPolicyConfigProperty(
4758
+ weight=123,
4759
+
4760
+ # the properties below are optional
4761
+ session_stickiness_config=cloudfront.CfnContinuousDeploymentPolicy.SessionStickinessConfigProperty(
4762
+ idle_ttl=123,
4763
+ maximum_ttl=123
4764
+ )
4765
+ ),
4766
+ traffic_config=cloudfront.CfnContinuousDeploymentPolicy.TrafficConfigProperty(
4767
+ type="type",
4768
+
4769
+ # the properties below are optional
4770
+ single_header_config=cloudfront.CfnContinuousDeploymentPolicy.SingleHeaderConfigProperty(
4771
+ header="header",
4772
+ value="value"
4773
+ ),
4774
+ single_weight_config=cloudfront.CfnContinuousDeploymentPolicy.SingleWeightConfigProperty(
4775
+ weight=123,
4776
+
4777
+ # the properties below are optional
4778
+ session_stickiness_config=cloudfront.CfnContinuousDeploymentPolicy.SessionStickinessConfigProperty(
4779
+ idle_ttl=123,
4780
+ maximum_ttl=123
4781
+ )
4782
+ )
4783
+ ),
4784
+ type="type"
4785
+ )
4786
+ )
4787
+ '''
4703
4788
 
4704
- Example::
4789
+ def __init__(
4790
+ self,
4791
+ scope: _constructs_77d1e7e8.Construct,
4792
+ id: builtins.str,
4793
+ *,
4794
+ continuous_deployment_policy_config: typing.Union[_IResolvable_da3f097b, typing.Union["CfnContinuousDeploymentPolicy.ContinuousDeploymentPolicyConfigProperty", typing.Dict[builtins.str, typing.Any]]],
4795
+ ) -> None:
4796
+ '''
4797
+ :param scope: Scope in which this resource is defined.
4798
+ :param id: Construct identifier for this resource (unique in its scope).
4799
+ :param continuous_deployment_policy_config: Contains the configuration for a continuous deployment policy.
4800
+ '''
4801
+ if __debug__:
4802
+ type_hints = typing.get_type_hints(_typecheckingstub__b57269fe6faf53d2e30ff31a58c5711db8b8cc3b38dc9ac79efdb585dc8f324b)
4803
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
4804
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
4805
+ props = CfnContinuousDeploymentPolicyProps(
4806
+ continuous_deployment_policy_config=continuous_deployment_policy_config
4807
+ )
4705
4808
 
4706
- # The code below shows an example of how to instantiate this type.
4707
- # The values are placeholders you should change.
4708
- from aws_cdk import aws_cloudfront as cloudfront
4709
-
4710
- session_stickiness_config_property = cloudfront.CfnContinuousDeploymentPolicy.SessionStickinessConfigProperty(
4711
- idle_ttl=123,
4712
- maximum_ttl=123
4713
- )
4714
- '''
4715
- if __debug__:
4716
- type_hints = typing.get_type_hints(_typecheckingstub__28b75d48272033dc185ab5e21f79a97315becd9c7999a921e0b955c636dc0311)
4717
- check_type(argname="argument idle_ttl", value=idle_ttl, expected_type=type_hints["idle_ttl"])
4718
- check_type(argname="argument maximum_ttl", value=maximum_ttl, expected_type=type_hints["maximum_ttl"])
4719
- self._values: typing.Dict[builtins.str, typing.Any] = {
4720
- "idle_ttl": idle_ttl,
4721
- "maximum_ttl": maximum_ttl,
4722
- }
4809
+ jsii.create(self.__class__, self, [scope, id, props])
4723
4810
 
4724
- @builtins.property
4725
- def idle_ttl(self) -> jsii.Number:
4726
- '''The amount of time after which you want sessions to cease if no requests are received.
4811
+ @jsii.member(jsii_name="inspect")
4812
+ def inspect(self, inspector: _TreeInspector_488e0dd5) -> None:
4813
+ '''Examines the CloudFormation resource and discloses attributes.
4727
4814
 
4728
- Allowed values are 300–3600 seconds (5–60 minutes).
4815
+ :param inspector: tree inspector to collect and process attributes.
4816
+ '''
4817
+ if __debug__:
4818
+ type_hints = typing.get_type_hints(_typecheckingstub__95d0eeca39c0c26751595d2bbe6c1247ac12b7acdb2d7c9d28f5fb0eeacb7187)
4819
+ check_type(argname="argument inspector", value=inspector, expected_type=type_hints["inspector"])
4820
+ return typing.cast(None, jsii.invoke(self, "inspect", [inspector]))
4729
4821
 
4730
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-continuousdeploymentpolicy-sessionstickinessconfig.html#cfn-cloudfront-continuousdeploymentpolicy-sessionstickinessconfig-idlettl
4731
- '''
4732
- result = self._values.get("idle_ttl")
4733
- assert result is not None, "Required property 'idle_ttl' is missing"
4734
- return typing.cast(jsii.Number, result)
4822
+ @jsii.member(jsii_name="renderProperties")
4823
+ def _render_properties(
4824
+ self,
4825
+ props: typing.Mapping[builtins.str, typing.Any],
4826
+ ) -> typing.Mapping[builtins.str, typing.Any]:
4827
+ '''
4828
+ :param props: -
4829
+ '''
4830
+ if __debug__:
4831
+ type_hints = typing.get_type_hints(_typecheckingstub__779f5842b62fc4504802401955475d45973a372c1d8293180cd8ce460b4e4823)
4832
+ check_type(argname="argument props", value=props, expected_type=type_hints["props"])
4833
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "renderProperties", [props]))
4735
4834
 
4736
- @builtins.property
4737
- def maximum_ttl(self) -> jsii.Number:
4738
- '''The maximum amount of time to consider requests from the viewer as being part of the same session.
4835
+ @jsii.python.classproperty
4836
+ @jsii.member(jsii_name="CFN_RESOURCE_TYPE_NAME")
4837
+ def CFN_RESOURCE_TYPE_NAME(cls) -> builtins.str:
4838
+ '''The CloudFormation resource type name for this resource class.'''
4839
+ return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
4739
4840
 
4740
- Allowed values are 300–3600 seconds (5–60 minutes).
4841
+ @builtins.property
4842
+ @jsii.member(jsii_name="attrId")
4843
+ def attr_id(self) -> builtins.str:
4844
+ '''The identifier of the cotinuous deployment policy.
4741
4845
 
4742
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-continuousdeploymentpolicy-sessionstickinessconfig.html#cfn-cloudfront-continuousdeploymentpolicy-sessionstickinessconfig-maximumttl
4743
- '''
4744
- result = self._values.get("maximum_ttl")
4745
- assert result is not None, "Required property 'maximum_ttl' is missing"
4746
- return typing.cast(jsii.Number, result)
4846
+ :cloudformationAttribute: Id
4847
+ '''
4848
+ return typing.cast(builtins.str, jsii.get(self, "attrId"))
4747
4849
 
4748
- def __eq__(self, rhs: typing.Any) -> builtins.bool:
4749
- return isinstance(rhs, self.__class__) and rhs._values == self._values
4850
+ @builtins.property
4851
+ @jsii.member(jsii_name="attrLastModifiedTime")
4852
+ def attr_last_modified_time(self) -> builtins.str:
4853
+ '''The date and time when the continuous deployment policy was last modified.
4750
4854
 
4751
- def __ne__(self, rhs: typing.Any) -> builtins.bool:
4752
- return not (rhs == self)
4855
+ :cloudformationAttribute: LastModifiedTime
4856
+ '''
4857
+ return typing.cast(builtins.str, jsii.get(self, "attrLastModifiedTime"))
4753
4858
 
4754
- def __repr__(self) -> str:
4755
- return "SessionStickinessConfigProperty(%s)" % ", ".join(
4756
- k + "=" + repr(v) for k, v in self._values.items()
4757
- )
4859
+ @builtins.property
4860
+ @jsii.member(jsii_name="cfnProperties")
4861
+ def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
4862
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
4863
+
4864
+ @builtins.property
4865
+ @jsii.member(jsii_name="continuousDeploymentPolicyConfig")
4866
+ def continuous_deployment_policy_config(
4867
+ self,
4868
+ ) -> typing.Union[_IResolvable_da3f097b, "CfnContinuousDeploymentPolicy.ContinuousDeploymentPolicyConfigProperty"]:
4869
+ '''Contains the configuration for a continuous deployment policy.'''
4870
+ return typing.cast(typing.Union[_IResolvable_da3f097b, "CfnContinuousDeploymentPolicy.ContinuousDeploymentPolicyConfigProperty"], jsii.get(self, "continuousDeploymentPolicyConfig"))
4871
+
4872
+ @continuous_deployment_policy_config.setter
4873
+ def continuous_deployment_policy_config(
4874
+ self,
4875
+ value: typing.Union[_IResolvable_da3f097b, "CfnContinuousDeploymentPolicy.ContinuousDeploymentPolicyConfigProperty"],
4876
+ ) -> None:
4877
+ if __debug__:
4878
+ type_hints = typing.get_type_hints(_typecheckingstub__f4581f42e1117e6de93836f594986c28a2378e8200e2f4a535cce028879382c9)
4879
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
4880
+ jsii.set(self, "continuousDeploymentPolicyConfig", value) # pyright: ignore[reportArgumentType]
4758
4881
 
4759
4882
  @jsii.data_type(
4760
- jsii_type="aws-cdk-lib.aws_cloudfront.CfnContinuousDeploymentPolicy.SingleHeaderConfigProperty",
4883
+ jsii_type="aws-cdk-lib.aws_cloudfront.CfnContinuousDeploymentPolicy.ContinuousDeploymentPolicyConfigProperty",
4761
4884
  jsii_struct_bases=[],
4762
- name_mapping={"header": "header", "value": "value"},
4885
+ name_mapping={
4886
+ "enabled": "enabled",
4887
+ "staging_distribution_dns_names": "stagingDistributionDnsNames",
4888
+ "single_header_policy_config": "singleHeaderPolicyConfig",
4889
+ "single_weight_policy_config": "singleWeightPolicyConfig",
4890
+ "traffic_config": "trafficConfig",
4891
+ "type": "type",
4892
+ },
4763
4893
  )
4764
- class SingleHeaderConfigProperty:
4765
- def __init__(self, *, header: builtins.str, value: builtins.str) -> None:
4766
- '''Determines which HTTP requests are sent to the staging distribution.
4894
+ class ContinuousDeploymentPolicyConfigProperty:
4895
+ def __init__(
4896
+ self,
4897
+ *,
4898
+ enabled: typing.Union[builtins.bool, _IResolvable_da3f097b],
4899
+ staging_distribution_dns_names: typing.Sequence[builtins.str],
4900
+ single_header_policy_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnContinuousDeploymentPolicy.SingleHeaderPolicyConfigProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
4901
+ single_weight_policy_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnContinuousDeploymentPolicy.SingleWeightPolicyConfigProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
4902
+ traffic_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnContinuousDeploymentPolicy.TrafficConfigProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
4903
+ type: typing.Optional[builtins.str] = None,
4904
+ ) -> None:
4905
+ '''Contains the configuration for a continuous deployment policy.
4767
4906
 
4768
- :param header: The request header name that you want CloudFront to send to your staging distribution. The header must contain the prefix ``aws-cf-cd-`` .
4769
- :param value: The request header value.
4907
+ :param enabled: A Boolean that indicates whether this continuous deployment policy is enabled (in effect). When this value is ``true`` , this policy is enabled and in effect. When this value is ``false`` , this policy is not enabled and has no effect.
4908
+ :param staging_distribution_dns_names: The CloudFront domain name of the staging distribution. For example: ``d111111abcdef8.cloudfront.net`` .
4909
+ :param single_header_policy_config: This configuration determines which HTTP requests are sent to the staging distribution. If the HTTP request contains a header and value that matches what you specify here, the request is sent to the staging distribution. Otherwise the request is sent to the primary distribution.
4910
+ :param single_weight_policy_config: This configuration determines the percentage of HTTP requests that are sent to the staging distribution.
4911
+ :param traffic_config: Contains the parameters for routing production traffic from your primary to staging distributions.
4912
+ :param type: The type of traffic configuration.
4770
4913
 
4771
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-continuousdeploymentpolicy-singleheaderconfig.html
4914
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-continuousdeploymentpolicy-continuousdeploymentpolicyconfig.html
4772
4915
  :exampleMetadata: fixture=_generated
4773
4916
 
4774
4917
  Example::
@@ -4777,67 +4920,299 @@ class CfnContinuousDeploymentPolicy(
4777
4920
  # The values are placeholders you should change.
4778
4921
  from aws_cdk import aws_cloudfront as cloudfront
4779
4922
 
4780
- single_header_config_property = cloudfront.CfnContinuousDeploymentPolicy.SingleHeaderConfigProperty(
4781
- header="header",
4782
- value="value"
4923
+ continuous_deployment_policy_config_property = cloudfront.CfnContinuousDeploymentPolicy.ContinuousDeploymentPolicyConfigProperty(
4924
+ enabled=False,
4925
+ staging_distribution_dns_names=["stagingDistributionDnsNames"],
4926
+
4927
+ # the properties below are optional
4928
+ single_header_policy_config=cloudfront.CfnContinuousDeploymentPolicy.SingleHeaderPolicyConfigProperty(
4929
+ header="header",
4930
+ value="value"
4931
+ ),
4932
+ single_weight_policy_config=cloudfront.CfnContinuousDeploymentPolicy.SingleWeightPolicyConfigProperty(
4933
+ weight=123,
4934
+
4935
+ # the properties below are optional
4936
+ session_stickiness_config=cloudfront.CfnContinuousDeploymentPolicy.SessionStickinessConfigProperty(
4937
+ idle_ttl=123,
4938
+ maximum_ttl=123
4939
+ )
4940
+ ),
4941
+ traffic_config=cloudfront.CfnContinuousDeploymentPolicy.TrafficConfigProperty(
4942
+ type="type",
4943
+
4944
+ # the properties below are optional
4945
+ single_header_config=cloudfront.CfnContinuousDeploymentPolicy.SingleHeaderConfigProperty(
4946
+ header="header",
4947
+ value="value"
4948
+ ),
4949
+ single_weight_config=cloudfront.CfnContinuousDeploymentPolicy.SingleWeightConfigProperty(
4950
+ weight=123,
4951
+
4952
+ # the properties below are optional
4953
+ session_stickiness_config=cloudfront.CfnContinuousDeploymentPolicy.SessionStickinessConfigProperty(
4954
+ idle_ttl=123,
4955
+ maximum_ttl=123
4956
+ )
4957
+ )
4958
+ ),
4959
+ type="type"
4783
4960
  )
4784
4961
  '''
4785
4962
  if __debug__:
4786
- type_hints = typing.get_type_hints(_typecheckingstub__ab2cd352992c9ba2b394cb9901d11c00f78ce00fd375f0cc51f4ae2401889435)
4787
- check_type(argname="argument header", value=header, expected_type=type_hints["header"])
4788
- check_type(argname="argument value", value=value, expected_type=type_hints["value"])
4963
+ type_hints = typing.get_type_hints(_typecheckingstub__5bd1a74dffe3773a269b4a42a8f5fc37c7934b0931fd845b2923603086ea48cc)
4964
+ check_type(argname="argument enabled", value=enabled, expected_type=type_hints["enabled"])
4965
+ check_type(argname="argument staging_distribution_dns_names", value=staging_distribution_dns_names, expected_type=type_hints["staging_distribution_dns_names"])
4966
+ check_type(argname="argument single_header_policy_config", value=single_header_policy_config, expected_type=type_hints["single_header_policy_config"])
4967
+ check_type(argname="argument single_weight_policy_config", value=single_weight_policy_config, expected_type=type_hints["single_weight_policy_config"])
4968
+ check_type(argname="argument traffic_config", value=traffic_config, expected_type=type_hints["traffic_config"])
4969
+ check_type(argname="argument type", value=type, expected_type=type_hints["type"])
4789
4970
  self._values: typing.Dict[builtins.str, typing.Any] = {
4790
- "header": header,
4791
- "value": value,
4971
+ "enabled": enabled,
4972
+ "staging_distribution_dns_names": staging_distribution_dns_names,
4792
4973
  }
4974
+ if single_header_policy_config is not None:
4975
+ self._values["single_header_policy_config"] = single_header_policy_config
4976
+ if single_weight_policy_config is not None:
4977
+ self._values["single_weight_policy_config"] = single_weight_policy_config
4978
+ if traffic_config is not None:
4979
+ self._values["traffic_config"] = traffic_config
4980
+ if type is not None:
4981
+ self._values["type"] = type
4793
4982
 
4794
4983
  @builtins.property
4795
- def header(self) -> builtins.str:
4796
- '''The request header name that you want CloudFront to send to your staging distribution.
4984
+ def enabled(self) -> typing.Union[builtins.bool, _IResolvable_da3f097b]:
4985
+ '''A Boolean that indicates whether this continuous deployment policy is enabled (in effect).
4797
4986
 
4798
- The header must contain the prefix ``aws-cf-cd-`` .
4987
+ When this value is ``true`` , this policy is enabled and in effect. When this value is ``false`` , this policy is not enabled and has no effect.
4799
4988
 
4800
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-continuousdeploymentpolicy-singleheaderconfig.html#cfn-cloudfront-continuousdeploymentpolicy-singleheaderconfig-header
4989
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-continuousdeploymentpolicy-continuousdeploymentpolicyconfig.html#cfn-cloudfront-continuousdeploymentpolicy-continuousdeploymentpolicyconfig-enabled
4801
4990
  '''
4802
- result = self._values.get("header")
4803
- assert result is not None, "Required property 'header' is missing"
4804
- return typing.cast(builtins.str, result)
4991
+ result = self._values.get("enabled")
4992
+ assert result is not None, "Required property 'enabled' is missing"
4993
+ return typing.cast(typing.Union[builtins.bool, _IResolvable_da3f097b], result)
4805
4994
 
4806
4995
  @builtins.property
4807
- def value(self) -> builtins.str:
4808
- '''The request header value.
4996
+ def staging_distribution_dns_names(self) -> typing.List[builtins.str]:
4997
+ '''The CloudFront domain name of the staging distribution.
4809
4998
 
4810
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-continuousdeploymentpolicy-singleheaderconfig.html#cfn-cloudfront-continuousdeploymentpolicy-singleheaderconfig-value
4999
+ For example: ``d111111abcdef8.cloudfront.net`` .
5000
+
5001
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-continuousdeploymentpolicy-continuousdeploymentpolicyconfig.html#cfn-cloudfront-continuousdeploymentpolicy-continuousdeploymentpolicyconfig-stagingdistributiondnsnames
4811
5002
  '''
4812
- result = self._values.get("value")
4813
- assert result is not None, "Required property 'value' is missing"
4814
- return typing.cast(builtins.str, result)
5003
+ result = self._values.get("staging_distribution_dns_names")
5004
+ assert result is not None, "Required property 'staging_distribution_dns_names' is missing"
5005
+ return typing.cast(typing.List[builtins.str], result)
4815
5006
 
4816
- def __eq__(self, rhs: typing.Any) -> builtins.bool:
4817
- return isinstance(rhs, self.__class__) and rhs._values == self._values
5007
+ @builtins.property
5008
+ def single_header_policy_config(
5009
+ self,
5010
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnContinuousDeploymentPolicy.SingleHeaderPolicyConfigProperty"]]:
5011
+ '''This configuration determines which HTTP requests are sent to the staging distribution.
4818
5012
 
4819
- def __ne__(self, rhs: typing.Any) -> builtins.bool:
4820
- return not (rhs == self)
5013
+ If the HTTP request contains a header and value that matches what you specify here, the request is sent to the staging distribution. Otherwise the request is sent to the primary distribution.
4821
5014
 
4822
- def __repr__(self) -> str:
4823
- return "SingleHeaderConfigProperty(%s)" % ", ".join(
4824
- k + "=" + repr(v) for k, v in self._values.items()
4825
- )
5015
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-continuousdeploymentpolicy-continuousdeploymentpolicyconfig.html#cfn-cloudfront-continuousdeploymentpolicy-continuousdeploymentpolicyconfig-singleheaderpolicyconfig
5016
+ '''
5017
+ result = self._values.get("single_header_policy_config")
5018
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnContinuousDeploymentPolicy.SingleHeaderPolicyConfigProperty"]], result)
4826
5019
 
4827
- @jsii.data_type(
4828
- jsii_type="aws-cdk-lib.aws_cloudfront.CfnContinuousDeploymentPolicy.SingleHeaderPolicyConfigProperty",
4829
- jsii_struct_bases=[],
4830
- name_mapping={"header": "header", "value": "value"},
4831
- )
4832
- class SingleHeaderPolicyConfigProperty:
4833
- def __init__(self, *, header: builtins.str, value: builtins.str) -> None:
4834
- '''Defines a single header policy for a CloudFront distribution.
5020
+ @builtins.property
5021
+ def single_weight_policy_config(
5022
+ self,
5023
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnContinuousDeploymentPolicy.SingleWeightPolicyConfigProperty"]]:
5024
+ '''This configuration determines the percentage of HTTP requests that are sent to the staging distribution.
4835
5025
 
4836
- .. epigraph::
5026
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-continuousdeploymentpolicy-continuousdeploymentpolicyconfig.html#cfn-cloudfront-continuousdeploymentpolicy-continuousdeploymentpolicyconfig-singleweightpolicyconfig
5027
+ '''
5028
+ result = self._values.get("single_weight_policy_config")
5029
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnContinuousDeploymentPolicy.SingleWeightPolicyConfigProperty"]], result)
4837
5030
 
4838
- This property is legacy. We recommend that you use `TrafficConfig <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-continuousdeploymentpolicy-trafficconfig.html>`_ and specify the `SingleHeaderConfig <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-continuousdeploymentpolicy-trafficconfig.html#cfn-cloudfront-continuousdeploymentpolicy-trafficconfig-singleheaderconfig>`_ property instead.
5031
+ @builtins.property
5032
+ def traffic_config(
5033
+ self,
5034
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnContinuousDeploymentPolicy.TrafficConfigProperty"]]:
5035
+ '''Contains the parameters for routing production traffic from your primary to staging distributions.
4839
5036
 
4840
- :param header: The name of the HTTP header that CloudFront uses to configure for the single header policy.
5037
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-continuousdeploymentpolicy-continuousdeploymentpolicyconfig.html#cfn-cloudfront-continuousdeploymentpolicy-continuousdeploymentpolicyconfig-trafficconfig
5038
+ '''
5039
+ result = self._values.get("traffic_config")
5040
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnContinuousDeploymentPolicy.TrafficConfigProperty"]], result)
5041
+
5042
+ @builtins.property
5043
+ def type(self) -> typing.Optional[builtins.str]:
5044
+ '''The type of traffic configuration.
5045
+
5046
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-continuousdeploymentpolicy-continuousdeploymentpolicyconfig.html#cfn-cloudfront-continuousdeploymentpolicy-continuousdeploymentpolicyconfig-type
5047
+ '''
5048
+ result = self._values.get("type")
5049
+ return typing.cast(typing.Optional[builtins.str], result)
5050
+
5051
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
5052
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
5053
+
5054
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
5055
+ return not (rhs == self)
5056
+
5057
+ def __repr__(self) -> str:
5058
+ return "ContinuousDeploymentPolicyConfigProperty(%s)" % ", ".join(
5059
+ k + "=" + repr(v) for k, v in self._values.items()
5060
+ )
5061
+
5062
+ @jsii.data_type(
5063
+ jsii_type="aws-cdk-lib.aws_cloudfront.CfnContinuousDeploymentPolicy.SessionStickinessConfigProperty",
5064
+ jsii_struct_bases=[],
5065
+ name_mapping={"idle_ttl": "idleTtl", "maximum_ttl": "maximumTtl"},
5066
+ )
5067
+ class SessionStickinessConfigProperty:
5068
+ def __init__(self, *, idle_ttl: jsii.Number, maximum_ttl: jsii.Number) -> None:
5069
+ '''Session stickiness provides the ability to define multiple requests from a single viewer as a single session.
5070
+
5071
+ This prevents the potentially inconsistent experience of sending some of a given user's requests to your staging distribution, while others are sent to your primary distribution. Define the session duration using TTL values.
5072
+
5073
+ :param idle_ttl: The amount of time after which you want sessions to cease if no requests are received. Allowed values are 300–3600 seconds (5–60 minutes).
5074
+ :param maximum_ttl: The maximum amount of time to consider requests from the viewer as being part of the same session. Allowed values are 300–3600 seconds (5–60 minutes).
5075
+
5076
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-continuousdeploymentpolicy-sessionstickinessconfig.html
5077
+ :exampleMetadata: fixture=_generated
5078
+
5079
+ Example::
5080
+
5081
+ # The code below shows an example of how to instantiate this type.
5082
+ # The values are placeholders you should change.
5083
+ from aws_cdk import aws_cloudfront as cloudfront
5084
+
5085
+ session_stickiness_config_property = cloudfront.CfnContinuousDeploymentPolicy.SessionStickinessConfigProperty(
5086
+ idle_ttl=123,
5087
+ maximum_ttl=123
5088
+ )
5089
+ '''
5090
+ if __debug__:
5091
+ type_hints = typing.get_type_hints(_typecheckingstub__28b75d48272033dc185ab5e21f79a97315becd9c7999a921e0b955c636dc0311)
5092
+ check_type(argname="argument idle_ttl", value=idle_ttl, expected_type=type_hints["idle_ttl"])
5093
+ check_type(argname="argument maximum_ttl", value=maximum_ttl, expected_type=type_hints["maximum_ttl"])
5094
+ self._values: typing.Dict[builtins.str, typing.Any] = {
5095
+ "idle_ttl": idle_ttl,
5096
+ "maximum_ttl": maximum_ttl,
5097
+ }
5098
+
5099
+ @builtins.property
5100
+ def idle_ttl(self) -> jsii.Number:
5101
+ '''The amount of time after which you want sessions to cease if no requests are received.
5102
+
5103
+ Allowed values are 300–3600 seconds (5–60 minutes).
5104
+
5105
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-continuousdeploymentpolicy-sessionstickinessconfig.html#cfn-cloudfront-continuousdeploymentpolicy-sessionstickinessconfig-idlettl
5106
+ '''
5107
+ result = self._values.get("idle_ttl")
5108
+ assert result is not None, "Required property 'idle_ttl' is missing"
5109
+ return typing.cast(jsii.Number, result)
5110
+
5111
+ @builtins.property
5112
+ def maximum_ttl(self) -> jsii.Number:
5113
+ '''The maximum amount of time to consider requests from the viewer as being part of the same session.
5114
+
5115
+ Allowed values are 300–3600 seconds (5–60 minutes).
5116
+
5117
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-continuousdeploymentpolicy-sessionstickinessconfig.html#cfn-cloudfront-continuousdeploymentpolicy-sessionstickinessconfig-maximumttl
5118
+ '''
5119
+ result = self._values.get("maximum_ttl")
5120
+ assert result is not None, "Required property 'maximum_ttl' is missing"
5121
+ return typing.cast(jsii.Number, result)
5122
+
5123
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
5124
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
5125
+
5126
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
5127
+ return not (rhs == self)
5128
+
5129
+ def __repr__(self) -> str:
5130
+ return "SessionStickinessConfigProperty(%s)" % ", ".join(
5131
+ k + "=" + repr(v) for k, v in self._values.items()
5132
+ )
5133
+
5134
+ @jsii.data_type(
5135
+ jsii_type="aws-cdk-lib.aws_cloudfront.CfnContinuousDeploymentPolicy.SingleHeaderConfigProperty",
5136
+ jsii_struct_bases=[],
5137
+ name_mapping={"header": "header", "value": "value"},
5138
+ )
5139
+ class SingleHeaderConfigProperty:
5140
+ def __init__(self, *, header: builtins.str, value: builtins.str) -> None:
5141
+ '''Determines which HTTP requests are sent to the staging distribution.
5142
+
5143
+ :param header: The request header name that you want CloudFront to send to your staging distribution. The header must contain the prefix ``aws-cf-cd-`` .
5144
+ :param value: The request header value.
5145
+
5146
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-continuousdeploymentpolicy-singleheaderconfig.html
5147
+ :exampleMetadata: fixture=_generated
5148
+
5149
+ Example::
5150
+
5151
+ # The code below shows an example of how to instantiate this type.
5152
+ # The values are placeholders you should change.
5153
+ from aws_cdk import aws_cloudfront as cloudfront
5154
+
5155
+ single_header_config_property = cloudfront.CfnContinuousDeploymentPolicy.SingleHeaderConfigProperty(
5156
+ header="header",
5157
+ value="value"
5158
+ )
5159
+ '''
5160
+ if __debug__:
5161
+ type_hints = typing.get_type_hints(_typecheckingstub__ab2cd352992c9ba2b394cb9901d11c00f78ce00fd375f0cc51f4ae2401889435)
5162
+ check_type(argname="argument header", value=header, expected_type=type_hints["header"])
5163
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
5164
+ self._values: typing.Dict[builtins.str, typing.Any] = {
5165
+ "header": header,
5166
+ "value": value,
5167
+ }
5168
+
5169
+ @builtins.property
5170
+ def header(self) -> builtins.str:
5171
+ '''The request header name that you want CloudFront to send to your staging distribution.
5172
+
5173
+ The header must contain the prefix ``aws-cf-cd-`` .
5174
+
5175
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-continuousdeploymentpolicy-singleheaderconfig.html#cfn-cloudfront-continuousdeploymentpolicy-singleheaderconfig-header
5176
+ '''
5177
+ result = self._values.get("header")
5178
+ assert result is not None, "Required property 'header' is missing"
5179
+ return typing.cast(builtins.str, result)
5180
+
5181
+ @builtins.property
5182
+ def value(self) -> builtins.str:
5183
+ '''The request header value.
5184
+
5185
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-continuousdeploymentpolicy-singleheaderconfig.html#cfn-cloudfront-continuousdeploymentpolicy-singleheaderconfig-value
5186
+ '''
5187
+ result = self._values.get("value")
5188
+ assert result is not None, "Required property 'value' is missing"
5189
+ return typing.cast(builtins.str, result)
5190
+
5191
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
5192
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
5193
+
5194
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
5195
+ return not (rhs == self)
5196
+
5197
+ def __repr__(self) -> str:
5198
+ return "SingleHeaderConfigProperty(%s)" % ", ".join(
5199
+ k + "=" + repr(v) for k, v in self._values.items()
5200
+ )
5201
+
5202
+ @jsii.data_type(
5203
+ jsii_type="aws-cdk-lib.aws_cloudfront.CfnContinuousDeploymentPolicy.SingleHeaderPolicyConfigProperty",
5204
+ jsii_struct_bases=[],
5205
+ name_mapping={"header": "header", "value": "value"},
5206
+ )
5207
+ class SingleHeaderPolicyConfigProperty:
5208
+ def __init__(self, *, header: builtins.str, value: builtins.str) -> None:
5209
+ '''Defines a single header policy for a CloudFront distribution.
5210
+
5211
+ .. epigraph::
5212
+
5213
+ This property is legacy. We recommend that you use `TrafficConfig <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-continuousdeploymentpolicy-trafficconfig.html>`_ and specify the `SingleHeaderConfig <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-continuousdeploymentpolicy-trafficconfig.html#cfn-cloudfront-continuousdeploymentpolicy-trafficconfig-singleheaderconfig>`_ property instead.
5214
+
5215
+ :param header: The name of the HTTP header that CloudFront uses to configure for the single header policy.
4841
5216
  :param value: Specifies the value to assign to the header for a single header policy.
4842
5217
 
4843
5218
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-continuousdeploymentpolicy-singleheaderpolicyconfig.html
@@ -6825,6 +7200,67 @@ class CfnDistribution(
6825
7200
  k + "=" + repr(v) for k, v in self._values.items()
6826
7201
  )
6827
7202
 
7203
+ @jsii.data_type(
7204
+ jsii_type="aws-cdk-lib.aws_cloudfront.CfnDistribution.DefinitionProperty",
7205
+ jsii_struct_bases=[],
7206
+ name_mapping={"string_schema": "stringSchema"},
7207
+ )
7208
+ class DefinitionProperty:
7209
+ def __init__(
7210
+ self,
7211
+ *,
7212
+ string_schema: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnDistribution.StringSchemaProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
7213
+ ) -> None:
7214
+ '''
7215
+ :param string_schema:
7216
+
7217
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-definition.html
7218
+ :exampleMetadata: fixture=_generated
7219
+
7220
+ Example::
7221
+
7222
+ # The code below shows an example of how to instantiate this type.
7223
+ # The values are placeholders you should change.
7224
+ from aws_cdk import aws_cloudfront as cloudfront
7225
+
7226
+ definition_property = cloudfront.CfnDistribution.DefinitionProperty(
7227
+ string_schema=cloudfront.CfnDistribution.StringSchemaProperty(
7228
+ required=False,
7229
+
7230
+ # the properties below are optional
7231
+ comment="comment",
7232
+ default_value="defaultValue"
7233
+ )
7234
+ )
7235
+ '''
7236
+ if __debug__:
7237
+ type_hints = typing.get_type_hints(_typecheckingstub__6373c35cb5b68c4917ddc72054f5c42da1b689748928adaa28575e2f9058bcf1)
7238
+ check_type(argname="argument string_schema", value=string_schema, expected_type=type_hints["string_schema"])
7239
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
7240
+ if string_schema is not None:
7241
+ self._values["string_schema"] = string_schema
7242
+
7243
+ @builtins.property
7244
+ def string_schema(
7245
+ self,
7246
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnDistribution.StringSchemaProperty"]]:
7247
+ '''
7248
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-definition.html#cfn-cloudfront-distribution-definition-stringschema
7249
+ '''
7250
+ result = self._values.get("string_schema")
7251
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnDistribution.StringSchemaProperty"]], result)
7252
+
7253
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
7254
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
7255
+
7256
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
7257
+ return not (rhs == self)
7258
+
7259
+ def __repr__(self) -> str:
7260
+ return "DefinitionProperty(%s)" % ", ".join(
7261
+ k + "=" + repr(v) for k, v in self._values.items()
7262
+ )
7263
+
6828
7264
  @jsii.data_type(
6829
7265
  jsii_type="aws-cdk-lib.aws_cloudfront.CfnDistribution.DistributionConfigProperty",
6830
7266
  jsii_struct_bases=[],
@@ -6836,6 +7272,7 @@ class CfnDistribution(
6836
7272
  "cache_behaviors": "cacheBehaviors",
6837
7273
  "cnam_es": "cnamEs",
6838
7274
  "comment": "comment",
7275
+ "connection_mode": "connectionMode",
6839
7276
  "continuous_deployment_policy_id": "continuousDeploymentPolicyId",
6840
7277
  "custom_error_responses": "customErrorResponses",
6841
7278
  "custom_origin": "customOrigin",
@@ -6849,6 +7286,7 @@ class CfnDistribution(
6849
7286
  "restrictions": "restrictions",
6850
7287
  "s3_origin": "s3Origin",
6851
7288
  "staging": "staging",
7289
+ "tenant_config": "tenantConfig",
6852
7290
  "viewer_certificate": "viewerCertificate",
6853
7291
  "web_acl_id": "webAclId",
6854
7292
  },
@@ -6864,6 +7302,7 @@ class CfnDistribution(
6864
7302
  cache_behaviors: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnDistribution.CacheBehaviorProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
6865
7303
  cnam_es: typing.Optional[typing.Sequence[builtins.str]] = None,
6866
7304
  comment: typing.Optional[builtins.str] = None,
7305
+ connection_mode: typing.Optional[builtins.str] = None,
6867
7306
  continuous_deployment_policy_id: typing.Optional[builtins.str] = None,
6868
7307
  custom_error_responses: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnDistribution.CustomErrorResponseProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
6869
7308
  custom_origin: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnDistribution.LegacyCustomOriginProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
@@ -6877,6 +7316,7 @@ class CfnDistribution(
6877
7316
  restrictions: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnDistribution.RestrictionsProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
6878
7317
  s3_origin: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnDistribution.LegacyS3OriginProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
6879
7318
  staging: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
7319
+ tenant_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnDistribution.TenantConfigProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
6880
7320
  viewer_certificate: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnDistribution.ViewerCertificateProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
6881
7321
  web_acl_id: typing.Optional[builtins.str] = None,
6882
7322
  ) -> None:
@@ -6889,6 +7329,7 @@ class CfnDistribution(
6889
7329
  :param cache_behaviors: A complex type that contains zero or more ``CacheBehavior`` elements.
6890
7330
  :param cnam_es: An alias for the CloudFront distribution's domain name. .. epigraph:: This property is legacy. We recommend that you use `Aliases <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html#cfn-cloudfront-distribution-distributionconfig-aliases>`_ instead.
6891
7331
  :param comment: A comment to describe the distribution. The comment cannot be longer than 128 characters. Default: - ""
7332
+ :param connection_mode:
6892
7333
  :param continuous_deployment_policy_id: The identifier of a continuous deployment policy. For more information, see ``CreateContinuousDeploymentPolicy`` .
6893
7334
  :param custom_error_responses: A complex type that controls the following:. - Whether CloudFront replaces HTTP status codes in the 4xx and 5xx range with custom error messages before returning the response to the viewer. - How long CloudFront caches HTTP status codes in the 4xx and 5xx range. For more information about custom error pages, see `Customizing Error Responses <https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/custom-error-pages.html>`_ in the *Amazon CloudFront Developer Guide* .
6894
7335
  :param custom_origin: The user-defined HTTP server that serves as the origin for content that CloudFront distributes. .. epigraph:: This property is legacy. We recommend that you use `Origin <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origin.html>`_ instead.
@@ -6902,6 +7343,7 @@ class CfnDistribution(
6902
7343
  :param restrictions: A complex type that identifies ways in which you want to restrict distribution of your content.
6903
7344
  :param s3_origin: The origin as an Amazon S3 bucket. .. epigraph:: This property is legacy. We recommend that you use `Origin <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origin.html>`_ instead.
6904
7345
  :param staging: A Boolean that indicates whether this is a staging distribution. When this value is ``true`` , this is a staging distribution. When this value is ``false`` , this is not a staging distribution.
7346
+ :param tenant_config:
6905
7347
  :param viewer_certificate: A complex type that determines the distribution's SSL/TLS configuration for communicating with viewers.
6906
7348
  :param web_acl_id: A unique identifier that specifies the AWS WAF web ACL, if any, to associate with this 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/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111`` . To specify a web ACL created using AWS WAF Classic, use the ACL ID, for example ``a1b2c3d4-5678-90ab-cdef-EXAMPLE11111`` . AWS WAF is a web application firewall that lets you monitor the HTTP and HTTPS requests that are forwarded to CloudFront, and lets you control access to your content. Based on conditions that you specify, such as the IP addresses that requests originate from or the values of query strings, CloudFront responds to requests either with the requested content or with an HTTP 403 status code (Forbidden). You can also configure CloudFront to return a custom error page when a request is blocked. For more information about AWS WAF , see the `AWS WAF Developer Guide <https://docs.aws.amazon.com/waf/latest/developerguide/what-is-aws-waf.html>`_ . Default: - ""
6907
7349
 
@@ -7013,6 +7455,7 @@ class CfnDistribution(
7013
7455
  )],
7014
7456
  cnam_es=["cnamEs"],
7015
7457
  comment="comment",
7458
+ connection_mode="connectionMode",
7016
7459
  continuous_deployment_policy_id="continuousDeploymentPolicyId",
7017
7460
  custom_error_responses=[cloudfront.CfnDistribution.CustomErrorResponseProperty(
7018
7461
  error_code=123,
@@ -7116,6 +7559,20 @@ class CfnDistribution(
7116
7559
  origin_access_identity="originAccessIdentity"
7117
7560
  ),
7118
7561
  staging=False,
7562
+ tenant_config=cloudfront.CfnDistribution.TenantConfigProperty(
7563
+ parameter_definitions=[cloudfront.CfnDistribution.ParameterDefinitionProperty(
7564
+ definition=cloudfront.CfnDistribution.DefinitionProperty(
7565
+ string_schema=cloudfront.CfnDistribution.StringSchemaProperty(
7566
+ required=False,
7567
+
7568
+ # the properties below are optional
7569
+ comment="comment",
7570
+ default_value="defaultValue"
7571
+ )
7572
+ ),
7573
+ name="name"
7574
+ )]
7575
+ ),
7119
7576
  viewer_certificate=cloudfront.CfnDistribution.ViewerCertificateProperty(
7120
7577
  acm_certificate_arn="acmCertificateArn",
7121
7578
  cloud_front_default_certificate=False,
@@ -7135,6 +7592,7 @@ class CfnDistribution(
7135
7592
  check_type(argname="argument cache_behaviors", value=cache_behaviors, expected_type=type_hints["cache_behaviors"])
7136
7593
  check_type(argname="argument cnam_es", value=cnam_es, expected_type=type_hints["cnam_es"])
7137
7594
  check_type(argname="argument comment", value=comment, expected_type=type_hints["comment"])
7595
+ check_type(argname="argument connection_mode", value=connection_mode, expected_type=type_hints["connection_mode"])
7138
7596
  check_type(argname="argument continuous_deployment_policy_id", value=continuous_deployment_policy_id, expected_type=type_hints["continuous_deployment_policy_id"])
7139
7597
  check_type(argname="argument custom_error_responses", value=custom_error_responses, expected_type=type_hints["custom_error_responses"])
7140
7598
  check_type(argname="argument custom_origin", value=custom_origin, expected_type=type_hints["custom_origin"])
@@ -7148,6 +7606,7 @@ class CfnDistribution(
7148
7606
  check_type(argname="argument restrictions", value=restrictions, expected_type=type_hints["restrictions"])
7149
7607
  check_type(argname="argument s3_origin", value=s3_origin, expected_type=type_hints["s3_origin"])
7150
7608
  check_type(argname="argument staging", value=staging, expected_type=type_hints["staging"])
7609
+ check_type(argname="argument tenant_config", value=tenant_config, expected_type=type_hints["tenant_config"])
7151
7610
  check_type(argname="argument viewer_certificate", value=viewer_certificate, expected_type=type_hints["viewer_certificate"])
7152
7611
  check_type(argname="argument web_acl_id", value=web_acl_id, expected_type=type_hints["web_acl_id"])
7153
7612
  self._values: typing.Dict[builtins.str, typing.Any] = {
@@ -7164,6 +7623,8 @@ class CfnDistribution(
7164
7623
  self._values["cnam_es"] = cnam_es
7165
7624
  if comment is not None:
7166
7625
  self._values["comment"] = comment
7626
+ if connection_mode is not None:
7627
+ self._values["connection_mode"] = connection_mode
7167
7628
  if continuous_deployment_policy_id is not None:
7168
7629
  self._values["continuous_deployment_policy_id"] = continuous_deployment_policy_id
7169
7630
  if custom_error_responses is not None:
@@ -7190,6 +7651,8 @@ class CfnDistribution(
7190
7651
  self._values["s3_origin"] = s3_origin
7191
7652
  if staging is not None:
7192
7653
  self._values["staging"] = staging
7654
+ if tenant_config is not None:
7655
+ self._values["tenant_config"] = tenant_config
7193
7656
  if viewer_certificate is not None:
7194
7657
  self._values["viewer_certificate"] = viewer_certificate
7195
7658
  if web_acl_id is not None:
@@ -7274,6 +7737,14 @@ class CfnDistribution(
7274
7737
  result = self._values.get("comment")
7275
7738
  return typing.cast(typing.Optional[builtins.str], result)
7276
7739
 
7740
+ @builtins.property
7741
+ def connection_mode(self) -> typing.Optional[builtins.str]:
7742
+ '''
7743
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html#cfn-cloudfront-distribution-distributionconfig-connectionmode
7744
+ '''
7745
+ result = self._values.get("connection_mode")
7746
+ return typing.cast(typing.Optional[builtins.str], result)
7747
+
7277
7748
  @builtins.property
7278
7749
  def continuous_deployment_policy_id(self) -> typing.Optional[builtins.str]:
7279
7750
  '''The identifier of a continuous deployment policy.
@@ -7475,6 +7946,16 @@ class CfnDistribution(
7475
7946
  result = self._values.get("staging")
7476
7947
  return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
7477
7948
 
7949
+ @builtins.property
7950
+ def tenant_config(
7951
+ self,
7952
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnDistribution.TenantConfigProperty"]]:
7953
+ '''
7954
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html#cfn-cloudfront-distribution-distributionconfig-tenantconfig
7955
+ '''
7956
+ result = self._values.get("tenant_config")
7957
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnDistribution.TenantConfigProperty"]], result)
7958
+
7478
7959
  @builtins.property
7479
7960
  def viewer_certificate(
7480
7961
  self,
@@ -9019,75 +9500,1573 @@ class CfnDistribution(
9019
9500
  def origin_access_control_id(self) -> typing.Optional[builtins.str]:
9020
9501
  '''The unique identifier of an origin access control for this origin.
9021
9502
 
9022
- For more information, see `Restricting access to an Amazon S3 origin <https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html>`_ in the *Amazon CloudFront Developer Guide* .
9503
+ For more information, see `Restricting access to an Amazon S3 origin <https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html>`_ in the *Amazon CloudFront Developer Guide* .
9504
+
9505
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origin.html#cfn-cloudfront-distribution-origin-originaccesscontrolid
9506
+ '''
9507
+ result = self._values.get("origin_access_control_id")
9508
+ return typing.cast(typing.Optional[builtins.str], result)
9509
+
9510
+ @builtins.property
9511
+ def origin_custom_headers(
9512
+ self,
9513
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnDistribution.OriginCustomHeaderProperty"]]]]:
9514
+ '''A list of HTTP header names and values that CloudFront adds to the requests that it sends to the origin.
9515
+
9516
+ For more information, see `Adding Custom Headers to Origin Requests <https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/add-origin-custom-headers.html>`_ in the *Amazon CloudFront Developer Guide* .
9517
+
9518
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origin.html#cfn-cloudfront-distribution-origin-origincustomheaders
9519
+ '''
9520
+ result = self._values.get("origin_custom_headers")
9521
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnDistribution.OriginCustomHeaderProperty"]]]], result)
9522
+
9523
+ @builtins.property
9524
+ def origin_path(self) -> typing.Optional[builtins.str]:
9525
+ '''An optional path that CloudFront appends to the origin domain name when CloudFront requests content from the origin.
9526
+
9527
+ For more information, see `Origin Path <https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginPath>`_ in the *Amazon CloudFront Developer Guide* .
9528
+
9529
+ :default: - ""
9530
+
9531
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origin.html#cfn-cloudfront-distribution-origin-originpath
9532
+ '''
9533
+ result = self._values.get("origin_path")
9534
+ return typing.cast(typing.Optional[builtins.str], result)
9535
+
9536
+ @builtins.property
9537
+ def origin_shield(
9538
+ self,
9539
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnDistribution.OriginShieldProperty"]]:
9540
+ '''CloudFront Origin Shield. Using Origin Shield can help reduce the load on your origin.
9541
+
9542
+ For more information, see `Using Origin Shield <https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/origin-shield.html>`_ in the *Amazon CloudFront Developer Guide* .
9543
+
9544
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origin.html#cfn-cloudfront-distribution-origin-originshield
9545
+ '''
9546
+ result = self._values.get("origin_shield")
9547
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnDistribution.OriginShieldProperty"]], result)
9548
+
9549
+ @builtins.property
9550
+ def s3_origin_config(
9551
+ self,
9552
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnDistribution.S3OriginConfigProperty"]]:
9553
+ '''Use this type to specify an origin that is an Amazon S3 bucket that is not configured with static website hosting.
9554
+
9555
+ To specify any other type of origin, including an Amazon S3 bucket that is configured with static website hosting, use the ``CustomOriginConfig`` type instead.
9556
+
9557
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origin.html#cfn-cloudfront-distribution-origin-s3originconfig
9558
+ '''
9559
+ result = self._values.get("s3_origin_config")
9560
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnDistribution.S3OriginConfigProperty"]], result)
9561
+
9562
+ @builtins.property
9563
+ def vpc_origin_config(
9564
+ self,
9565
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnDistribution.VpcOriginConfigProperty"]]:
9566
+ '''The VPC origin configuration.
9567
+
9568
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origin.html#cfn-cloudfront-distribution-origin-vpcoriginconfig
9569
+ '''
9570
+ result = self._values.get("vpc_origin_config")
9571
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnDistribution.VpcOriginConfigProperty"]], result)
9572
+
9573
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
9574
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
9575
+
9576
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
9577
+ return not (rhs == self)
9578
+
9579
+ def __repr__(self) -> str:
9580
+ return "OriginProperty(%s)" % ", ".join(
9581
+ k + "=" + repr(v) for k, v in self._values.items()
9582
+ )
9583
+
9584
+ @jsii.data_type(
9585
+ jsii_type="aws-cdk-lib.aws_cloudfront.CfnDistribution.OriginShieldProperty",
9586
+ jsii_struct_bases=[],
9587
+ name_mapping={
9588
+ "enabled": "enabled",
9589
+ "origin_shield_region": "originShieldRegion",
9590
+ },
9591
+ )
9592
+ class OriginShieldProperty:
9593
+ def __init__(
9594
+ self,
9595
+ *,
9596
+ enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
9597
+ origin_shield_region: typing.Optional[builtins.str] = None,
9598
+ ) -> None:
9599
+ '''CloudFront Origin Shield.
9600
+
9601
+ Using Origin Shield can help reduce the load on your origin. For more information, see `Using Origin Shield <https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/origin-shield.html>`_ in the *Amazon CloudFront Developer Guide* .
9602
+
9603
+ :param enabled: A flag that specifies whether Origin Shield is enabled. When it's enabled, CloudFront routes all requests through Origin Shield, which can help protect your origin. When it's disabled, CloudFront might send requests directly to your origin from multiple edge locations or regional edge caches.
9604
+ :param origin_shield_region: The AWS Region for Origin Shield. Specify the AWS Region that has the lowest latency to your origin. To specify a region, use the region code, not the region name. For example, specify the US East (Ohio) region as ``us-east-2`` . When you enable CloudFront Origin Shield, you must specify the AWS Region for Origin Shield. For the list of AWS Regions that you can specify, and for help choosing the best Region for your origin, see `Choosing the AWS Region for Origin Shield <https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/origin-shield.html#choose-origin-shield-region>`_ in the *Amazon CloudFront Developer Guide* .
9605
+
9606
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-originshield.html
9607
+ :exampleMetadata: fixture=_generated
9608
+
9609
+ Example::
9610
+
9611
+ # The code below shows an example of how to instantiate this type.
9612
+ # The values are placeholders you should change.
9613
+ from aws_cdk import aws_cloudfront as cloudfront
9614
+
9615
+ origin_shield_property = cloudfront.CfnDistribution.OriginShieldProperty(
9616
+ enabled=False,
9617
+ origin_shield_region="originShieldRegion"
9618
+ )
9619
+ '''
9620
+ if __debug__:
9621
+ type_hints = typing.get_type_hints(_typecheckingstub__d2a25e92d5905a4c19d3636ff8b631afa34a538497a13fa9d29e56ca404539e4)
9622
+ check_type(argname="argument enabled", value=enabled, expected_type=type_hints["enabled"])
9623
+ check_type(argname="argument origin_shield_region", value=origin_shield_region, expected_type=type_hints["origin_shield_region"])
9624
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
9625
+ if enabled is not None:
9626
+ self._values["enabled"] = enabled
9627
+ if origin_shield_region is not None:
9628
+ self._values["origin_shield_region"] = origin_shield_region
9629
+
9630
+ @builtins.property
9631
+ def enabled(
9632
+ self,
9633
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
9634
+ '''A flag that specifies whether Origin Shield is enabled.
9635
+
9636
+ When it's enabled, CloudFront routes all requests through Origin Shield, which can help protect your origin. When it's disabled, CloudFront might send requests directly to your origin from multiple edge locations or regional edge caches.
9637
+
9638
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-originshield.html#cfn-cloudfront-distribution-originshield-enabled
9639
+ '''
9640
+ result = self._values.get("enabled")
9641
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
9642
+
9643
+ @builtins.property
9644
+ def origin_shield_region(self) -> typing.Optional[builtins.str]:
9645
+ '''The AWS Region for Origin Shield.
9646
+
9647
+ Specify the AWS Region that has the lowest latency to your origin. To specify a region, use the region code, not the region name. For example, specify the US East (Ohio) region as ``us-east-2`` .
9648
+
9649
+ When you enable CloudFront Origin Shield, you must specify the AWS Region for Origin Shield. For the list of AWS Regions that you can specify, and for help choosing the best Region for your origin, see `Choosing the AWS Region for Origin Shield <https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/origin-shield.html#choose-origin-shield-region>`_ in the *Amazon CloudFront Developer Guide* .
9650
+
9651
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-originshield.html#cfn-cloudfront-distribution-originshield-originshieldregion
9652
+ '''
9653
+ result = self._values.get("origin_shield_region")
9654
+ return typing.cast(typing.Optional[builtins.str], result)
9655
+
9656
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
9657
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
9658
+
9659
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
9660
+ return not (rhs == self)
9661
+
9662
+ def __repr__(self) -> str:
9663
+ return "OriginShieldProperty(%s)" % ", ".join(
9664
+ k + "=" + repr(v) for k, v in self._values.items()
9665
+ )
9666
+
9667
+ @jsii.data_type(
9668
+ jsii_type="aws-cdk-lib.aws_cloudfront.CfnDistribution.ParameterDefinitionProperty",
9669
+ jsii_struct_bases=[],
9670
+ name_mapping={"definition": "definition", "name": "name"},
9671
+ )
9672
+ class ParameterDefinitionProperty:
9673
+ def __init__(
9674
+ self,
9675
+ *,
9676
+ definition: typing.Union[_IResolvable_da3f097b, typing.Union["CfnDistribution.DefinitionProperty", typing.Dict[builtins.str, typing.Any]]],
9677
+ name: builtins.str,
9678
+ ) -> None:
9679
+ '''
9680
+ :param definition:
9681
+ :param name:
9682
+
9683
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-parameterdefinition.html
9684
+ :exampleMetadata: fixture=_generated
9685
+
9686
+ Example::
9687
+
9688
+ # The code below shows an example of how to instantiate this type.
9689
+ # The values are placeholders you should change.
9690
+ from aws_cdk import aws_cloudfront as cloudfront
9691
+
9692
+ parameter_definition_property = cloudfront.CfnDistribution.ParameterDefinitionProperty(
9693
+ definition=cloudfront.CfnDistribution.DefinitionProperty(
9694
+ string_schema=cloudfront.CfnDistribution.StringSchemaProperty(
9695
+ required=False,
9696
+
9697
+ # the properties below are optional
9698
+ comment="comment",
9699
+ default_value="defaultValue"
9700
+ )
9701
+ ),
9702
+ name="name"
9703
+ )
9704
+ '''
9705
+ if __debug__:
9706
+ type_hints = typing.get_type_hints(_typecheckingstub__d3077fc2475a570e548a4c766c77d7d863c9b4298e77dbf52c861eb303170cbd)
9707
+ check_type(argname="argument definition", value=definition, expected_type=type_hints["definition"])
9708
+ check_type(argname="argument name", value=name, expected_type=type_hints["name"])
9709
+ self._values: typing.Dict[builtins.str, typing.Any] = {
9710
+ "definition": definition,
9711
+ "name": name,
9712
+ }
9713
+
9714
+ @builtins.property
9715
+ def definition(
9716
+ self,
9717
+ ) -> typing.Union[_IResolvable_da3f097b, "CfnDistribution.DefinitionProperty"]:
9718
+ '''
9719
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-parameterdefinition.html#cfn-cloudfront-distribution-parameterdefinition-definition
9720
+ '''
9721
+ result = self._values.get("definition")
9722
+ assert result is not None, "Required property 'definition' is missing"
9723
+ return typing.cast(typing.Union[_IResolvable_da3f097b, "CfnDistribution.DefinitionProperty"], result)
9724
+
9725
+ @builtins.property
9726
+ def name(self) -> builtins.str:
9727
+ '''
9728
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-parameterdefinition.html#cfn-cloudfront-distribution-parameterdefinition-name
9729
+ '''
9730
+ result = self._values.get("name")
9731
+ assert result is not None, "Required property 'name' is missing"
9732
+ return typing.cast(builtins.str, result)
9733
+
9734
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
9735
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
9736
+
9737
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
9738
+ return not (rhs == self)
9739
+
9740
+ def __repr__(self) -> str:
9741
+ return "ParameterDefinitionProperty(%s)" % ", ".join(
9742
+ k + "=" + repr(v) for k, v in self._values.items()
9743
+ )
9744
+
9745
+ @jsii.data_type(
9746
+ jsii_type="aws-cdk-lib.aws_cloudfront.CfnDistribution.RestrictionsProperty",
9747
+ jsii_struct_bases=[],
9748
+ name_mapping={"geo_restriction": "geoRestriction"},
9749
+ )
9750
+ class RestrictionsProperty:
9751
+ def __init__(
9752
+ self,
9753
+ *,
9754
+ geo_restriction: typing.Union[_IResolvable_da3f097b, typing.Union["CfnDistribution.GeoRestrictionProperty", typing.Dict[builtins.str, typing.Any]]],
9755
+ ) -> None:
9756
+ '''A complex type that identifies ways in which you want to restrict distribution of your content.
9757
+
9758
+ :param geo_restriction: A complex type that controls the countries in which your content is distributed. CloudFront determines the location of your users using ``MaxMind`` GeoIP databases. To disable geo restriction, remove the `Restrictions <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html#cfn-cloudfront-distribution-distributionconfig-restrictions>`_ property from your stack template.
9759
+
9760
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-restrictions.html
9761
+ :exampleMetadata: fixture=_generated
9762
+
9763
+ Example::
9764
+
9765
+ # The code below shows an example of how to instantiate this type.
9766
+ # The values are placeholders you should change.
9767
+ from aws_cdk import aws_cloudfront as cloudfront
9768
+
9769
+ restrictions_property = cloudfront.CfnDistribution.RestrictionsProperty(
9770
+ geo_restriction=cloudfront.CfnDistribution.GeoRestrictionProperty(
9771
+ restriction_type="restrictionType",
9772
+
9773
+ # the properties below are optional
9774
+ locations=["locations"]
9775
+ )
9776
+ )
9777
+ '''
9778
+ if __debug__:
9779
+ type_hints = typing.get_type_hints(_typecheckingstub__4deb0a9215bd7c703383e0e2be801747efa09772f2b073423550aa9638220c0d)
9780
+ check_type(argname="argument geo_restriction", value=geo_restriction, expected_type=type_hints["geo_restriction"])
9781
+ self._values: typing.Dict[builtins.str, typing.Any] = {
9782
+ "geo_restriction": geo_restriction,
9783
+ }
9784
+
9785
+ @builtins.property
9786
+ def geo_restriction(
9787
+ self,
9788
+ ) -> typing.Union[_IResolvable_da3f097b, "CfnDistribution.GeoRestrictionProperty"]:
9789
+ '''A complex type that controls the countries in which your content is distributed.
9790
+
9791
+ CloudFront determines the location of your users using ``MaxMind`` GeoIP databases. To disable geo restriction, remove the `Restrictions <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html#cfn-cloudfront-distribution-distributionconfig-restrictions>`_ property from your stack template.
9792
+
9793
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-restrictions.html#cfn-cloudfront-distribution-restrictions-georestriction
9794
+ '''
9795
+ result = self._values.get("geo_restriction")
9796
+ assert result is not None, "Required property 'geo_restriction' is missing"
9797
+ return typing.cast(typing.Union[_IResolvable_da3f097b, "CfnDistribution.GeoRestrictionProperty"], result)
9798
+
9799
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
9800
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
9801
+
9802
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
9803
+ return not (rhs == self)
9804
+
9805
+ def __repr__(self) -> str:
9806
+ return "RestrictionsProperty(%s)" % ", ".join(
9807
+ k + "=" + repr(v) for k, v in self._values.items()
9808
+ )
9809
+
9810
+ @jsii.data_type(
9811
+ jsii_type="aws-cdk-lib.aws_cloudfront.CfnDistribution.S3OriginConfigProperty",
9812
+ jsii_struct_bases=[],
9813
+ name_mapping={"origin_access_identity": "originAccessIdentity"},
9814
+ )
9815
+ class S3OriginConfigProperty:
9816
+ def __init__(
9817
+ self,
9818
+ *,
9819
+ origin_access_identity: typing.Optional[builtins.str] = None,
9820
+ ) -> None:
9821
+ '''A complex type that contains information about the Amazon S3 origin.
9822
+
9823
+ If the origin is a custom origin or an S3 bucket that is configured as a website endpoint, use the ``CustomOriginConfig`` element instead.
9824
+
9825
+ :param origin_access_identity: .. epigraph:: If you're using origin access control (OAC) instead of origin access identity, specify an empty ``OriginAccessIdentity`` element. For more information, see `Restricting access to an AWS <https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-origin.html>`_ in the *Amazon CloudFront Developer Guide* . The CloudFront origin access identity to associate with the origin. Use an origin access identity to configure the origin so that viewers can *only* access objects in an Amazon S3 bucket through CloudFront. The format of the value is: ``origin-access-identity/cloudfront/ID-of-origin-access-identity`` The ``*ID-of-origin-access-identity*`` is the value that CloudFront returned in the ``ID`` element when you created the origin access identity. If you want viewers to be able to access objects using either the CloudFront URL or the Amazon S3 URL, specify an empty ``OriginAccessIdentity`` element. To delete the origin access identity from an existing distribution, update the distribution configuration and include an empty ``OriginAccessIdentity`` element. To replace the origin access identity, update the distribution configuration and specify the new origin access identity. For more information about the origin access identity, see `Serving Private Content through CloudFront <https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html>`_ in the *Amazon CloudFront Developer Guide* . Default: - ""
9826
+
9827
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-s3originconfig.html
9828
+ :exampleMetadata: fixture=_generated
9829
+
9830
+ Example::
9831
+
9832
+ # The code below shows an example of how to instantiate this type.
9833
+ # The values are placeholders you should change.
9834
+ from aws_cdk import aws_cloudfront as cloudfront
9835
+
9836
+ s3_origin_config_property = cloudfront.CfnDistribution.S3OriginConfigProperty(
9837
+ origin_access_identity="originAccessIdentity"
9838
+ )
9839
+ '''
9840
+ if __debug__:
9841
+ type_hints = typing.get_type_hints(_typecheckingstub__8d9ff629693eb9bcb66704ce461d05e62e0755b651cbbc7ead2b89151325cad7)
9842
+ check_type(argname="argument origin_access_identity", value=origin_access_identity, expected_type=type_hints["origin_access_identity"])
9843
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
9844
+ if origin_access_identity is not None:
9845
+ self._values["origin_access_identity"] = origin_access_identity
9846
+
9847
+ @builtins.property
9848
+ def origin_access_identity(self) -> typing.Optional[builtins.str]:
9849
+ '''.. epigraph::
9850
+
9851
+ If you're using origin access control (OAC) instead of origin access identity, specify an empty ``OriginAccessIdentity`` element.
9852
+
9853
+ For more information, see `Restricting access to an AWS <https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-origin.html>`_ in the *Amazon CloudFront Developer Guide* .
9854
+
9855
+ The CloudFront origin access identity to associate with the origin. Use an origin access identity to configure the origin so that viewers can *only* access objects in an Amazon S3 bucket through CloudFront. The format of the value is:
9856
+
9857
+ ``origin-access-identity/cloudfront/ID-of-origin-access-identity``
9858
+
9859
+ The ``*ID-of-origin-access-identity*`` is the value that CloudFront returned in the ``ID`` element when you created the origin access identity.
9860
+
9861
+ If you want viewers to be able to access objects using either the CloudFront URL or the Amazon S3 URL, specify an empty ``OriginAccessIdentity`` element.
9862
+
9863
+ To delete the origin access identity from an existing distribution, update the distribution configuration and include an empty ``OriginAccessIdentity`` element.
9864
+
9865
+ To replace the origin access identity, update the distribution configuration and specify the new origin access identity.
9866
+
9867
+ For more information about the origin access identity, see `Serving Private Content through CloudFront <https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html>`_ in the *Amazon CloudFront Developer Guide* .
9868
+
9869
+ :default: - ""
9870
+
9871
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-s3originconfig.html#cfn-cloudfront-distribution-s3originconfig-originaccessidentity
9872
+ '''
9873
+ result = self._values.get("origin_access_identity")
9874
+ return typing.cast(typing.Optional[builtins.str], result)
9875
+
9876
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
9877
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
9878
+
9879
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
9880
+ return not (rhs == self)
9881
+
9882
+ def __repr__(self) -> str:
9883
+ return "S3OriginConfigProperty(%s)" % ", ".join(
9884
+ k + "=" + repr(v) for k, v in self._values.items()
9885
+ )
9886
+
9887
+ @jsii.data_type(
9888
+ jsii_type="aws-cdk-lib.aws_cloudfront.CfnDistribution.StatusCodesProperty",
9889
+ jsii_struct_bases=[],
9890
+ name_mapping={"items": "items", "quantity": "quantity"},
9891
+ )
9892
+ class StatusCodesProperty:
9893
+ def __init__(
9894
+ self,
9895
+ *,
9896
+ items: typing.Union[typing.Sequence[jsii.Number], _IResolvable_da3f097b],
9897
+ quantity: jsii.Number,
9898
+ ) -> None:
9899
+ '''A complex data type for the status codes that you specify that, when returned by a primary origin, trigger CloudFront to failover to a second origin.
9900
+
9901
+ :param items: The items (status codes) for an origin group.
9902
+ :param quantity: The number of status codes.
9903
+
9904
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-statuscodes.html
9905
+ :exampleMetadata: fixture=_generated
9906
+
9907
+ Example::
9908
+
9909
+ # The code below shows an example of how to instantiate this type.
9910
+ # The values are placeholders you should change.
9911
+ from aws_cdk import aws_cloudfront as cloudfront
9912
+
9913
+ status_codes_property = cloudfront.CfnDistribution.StatusCodesProperty(
9914
+ items=[123],
9915
+ quantity=123
9916
+ )
9917
+ '''
9918
+ if __debug__:
9919
+ type_hints = typing.get_type_hints(_typecheckingstub__7b8b62ce6bf1ec6151566719caf2d665f3f7fea596e402fba7354f19f781f23c)
9920
+ check_type(argname="argument items", value=items, expected_type=type_hints["items"])
9921
+ check_type(argname="argument quantity", value=quantity, expected_type=type_hints["quantity"])
9922
+ self._values: typing.Dict[builtins.str, typing.Any] = {
9923
+ "items": items,
9924
+ "quantity": quantity,
9925
+ }
9926
+
9927
+ @builtins.property
9928
+ def items(
9929
+ self,
9930
+ ) -> typing.Union[typing.List[jsii.Number], _IResolvable_da3f097b]:
9931
+ '''The items (status codes) for an origin group.
9932
+
9933
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-statuscodes.html#cfn-cloudfront-distribution-statuscodes-items
9934
+ '''
9935
+ result = self._values.get("items")
9936
+ assert result is not None, "Required property 'items' is missing"
9937
+ return typing.cast(typing.Union[typing.List[jsii.Number], _IResolvable_da3f097b], result)
9938
+
9939
+ @builtins.property
9940
+ def quantity(self) -> jsii.Number:
9941
+ '''The number of status codes.
9942
+
9943
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-statuscodes.html#cfn-cloudfront-distribution-statuscodes-quantity
9944
+ '''
9945
+ result = self._values.get("quantity")
9946
+ assert result is not None, "Required property 'quantity' is missing"
9947
+ return typing.cast(jsii.Number, result)
9948
+
9949
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
9950
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
9951
+
9952
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
9953
+ return not (rhs == self)
9954
+
9955
+ def __repr__(self) -> str:
9956
+ return "StatusCodesProperty(%s)" % ", ".join(
9957
+ k + "=" + repr(v) for k, v in self._values.items()
9958
+ )
9959
+
9960
+ @jsii.data_type(
9961
+ jsii_type="aws-cdk-lib.aws_cloudfront.CfnDistribution.StringSchemaProperty",
9962
+ jsii_struct_bases=[],
9963
+ name_mapping={
9964
+ "required": "required",
9965
+ "comment": "comment",
9966
+ "default_value": "defaultValue",
9967
+ },
9968
+ )
9969
+ class StringSchemaProperty:
9970
+ def __init__(
9971
+ self,
9972
+ *,
9973
+ required: typing.Union[builtins.bool, _IResolvable_da3f097b],
9974
+ comment: typing.Optional[builtins.str] = None,
9975
+ default_value: typing.Optional[builtins.str] = None,
9976
+ ) -> None:
9977
+ '''
9978
+ :param required:
9979
+ :param comment:
9980
+ :param default_value:
9981
+
9982
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-stringschema.html
9983
+ :exampleMetadata: fixture=_generated
9984
+
9985
+ Example::
9986
+
9987
+ # The code below shows an example of how to instantiate this type.
9988
+ # The values are placeholders you should change.
9989
+ from aws_cdk import aws_cloudfront as cloudfront
9990
+
9991
+ string_schema_property = cloudfront.CfnDistribution.StringSchemaProperty(
9992
+ required=False,
9993
+
9994
+ # the properties below are optional
9995
+ comment="comment",
9996
+ default_value="defaultValue"
9997
+ )
9998
+ '''
9999
+ if __debug__:
10000
+ type_hints = typing.get_type_hints(_typecheckingstub__063da7cd247f9f65fbf71edf06b732e35e339a5952e2f2bf8ccd5eee1c5611d8)
10001
+ check_type(argname="argument required", value=required, expected_type=type_hints["required"])
10002
+ check_type(argname="argument comment", value=comment, expected_type=type_hints["comment"])
10003
+ check_type(argname="argument default_value", value=default_value, expected_type=type_hints["default_value"])
10004
+ self._values: typing.Dict[builtins.str, typing.Any] = {
10005
+ "required": required,
10006
+ }
10007
+ if comment is not None:
10008
+ self._values["comment"] = comment
10009
+ if default_value is not None:
10010
+ self._values["default_value"] = default_value
10011
+
10012
+ @builtins.property
10013
+ def required(self) -> typing.Union[builtins.bool, _IResolvable_da3f097b]:
10014
+ '''
10015
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-stringschema.html#cfn-cloudfront-distribution-stringschema-required
10016
+ '''
10017
+ result = self._values.get("required")
10018
+ assert result is not None, "Required property 'required' is missing"
10019
+ return typing.cast(typing.Union[builtins.bool, _IResolvable_da3f097b], result)
10020
+
10021
+ @builtins.property
10022
+ def comment(self) -> typing.Optional[builtins.str]:
10023
+ '''
10024
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-stringschema.html#cfn-cloudfront-distribution-stringschema-comment
10025
+ '''
10026
+ result = self._values.get("comment")
10027
+ return typing.cast(typing.Optional[builtins.str], result)
10028
+
10029
+ @builtins.property
10030
+ def default_value(self) -> typing.Optional[builtins.str]:
10031
+ '''
10032
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-stringschema.html#cfn-cloudfront-distribution-stringschema-defaultvalue
10033
+ '''
10034
+ result = self._values.get("default_value")
10035
+ return typing.cast(typing.Optional[builtins.str], result)
10036
+
10037
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
10038
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
10039
+
10040
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
10041
+ return not (rhs == self)
10042
+
10043
+ def __repr__(self) -> str:
10044
+ return "StringSchemaProperty(%s)" % ", ".join(
10045
+ k + "=" + repr(v) for k, v in self._values.items()
10046
+ )
10047
+
10048
+ @jsii.data_type(
10049
+ jsii_type="aws-cdk-lib.aws_cloudfront.CfnDistribution.TenantConfigProperty",
10050
+ jsii_struct_bases=[],
10051
+ name_mapping={"parameter_definitions": "parameterDefinitions"},
10052
+ )
10053
+ class TenantConfigProperty:
10054
+ def __init__(
10055
+ self,
10056
+ *,
10057
+ parameter_definitions: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnDistribution.ParameterDefinitionProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
10058
+ ) -> None:
10059
+ '''
10060
+ :param parameter_definitions:
10061
+
10062
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-tenantconfig.html
10063
+ :exampleMetadata: fixture=_generated
10064
+
10065
+ Example::
10066
+
10067
+ # The code below shows an example of how to instantiate this type.
10068
+ # The values are placeholders you should change.
10069
+ from aws_cdk import aws_cloudfront as cloudfront
10070
+
10071
+ tenant_config_property = cloudfront.CfnDistribution.TenantConfigProperty(
10072
+ parameter_definitions=[cloudfront.CfnDistribution.ParameterDefinitionProperty(
10073
+ definition=cloudfront.CfnDistribution.DefinitionProperty(
10074
+ string_schema=cloudfront.CfnDistribution.StringSchemaProperty(
10075
+ required=False,
10076
+
10077
+ # the properties below are optional
10078
+ comment="comment",
10079
+ default_value="defaultValue"
10080
+ )
10081
+ ),
10082
+ name="name"
10083
+ )]
10084
+ )
10085
+ '''
10086
+ if __debug__:
10087
+ type_hints = typing.get_type_hints(_typecheckingstub__d2edbb1e96d7cdd1ba9da9c2eb778117b7b4726ec0bcf6cf55c64bbbdba19541)
10088
+ check_type(argname="argument parameter_definitions", value=parameter_definitions, expected_type=type_hints["parameter_definitions"])
10089
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
10090
+ if parameter_definitions is not None:
10091
+ self._values["parameter_definitions"] = parameter_definitions
10092
+
10093
+ @builtins.property
10094
+ def parameter_definitions(
10095
+ self,
10096
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnDistribution.ParameterDefinitionProperty"]]]]:
10097
+ '''
10098
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-tenantconfig.html#cfn-cloudfront-distribution-tenantconfig-parameterdefinitions
10099
+ '''
10100
+ result = self._values.get("parameter_definitions")
10101
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnDistribution.ParameterDefinitionProperty"]]]], result)
10102
+
10103
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
10104
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
10105
+
10106
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
10107
+ return not (rhs == self)
10108
+
10109
+ def __repr__(self) -> str:
10110
+ return "TenantConfigProperty(%s)" % ", ".join(
10111
+ k + "=" + repr(v) for k, v in self._values.items()
10112
+ )
10113
+
10114
+ @jsii.data_type(
10115
+ jsii_type="aws-cdk-lib.aws_cloudfront.CfnDistribution.ViewerCertificateProperty",
10116
+ jsii_struct_bases=[],
10117
+ name_mapping={
10118
+ "acm_certificate_arn": "acmCertificateArn",
10119
+ "cloud_front_default_certificate": "cloudFrontDefaultCertificate",
10120
+ "iam_certificate_id": "iamCertificateId",
10121
+ "minimum_protocol_version": "minimumProtocolVersion",
10122
+ "ssl_support_method": "sslSupportMethod",
10123
+ },
10124
+ )
10125
+ class ViewerCertificateProperty:
10126
+ def __init__(
10127
+ self,
10128
+ *,
10129
+ acm_certificate_arn: typing.Optional[builtins.str] = None,
10130
+ cloud_front_default_certificate: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
10131
+ iam_certificate_id: typing.Optional[builtins.str] = None,
10132
+ minimum_protocol_version: typing.Optional[builtins.str] = None,
10133
+ ssl_support_method: typing.Optional[builtins.str] = None,
10134
+ ) -> None:
10135
+ '''A complex type that determines the distribution's SSL/TLS configuration for communicating with viewers.
10136
+
10137
+ If the distribution doesn't use ``Aliases`` (also known as alternate domain names or CNAMEs)—that is, if the distribution uses the CloudFront domain name such as ``d111111abcdef8.cloudfront.net`` —set ``CloudFrontDefaultCertificate`` to ``true`` and leave all other fields empty.
10138
+
10139
+ If the distribution uses ``Aliases`` (alternate domain names or CNAMEs), use the fields in this type to specify the following settings:
10140
+
10141
+ - Which viewers the distribution accepts HTTPS connections from: only viewers that support `server name indication (SNI) <https://docs.aws.amazon.com/https://en.wikipedia.org/wiki/Server_Name_Indication>`_ (recommended), or all viewers including those that don't support SNI.
10142
+ - To accept HTTPS connections from only viewers that support SNI, set ``SSLSupportMethod`` to ``sni-only`` . This is recommended. Most browsers and clients support SNI. (In CloudFormation, the field name is ``SslSupportMethod`` . Note the different capitalization.)
10143
+ - To accept HTTPS connections from all viewers, including those that don't support SNI, set ``SSLSupportMethod`` to ``vip`` . This is not recommended, and results in additional monthly charges from CloudFront. (In CloudFormation, the field name is ``SslSupportMethod`` . Note the different capitalization.)
10144
+ - The minimum SSL/TLS protocol version that the distribution can use to communicate with viewers. To specify a minimum version, choose a value for ``MinimumProtocolVersion`` . For more information, see `Security Policy <https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValues-security-policy>`_ in the *Amazon CloudFront Developer Guide* .
10145
+ - The location of the SSL/TLS certificate, `AWS Certificate Manager (ACM) <https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html>`_ (recommended) or `AWS Identity and Access Management (IAM) <https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html>`_ . You specify the location by setting a value in one of the following fields (not both):
10146
+ - ``ACMCertificateArn`` (In CloudFormation, this field name is ``AcmCertificateArn`` . Note the different capitalization.)
10147
+ - ``IAMCertificateId`` (In CloudFormation, this field name is ``IamCertificateId`` . Note the different capitalization.)
10148
+
10149
+ All distributions support HTTPS connections from viewers. To require viewers to use HTTPS only, or to redirect them from HTTP to HTTPS, use ``ViewerProtocolPolicy`` in the ``CacheBehavior`` or ``DefaultCacheBehavior`` . To specify how CloudFront should use SSL/TLS to communicate with your custom origin, use ``CustomOriginConfig`` .
10150
+
10151
+ For more information, see `Using HTTPS with CloudFront <https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https.html>`_ and `Using Alternate Domain Names and HTTPS <https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-alternate-domain-names.html>`_ in the *Amazon CloudFront Developer Guide* .
10152
+
10153
+ :param acm_certificate_arn: .. epigraph:: In CloudFormation, this field name is ``AcmCertificateArn`` . Note the different capitalization. If the distribution uses ``Aliases`` (alternate domain names or CNAMEs) and the SSL/TLS certificate is stored in `AWS Certificate Manager (ACM) <https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html>`_ , provide the Amazon Resource Name (ARN) of the ACM certificate. CloudFront only supports ACM certificates in the US East (N. Virginia) Region ( ``us-east-1`` ). If you specify an ACM certificate ARN, you must also specify values for ``MinimumProtocolVersion`` and ``SSLSupportMethod`` . (In CloudFormation, the field name is ``SslSupportMethod`` . Note the different capitalization.)
10154
+ :param cloud_front_default_certificate: If the distribution uses the CloudFront domain name such as ``d111111abcdef8.cloudfront.net`` , set this field to ``true`` . If the distribution uses ``Aliases`` (alternate domain names or CNAMEs), omit this field and specify values for the following fields: - ``AcmCertificateArn`` or ``IamCertificateId`` (specify a value for one, not both) - ``MinimumProtocolVersion`` - ``SslSupportMethod``
10155
+ :param iam_certificate_id: .. epigraph:: In CloudFormation, this field name is ``IamCertificateId`` . Note the different capitalization. If the distribution uses ``Aliases`` (alternate domain names or CNAMEs) and the SSL/TLS certificate is stored in `AWS Identity and Access Management (IAM) <https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html>`_ , provide the ID of the IAM certificate. If you specify an IAM certificate ID, you must also specify values for ``MinimumProtocolVersion`` and ``SSLSupportMethod`` . (In CloudFormation, the field name is ``SslSupportMethod`` . Note the different capitalization.)
10156
+ :param minimum_protocol_version: If the distribution uses ``Aliases`` (alternate domain names or CNAMEs), specify the security policy that you want CloudFront to use for HTTPS connections with viewers. The security policy determines two settings: - The minimum SSL/TLS protocol that CloudFront can use to communicate with viewers. - The ciphers that CloudFront can use to encrypt the content that it returns to viewers. For more information, see `Security Policy <https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValues-security-policy>`_ and `Supported Protocols and Ciphers Between Viewers and CloudFront <https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/secure-connections-supported-viewer-protocols-ciphers.html#secure-connections-supported-ciphers>`_ in the *Amazon CloudFront Developer Guide* . .. epigraph:: On the CloudFront console, this setting is called *Security Policy* . When you're using SNI only (you set ``SSLSupportMethod`` to ``sni-only`` ), you must specify ``TLSv1`` or higher. (In CloudFormation, the field name is ``SslSupportMethod`` . Note the different capitalization.) If the distribution uses the CloudFront domain name such as ``d111111abcdef8.cloudfront.net`` (you set ``CloudFrontDefaultCertificate`` to ``true`` ), CloudFront automatically sets the security policy to ``TLSv1`` regardless of the value that you set here.
10157
+ :param ssl_support_method: .. epigraph:: In CloudFormation, this field name is ``SslSupportMethod`` . Note the different capitalization. If the distribution uses ``Aliases`` (alternate domain names or CNAMEs), specify which viewers the distribution accepts HTTPS connections from. - ``sni-only`` – The distribution accepts HTTPS connections from only viewers that support `server name indication (SNI) <https://docs.aws.amazon.com/https://en.wikipedia.org/wiki/Server_Name_Indication>`_ . This is recommended. Most browsers and clients support SNI. - ``vip`` – The distribution accepts HTTPS connections from all viewers including those that don't support SNI. This is not recommended, and results in additional monthly charges from CloudFront. - ``static-ip`` - Do not specify this value unless your distribution has been enabled for this feature by the CloudFront team. If you have a use case that requires static IP addresses for a distribution, contact CloudFront through the `Support Center <https://docs.aws.amazon.com/support/home>`_ . If the distribution uses the CloudFront domain name such as ``d111111abcdef8.cloudfront.net`` , don't set a value for this field.
10158
+
10159
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-viewercertificate.html
10160
+ :exampleMetadata: fixture=_generated
10161
+
10162
+ Example::
10163
+
10164
+ # The code below shows an example of how to instantiate this type.
10165
+ # The values are placeholders you should change.
10166
+ from aws_cdk import aws_cloudfront as cloudfront
10167
+
10168
+ viewer_certificate_property = cloudfront.CfnDistribution.ViewerCertificateProperty(
10169
+ acm_certificate_arn="acmCertificateArn",
10170
+ cloud_front_default_certificate=False,
10171
+ iam_certificate_id="iamCertificateId",
10172
+ minimum_protocol_version="minimumProtocolVersion",
10173
+ ssl_support_method="sslSupportMethod"
10174
+ )
10175
+ '''
10176
+ if __debug__:
10177
+ type_hints = typing.get_type_hints(_typecheckingstub__511560286b35778c69f3d2a23120607f1ab2e58901f0c1ba7acd75a338eb699e)
10178
+ check_type(argname="argument acm_certificate_arn", value=acm_certificate_arn, expected_type=type_hints["acm_certificate_arn"])
10179
+ check_type(argname="argument cloud_front_default_certificate", value=cloud_front_default_certificate, expected_type=type_hints["cloud_front_default_certificate"])
10180
+ check_type(argname="argument iam_certificate_id", value=iam_certificate_id, expected_type=type_hints["iam_certificate_id"])
10181
+ check_type(argname="argument minimum_protocol_version", value=minimum_protocol_version, expected_type=type_hints["minimum_protocol_version"])
10182
+ check_type(argname="argument ssl_support_method", value=ssl_support_method, expected_type=type_hints["ssl_support_method"])
10183
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
10184
+ if acm_certificate_arn is not None:
10185
+ self._values["acm_certificate_arn"] = acm_certificate_arn
10186
+ if cloud_front_default_certificate is not None:
10187
+ self._values["cloud_front_default_certificate"] = cloud_front_default_certificate
10188
+ if iam_certificate_id is not None:
10189
+ self._values["iam_certificate_id"] = iam_certificate_id
10190
+ if minimum_protocol_version is not None:
10191
+ self._values["minimum_protocol_version"] = minimum_protocol_version
10192
+ if ssl_support_method is not None:
10193
+ self._values["ssl_support_method"] = ssl_support_method
10194
+
10195
+ @builtins.property
10196
+ def acm_certificate_arn(self) -> typing.Optional[builtins.str]:
10197
+ '''.. epigraph::
10198
+
10199
+ In CloudFormation, this field name is ``AcmCertificateArn`` . Note the different capitalization.
10200
+
10201
+ If the distribution uses ``Aliases`` (alternate domain names or CNAMEs) and the SSL/TLS certificate is stored in `AWS Certificate Manager (ACM) <https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html>`_ , provide the Amazon Resource Name (ARN) of the ACM certificate. CloudFront only supports ACM certificates in the US East (N. Virginia) Region ( ``us-east-1`` ).
10202
+
10203
+ If you specify an ACM certificate ARN, you must also specify values for ``MinimumProtocolVersion`` and ``SSLSupportMethod`` . (In CloudFormation, the field name is ``SslSupportMethod`` . Note the different capitalization.)
10204
+
10205
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-viewercertificate.html#cfn-cloudfront-distribution-viewercertificate-acmcertificatearn
10206
+ '''
10207
+ result = self._values.get("acm_certificate_arn")
10208
+ return typing.cast(typing.Optional[builtins.str], result)
10209
+
10210
+ @builtins.property
10211
+ def cloud_front_default_certificate(
10212
+ self,
10213
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
10214
+ '''If the distribution uses the CloudFront domain name such as ``d111111abcdef8.cloudfront.net`` , set this field to ``true`` .
10215
+
10216
+ If the distribution uses ``Aliases`` (alternate domain names or CNAMEs), omit this field and specify values for the following fields:
10217
+
10218
+ - ``AcmCertificateArn`` or ``IamCertificateId`` (specify a value for one, not both)
10219
+ - ``MinimumProtocolVersion``
10220
+ - ``SslSupportMethod``
10221
+
10222
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-viewercertificate.html#cfn-cloudfront-distribution-viewercertificate-cloudfrontdefaultcertificate
10223
+ '''
10224
+ result = self._values.get("cloud_front_default_certificate")
10225
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
10226
+
10227
+ @builtins.property
10228
+ def iam_certificate_id(self) -> typing.Optional[builtins.str]:
10229
+ '''.. epigraph::
10230
+
10231
+ In CloudFormation, this field name is ``IamCertificateId`` . Note the different capitalization.
10232
+
10233
+ If the distribution uses ``Aliases`` (alternate domain names or CNAMEs) and the SSL/TLS certificate is stored in `AWS Identity and Access Management (IAM) <https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html>`_ , provide the ID of the IAM certificate.
10234
+
10235
+ If you specify an IAM certificate ID, you must also specify values for ``MinimumProtocolVersion`` and ``SSLSupportMethod`` . (In CloudFormation, the field name is ``SslSupportMethod`` . Note the different capitalization.)
10236
+
10237
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-viewercertificate.html#cfn-cloudfront-distribution-viewercertificate-iamcertificateid
10238
+ '''
10239
+ result = self._values.get("iam_certificate_id")
10240
+ return typing.cast(typing.Optional[builtins.str], result)
10241
+
10242
+ @builtins.property
10243
+ def minimum_protocol_version(self) -> typing.Optional[builtins.str]:
10244
+ '''If the distribution uses ``Aliases`` (alternate domain names or CNAMEs), specify the security policy that you want CloudFront to use for HTTPS connections with viewers.
10245
+
10246
+ The security policy determines two settings:
10247
+
10248
+ - The minimum SSL/TLS protocol that CloudFront can use to communicate with viewers.
10249
+ - The ciphers that CloudFront can use to encrypt the content that it returns to viewers.
10250
+
10251
+ For more information, see `Security Policy <https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValues-security-policy>`_ and `Supported Protocols and Ciphers Between Viewers and CloudFront <https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/secure-connections-supported-viewer-protocols-ciphers.html#secure-connections-supported-ciphers>`_ in the *Amazon CloudFront Developer Guide* .
10252
+ .. epigraph::
10253
+
10254
+ On the CloudFront console, this setting is called *Security Policy* .
10255
+
10256
+ When you're using SNI only (you set ``SSLSupportMethod`` to ``sni-only`` ), you must specify ``TLSv1`` or higher. (In CloudFormation, the field name is ``SslSupportMethod`` . Note the different capitalization.)
10257
+
10258
+ If the distribution uses the CloudFront domain name such as ``d111111abcdef8.cloudfront.net`` (you set ``CloudFrontDefaultCertificate`` to ``true`` ), CloudFront automatically sets the security policy to ``TLSv1`` regardless of the value that you set here.
10259
+
10260
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-viewercertificate.html#cfn-cloudfront-distribution-viewercertificate-minimumprotocolversion
10261
+ '''
10262
+ result = self._values.get("minimum_protocol_version")
10263
+ return typing.cast(typing.Optional[builtins.str], result)
10264
+
10265
+ @builtins.property
10266
+ def ssl_support_method(self) -> typing.Optional[builtins.str]:
10267
+ '''.. epigraph::
10268
+
10269
+ In CloudFormation, this field name is ``SslSupportMethod`` . Note the different capitalization.
10270
+
10271
+ If the distribution uses ``Aliases`` (alternate domain names or CNAMEs), specify which viewers the distribution accepts HTTPS connections from.
10272
+
10273
+ - ``sni-only`` – The distribution accepts HTTPS connections from only viewers that support `server name indication (SNI) <https://docs.aws.amazon.com/https://en.wikipedia.org/wiki/Server_Name_Indication>`_ . This is recommended. Most browsers and clients support SNI.
10274
+ - ``vip`` – The distribution accepts HTTPS connections from all viewers including those that don't support SNI. This is not recommended, and results in additional monthly charges from CloudFront.
10275
+ - ``static-ip`` - Do not specify this value unless your distribution has been enabled for this feature by the CloudFront team. If you have a use case that requires static IP addresses for a distribution, contact CloudFront through the `Support Center <https://docs.aws.amazon.com/support/home>`_ .
10276
+
10277
+ If the distribution uses the CloudFront domain name such as ``d111111abcdef8.cloudfront.net`` , don't set a value for this field.
10278
+
10279
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-viewercertificate.html#cfn-cloudfront-distribution-viewercertificate-sslsupportmethod
10280
+ '''
10281
+ result = self._values.get("ssl_support_method")
10282
+ return typing.cast(typing.Optional[builtins.str], result)
10283
+
10284
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
10285
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
10286
+
10287
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
10288
+ return not (rhs == self)
10289
+
10290
+ def __repr__(self) -> str:
10291
+ return "ViewerCertificateProperty(%s)" % ", ".join(
10292
+ k + "=" + repr(v) for k, v in self._values.items()
10293
+ )
10294
+
10295
+ @jsii.data_type(
10296
+ jsii_type="aws-cdk-lib.aws_cloudfront.CfnDistribution.VpcOriginConfigProperty",
10297
+ jsii_struct_bases=[],
10298
+ name_mapping={
10299
+ "vpc_origin_id": "vpcOriginId",
10300
+ "origin_keepalive_timeout": "originKeepaliveTimeout",
10301
+ "origin_read_timeout": "originReadTimeout",
10302
+ },
10303
+ )
10304
+ class VpcOriginConfigProperty:
10305
+ def __init__(
10306
+ self,
10307
+ *,
10308
+ vpc_origin_id: builtins.str,
10309
+ origin_keepalive_timeout: typing.Optional[jsii.Number] = None,
10310
+ origin_read_timeout: typing.Optional[jsii.Number] = None,
10311
+ ) -> None:
10312
+ '''An Amazon CloudFront VPC origin configuration.
10313
+
10314
+ :param vpc_origin_id: The VPC origin ID.
10315
+ :param origin_keepalive_timeout: Specifies how long, in seconds, CloudFront persists its connection to the origin. The minimum timeout is 1 second, the maximum is 60 seconds, and the default (if you don't specify otherwise) is 5 seconds. For more information, see `Keep-alive timeout (custom origins only) <https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginKeepaliveTimeout>`_ in the *Amazon CloudFront Developer Guide* . Default: - 5
10316
+ :param origin_read_timeout: Specifies how long, in seconds, CloudFront waits for a response from the origin. This is also known as the *origin response timeout* . The minimum timeout is 1 second, the maximum is 60 seconds, and the default (if you don't specify otherwise) is 30 seconds. For more information, see `Response timeout (custom origins only) <https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginResponseTimeout>`_ in the *Amazon CloudFront Developer Guide* . Default: - 30
10317
+
10318
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-vpcoriginconfig.html
10319
+ :exampleMetadata: fixture=_generated
10320
+
10321
+ Example::
10322
+
10323
+ # The code below shows an example of how to instantiate this type.
10324
+ # The values are placeholders you should change.
10325
+ from aws_cdk import aws_cloudfront as cloudfront
10326
+
10327
+ vpc_origin_config_property = cloudfront.CfnDistribution.VpcOriginConfigProperty(
10328
+ vpc_origin_id="vpcOriginId",
10329
+
10330
+ # the properties below are optional
10331
+ origin_keepalive_timeout=123,
10332
+ origin_read_timeout=123
10333
+ )
10334
+ '''
10335
+ if __debug__:
10336
+ type_hints = typing.get_type_hints(_typecheckingstub__f7a2beaed61436754427d5794c11e2b8b3ecac452591d86453fc6b4321c161b0)
10337
+ check_type(argname="argument vpc_origin_id", value=vpc_origin_id, expected_type=type_hints["vpc_origin_id"])
10338
+ check_type(argname="argument origin_keepalive_timeout", value=origin_keepalive_timeout, expected_type=type_hints["origin_keepalive_timeout"])
10339
+ check_type(argname="argument origin_read_timeout", value=origin_read_timeout, expected_type=type_hints["origin_read_timeout"])
10340
+ self._values: typing.Dict[builtins.str, typing.Any] = {
10341
+ "vpc_origin_id": vpc_origin_id,
10342
+ }
10343
+ if origin_keepalive_timeout is not None:
10344
+ self._values["origin_keepalive_timeout"] = origin_keepalive_timeout
10345
+ if origin_read_timeout is not None:
10346
+ self._values["origin_read_timeout"] = origin_read_timeout
10347
+
10348
+ @builtins.property
10349
+ def vpc_origin_id(self) -> builtins.str:
10350
+ '''The VPC origin ID.
10351
+
10352
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-vpcoriginconfig.html#cfn-cloudfront-distribution-vpcoriginconfig-vpcoriginid
10353
+ '''
10354
+ result = self._values.get("vpc_origin_id")
10355
+ assert result is not None, "Required property 'vpc_origin_id' is missing"
10356
+ return typing.cast(builtins.str, result)
10357
+
10358
+ @builtins.property
10359
+ def origin_keepalive_timeout(self) -> typing.Optional[jsii.Number]:
10360
+ '''Specifies how long, in seconds, CloudFront persists its connection to the origin.
10361
+
10362
+ The minimum timeout is 1 second, the maximum is 60 seconds, and the default (if you don't specify otherwise) is 5 seconds.
10363
+
10364
+ For more information, see `Keep-alive timeout (custom origins only) <https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginKeepaliveTimeout>`_ in the *Amazon CloudFront Developer Guide* .
10365
+
10366
+ :default: - 5
10367
+
10368
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-vpcoriginconfig.html#cfn-cloudfront-distribution-vpcoriginconfig-originkeepalivetimeout
10369
+ '''
10370
+ result = self._values.get("origin_keepalive_timeout")
10371
+ return typing.cast(typing.Optional[jsii.Number], result)
10372
+
10373
+ @builtins.property
10374
+ def origin_read_timeout(self) -> typing.Optional[jsii.Number]:
10375
+ '''Specifies how long, in seconds, CloudFront waits for a response from the origin.
10376
+
10377
+ This is also known as the *origin response timeout* . The minimum timeout is 1 second, the maximum is 60 seconds, and the default (if you don't specify otherwise) is 30 seconds.
10378
+
10379
+ For more information, see `Response timeout (custom origins only) <https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginResponseTimeout>`_ in the *Amazon CloudFront Developer Guide* .
10380
+
10381
+ :default: - 30
10382
+
10383
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-vpcoriginconfig.html#cfn-cloudfront-distribution-vpcoriginconfig-originreadtimeout
10384
+ '''
10385
+ result = self._values.get("origin_read_timeout")
10386
+ return typing.cast(typing.Optional[jsii.Number], result)
10387
+
10388
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
10389
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
10390
+
10391
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
10392
+ return not (rhs == self)
10393
+
10394
+ def __repr__(self) -> str:
10395
+ return "VpcOriginConfigProperty(%s)" % ", ".join(
10396
+ k + "=" + repr(v) for k, v in self._values.items()
10397
+ )
10398
+
10399
+
10400
+ @jsii.data_type(
10401
+ jsii_type="aws-cdk-lib.aws_cloudfront.CfnDistributionProps",
10402
+ jsii_struct_bases=[],
10403
+ name_mapping={"distribution_config": "distributionConfig", "tags": "tags"},
10404
+ )
10405
+ class CfnDistributionProps:
10406
+ def __init__(
10407
+ self,
10408
+ *,
10409
+ distribution_config: typing.Union[_IResolvable_da3f097b, typing.Union[CfnDistribution.DistributionConfigProperty, typing.Dict[builtins.str, typing.Any]]],
10410
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
10411
+ ) -> None:
10412
+ '''Properties for defining a ``CfnDistribution``.
10413
+
10414
+ :param distribution_config: The distribution's configuration.
10415
+ :param tags: A complex type that contains zero or more ``Tag`` elements.
10416
+
10417
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-distribution.html
10418
+ :exampleMetadata: fixture=_generated
10419
+
10420
+ Example::
10421
+
10422
+ # The code below shows an example of how to instantiate this type.
10423
+ # The values are placeholders you should change.
10424
+ from aws_cdk import aws_cloudfront as cloudfront
10425
+
10426
+ cfn_distribution_props = cloudfront.CfnDistributionProps(
10427
+ distribution_config=cloudfront.CfnDistribution.DistributionConfigProperty(
10428
+ default_cache_behavior=cloudfront.CfnDistribution.DefaultCacheBehaviorProperty(
10429
+ target_origin_id="targetOriginId",
10430
+ viewer_protocol_policy="viewerProtocolPolicy",
10431
+
10432
+ # the properties below are optional
10433
+ allowed_methods=["allowedMethods"],
10434
+ cached_methods=["cachedMethods"],
10435
+ cache_policy_id="cachePolicyId",
10436
+ compress=False,
10437
+ default_ttl=123,
10438
+ field_level_encryption_id="fieldLevelEncryptionId",
10439
+ forwarded_values=cloudfront.CfnDistribution.ForwardedValuesProperty(
10440
+ query_string=False,
10441
+
10442
+ # the properties below are optional
10443
+ cookies=cloudfront.CfnDistribution.CookiesProperty(
10444
+ forward="forward",
10445
+
10446
+ # the properties below are optional
10447
+ whitelisted_names=["whitelistedNames"]
10448
+ ),
10449
+ headers=["headers"],
10450
+ query_string_cache_keys=["queryStringCacheKeys"]
10451
+ ),
10452
+ function_associations=[cloudfront.CfnDistribution.FunctionAssociationProperty(
10453
+ event_type="eventType",
10454
+ function_arn="functionArn"
10455
+ )],
10456
+ grpc_config=cloudfront.CfnDistribution.GrpcConfigProperty(
10457
+ enabled=False
10458
+ ),
10459
+ lambda_function_associations=[cloudfront.CfnDistribution.LambdaFunctionAssociationProperty(
10460
+ event_type="eventType",
10461
+ include_body=False,
10462
+ lambda_function_arn="lambdaFunctionArn"
10463
+ )],
10464
+ max_ttl=123,
10465
+ min_ttl=123,
10466
+ origin_request_policy_id="originRequestPolicyId",
10467
+ realtime_log_config_arn="realtimeLogConfigArn",
10468
+ response_headers_policy_id="responseHeadersPolicyId",
10469
+ smooth_streaming=False,
10470
+ trusted_key_groups=["trustedKeyGroups"],
10471
+ trusted_signers=["trustedSigners"]
10472
+ ),
10473
+ enabled=False,
10474
+
10475
+ # the properties below are optional
10476
+ aliases=["aliases"],
10477
+ anycast_ip_list_id="anycastIpListId",
10478
+ cache_behaviors=[cloudfront.CfnDistribution.CacheBehaviorProperty(
10479
+ path_pattern="pathPattern",
10480
+ target_origin_id="targetOriginId",
10481
+ viewer_protocol_policy="viewerProtocolPolicy",
10482
+
10483
+ # the properties below are optional
10484
+ allowed_methods=["allowedMethods"],
10485
+ cached_methods=["cachedMethods"],
10486
+ cache_policy_id="cachePolicyId",
10487
+ compress=False,
10488
+ default_ttl=123,
10489
+ field_level_encryption_id="fieldLevelEncryptionId",
10490
+ forwarded_values=cloudfront.CfnDistribution.ForwardedValuesProperty(
10491
+ query_string=False,
10492
+
10493
+ # the properties below are optional
10494
+ cookies=cloudfront.CfnDistribution.CookiesProperty(
10495
+ forward="forward",
10496
+
10497
+ # the properties below are optional
10498
+ whitelisted_names=["whitelistedNames"]
10499
+ ),
10500
+ headers=["headers"],
10501
+ query_string_cache_keys=["queryStringCacheKeys"]
10502
+ ),
10503
+ function_associations=[cloudfront.CfnDistribution.FunctionAssociationProperty(
10504
+ event_type="eventType",
10505
+ function_arn="functionArn"
10506
+ )],
10507
+ grpc_config=cloudfront.CfnDistribution.GrpcConfigProperty(
10508
+ enabled=False
10509
+ ),
10510
+ lambda_function_associations=[cloudfront.CfnDistribution.LambdaFunctionAssociationProperty(
10511
+ event_type="eventType",
10512
+ include_body=False,
10513
+ lambda_function_arn="lambdaFunctionArn"
10514
+ )],
10515
+ max_ttl=123,
10516
+ min_ttl=123,
10517
+ origin_request_policy_id="originRequestPolicyId",
10518
+ realtime_log_config_arn="realtimeLogConfigArn",
10519
+ response_headers_policy_id="responseHeadersPolicyId",
10520
+ smooth_streaming=False,
10521
+ trusted_key_groups=["trustedKeyGroups"],
10522
+ trusted_signers=["trustedSigners"]
10523
+ )],
10524
+ cnam_es=["cnamEs"],
10525
+ comment="comment",
10526
+ connection_mode="connectionMode",
10527
+ continuous_deployment_policy_id="continuousDeploymentPolicyId",
10528
+ custom_error_responses=[cloudfront.CfnDistribution.CustomErrorResponseProperty(
10529
+ error_code=123,
10530
+
10531
+ # the properties below are optional
10532
+ error_caching_min_ttl=123,
10533
+ response_code=123,
10534
+ response_page_path="responsePagePath"
10535
+ )],
10536
+ custom_origin=cloudfront.CfnDistribution.LegacyCustomOriginProperty(
10537
+ dns_name="dnsName",
10538
+ origin_protocol_policy="originProtocolPolicy",
10539
+ origin_ssl_protocols=["originSslProtocols"],
10540
+
10541
+ # the properties below are optional
10542
+ http_port=123,
10543
+ https_port=123
10544
+ ),
10545
+ default_root_object="defaultRootObject",
10546
+ http_version="httpVersion",
10547
+ ipv6_enabled=False,
10548
+ logging=cloudfront.CfnDistribution.LoggingProperty(
10549
+ bucket="bucket",
10550
+ include_cookies=False,
10551
+ prefix="prefix"
10552
+ ),
10553
+ origin_groups=cloudfront.CfnDistribution.OriginGroupsProperty(
10554
+ quantity=123,
10555
+
10556
+ # the properties below are optional
10557
+ items=[cloudfront.CfnDistribution.OriginGroupProperty(
10558
+ failover_criteria=cloudfront.CfnDistribution.OriginGroupFailoverCriteriaProperty(
10559
+ status_codes=cloudfront.CfnDistribution.StatusCodesProperty(
10560
+ items=[123],
10561
+ quantity=123
10562
+ )
10563
+ ),
10564
+ id="id",
10565
+ members=cloudfront.CfnDistribution.OriginGroupMembersProperty(
10566
+ items=[cloudfront.CfnDistribution.OriginGroupMemberProperty(
10567
+ origin_id="originId"
10568
+ )],
10569
+ quantity=123
10570
+ ),
10571
+
10572
+ # the properties below are optional
10573
+ selection_criteria="selectionCriteria"
10574
+ )]
10575
+ ),
10576
+ origins=[cloudfront.CfnDistribution.OriginProperty(
10577
+ domain_name="domainName",
10578
+ id="id",
10579
+
10580
+ # the properties below are optional
10581
+ connection_attempts=123,
10582
+ connection_timeout=123,
10583
+ custom_origin_config=cloudfront.CfnDistribution.CustomOriginConfigProperty(
10584
+ origin_protocol_policy="originProtocolPolicy",
10585
+
10586
+ # the properties below are optional
10587
+ http_port=123,
10588
+ https_port=123,
10589
+ origin_keepalive_timeout=123,
10590
+ origin_read_timeout=123,
10591
+ origin_ssl_protocols=["originSslProtocols"]
10592
+ ),
10593
+ origin_access_control_id="originAccessControlId",
10594
+ origin_custom_headers=[cloudfront.CfnDistribution.OriginCustomHeaderProperty(
10595
+ header_name="headerName",
10596
+ header_value="headerValue"
10597
+ )],
10598
+ origin_path="originPath",
10599
+ origin_shield=cloudfront.CfnDistribution.OriginShieldProperty(
10600
+ enabled=False,
10601
+ origin_shield_region="originShieldRegion"
10602
+ ),
10603
+ s3_origin_config=cloudfront.CfnDistribution.S3OriginConfigProperty(
10604
+ origin_access_identity="originAccessIdentity"
10605
+ ),
10606
+ vpc_origin_config=cloudfront.CfnDistribution.VpcOriginConfigProperty(
10607
+ vpc_origin_id="vpcOriginId",
10608
+
10609
+ # the properties below are optional
10610
+ origin_keepalive_timeout=123,
10611
+ origin_read_timeout=123
10612
+ )
10613
+ )],
10614
+ price_class="priceClass",
10615
+ restrictions=cloudfront.CfnDistribution.RestrictionsProperty(
10616
+ geo_restriction=cloudfront.CfnDistribution.GeoRestrictionProperty(
10617
+ restriction_type="restrictionType",
10618
+
10619
+ # the properties below are optional
10620
+ locations=["locations"]
10621
+ )
10622
+ ),
10623
+ s3_origin=cloudfront.CfnDistribution.LegacyS3OriginProperty(
10624
+ dns_name="dnsName",
10625
+
10626
+ # the properties below are optional
10627
+ origin_access_identity="originAccessIdentity"
10628
+ ),
10629
+ staging=False,
10630
+ tenant_config=cloudfront.CfnDistribution.TenantConfigProperty(
10631
+ parameter_definitions=[cloudfront.CfnDistribution.ParameterDefinitionProperty(
10632
+ definition=cloudfront.CfnDistribution.DefinitionProperty(
10633
+ string_schema=cloudfront.CfnDistribution.StringSchemaProperty(
10634
+ required=False,
10635
+
10636
+ # the properties below are optional
10637
+ comment="comment",
10638
+ default_value="defaultValue"
10639
+ )
10640
+ ),
10641
+ name="name"
10642
+ )]
10643
+ ),
10644
+ viewer_certificate=cloudfront.CfnDistribution.ViewerCertificateProperty(
10645
+ acm_certificate_arn="acmCertificateArn",
10646
+ cloud_front_default_certificate=False,
10647
+ iam_certificate_id="iamCertificateId",
10648
+ minimum_protocol_version="minimumProtocolVersion",
10649
+ ssl_support_method="sslSupportMethod"
10650
+ ),
10651
+ web_acl_id="webAclId"
10652
+ ),
10653
+
10654
+ # the properties below are optional
10655
+ tags=[CfnTag(
10656
+ key="key",
10657
+ value="value"
10658
+ )]
10659
+ )
10660
+ '''
10661
+ if __debug__:
10662
+ type_hints = typing.get_type_hints(_typecheckingstub__f7553d47847912fd83a61da98a84c9c8cb5fdb95cf08048d70723db17c73053a)
10663
+ check_type(argname="argument distribution_config", value=distribution_config, expected_type=type_hints["distribution_config"])
10664
+ check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
10665
+ self._values: typing.Dict[builtins.str, typing.Any] = {
10666
+ "distribution_config": distribution_config,
10667
+ }
10668
+ if tags is not None:
10669
+ self._values["tags"] = tags
10670
+
10671
+ @builtins.property
10672
+ def distribution_config(
10673
+ self,
10674
+ ) -> typing.Union[_IResolvable_da3f097b, CfnDistribution.DistributionConfigProperty]:
10675
+ '''The distribution's configuration.
10676
+
10677
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-distribution.html#cfn-cloudfront-distribution-distributionconfig
10678
+ '''
10679
+ result = self._values.get("distribution_config")
10680
+ assert result is not None, "Required property 'distribution_config' is missing"
10681
+ return typing.cast(typing.Union[_IResolvable_da3f097b, CfnDistribution.DistributionConfigProperty], result)
10682
+
10683
+ @builtins.property
10684
+ def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
10685
+ '''A complex type that contains zero or more ``Tag`` elements.
10686
+
10687
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-distribution.html#cfn-cloudfront-distribution-tags
10688
+ '''
10689
+ result = self._values.get("tags")
10690
+ return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], result)
10691
+
10692
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
10693
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
10694
+
10695
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
10696
+ return not (rhs == self)
10697
+
10698
+ def __repr__(self) -> str:
10699
+ return "CfnDistributionProps(%s)" % ", ".join(
10700
+ k + "=" + repr(v) for k, v in self._values.items()
10701
+ )
10702
+
10703
+
10704
+ @jsii.implements(_IInspectable_c2943556, _ITaggableV2_4e6798f8)
10705
+ class CfnDistributionTenant(
10706
+ _CfnResource_9df397a6,
10707
+ metaclass=jsii.JSIIMeta,
10708
+ jsii_type="aws-cdk-lib.aws_cloudfront.CfnDistributionTenant",
10709
+ ):
10710
+ '''Resource Type definition for AWS::CloudFront::DistributionTenant.
10711
+
10712
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-distributiontenant.html
10713
+ :cloudformationResource: AWS::CloudFront::DistributionTenant
10714
+ :exampleMetadata: fixture=_generated
10715
+
10716
+ Example::
10717
+
10718
+ # The code below shows an example of how to instantiate this type.
10719
+ # The values are placeholders you should change.
10720
+ from aws_cdk import aws_cloudfront as cloudfront
10721
+
10722
+ cfn_distribution_tenant = cloudfront.CfnDistributionTenant(self, "MyCfnDistributionTenant",
10723
+ distribution_id="distributionId",
10724
+ domains=["domains"],
10725
+ name="name",
10726
+
10727
+ # the properties below are optional
10728
+ connection_group_id="connectionGroupId",
10729
+ customizations=cloudfront.CfnDistributionTenant.CustomizationsProperty(
10730
+ certificate=cloudfront.CfnDistributionTenant.CertificateProperty(
10731
+ arn="arn"
10732
+ ),
10733
+ geo_restrictions=cloudfront.CfnDistributionTenant.GeoRestrictionCustomizationProperty(
10734
+ locations=["locations"],
10735
+ restriction_type="restrictionType"
10736
+ ),
10737
+ web_acl=cloudfront.CfnDistributionTenant.WebAclCustomizationProperty(
10738
+ action="action",
10739
+ arn="arn"
10740
+ )
10741
+ ),
10742
+ enabled=False,
10743
+ managed_certificate_request=cloudfront.CfnDistributionTenant.ManagedCertificateRequestProperty(
10744
+ certificate_transparency_logging_preference="certificateTransparencyLoggingPreference",
10745
+ primary_domain_name="primaryDomainName",
10746
+ validation_token_host="validationTokenHost"
10747
+ ),
10748
+ parameters=[cloudfront.CfnDistributionTenant.ParameterProperty(
10749
+ name="name",
10750
+ value="value"
10751
+ )],
10752
+ tags=[CfnTag(
10753
+ key="key",
10754
+ value="value"
10755
+ )]
10756
+ )
10757
+ '''
10758
+
10759
+ def __init__(
10760
+ self,
10761
+ scope: _constructs_77d1e7e8.Construct,
10762
+ id: builtins.str,
10763
+ *,
10764
+ distribution_id: builtins.str,
10765
+ domains: typing.Sequence[builtins.str],
10766
+ name: builtins.str,
10767
+ connection_group_id: typing.Optional[builtins.str] = None,
10768
+ customizations: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnDistributionTenant.CustomizationsProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
10769
+ enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
10770
+ managed_certificate_request: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnDistributionTenant.ManagedCertificateRequestProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
10771
+ parameters: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnDistributionTenant.ParameterProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
10772
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
10773
+ ) -> None:
10774
+ '''
10775
+ :param scope: Scope in which this resource is defined.
10776
+ :param id: Construct identifier for this resource (unique in its scope).
10777
+ :param distribution_id: The distribution's identifier. For example: ``E1U5RQF7T870K0`` .
10778
+ :param domains:
10779
+ :param name:
10780
+ :param connection_group_id:
10781
+ :param customizations:
10782
+ :param enabled:
10783
+ :param managed_certificate_request:
10784
+ :param parameters:
10785
+ :param tags: A complex type that contains zero or more ``Tag`` elements.
10786
+ '''
10787
+ if __debug__:
10788
+ type_hints = typing.get_type_hints(_typecheckingstub__b31d7c64540327014853973d80c83a2f4a5686901e7f7ac7b0ace4f059413572)
10789
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
10790
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
10791
+ props = CfnDistributionTenantProps(
10792
+ distribution_id=distribution_id,
10793
+ domains=domains,
10794
+ name=name,
10795
+ connection_group_id=connection_group_id,
10796
+ customizations=customizations,
10797
+ enabled=enabled,
10798
+ managed_certificate_request=managed_certificate_request,
10799
+ parameters=parameters,
10800
+ tags=tags,
10801
+ )
10802
+
10803
+ jsii.create(self.__class__, self, [scope, id, props])
10804
+
10805
+ @jsii.member(jsii_name="inspect")
10806
+ def inspect(self, inspector: _TreeInspector_488e0dd5) -> None:
10807
+ '''Examines the CloudFormation resource and discloses attributes.
10808
+
10809
+ :param inspector: tree inspector to collect and process attributes.
10810
+ '''
10811
+ if __debug__:
10812
+ type_hints = typing.get_type_hints(_typecheckingstub__57520040a3293830d92c5db58279dc6ba57c2835396f254ab1cf1fc8a732ea40)
10813
+ check_type(argname="argument inspector", value=inspector, expected_type=type_hints["inspector"])
10814
+ return typing.cast(None, jsii.invoke(self, "inspect", [inspector]))
10815
+
10816
+ @jsii.member(jsii_name="renderProperties")
10817
+ def _render_properties(
10818
+ self,
10819
+ props: typing.Mapping[builtins.str, typing.Any],
10820
+ ) -> typing.Mapping[builtins.str, typing.Any]:
10821
+ '''
10822
+ :param props: -
10823
+ '''
10824
+ if __debug__:
10825
+ type_hints = typing.get_type_hints(_typecheckingstub__9e01bfefdb980893d11ecf908e131b3da5b94143ee485dce5ed8d1d657843e21)
10826
+ check_type(argname="argument props", value=props, expected_type=type_hints["props"])
10827
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "renderProperties", [props]))
10828
+
10829
+ @jsii.python.classproperty
10830
+ @jsii.member(jsii_name="CFN_RESOURCE_TYPE_NAME")
10831
+ def CFN_RESOURCE_TYPE_NAME(cls) -> builtins.str:
10832
+ '''The CloudFormation resource type name for this resource class.'''
10833
+ return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
10834
+
10835
+ @builtins.property
10836
+ @jsii.member(jsii_name="attrArn")
10837
+ def attr_arn(self) -> builtins.str:
10838
+ '''
10839
+ :cloudformationAttribute: Arn
10840
+ '''
10841
+ return typing.cast(builtins.str, jsii.get(self, "attrArn"))
10842
+
10843
+ @builtins.property
10844
+ @jsii.member(jsii_name="attrCreatedTime")
10845
+ def attr_created_time(self) -> builtins.str:
10846
+ '''
10847
+ :cloudformationAttribute: CreatedTime
10848
+ '''
10849
+ return typing.cast(builtins.str, jsii.get(self, "attrCreatedTime"))
10850
+
10851
+ @builtins.property
10852
+ @jsii.member(jsii_name="attrDomainResults")
10853
+ def attr_domain_results(self) -> _IResolvable_da3f097b:
10854
+ '''
10855
+ :cloudformationAttribute: DomainResults
10856
+ '''
10857
+ return typing.cast(_IResolvable_da3f097b, jsii.get(self, "attrDomainResults"))
10858
+
10859
+ @builtins.property
10860
+ @jsii.member(jsii_name="attrETag")
10861
+ def attr_e_tag(self) -> builtins.str:
10862
+ '''A complex type that contains ``Tag`` key and ``Tag`` value.
10863
+
10864
+ :cloudformationAttribute: ETag
10865
+ '''
10866
+ return typing.cast(builtins.str, jsii.get(self, "attrETag"))
10867
+
10868
+ @builtins.property
10869
+ @jsii.member(jsii_name="attrId")
10870
+ def attr_id(self) -> builtins.str:
10871
+ '''
10872
+ :cloudformationAttribute: Id
10873
+ '''
10874
+ return typing.cast(builtins.str, jsii.get(self, "attrId"))
10875
+
10876
+ @builtins.property
10877
+ @jsii.member(jsii_name="attrLastModifiedTime")
10878
+ def attr_last_modified_time(self) -> builtins.str:
10879
+ '''
10880
+ :cloudformationAttribute: LastModifiedTime
10881
+ '''
10882
+ return typing.cast(builtins.str, jsii.get(self, "attrLastModifiedTime"))
10883
+
10884
+ @builtins.property
10885
+ @jsii.member(jsii_name="attrStatus")
10886
+ def attr_status(self) -> builtins.str:
10887
+ '''
10888
+ :cloudformationAttribute: Status
10889
+ '''
10890
+ return typing.cast(builtins.str, jsii.get(self, "attrStatus"))
10891
+
10892
+ @builtins.property
10893
+ @jsii.member(jsii_name="cdkTagManager")
10894
+ def cdk_tag_manager(self) -> _TagManager_0a598cb3:
10895
+ '''Tag Manager which manages the tags for this resource.'''
10896
+ return typing.cast(_TagManager_0a598cb3, jsii.get(self, "cdkTagManager"))
10897
+
10898
+ @builtins.property
10899
+ @jsii.member(jsii_name="cfnProperties")
10900
+ def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
10901
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
10902
+
10903
+ @builtins.property
10904
+ @jsii.member(jsii_name="distributionId")
10905
+ def distribution_id(self) -> builtins.str:
10906
+ '''The distribution's identifier.'''
10907
+ return typing.cast(builtins.str, jsii.get(self, "distributionId"))
10908
+
10909
+ @distribution_id.setter
10910
+ def distribution_id(self, value: builtins.str) -> None:
10911
+ if __debug__:
10912
+ type_hints = typing.get_type_hints(_typecheckingstub__01b4d19a34e50ac410f9509edd30a04265cf1cbbd17b788ad5aa7507c63f00f8)
10913
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
10914
+ jsii.set(self, "distributionId", value) # pyright: ignore[reportArgumentType]
10915
+
10916
+ @builtins.property
10917
+ @jsii.member(jsii_name="domains")
10918
+ def domains(self) -> typing.List[builtins.str]:
10919
+ return typing.cast(typing.List[builtins.str], jsii.get(self, "domains"))
10920
+
10921
+ @domains.setter
10922
+ def domains(self, value: typing.List[builtins.str]) -> None:
10923
+ if __debug__:
10924
+ type_hints = typing.get_type_hints(_typecheckingstub__7e4ea73186e7ded8d4be1abca7ad4ad20e62ac773ff4030551f69552bebf4111)
10925
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
10926
+ jsii.set(self, "domains", value) # pyright: ignore[reportArgumentType]
10927
+
10928
+ @builtins.property
10929
+ @jsii.member(jsii_name="name")
10930
+ def name(self) -> builtins.str:
10931
+ return typing.cast(builtins.str, jsii.get(self, "name"))
10932
+
10933
+ @name.setter
10934
+ def name(self, value: builtins.str) -> None:
10935
+ if __debug__:
10936
+ type_hints = typing.get_type_hints(_typecheckingstub__21d549f43b17cc6909f030b9a70862b4d3cc9f8321d3c0808f5a34ad3a82bdac)
10937
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
10938
+ jsii.set(self, "name", value) # pyright: ignore[reportArgumentType]
10939
+
10940
+ @builtins.property
10941
+ @jsii.member(jsii_name="connectionGroupId")
10942
+ def connection_group_id(self) -> typing.Optional[builtins.str]:
10943
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "connectionGroupId"))
9023
10944
 
9024
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origin.html#cfn-cloudfront-distribution-origin-originaccesscontrolid
9025
- '''
9026
- result = self._values.get("origin_access_control_id")
9027
- return typing.cast(typing.Optional[builtins.str], result)
10945
+ @connection_group_id.setter
10946
+ def connection_group_id(self, value: typing.Optional[builtins.str]) -> None:
10947
+ if __debug__:
10948
+ type_hints = typing.get_type_hints(_typecheckingstub__260bd4d44d34feabb54c786083ced4eca1f6825ffa23ac7256d4a56686f6f06e)
10949
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
10950
+ jsii.set(self, "connectionGroupId", value) # pyright: ignore[reportArgumentType]
9028
10951
 
9029
- @builtins.property
9030
- def origin_custom_headers(
9031
- self,
9032
- ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnDistribution.OriginCustomHeaderProperty"]]]]:
9033
- '''A list of HTTP header names and values that CloudFront adds to the requests that it sends to the origin.
10952
+ @builtins.property
10953
+ @jsii.member(jsii_name="customizations")
10954
+ def customizations(
10955
+ self,
10956
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnDistributionTenant.CustomizationsProperty"]]:
10957
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnDistributionTenant.CustomizationsProperty"]], jsii.get(self, "customizations"))
9034
10958
 
9035
- For more information, see `Adding Custom Headers to Origin Requests <https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/add-origin-custom-headers.html>`_ in the *Amazon CloudFront Developer Guide* .
10959
+ @customizations.setter
10960
+ def customizations(
10961
+ self,
10962
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnDistributionTenant.CustomizationsProperty"]],
10963
+ ) -> None:
10964
+ if __debug__:
10965
+ type_hints = typing.get_type_hints(_typecheckingstub__1ecc1c2d6ca5ed07f9220424e298d73ccc2d9ff84388993cacf60c02fc6431d2)
10966
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
10967
+ jsii.set(self, "customizations", value) # pyright: ignore[reportArgumentType]
9036
10968
 
9037
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origin.html#cfn-cloudfront-distribution-origin-origincustomheaders
9038
- '''
9039
- result = self._values.get("origin_custom_headers")
9040
- return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnDistribution.OriginCustomHeaderProperty"]]]], result)
10969
+ @builtins.property
10970
+ @jsii.member(jsii_name="enabled")
10971
+ def enabled(
10972
+ self,
10973
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
10974
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], jsii.get(self, "enabled"))
9041
10975
 
9042
- @builtins.property
9043
- def origin_path(self) -> typing.Optional[builtins.str]:
9044
- '''An optional path that CloudFront appends to the origin domain name when CloudFront requests content from the origin.
10976
+ @enabled.setter
10977
+ def enabled(
10978
+ self,
10979
+ value: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]],
10980
+ ) -> None:
10981
+ if __debug__:
10982
+ type_hints = typing.get_type_hints(_typecheckingstub__4faa42cfcdbcfaf7031a5ad328e3b92614cc4b898e43367bd53e66b4edb53dd8)
10983
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
10984
+ jsii.set(self, "enabled", value) # pyright: ignore[reportArgumentType]
9045
10985
 
9046
- For more information, see `Origin Path <https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginPath>`_ in the *Amazon CloudFront Developer Guide* .
10986
+ @builtins.property
10987
+ @jsii.member(jsii_name="managedCertificateRequest")
10988
+ def managed_certificate_request(
10989
+ self,
10990
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnDistributionTenant.ManagedCertificateRequestProperty"]]:
10991
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnDistributionTenant.ManagedCertificateRequestProperty"]], jsii.get(self, "managedCertificateRequest"))
9047
10992
 
9048
- :default: - ""
10993
+ @managed_certificate_request.setter
10994
+ def managed_certificate_request(
10995
+ self,
10996
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnDistributionTenant.ManagedCertificateRequestProperty"]],
10997
+ ) -> None:
10998
+ if __debug__:
10999
+ type_hints = typing.get_type_hints(_typecheckingstub__5137481a2aef0ac0e79363b8e827531e762d17f59cfa3b092f770cb0813fedc0)
11000
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
11001
+ jsii.set(self, "managedCertificateRequest", value) # pyright: ignore[reportArgumentType]
9049
11002
 
9050
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origin.html#cfn-cloudfront-distribution-origin-originpath
9051
- '''
9052
- result = self._values.get("origin_path")
9053
- return typing.cast(typing.Optional[builtins.str], result)
11003
+ @builtins.property
11004
+ @jsii.member(jsii_name="parameters")
11005
+ def parameters(
11006
+ self,
11007
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnDistributionTenant.ParameterProperty"]]]]:
11008
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnDistributionTenant.ParameterProperty"]]]], jsii.get(self, "parameters"))
9054
11009
 
9055
- @builtins.property
9056
- def origin_shield(
9057
- self,
9058
- ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnDistribution.OriginShieldProperty"]]:
9059
- '''CloudFront Origin Shield. Using Origin Shield can help reduce the load on your origin.
11010
+ @parameters.setter
11011
+ def parameters(
11012
+ self,
11013
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnDistributionTenant.ParameterProperty"]]]],
11014
+ ) -> None:
11015
+ if __debug__:
11016
+ type_hints = typing.get_type_hints(_typecheckingstub__c5ac60c7274f522196384c452007fc5b615ae79ffad1520970925978b4606156)
11017
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
11018
+ jsii.set(self, "parameters", value) # pyright: ignore[reportArgumentType]
9060
11019
 
9061
- For more information, see `Using Origin Shield <https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/origin-shield.html>`_ in the *Amazon CloudFront Developer Guide* .
11020
+ @builtins.property
11021
+ @jsii.member(jsii_name="tags")
11022
+ def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
11023
+ '''A complex type that contains zero or more ``Tag`` elements.'''
11024
+ return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], jsii.get(self, "tags"))
9062
11025
 
9063
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origin.html#cfn-cloudfront-distribution-origin-originshield
11026
+ @tags.setter
11027
+ def tags(self, value: typing.Optional[typing.List[_CfnTag_f6864754]]) -> None:
11028
+ if __debug__:
11029
+ type_hints = typing.get_type_hints(_typecheckingstub__2cea18d7ff4ed5a97170964e15f6e2d6e58a5f394ede6d8f1dd4c80f19f719e2)
11030
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
11031
+ jsii.set(self, "tags", value) # pyright: ignore[reportArgumentType]
11032
+
11033
+ @jsii.data_type(
11034
+ jsii_type="aws-cdk-lib.aws_cloudfront.CfnDistributionTenant.CertificateProperty",
11035
+ jsii_struct_bases=[],
11036
+ name_mapping={"arn": "arn"},
11037
+ )
11038
+ class CertificateProperty:
11039
+ def __init__(self, *, arn: typing.Optional[builtins.str] = None) -> None:
9064
11040
  '''
9065
- result = self._values.get("origin_shield")
9066
- return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnDistribution.OriginShieldProperty"]], result)
11041
+ :param arn:
9067
11042
 
9068
- @builtins.property
9069
- def s3_origin_config(
9070
- self,
9071
- ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnDistribution.S3OriginConfigProperty"]]:
9072
- '''Use this type to specify an origin that is an Amazon S3 bucket that is not configured with static website hosting.
11043
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distributiontenant-certificate.html
11044
+ :exampleMetadata: fixture=_generated
9073
11045
 
9074
- To specify any other type of origin, including an Amazon S3 bucket that is configured with static website hosting, use the ``CustomOriginConfig`` type instead.
11046
+ Example::
9075
11047
 
9076
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origin.html#cfn-cloudfront-distribution-origin-s3originconfig
11048
+ # The code below shows an example of how to instantiate this type.
11049
+ # The values are placeholders you should change.
11050
+ from aws_cdk import aws_cloudfront as cloudfront
11051
+
11052
+ certificate_property = cloudfront.CfnDistributionTenant.CertificateProperty(
11053
+ arn="arn"
11054
+ )
9077
11055
  '''
9078
- result = self._values.get("s3_origin_config")
9079
- return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnDistribution.S3OriginConfigProperty"]], result)
11056
+ if __debug__:
11057
+ type_hints = typing.get_type_hints(_typecheckingstub__ff0d269846a4a9f6793265a71266235fd771204d2a0ad4f09ad78055533b5c48)
11058
+ check_type(argname="argument arn", value=arn, expected_type=type_hints["arn"])
11059
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
11060
+ if arn is not None:
11061
+ self._values["arn"] = arn
9080
11062
 
9081
11063
  @builtins.property
9082
- def vpc_origin_config(
9083
- self,
9084
- ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnDistribution.VpcOriginConfigProperty"]]:
9085
- '''The VPC origin configuration.
9086
-
9087
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origin.html#cfn-cloudfront-distribution-origin-vpcoriginconfig
11064
+ def arn(self) -> typing.Optional[builtins.str]:
9088
11065
  '''
9089
- result = self._values.get("vpc_origin_config")
9090
- return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnDistribution.VpcOriginConfigProperty"]], result)
11066
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distributiontenant-certificate.html#cfn-cloudfront-distributiontenant-certificate-arn
11067
+ '''
11068
+ result = self._values.get("arn")
11069
+ return typing.cast(typing.Optional[builtins.str], result)
9091
11070
 
9092
11071
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
9093
11072
  return isinstance(rhs, self.__class__) and rhs._values == self._values
@@ -9096,33 +11075,33 @@ class CfnDistribution(
9096
11075
  return not (rhs == self)
9097
11076
 
9098
11077
  def __repr__(self) -> str:
9099
- return "OriginProperty(%s)" % ", ".join(
11078
+ return "CertificateProperty(%s)" % ", ".join(
9100
11079
  k + "=" + repr(v) for k, v in self._values.items()
9101
11080
  )
9102
11081
 
9103
11082
  @jsii.data_type(
9104
- jsii_type="aws-cdk-lib.aws_cloudfront.CfnDistribution.OriginShieldProperty",
11083
+ jsii_type="aws-cdk-lib.aws_cloudfront.CfnDistributionTenant.CustomizationsProperty",
9105
11084
  jsii_struct_bases=[],
9106
11085
  name_mapping={
9107
- "enabled": "enabled",
9108
- "origin_shield_region": "originShieldRegion",
11086
+ "certificate": "certificate",
11087
+ "geo_restrictions": "geoRestrictions",
11088
+ "web_acl": "webAcl",
9109
11089
  },
9110
11090
  )
9111
- class OriginShieldProperty:
11091
+ class CustomizationsProperty:
9112
11092
  def __init__(
9113
11093
  self,
9114
11094
  *,
9115
- enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
9116
- origin_shield_region: typing.Optional[builtins.str] = None,
11095
+ certificate: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnDistributionTenant.CertificateProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
11096
+ geo_restrictions: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnDistributionTenant.GeoRestrictionCustomizationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
11097
+ web_acl: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnDistributionTenant.WebAclCustomizationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
9117
11098
  ) -> None:
9118
- '''CloudFront Origin Shield.
9119
-
9120
- Using Origin Shield can help reduce the load on your origin. For more information, see `Using Origin Shield <https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/origin-shield.html>`_ in the *Amazon CloudFront Developer Guide* .
9121
-
9122
- :param enabled: A flag that specifies whether Origin Shield is enabled. When it's enabled, CloudFront routes all requests through Origin Shield, which can help protect your origin. When it's disabled, CloudFront might send requests directly to your origin from multiple edge locations or regional edge caches.
9123
- :param origin_shield_region: The AWS Region for Origin Shield. Specify the AWS Region that has the lowest latency to your origin. To specify a region, use the region code, not the region name. For example, specify the US East (Ohio) region as ``us-east-2`` . When you enable CloudFront Origin Shield, you must specify the AWS Region for Origin Shield. For the list of AWS Regions that you can specify, and for help choosing the best Region for your origin, see `Choosing the AWS Region for Origin Shield <https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/origin-shield.html#choose-origin-shield-region>`_ in the *Amazon CloudFront Developer Guide* .
11099
+ '''
11100
+ :param certificate:
11101
+ :param geo_restrictions:
11102
+ :param web_acl:
9124
11103
 
9125
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-originshield.html
11104
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distributiontenant-customizations.html
9126
11105
  :exampleMetadata: fixture=_generated
9127
11106
 
9128
11107
  Example::
@@ -9131,46 +11110,62 @@ class CfnDistribution(
9131
11110
  # The values are placeholders you should change.
9132
11111
  from aws_cdk import aws_cloudfront as cloudfront
9133
11112
 
9134
- origin_shield_property = cloudfront.CfnDistribution.OriginShieldProperty(
9135
- enabled=False,
9136
- origin_shield_region="originShieldRegion"
11113
+ customizations_property = cloudfront.CfnDistributionTenant.CustomizationsProperty(
11114
+ certificate=cloudfront.CfnDistributionTenant.CertificateProperty(
11115
+ arn="arn"
11116
+ ),
11117
+ geo_restrictions=cloudfront.CfnDistributionTenant.GeoRestrictionCustomizationProperty(
11118
+ locations=["locations"],
11119
+ restriction_type="restrictionType"
11120
+ ),
11121
+ web_acl=cloudfront.CfnDistributionTenant.WebAclCustomizationProperty(
11122
+ action="action",
11123
+ arn="arn"
11124
+ )
9137
11125
  )
9138
11126
  '''
9139
11127
  if __debug__:
9140
- type_hints = typing.get_type_hints(_typecheckingstub__d2a25e92d5905a4c19d3636ff8b631afa34a538497a13fa9d29e56ca404539e4)
9141
- check_type(argname="argument enabled", value=enabled, expected_type=type_hints["enabled"])
9142
- check_type(argname="argument origin_shield_region", value=origin_shield_region, expected_type=type_hints["origin_shield_region"])
11128
+ type_hints = typing.get_type_hints(_typecheckingstub__0491da142c813dc4673791039712e33ce224f81450f91a62e3bae808ffa535c1)
11129
+ check_type(argname="argument certificate", value=certificate, expected_type=type_hints["certificate"])
11130
+ check_type(argname="argument geo_restrictions", value=geo_restrictions, expected_type=type_hints["geo_restrictions"])
11131
+ check_type(argname="argument web_acl", value=web_acl, expected_type=type_hints["web_acl"])
9143
11132
  self._values: typing.Dict[builtins.str, typing.Any] = {}
9144
- if enabled is not None:
9145
- self._values["enabled"] = enabled
9146
- if origin_shield_region is not None:
9147
- self._values["origin_shield_region"] = origin_shield_region
11133
+ if certificate is not None:
11134
+ self._values["certificate"] = certificate
11135
+ if geo_restrictions is not None:
11136
+ self._values["geo_restrictions"] = geo_restrictions
11137
+ if web_acl is not None:
11138
+ self._values["web_acl"] = web_acl
9148
11139
 
9149
11140
  @builtins.property
9150
- def enabled(
11141
+ def certificate(
9151
11142
  self,
9152
- ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
9153
- '''A flag that specifies whether Origin Shield is enabled.
9154
-
9155
- When it's enabled, CloudFront routes all requests through Origin Shield, which can help protect your origin. When it's disabled, CloudFront might send requests directly to your origin from multiple edge locations or regional edge caches.
9156
-
9157
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-originshield.html#cfn-cloudfront-distribution-originshield-enabled
11143
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnDistributionTenant.CertificateProperty"]]:
9158
11144
  '''
9159
- result = self._values.get("enabled")
9160
- return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
11145
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distributiontenant-customizations.html#cfn-cloudfront-distributiontenant-customizations-certificate
11146
+ '''
11147
+ result = self._values.get("certificate")
11148
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnDistributionTenant.CertificateProperty"]], result)
9161
11149
 
9162
11150
  @builtins.property
9163
- def origin_shield_region(self) -> typing.Optional[builtins.str]:
9164
- '''The AWS Region for Origin Shield.
9165
-
9166
- Specify the AWS Region that has the lowest latency to your origin. To specify a region, use the region code, not the region name. For example, specify the US East (Ohio) region as ``us-east-2`` .
9167
-
9168
- When you enable CloudFront Origin Shield, you must specify the AWS Region for Origin Shield. For the list of AWS Regions that you can specify, and for help choosing the best Region for your origin, see `Choosing the AWS Region for Origin Shield <https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/origin-shield.html#choose-origin-shield-region>`_ in the *Amazon CloudFront Developer Guide* .
11151
+ def geo_restrictions(
11152
+ self,
11153
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnDistributionTenant.GeoRestrictionCustomizationProperty"]]:
11154
+ '''
11155
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distributiontenant-customizations.html#cfn-cloudfront-distributiontenant-customizations-georestrictions
11156
+ '''
11157
+ result = self._values.get("geo_restrictions")
11158
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnDistributionTenant.GeoRestrictionCustomizationProperty"]], result)
9169
11159
 
9170
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-originshield.html#cfn-cloudfront-distribution-originshield-originshieldregion
11160
+ @builtins.property
11161
+ def web_acl(
11162
+ self,
11163
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnDistributionTenant.WebAclCustomizationProperty"]]:
9171
11164
  '''
9172
- result = self._values.get("origin_shield_region")
9173
- return typing.cast(typing.Optional[builtins.str], result)
11165
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distributiontenant-customizations.html#cfn-cloudfront-distributiontenant-customizations-webacl
11166
+ '''
11167
+ result = self._values.get("web_acl")
11168
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnDistributionTenant.WebAclCustomizationProperty"]], result)
9174
11169
 
9175
11170
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
9176
11171
  return isinstance(rhs, self.__class__) and rhs._values == self._values
@@ -9179,26 +11174,29 @@ class CfnDistribution(
9179
11174
  return not (rhs == self)
9180
11175
 
9181
11176
  def __repr__(self) -> str:
9182
- return "OriginShieldProperty(%s)" % ", ".join(
11177
+ return "CustomizationsProperty(%s)" % ", ".join(
9183
11178
  k + "=" + repr(v) for k, v in self._values.items()
9184
11179
  )
9185
11180
 
9186
11181
  @jsii.data_type(
9187
- jsii_type="aws-cdk-lib.aws_cloudfront.CfnDistribution.RestrictionsProperty",
11182
+ jsii_type="aws-cdk-lib.aws_cloudfront.CfnDistributionTenant.DomainResultProperty",
9188
11183
  jsii_struct_bases=[],
9189
- name_mapping={"geo_restriction": "geoRestriction"},
11184
+ name_mapping={"domain": "domain", "reason": "reason", "status": "status"},
9190
11185
  )
9191
- class RestrictionsProperty:
11186
+ class DomainResultProperty:
9192
11187
  def __init__(
9193
11188
  self,
9194
11189
  *,
9195
- geo_restriction: typing.Union[_IResolvable_da3f097b, typing.Union["CfnDistribution.GeoRestrictionProperty", typing.Dict[builtins.str, typing.Any]]],
11190
+ domain: typing.Optional[builtins.str] = None,
11191
+ reason: typing.Optional[builtins.str] = None,
11192
+ status: typing.Optional[builtins.str] = None,
9196
11193
  ) -> None:
9197
- '''A complex type that identifies ways in which you want to restrict distribution of your content.
9198
-
9199
- :param geo_restriction: A complex type that controls the countries in which your content is distributed. CloudFront determines the location of your users using ``MaxMind`` GeoIP databases. To disable geo restriction, remove the `Restrictions <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html#cfn-cloudfront-distribution-distributionconfig-restrictions>`_ property from your stack template.
11194
+ '''
11195
+ :param domain:
11196
+ :param reason:
11197
+ :param status:
9200
11198
 
9201
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-restrictions.html
11199
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distributiontenant-domainresult.html
9202
11200
  :exampleMetadata: fixture=_generated
9203
11201
 
9204
11202
  Example::
@@ -9207,35 +11205,48 @@ class CfnDistribution(
9207
11205
  # The values are placeholders you should change.
9208
11206
  from aws_cdk import aws_cloudfront as cloudfront
9209
11207
 
9210
- restrictions_property = cloudfront.CfnDistribution.RestrictionsProperty(
9211
- geo_restriction=cloudfront.CfnDistribution.GeoRestrictionProperty(
9212
- restriction_type="restrictionType",
9213
-
9214
- # the properties below are optional
9215
- locations=["locations"]
9216
- )
11208
+ domain_result_property = cloudfront.CfnDistributionTenant.DomainResultProperty(
11209
+ domain="domain",
11210
+ reason="reason",
11211
+ status="status"
9217
11212
  )
9218
11213
  '''
9219
11214
  if __debug__:
9220
- type_hints = typing.get_type_hints(_typecheckingstub__4deb0a9215bd7c703383e0e2be801747efa09772f2b073423550aa9638220c0d)
9221
- check_type(argname="argument geo_restriction", value=geo_restriction, expected_type=type_hints["geo_restriction"])
9222
- self._values: typing.Dict[builtins.str, typing.Any] = {
9223
- "geo_restriction": geo_restriction,
9224
- }
11215
+ type_hints = typing.get_type_hints(_typecheckingstub__d24d49d6e44d4deb653a24465ec61e7862ea07d5a5cdc7f3cfa829da2181be64)
11216
+ check_type(argname="argument domain", value=domain, expected_type=type_hints["domain"])
11217
+ check_type(argname="argument reason", value=reason, expected_type=type_hints["reason"])
11218
+ check_type(argname="argument status", value=status, expected_type=type_hints["status"])
11219
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
11220
+ if domain is not None:
11221
+ self._values["domain"] = domain
11222
+ if reason is not None:
11223
+ self._values["reason"] = reason
11224
+ if status is not None:
11225
+ self._values["status"] = status
9225
11226
 
9226
11227
  @builtins.property
9227
- def geo_restriction(
9228
- self,
9229
- ) -> typing.Union[_IResolvable_da3f097b, "CfnDistribution.GeoRestrictionProperty"]:
9230
- '''A complex type that controls the countries in which your content is distributed.
11228
+ def domain(self) -> typing.Optional[builtins.str]:
11229
+ '''
11230
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distributiontenant-domainresult.html#cfn-cloudfront-distributiontenant-domainresult-domain
11231
+ '''
11232
+ result = self._values.get("domain")
11233
+ return typing.cast(typing.Optional[builtins.str], result)
9231
11234
 
9232
- CloudFront determines the location of your users using ``MaxMind`` GeoIP databases. To disable geo restriction, remove the `Restrictions <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html#cfn-cloudfront-distribution-distributionconfig-restrictions>`_ property from your stack template.
11235
+ @builtins.property
11236
+ def reason(self) -> typing.Optional[builtins.str]:
11237
+ '''
11238
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distributiontenant-domainresult.html#cfn-cloudfront-distributiontenant-domainresult-reason
11239
+ '''
11240
+ result = self._values.get("reason")
11241
+ return typing.cast(typing.Optional[builtins.str], result)
9233
11242
 
9234
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-restrictions.html#cfn-cloudfront-distribution-restrictions-georestriction
11243
+ @builtins.property
11244
+ def status(self) -> typing.Optional[builtins.str]:
9235
11245
  '''
9236
- result = self._values.get("geo_restriction")
9237
- assert result is not None, "Required property 'geo_restriction' is missing"
9238
- return typing.cast(typing.Union[_IResolvable_da3f097b, "CfnDistribution.GeoRestrictionProperty"], result)
11246
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distributiontenant-domainresult.html#cfn-cloudfront-distributiontenant-domainresult-status
11247
+ '''
11248
+ result = self._values.get("status")
11249
+ return typing.cast(typing.Optional[builtins.str], result)
9239
11250
 
9240
11251
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
9241
11252
  return isinstance(rhs, self.__class__) and rhs._values == self._values
@@ -9244,28 +11255,27 @@ class CfnDistribution(
9244
11255
  return not (rhs == self)
9245
11256
 
9246
11257
  def __repr__(self) -> str:
9247
- return "RestrictionsProperty(%s)" % ", ".join(
11258
+ return "DomainResultProperty(%s)" % ", ".join(
9248
11259
  k + "=" + repr(v) for k, v in self._values.items()
9249
11260
  )
9250
11261
 
9251
11262
  @jsii.data_type(
9252
- jsii_type="aws-cdk-lib.aws_cloudfront.CfnDistribution.S3OriginConfigProperty",
11263
+ jsii_type="aws-cdk-lib.aws_cloudfront.CfnDistributionTenant.GeoRestrictionCustomizationProperty",
9253
11264
  jsii_struct_bases=[],
9254
- name_mapping={"origin_access_identity": "originAccessIdentity"},
11265
+ name_mapping={"locations": "locations", "restriction_type": "restrictionType"},
9255
11266
  )
9256
- class S3OriginConfigProperty:
11267
+ class GeoRestrictionCustomizationProperty:
9257
11268
  def __init__(
9258
11269
  self,
9259
11270
  *,
9260
- origin_access_identity: typing.Optional[builtins.str] = None,
11271
+ locations: typing.Optional[typing.Sequence[builtins.str]] = None,
11272
+ restriction_type: typing.Optional[builtins.str] = None,
9261
11273
  ) -> None:
9262
- '''A complex type that contains information about the Amazon S3 origin.
9263
-
9264
- If the origin is a custom origin or an S3 bucket that is configured as a website endpoint, use the ``CustomOriginConfig`` element instead.
9265
-
9266
- :param origin_access_identity: .. epigraph:: If you're using origin access control (OAC) instead of origin access identity, specify an empty ``OriginAccessIdentity`` element. For more information, see `Restricting access to an AWS <https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-origin.html>`_ in the *Amazon CloudFront Developer Guide* . The CloudFront origin access identity to associate with the origin. Use an origin access identity to configure the origin so that viewers can *only* access objects in an Amazon S3 bucket through CloudFront. The format of the value is: ``origin-access-identity/cloudfront/ID-of-origin-access-identity`` The ``*ID-of-origin-access-identity*`` is the value that CloudFront returned in the ``ID`` element when you created the origin access identity. If you want viewers to be able to access objects using either the CloudFront URL or the Amazon S3 URL, specify an empty ``OriginAccessIdentity`` element. To delete the origin access identity from an existing distribution, update the distribution configuration and include an empty ``OriginAccessIdentity`` element. To replace the origin access identity, update the distribution configuration and specify the new origin access identity. For more information about the origin access identity, see `Serving Private Content through CloudFront <https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html>`_ in the *Amazon CloudFront Developer Guide* . Default: - ""
11274
+ '''
11275
+ :param locations:
11276
+ :param restriction_type:
9267
11277
 
9268
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-s3originconfig.html
11278
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distributiontenant-georestrictioncustomization.html
9269
11279
  :exampleMetadata: fixture=_generated
9270
11280
 
9271
11281
  Example::
@@ -9274,44 +11284,35 @@ class CfnDistribution(
9274
11284
  # The values are placeholders you should change.
9275
11285
  from aws_cdk import aws_cloudfront as cloudfront
9276
11286
 
9277
- s3_origin_config_property = cloudfront.CfnDistribution.S3OriginConfigProperty(
9278
- origin_access_identity="originAccessIdentity"
11287
+ geo_restriction_customization_property = cloudfront.CfnDistributionTenant.GeoRestrictionCustomizationProperty(
11288
+ locations=["locations"],
11289
+ restriction_type="restrictionType"
9279
11290
  )
9280
11291
  '''
9281
11292
  if __debug__:
9282
- type_hints = typing.get_type_hints(_typecheckingstub__8d9ff629693eb9bcb66704ce461d05e62e0755b651cbbc7ead2b89151325cad7)
9283
- check_type(argname="argument origin_access_identity", value=origin_access_identity, expected_type=type_hints["origin_access_identity"])
11293
+ type_hints = typing.get_type_hints(_typecheckingstub__b12cc1d8db14a6223b67c5f9254d5e808563dc8b6065256b09f01459db825b10)
11294
+ check_type(argname="argument locations", value=locations, expected_type=type_hints["locations"])
11295
+ check_type(argname="argument restriction_type", value=restriction_type, expected_type=type_hints["restriction_type"])
9284
11296
  self._values: typing.Dict[builtins.str, typing.Any] = {}
9285
- if origin_access_identity is not None:
9286
- self._values["origin_access_identity"] = origin_access_identity
11297
+ if locations is not None:
11298
+ self._values["locations"] = locations
11299
+ if restriction_type is not None:
11300
+ self._values["restriction_type"] = restriction_type
9287
11301
 
9288
11302
  @builtins.property
9289
- def origin_access_identity(self) -> typing.Optional[builtins.str]:
9290
- '''.. epigraph::
9291
-
9292
- If you're using origin access control (OAC) instead of origin access identity, specify an empty ``OriginAccessIdentity`` element.
9293
-
9294
- For more information, see `Restricting access to an AWS <https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-origin.html>`_ in the *Amazon CloudFront Developer Guide* .
9295
-
9296
- The CloudFront origin access identity to associate with the origin. Use an origin access identity to configure the origin so that viewers can *only* access objects in an Amazon S3 bucket through CloudFront. The format of the value is:
9297
-
9298
- ``origin-access-identity/cloudfront/ID-of-origin-access-identity``
9299
-
9300
- The ``*ID-of-origin-access-identity*`` is the value that CloudFront returned in the ``ID`` element when you created the origin access identity.
9301
-
9302
- If you want viewers to be able to access objects using either the CloudFront URL or the Amazon S3 URL, specify an empty ``OriginAccessIdentity`` element.
9303
-
9304
- To delete the origin access identity from an existing distribution, update the distribution configuration and include an empty ``OriginAccessIdentity`` element.
9305
-
9306
- To replace the origin access identity, update the distribution configuration and specify the new origin access identity.
9307
-
9308
- For more information about the origin access identity, see `Serving Private Content through CloudFront <https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html>`_ in the *Amazon CloudFront Developer Guide* .
9309
-
9310
- :default: - ""
11303
+ def locations(self) -> typing.Optional[typing.List[builtins.str]]:
11304
+ '''
11305
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distributiontenant-georestrictioncustomization.html#cfn-cloudfront-distributiontenant-georestrictioncustomization-locations
11306
+ '''
11307
+ result = self._values.get("locations")
11308
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
9311
11309
 
9312
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-s3originconfig.html#cfn-cloudfront-distribution-s3originconfig-originaccessidentity
11310
+ @builtins.property
11311
+ def restriction_type(self) -> typing.Optional[builtins.str]:
9313
11312
  '''
9314
- result = self._values.get("origin_access_identity")
11313
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distributiontenant-georestrictioncustomization.html#cfn-cloudfront-distributiontenant-georestrictioncustomization-restrictiontype
11314
+ '''
11315
+ result = self._values.get("restriction_type")
9315
11316
  return typing.cast(typing.Optional[builtins.str], result)
9316
11317
 
9317
11318
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
@@ -9321,28 +11322,33 @@ class CfnDistribution(
9321
11322
  return not (rhs == self)
9322
11323
 
9323
11324
  def __repr__(self) -> str:
9324
- return "S3OriginConfigProperty(%s)" % ", ".join(
11325
+ return "GeoRestrictionCustomizationProperty(%s)" % ", ".join(
9325
11326
  k + "=" + repr(v) for k, v in self._values.items()
9326
11327
  )
9327
11328
 
9328
11329
  @jsii.data_type(
9329
- jsii_type="aws-cdk-lib.aws_cloudfront.CfnDistribution.StatusCodesProperty",
11330
+ jsii_type="aws-cdk-lib.aws_cloudfront.CfnDistributionTenant.ManagedCertificateRequestProperty",
9330
11331
  jsii_struct_bases=[],
9331
- name_mapping={"items": "items", "quantity": "quantity"},
11332
+ name_mapping={
11333
+ "certificate_transparency_logging_preference": "certificateTransparencyLoggingPreference",
11334
+ "primary_domain_name": "primaryDomainName",
11335
+ "validation_token_host": "validationTokenHost",
11336
+ },
9332
11337
  )
9333
- class StatusCodesProperty:
11338
+ class ManagedCertificateRequestProperty:
9334
11339
  def __init__(
9335
11340
  self,
9336
11341
  *,
9337
- items: typing.Union[typing.Sequence[jsii.Number], _IResolvable_da3f097b],
9338
- quantity: jsii.Number,
11342
+ certificate_transparency_logging_preference: typing.Optional[builtins.str] = None,
11343
+ primary_domain_name: typing.Optional[builtins.str] = None,
11344
+ validation_token_host: typing.Optional[builtins.str] = None,
9339
11345
  ) -> None:
9340
- '''A complex data type for the status codes that you specify that, when returned by a primary origin, trigger CloudFront to failover to a second origin.
9341
-
9342
- :param items: The items (status codes) for an origin group.
9343
- :param quantity: The number of status codes.
11346
+ '''
11347
+ :param certificate_transparency_logging_preference:
11348
+ :param primary_domain_name:
11349
+ :param validation_token_host:
9344
11350
 
9345
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-statuscodes.html
11351
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distributiontenant-managedcertificaterequest.html
9346
11352
  :exampleMetadata: fixture=_generated
9347
11353
 
9348
11354
  Example::
@@ -9351,41 +11357,50 @@ class CfnDistribution(
9351
11357
  # The values are placeholders you should change.
9352
11358
  from aws_cdk import aws_cloudfront as cloudfront
9353
11359
 
9354
- status_codes_property = cloudfront.CfnDistribution.StatusCodesProperty(
9355
- items=[123],
9356
- quantity=123
11360
+ managed_certificate_request_property = cloudfront.CfnDistributionTenant.ManagedCertificateRequestProperty(
11361
+ certificate_transparency_logging_preference="certificateTransparencyLoggingPreference",
11362
+ primary_domain_name="primaryDomainName",
11363
+ validation_token_host="validationTokenHost"
9357
11364
  )
9358
11365
  '''
9359
11366
  if __debug__:
9360
- type_hints = typing.get_type_hints(_typecheckingstub__7b8b62ce6bf1ec6151566719caf2d665f3f7fea596e402fba7354f19f781f23c)
9361
- check_type(argname="argument items", value=items, expected_type=type_hints["items"])
9362
- check_type(argname="argument quantity", value=quantity, expected_type=type_hints["quantity"])
9363
- self._values: typing.Dict[builtins.str, typing.Any] = {
9364
- "items": items,
9365
- "quantity": quantity,
9366
- }
11367
+ type_hints = typing.get_type_hints(_typecheckingstub__bd3055b78628b26ba1bcd38e78722682f53f911f50dd7e46fce1153242ca9358)
11368
+ check_type(argname="argument certificate_transparency_logging_preference", value=certificate_transparency_logging_preference, expected_type=type_hints["certificate_transparency_logging_preference"])
11369
+ check_type(argname="argument primary_domain_name", value=primary_domain_name, expected_type=type_hints["primary_domain_name"])
11370
+ check_type(argname="argument validation_token_host", value=validation_token_host, expected_type=type_hints["validation_token_host"])
11371
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
11372
+ if certificate_transparency_logging_preference is not None:
11373
+ self._values["certificate_transparency_logging_preference"] = certificate_transparency_logging_preference
11374
+ if primary_domain_name is not None:
11375
+ self._values["primary_domain_name"] = primary_domain_name
11376
+ if validation_token_host is not None:
11377
+ self._values["validation_token_host"] = validation_token_host
9367
11378
 
9368
11379
  @builtins.property
9369
- def items(
11380
+ def certificate_transparency_logging_preference(
9370
11381
  self,
9371
- ) -> typing.Union[typing.List[jsii.Number], _IResolvable_da3f097b]:
9372
- '''The items (status codes) for an origin group.
9373
-
9374
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-statuscodes.html#cfn-cloudfront-distribution-statuscodes-items
11382
+ ) -> typing.Optional[builtins.str]:
9375
11383
  '''
9376
- result = self._values.get("items")
9377
- assert result is not None, "Required property 'items' is missing"
9378
- return typing.cast(typing.Union[typing.List[jsii.Number], _IResolvable_da3f097b], result)
11384
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distributiontenant-managedcertificaterequest.html#cfn-cloudfront-distributiontenant-managedcertificaterequest-certificatetransparencyloggingpreference
11385
+ '''
11386
+ result = self._values.get("certificate_transparency_logging_preference")
11387
+ return typing.cast(typing.Optional[builtins.str], result)
9379
11388
 
9380
11389
  @builtins.property
9381
- def quantity(self) -> jsii.Number:
9382
- '''The number of status codes.
11390
+ def primary_domain_name(self) -> typing.Optional[builtins.str]:
11391
+ '''
11392
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distributiontenant-managedcertificaterequest.html#cfn-cloudfront-distributiontenant-managedcertificaterequest-primarydomainname
11393
+ '''
11394
+ result = self._values.get("primary_domain_name")
11395
+ return typing.cast(typing.Optional[builtins.str], result)
9383
11396
 
9384
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-statuscodes.html#cfn-cloudfront-distribution-statuscodes-quantity
11397
+ @builtins.property
11398
+ def validation_token_host(self) -> typing.Optional[builtins.str]:
9385
11399
  '''
9386
- result = self._values.get("quantity")
9387
- assert result is not None, "Required property 'quantity' is missing"
9388
- return typing.cast(jsii.Number, result)
11400
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distributiontenant-managedcertificaterequest.html#cfn-cloudfront-distributiontenant-managedcertificaterequest-validationtokenhost
11401
+ '''
11402
+ result = self._values.get("validation_token_host")
11403
+ return typing.cast(typing.Optional[builtins.str], result)
9389
11404
 
9390
11405
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
9391
11406
  return isinstance(rhs, self.__class__) and rhs._values == self._values
@@ -9394,56 +11409,27 @@ class CfnDistribution(
9394
11409
  return not (rhs == self)
9395
11410
 
9396
11411
  def __repr__(self) -> str:
9397
- return "StatusCodesProperty(%s)" % ", ".join(
11412
+ return "ManagedCertificateRequestProperty(%s)" % ", ".join(
9398
11413
  k + "=" + repr(v) for k, v in self._values.items()
9399
11414
  )
9400
11415
 
9401
11416
  @jsii.data_type(
9402
- jsii_type="aws-cdk-lib.aws_cloudfront.CfnDistribution.ViewerCertificateProperty",
11417
+ jsii_type="aws-cdk-lib.aws_cloudfront.CfnDistributionTenant.ParameterProperty",
9403
11418
  jsii_struct_bases=[],
9404
- name_mapping={
9405
- "acm_certificate_arn": "acmCertificateArn",
9406
- "cloud_front_default_certificate": "cloudFrontDefaultCertificate",
9407
- "iam_certificate_id": "iamCertificateId",
9408
- "minimum_protocol_version": "minimumProtocolVersion",
9409
- "ssl_support_method": "sslSupportMethod",
9410
- },
11419
+ name_mapping={"name": "name", "value": "value"},
9411
11420
  )
9412
- class ViewerCertificateProperty:
11421
+ class ParameterProperty:
9413
11422
  def __init__(
9414
11423
  self,
9415
11424
  *,
9416
- acm_certificate_arn: typing.Optional[builtins.str] = None,
9417
- cloud_front_default_certificate: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
9418
- iam_certificate_id: typing.Optional[builtins.str] = None,
9419
- minimum_protocol_version: typing.Optional[builtins.str] = None,
9420
- ssl_support_method: typing.Optional[builtins.str] = None,
11425
+ name: typing.Optional[builtins.str] = None,
11426
+ value: typing.Optional[builtins.str] = None,
9421
11427
  ) -> None:
9422
- '''A complex type that determines the distribution's SSL/TLS configuration for communicating with viewers.
9423
-
9424
- If the distribution doesn't use ``Aliases`` (also known as alternate domain names or CNAMEs)—that is, if the distribution uses the CloudFront domain name such as ``d111111abcdef8.cloudfront.net`` —set ``CloudFrontDefaultCertificate`` to ``true`` and leave all other fields empty.
9425
-
9426
- If the distribution uses ``Aliases`` (alternate domain names or CNAMEs), use the fields in this type to specify the following settings:
9427
-
9428
- - Which viewers the distribution accepts HTTPS connections from: only viewers that support `server name indication (SNI) <https://docs.aws.amazon.com/https://en.wikipedia.org/wiki/Server_Name_Indication>`_ (recommended), or all viewers including those that don't support SNI.
9429
- - To accept HTTPS connections from only viewers that support SNI, set ``SSLSupportMethod`` to ``sni-only`` . This is recommended. Most browsers and clients support SNI. (In CloudFormation, the field name is ``SslSupportMethod`` . Note the different capitalization.)
9430
- - To accept HTTPS connections from all viewers, including those that don't support SNI, set ``SSLSupportMethod`` to ``vip`` . This is not recommended, and results in additional monthly charges from CloudFront. (In CloudFormation, the field name is ``SslSupportMethod`` . Note the different capitalization.)
9431
- - The minimum SSL/TLS protocol version that the distribution can use to communicate with viewers. To specify a minimum version, choose a value for ``MinimumProtocolVersion`` . For more information, see `Security Policy <https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValues-security-policy>`_ in the *Amazon CloudFront Developer Guide* .
9432
- - The location of the SSL/TLS certificate, `AWS Certificate Manager (ACM) <https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html>`_ (recommended) or `AWS Identity and Access Management (IAM) <https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html>`_ . You specify the location by setting a value in one of the following fields (not both):
9433
- - ``ACMCertificateArn`` (In CloudFormation, this field name is ``AcmCertificateArn`` . Note the different capitalization.)
9434
- - ``IAMCertificateId`` (In CloudFormation, this field name is ``IamCertificateId`` . Note the different capitalization.)
9435
-
9436
- All distributions support HTTPS connections from viewers. To require viewers to use HTTPS only, or to redirect them from HTTP to HTTPS, use ``ViewerProtocolPolicy`` in the ``CacheBehavior`` or ``DefaultCacheBehavior`` . To specify how CloudFront should use SSL/TLS to communicate with your custom origin, use ``CustomOriginConfig`` .
9437
-
9438
- For more information, see `Using HTTPS with CloudFront <https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https.html>`_ and `Using Alternate Domain Names and HTTPS <https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-alternate-domain-names.html>`_ in the *Amazon CloudFront Developer Guide* .
9439
-
9440
- :param acm_certificate_arn: .. epigraph:: In CloudFormation, this field name is ``AcmCertificateArn`` . Note the different capitalization. If the distribution uses ``Aliases`` (alternate domain names or CNAMEs) and the SSL/TLS certificate is stored in `AWS Certificate Manager (ACM) <https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html>`_ , provide the Amazon Resource Name (ARN) of the ACM certificate. CloudFront only supports ACM certificates in the US East (N. Virginia) Region ( ``us-east-1`` ). If you specify an ACM certificate ARN, you must also specify values for ``MinimumProtocolVersion`` and ``SSLSupportMethod`` . (In CloudFormation, the field name is ``SslSupportMethod`` . Note the different capitalization.)
9441
- :param cloud_front_default_certificate: If the distribution uses the CloudFront domain name such as ``d111111abcdef8.cloudfront.net`` , set this field to ``true`` . If the distribution uses ``Aliases`` (alternate domain names or CNAMEs), omit this field and specify values for the following fields: - ``AcmCertificateArn`` or ``IamCertificateId`` (specify a value for one, not both) - ``MinimumProtocolVersion`` - ``SslSupportMethod``
9442
- :param iam_certificate_id: .. epigraph:: In CloudFormation, this field name is ``IamCertificateId`` . Note the different capitalization. If the distribution uses ``Aliases`` (alternate domain names or CNAMEs) and the SSL/TLS certificate is stored in `AWS Identity and Access Management (IAM) <https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html>`_ , provide the ID of the IAM certificate. If you specify an IAM certificate ID, you must also specify values for ``MinimumProtocolVersion`` and ``SSLSupportMethod`` . (In CloudFormation, the field name is ``SslSupportMethod`` . Note the different capitalization.)
9443
- :param minimum_protocol_version: If the distribution uses ``Aliases`` (alternate domain names or CNAMEs), specify the security policy that you want CloudFront to use for HTTPS connections with viewers. The security policy determines two settings: - The minimum SSL/TLS protocol that CloudFront can use to communicate with viewers. - The ciphers that CloudFront can use to encrypt the content that it returns to viewers. For more information, see `Security Policy <https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValues-security-policy>`_ and `Supported Protocols and Ciphers Between Viewers and CloudFront <https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/secure-connections-supported-viewer-protocols-ciphers.html#secure-connections-supported-ciphers>`_ in the *Amazon CloudFront Developer Guide* . .. epigraph:: On the CloudFront console, this setting is called *Security Policy* . When you're using SNI only (you set ``SSLSupportMethod`` to ``sni-only`` ), you must specify ``TLSv1`` or higher. (In CloudFormation, the field name is ``SslSupportMethod`` . Note the different capitalization.) If the distribution uses the CloudFront domain name such as ``d111111abcdef8.cloudfront.net`` (you set ``CloudFrontDefaultCertificate`` to ``true`` ), CloudFront automatically sets the security policy to ``TLSv1`` regardless of the value that you set here.
9444
- :param ssl_support_method: .. epigraph:: In CloudFormation, this field name is ``SslSupportMethod`` . Note the different capitalization. If the distribution uses ``Aliases`` (alternate domain names or CNAMEs), specify which viewers the distribution accepts HTTPS connections from. - ``sni-only`` – The distribution accepts HTTPS connections from only viewers that support `server name indication (SNI) <https://docs.aws.amazon.com/https://en.wikipedia.org/wiki/Server_Name_Indication>`_ . This is recommended. Most browsers and clients support SNI. - ``vip`` – The distribution accepts HTTPS connections from all viewers including those that don't support SNI. This is not recommended, and results in additional monthly charges from CloudFront. - ``static-ip`` - Do not specify this value unless your distribution has been enabled for this feature by the CloudFront team. If you have a use case that requires static IP addresses for a distribution, contact CloudFront through the `Support Center <https://docs.aws.amazon.com/support/home>`_ . If the distribution uses the CloudFront domain name such as ``d111111abcdef8.cloudfront.net`` , don't set a value for this field.
11428
+ '''
11429
+ :param name:
11430
+ :param value:
9445
11431
 
9446
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-viewercertificate.html
11432
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distributiontenant-parameter.html
9447
11433
  :exampleMetadata: fixture=_generated
9448
11434
 
9449
11435
  Example::
@@ -9452,120 +11438,35 @@ class CfnDistribution(
9452
11438
  # The values are placeholders you should change.
9453
11439
  from aws_cdk import aws_cloudfront as cloudfront
9454
11440
 
9455
- viewer_certificate_property = cloudfront.CfnDistribution.ViewerCertificateProperty(
9456
- acm_certificate_arn="acmCertificateArn",
9457
- cloud_front_default_certificate=False,
9458
- iam_certificate_id="iamCertificateId",
9459
- minimum_protocol_version="minimumProtocolVersion",
9460
- ssl_support_method="sslSupportMethod"
11441
+ parameter_property = cloudfront.CfnDistributionTenant.ParameterProperty(
11442
+ name="name",
11443
+ value="value"
9461
11444
  )
9462
11445
  '''
9463
11446
  if __debug__:
9464
- type_hints = typing.get_type_hints(_typecheckingstub__511560286b35778c69f3d2a23120607f1ab2e58901f0c1ba7acd75a338eb699e)
9465
- check_type(argname="argument acm_certificate_arn", value=acm_certificate_arn, expected_type=type_hints["acm_certificate_arn"])
9466
- check_type(argname="argument cloud_front_default_certificate", value=cloud_front_default_certificate, expected_type=type_hints["cloud_front_default_certificate"])
9467
- check_type(argname="argument iam_certificate_id", value=iam_certificate_id, expected_type=type_hints["iam_certificate_id"])
9468
- check_type(argname="argument minimum_protocol_version", value=minimum_protocol_version, expected_type=type_hints["minimum_protocol_version"])
9469
- check_type(argname="argument ssl_support_method", value=ssl_support_method, expected_type=type_hints["ssl_support_method"])
11447
+ type_hints = typing.get_type_hints(_typecheckingstub__153cd98fd3544f143cb0059bfc0c01069aa936e548aae6596f575cebfb894add)
11448
+ check_type(argname="argument name", value=name, expected_type=type_hints["name"])
11449
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
9470
11450
  self._values: typing.Dict[builtins.str, typing.Any] = {}
9471
- if acm_certificate_arn is not None:
9472
- self._values["acm_certificate_arn"] = acm_certificate_arn
9473
- if cloud_front_default_certificate is not None:
9474
- self._values["cloud_front_default_certificate"] = cloud_front_default_certificate
9475
- if iam_certificate_id is not None:
9476
- self._values["iam_certificate_id"] = iam_certificate_id
9477
- if minimum_protocol_version is not None:
9478
- self._values["minimum_protocol_version"] = minimum_protocol_version
9479
- if ssl_support_method is not None:
9480
- self._values["ssl_support_method"] = ssl_support_method
9481
-
9482
- @builtins.property
9483
- def acm_certificate_arn(self) -> typing.Optional[builtins.str]:
9484
- '''.. epigraph::
9485
-
9486
- In CloudFormation, this field name is ``AcmCertificateArn`` . Note the different capitalization.
9487
-
9488
- If the distribution uses ``Aliases`` (alternate domain names or CNAMEs) and the SSL/TLS certificate is stored in `AWS Certificate Manager (ACM) <https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html>`_ , provide the Amazon Resource Name (ARN) of the ACM certificate. CloudFront only supports ACM certificates in the US East (N. Virginia) Region ( ``us-east-1`` ).
9489
-
9490
- If you specify an ACM certificate ARN, you must also specify values for ``MinimumProtocolVersion`` and ``SSLSupportMethod`` . (In CloudFormation, the field name is ``SslSupportMethod`` . Note the different capitalization.)
9491
-
9492
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-viewercertificate.html#cfn-cloudfront-distribution-viewercertificate-acmcertificatearn
9493
- '''
9494
- result = self._values.get("acm_certificate_arn")
9495
- return typing.cast(typing.Optional[builtins.str], result)
11451
+ if name is not None:
11452
+ self._values["name"] = name
11453
+ if value is not None:
11454
+ self._values["value"] = value
9496
11455
 
9497
11456
  @builtins.property
9498
- def cloud_front_default_certificate(
9499
- self,
9500
- ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
9501
- '''If the distribution uses the CloudFront domain name such as ``d111111abcdef8.cloudfront.net`` , set this field to ``true`` .
9502
-
9503
- If the distribution uses ``Aliases`` (alternate domain names or CNAMEs), omit this field and specify values for the following fields:
9504
-
9505
- - ``AcmCertificateArn`` or ``IamCertificateId`` (specify a value for one, not both)
9506
- - ``MinimumProtocolVersion``
9507
- - ``SslSupportMethod``
9508
-
9509
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-viewercertificate.html#cfn-cloudfront-distribution-viewercertificate-cloudfrontdefaultcertificate
11457
+ def name(self) -> typing.Optional[builtins.str]:
9510
11458
  '''
9511
- result = self._values.get("cloud_front_default_certificate")
9512
- return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
9513
-
9514
- @builtins.property
9515
- def iam_certificate_id(self) -> typing.Optional[builtins.str]:
9516
- '''.. epigraph::
9517
-
9518
- In CloudFormation, this field name is ``IamCertificateId`` . Note the different capitalization.
9519
-
9520
- If the distribution uses ``Aliases`` (alternate domain names or CNAMEs) and the SSL/TLS certificate is stored in `AWS Identity and Access Management (IAM) <https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html>`_ , provide the ID of the IAM certificate.
9521
-
9522
- If you specify an IAM certificate ID, you must also specify values for ``MinimumProtocolVersion`` and ``SSLSupportMethod`` . (In CloudFormation, the field name is ``SslSupportMethod`` . Note the different capitalization.)
9523
-
9524
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-viewercertificate.html#cfn-cloudfront-distribution-viewercertificate-iamcertificateid
11459
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distributiontenant-parameter.html#cfn-cloudfront-distributiontenant-parameter-name
9525
11460
  '''
9526
- result = self._values.get("iam_certificate_id")
11461
+ result = self._values.get("name")
9527
11462
  return typing.cast(typing.Optional[builtins.str], result)
9528
11463
 
9529
11464
  @builtins.property
9530
- def minimum_protocol_version(self) -> typing.Optional[builtins.str]:
9531
- '''If the distribution uses ``Aliases`` (alternate domain names or CNAMEs), specify the security policy that you want CloudFront to use for HTTPS connections with viewers.
9532
-
9533
- The security policy determines two settings:
9534
-
9535
- - The minimum SSL/TLS protocol that CloudFront can use to communicate with viewers.
9536
- - The ciphers that CloudFront can use to encrypt the content that it returns to viewers.
9537
-
9538
- For more information, see `Security Policy <https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValues-security-policy>`_ and `Supported Protocols and Ciphers Between Viewers and CloudFront <https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/secure-connections-supported-viewer-protocols-ciphers.html#secure-connections-supported-ciphers>`_ in the *Amazon CloudFront Developer Guide* .
9539
- .. epigraph::
9540
-
9541
- On the CloudFront console, this setting is called *Security Policy* .
9542
-
9543
- When you're using SNI only (you set ``SSLSupportMethod`` to ``sni-only`` ), you must specify ``TLSv1`` or higher. (In CloudFormation, the field name is ``SslSupportMethod`` . Note the different capitalization.)
9544
-
9545
- If the distribution uses the CloudFront domain name such as ``d111111abcdef8.cloudfront.net`` (you set ``CloudFrontDefaultCertificate`` to ``true`` ), CloudFront automatically sets the security policy to ``TLSv1`` regardless of the value that you set here.
9546
-
9547
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-viewercertificate.html#cfn-cloudfront-distribution-viewercertificate-minimumprotocolversion
11465
+ def value(self) -> typing.Optional[builtins.str]:
9548
11466
  '''
9549
- result = self._values.get("minimum_protocol_version")
9550
- return typing.cast(typing.Optional[builtins.str], result)
9551
-
9552
- @builtins.property
9553
- def ssl_support_method(self) -> typing.Optional[builtins.str]:
9554
- '''.. epigraph::
9555
-
9556
- In CloudFormation, this field name is ``SslSupportMethod`` . Note the different capitalization.
9557
-
9558
- If the distribution uses ``Aliases`` (alternate domain names or CNAMEs), specify which viewers the distribution accepts HTTPS connections from.
9559
-
9560
- - ``sni-only`` – The distribution accepts HTTPS connections from only viewers that support `server name indication (SNI) <https://docs.aws.amazon.com/https://en.wikipedia.org/wiki/Server_Name_Indication>`_ . This is recommended. Most browsers and clients support SNI.
9561
- - ``vip`` – The distribution accepts HTTPS connections from all viewers including those that don't support SNI. This is not recommended, and results in additional monthly charges from CloudFront.
9562
- - ``static-ip`` - Do not specify this value unless your distribution has been enabled for this feature by the CloudFront team. If you have a use case that requires static IP addresses for a distribution, contact CloudFront through the `Support Center <https://docs.aws.amazon.com/support/home>`_ .
9563
-
9564
- If the distribution uses the CloudFront domain name such as ``d111111abcdef8.cloudfront.net`` , don't set a value for this field.
9565
-
9566
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-viewercertificate.html#cfn-cloudfront-distribution-viewercertificate-sslsupportmethod
11467
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distributiontenant-parameter.html#cfn-cloudfront-distributiontenant-parameter-value
9567
11468
  '''
9568
- result = self._values.get("ssl_support_method")
11469
+ result = self._values.get("value")
9569
11470
  return typing.cast(typing.Optional[builtins.str], result)
9570
11471
 
9571
11472
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
@@ -9575,34 +11476,27 @@ class CfnDistribution(
9575
11476
  return not (rhs == self)
9576
11477
 
9577
11478
  def __repr__(self) -> str:
9578
- return "ViewerCertificateProperty(%s)" % ", ".join(
11479
+ return "ParameterProperty(%s)" % ", ".join(
9579
11480
  k + "=" + repr(v) for k, v in self._values.items()
9580
11481
  )
9581
11482
 
9582
11483
  @jsii.data_type(
9583
- jsii_type="aws-cdk-lib.aws_cloudfront.CfnDistribution.VpcOriginConfigProperty",
11484
+ jsii_type="aws-cdk-lib.aws_cloudfront.CfnDistributionTenant.WebAclCustomizationProperty",
9584
11485
  jsii_struct_bases=[],
9585
- name_mapping={
9586
- "vpc_origin_id": "vpcOriginId",
9587
- "origin_keepalive_timeout": "originKeepaliveTimeout",
9588
- "origin_read_timeout": "originReadTimeout",
9589
- },
11486
+ name_mapping={"action": "action", "arn": "arn"},
9590
11487
  )
9591
- class VpcOriginConfigProperty:
11488
+ class WebAclCustomizationProperty:
9592
11489
  def __init__(
9593
11490
  self,
9594
11491
  *,
9595
- vpc_origin_id: builtins.str,
9596
- origin_keepalive_timeout: typing.Optional[jsii.Number] = None,
9597
- origin_read_timeout: typing.Optional[jsii.Number] = None,
11492
+ action: typing.Optional[builtins.str] = None,
11493
+ arn: typing.Optional[builtins.str] = None,
9598
11494
  ) -> None:
9599
- '''An Amazon CloudFront VPC origin configuration.
9600
-
9601
- :param vpc_origin_id: The VPC origin ID.
9602
- :param origin_keepalive_timeout: Specifies how long, in seconds, CloudFront persists its connection to the origin. The minimum timeout is 1 second, the maximum is 60 seconds, and the default (if you don't specify otherwise) is 5 seconds. For more information, see `Keep-alive timeout (custom origins only) <https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginKeepaliveTimeout>`_ in the *Amazon CloudFront Developer Guide* . Default: - 5
9603
- :param origin_read_timeout: Specifies how long, in seconds, CloudFront waits for a response from the origin. This is also known as the *origin response timeout* . The minimum timeout is 1 second, the maximum is 60 seconds, and the default (if you don't specify otherwise) is 30 seconds. For more information, see `Response timeout (custom origins only) <https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginResponseTimeout>`_ in the *Amazon CloudFront Developer Guide* . Default: - 30
11495
+ '''
11496
+ :param action:
11497
+ :param arn:
9604
11498
 
9605
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-vpcoriginconfig.html
11499
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distributiontenant-webaclcustomization.html
9606
11500
  :exampleMetadata: fixture=_generated
9607
11501
 
9608
11502
  Example::
@@ -9611,66 +11505,36 @@ class CfnDistribution(
9611
11505
  # The values are placeholders you should change.
9612
11506
  from aws_cdk import aws_cloudfront as cloudfront
9613
11507
 
9614
- vpc_origin_config_property = cloudfront.CfnDistribution.VpcOriginConfigProperty(
9615
- vpc_origin_id="vpcOriginId",
9616
-
9617
- # the properties below are optional
9618
- origin_keepalive_timeout=123,
9619
- origin_read_timeout=123
11508
+ web_acl_customization_property = cloudfront.CfnDistributionTenant.WebAclCustomizationProperty(
11509
+ action="action",
11510
+ arn="arn"
9620
11511
  )
9621
11512
  '''
9622
- if __debug__:
9623
- type_hints = typing.get_type_hints(_typecheckingstub__f7a2beaed61436754427d5794c11e2b8b3ecac452591d86453fc6b4321c161b0)
9624
- check_type(argname="argument vpc_origin_id", value=vpc_origin_id, expected_type=type_hints["vpc_origin_id"])
9625
- check_type(argname="argument origin_keepalive_timeout", value=origin_keepalive_timeout, expected_type=type_hints["origin_keepalive_timeout"])
9626
- check_type(argname="argument origin_read_timeout", value=origin_read_timeout, expected_type=type_hints["origin_read_timeout"])
9627
- self._values: typing.Dict[builtins.str, typing.Any] = {
9628
- "vpc_origin_id": vpc_origin_id,
9629
- }
9630
- if origin_keepalive_timeout is not None:
9631
- self._values["origin_keepalive_timeout"] = origin_keepalive_timeout
9632
- if origin_read_timeout is not None:
9633
- self._values["origin_read_timeout"] = origin_read_timeout
9634
-
9635
- @builtins.property
9636
- def vpc_origin_id(self) -> builtins.str:
9637
- '''The VPC origin ID.
9638
-
9639
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-vpcoriginconfig.html#cfn-cloudfront-distribution-vpcoriginconfig-vpcoriginid
9640
- '''
9641
- result = self._values.get("vpc_origin_id")
9642
- assert result is not None, "Required property 'vpc_origin_id' is missing"
9643
- return typing.cast(builtins.str, result)
9644
-
9645
- @builtins.property
9646
- def origin_keepalive_timeout(self) -> typing.Optional[jsii.Number]:
9647
- '''Specifies how long, in seconds, CloudFront persists its connection to the origin.
9648
-
9649
- The minimum timeout is 1 second, the maximum is 60 seconds, and the default (if you don't specify otherwise) is 5 seconds.
9650
-
9651
- For more information, see `Keep-alive timeout (custom origins only) <https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginKeepaliveTimeout>`_ in the *Amazon CloudFront Developer Guide* .
9652
-
9653
- :default: - 5
9654
-
9655
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-vpcoriginconfig.html#cfn-cloudfront-distribution-vpcoriginconfig-originkeepalivetimeout
9656
- '''
9657
- result = self._values.get("origin_keepalive_timeout")
9658
- return typing.cast(typing.Optional[jsii.Number], result)
11513
+ if __debug__:
11514
+ type_hints = typing.get_type_hints(_typecheckingstub__1146c72709bb4672e62f556fac241f6dc79c09223c1e3a1863d70512f623c799)
11515
+ check_type(argname="argument action", value=action, expected_type=type_hints["action"])
11516
+ check_type(argname="argument arn", value=arn, expected_type=type_hints["arn"])
11517
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
11518
+ if action is not None:
11519
+ self._values["action"] = action
11520
+ if arn is not None:
11521
+ self._values["arn"] = arn
9659
11522
 
9660
11523
  @builtins.property
9661
- def origin_read_timeout(self) -> typing.Optional[jsii.Number]:
9662
- '''Specifies how long, in seconds, CloudFront waits for a response from the origin.
9663
-
9664
- This is also known as the *origin response timeout* . The minimum timeout is 1 second, the maximum is 60 seconds, and the default (if you don't specify otherwise) is 30 seconds.
9665
-
9666
- For more information, see `Response timeout (custom origins only) <https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginResponseTimeout>`_ in the *Amazon CloudFront Developer Guide* .
9667
-
9668
- :default: - 30
11524
+ def action(self) -> typing.Optional[builtins.str]:
11525
+ '''
11526
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distributiontenant-webaclcustomization.html#cfn-cloudfront-distributiontenant-webaclcustomization-action
11527
+ '''
11528
+ result = self._values.get("action")
11529
+ return typing.cast(typing.Optional[builtins.str], result)
9669
11530
 
9670
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-vpcoriginconfig.html#cfn-cloudfront-distribution-vpcoriginconfig-originreadtimeout
11531
+ @builtins.property
11532
+ def arn(self) -> typing.Optional[builtins.str]:
9671
11533
  '''
9672
- result = self._values.get("origin_read_timeout")
9673
- return typing.cast(typing.Optional[jsii.Number], result)
11534
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distributiontenant-webaclcustomization.html#cfn-cloudfront-distributiontenant-webaclcustomization-arn
11535
+ '''
11536
+ result = self._values.get("arn")
11537
+ return typing.cast(typing.Optional[builtins.str], result)
9674
11538
 
9675
11539
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
9676
11540
  return isinstance(rhs, self.__class__) and rhs._values == self._values
@@ -9679,29 +11543,53 @@ class CfnDistribution(
9679
11543
  return not (rhs == self)
9680
11544
 
9681
11545
  def __repr__(self) -> str:
9682
- return "VpcOriginConfigProperty(%s)" % ", ".join(
11546
+ return "WebAclCustomizationProperty(%s)" % ", ".join(
9683
11547
  k + "=" + repr(v) for k, v in self._values.items()
9684
11548
  )
9685
11549
 
9686
11550
 
9687
11551
  @jsii.data_type(
9688
- jsii_type="aws-cdk-lib.aws_cloudfront.CfnDistributionProps",
11552
+ jsii_type="aws-cdk-lib.aws_cloudfront.CfnDistributionTenantProps",
9689
11553
  jsii_struct_bases=[],
9690
- name_mapping={"distribution_config": "distributionConfig", "tags": "tags"},
11554
+ name_mapping={
11555
+ "distribution_id": "distributionId",
11556
+ "domains": "domains",
11557
+ "name": "name",
11558
+ "connection_group_id": "connectionGroupId",
11559
+ "customizations": "customizations",
11560
+ "enabled": "enabled",
11561
+ "managed_certificate_request": "managedCertificateRequest",
11562
+ "parameters": "parameters",
11563
+ "tags": "tags",
11564
+ },
9691
11565
  )
9692
- class CfnDistributionProps:
11566
+ class CfnDistributionTenantProps:
9693
11567
  def __init__(
9694
11568
  self,
9695
11569
  *,
9696
- distribution_config: typing.Union[_IResolvable_da3f097b, typing.Union[CfnDistribution.DistributionConfigProperty, typing.Dict[builtins.str, typing.Any]]],
11570
+ distribution_id: builtins.str,
11571
+ domains: typing.Sequence[builtins.str],
11572
+ name: builtins.str,
11573
+ connection_group_id: typing.Optional[builtins.str] = None,
11574
+ customizations: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnDistributionTenant.CustomizationsProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
11575
+ enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
11576
+ managed_certificate_request: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnDistributionTenant.ManagedCertificateRequestProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
11577
+ parameters: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnDistributionTenant.ParameterProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
9697
11578
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
9698
11579
  ) -> None:
9699
- '''Properties for defining a ``CfnDistribution``.
9700
-
9701
- :param distribution_config: The distribution's configuration.
11580
+ '''Properties for defining a ``CfnDistributionTenant``.
11581
+
11582
+ :param distribution_id: The distribution's identifier. For example: ``E1U5RQF7T870K0`` .
11583
+ :param domains:
11584
+ :param name:
11585
+ :param connection_group_id:
11586
+ :param customizations:
11587
+ :param enabled:
11588
+ :param managed_certificate_request:
11589
+ :param parameters:
9702
11590
  :param tags: A complex type that contains zero or more ``Tag`` elements.
9703
11591
 
9704
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-distribution.html
11592
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-distributiontenant.html
9705
11593
  :exampleMetadata: fixture=_generated
9706
11594
 
9707
11595
  Example::
@@ -9710,220 +11598,36 @@ class CfnDistributionProps:
9710
11598
  # The values are placeholders you should change.
9711
11599
  from aws_cdk import aws_cloudfront as cloudfront
9712
11600
 
9713
- cfn_distribution_props = cloudfront.CfnDistributionProps(
9714
- distribution_config=cloudfront.CfnDistribution.DistributionConfigProperty(
9715
- default_cache_behavior=cloudfront.CfnDistribution.DefaultCacheBehaviorProperty(
9716
- target_origin_id="targetOriginId",
9717
- viewer_protocol_policy="viewerProtocolPolicy",
9718
-
9719
- # the properties below are optional
9720
- allowed_methods=["allowedMethods"],
9721
- cached_methods=["cachedMethods"],
9722
- cache_policy_id="cachePolicyId",
9723
- compress=False,
9724
- default_ttl=123,
9725
- field_level_encryption_id="fieldLevelEncryptionId",
9726
- forwarded_values=cloudfront.CfnDistribution.ForwardedValuesProperty(
9727
- query_string=False,
9728
-
9729
- # the properties below are optional
9730
- cookies=cloudfront.CfnDistribution.CookiesProperty(
9731
- forward="forward",
9732
-
9733
- # the properties below are optional
9734
- whitelisted_names=["whitelistedNames"]
9735
- ),
9736
- headers=["headers"],
9737
- query_string_cache_keys=["queryStringCacheKeys"]
9738
- ),
9739
- function_associations=[cloudfront.CfnDistribution.FunctionAssociationProperty(
9740
- event_type="eventType",
9741
- function_arn="functionArn"
9742
- )],
9743
- grpc_config=cloudfront.CfnDistribution.GrpcConfigProperty(
9744
- enabled=False
9745
- ),
9746
- lambda_function_associations=[cloudfront.CfnDistribution.LambdaFunctionAssociationProperty(
9747
- event_type="eventType",
9748
- include_body=False,
9749
- lambda_function_arn="lambdaFunctionArn"
9750
- )],
9751
- max_ttl=123,
9752
- min_ttl=123,
9753
- origin_request_policy_id="originRequestPolicyId",
9754
- realtime_log_config_arn="realtimeLogConfigArn",
9755
- response_headers_policy_id="responseHeadersPolicyId",
9756
- smooth_streaming=False,
9757
- trusted_key_groups=["trustedKeyGroups"],
9758
- trusted_signers=["trustedSigners"]
9759
- ),
9760
- enabled=False,
9761
-
9762
- # the properties below are optional
9763
- aliases=["aliases"],
9764
- anycast_ip_list_id="anycastIpListId",
9765
- cache_behaviors=[cloudfront.CfnDistribution.CacheBehaviorProperty(
9766
- path_pattern="pathPattern",
9767
- target_origin_id="targetOriginId",
9768
- viewer_protocol_policy="viewerProtocolPolicy",
9769
-
9770
- # the properties below are optional
9771
- allowed_methods=["allowedMethods"],
9772
- cached_methods=["cachedMethods"],
9773
- cache_policy_id="cachePolicyId",
9774
- compress=False,
9775
- default_ttl=123,
9776
- field_level_encryption_id="fieldLevelEncryptionId",
9777
- forwarded_values=cloudfront.CfnDistribution.ForwardedValuesProperty(
9778
- query_string=False,
9779
-
9780
- # the properties below are optional
9781
- cookies=cloudfront.CfnDistribution.CookiesProperty(
9782
- forward="forward",
9783
-
9784
- # the properties below are optional
9785
- whitelisted_names=["whitelistedNames"]
9786
- ),
9787
- headers=["headers"],
9788
- query_string_cache_keys=["queryStringCacheKeys"]
9789
- ),
9790
- function_associations=[cloudfront.CfnDistribution.FunctionAssociationProperty(
9791
- event_type="eventType",
9792
- function_arn="functionArn"
9793
- )],
9794
- grpc_config=cloudfront.CfnDistribution.GrpcConfigProperty(
9795
- enabled=False
9796
- ),
9797
- lambda_function_associations=[cloudfront.CfnDistribution.LambdaFunctionAssociationProperty(
9798
- event_type="eventType",
9799
- include_body=False,
9800
- lambda_function_arn="lambdaFunctionArn"
9801
- )],
9802
- max_ttl=123,
9803
- min_ttl=123,
9804
- origin_request_policy_id="originRequestPolicyId",
9805
- realtime_log_config_arn="realtimeLogConfigArn",
9806
- response_headers_policy_id="responseHeadersPolicyId",
9807
- smooth_streaming=False,
9808
- trusted_key_groups=["trustedKeyGroups"],
9809
- trusted_signers=["trustedSigners"]
9810
- )],
9811
- cnam_es=["cnamEs"],
9812
- comment="comment",
9813
- continuous_deployment_policy_id="continuousDeploymentPolicyId",
9814
- custom_error_responses=[cloudfront.CfnDistribution.CustomErrorResponseProperty(
9815
- error_code=123,
9816
-
9817
- # the properties below are optional
9818
- error_caching_min_ttl=123,
9819
- response_code=123,
9820
- response_page_path="responsePagePath"
9821
- )],
9822
- custom_origin=cloudfront.CfnDistribution.LegacyCustomOriginProperty(
9823
- dns_name="dnsName",
9824
- origin_protocol_policy="originProtocolPolicy",
9825
- origin_ssl_protocols=["originSslProtocols"],
9826
-
9827
- # the properties below are optional
9828
- http_port=123,
9829
- https_port=123
9830
- ),
9831
- default_root_object="defaultRootObject",
9832
- http_version="httpVersion",
9833
- ipv6_enabled=False,
9834
- logging=cloudfront.CfnDistribution.LoggingProperty(
9835
- bucket="bucket",
9836
- include_cookies=False,
9837
- prefix="prefix"
9838
- ),
9839
- origin_groups=cloudfront.CfnDistribution.OriginGroupsProperty(
9840
- quantity=123,
9841
-
9842
- # the properties below are optional
9843
- items=[cloudfront.CfnDistribution.OriginGroupProperty(
9844
- failover_criteria=cloudfront.CfnDistribution.OriginGroupFailoverCriteriaProperty(
9845
- status_codes=cloudfront.CfnDistribution.StatusCodesProperty(
9846
- items=[123],
9847
- quantity=123
9848
- )
9849
- ),
9850
- id="id",
9851
- members=cloudfront.CfnDistribution.OriginGroupMembersProperty(
9852
- items=[cloudfront.CfnDistribution.OriginGroupMemberProperty(
9853
- origin_id="originId"
9854
- )],
9855
- quantity=123
9856
- ),
9857
-
9858
- # the properties below are optional
9859
- selection_criteria="selectionCriteria"
9860
- )]
9861
- ),
9862
- origins=[cloudfront.CfnDistribution.OriginProperty(
9863
- domain_name="domainName",
9864
- id="id",
9865
-
9866
- # the properties below are optional
9867
- connection_attempts=123,
9868
- connection_timeout=123,
9869
- custom_origin_config=cloudfront.CfnDistribution.CustomOriginConfigProperty(
9870
- origin_protocol_policy="originProtocolPolicy",
9871
-
9872
- # the properties below are optional
9873
- http_port=123,
9874
- https_port=123,
9875
- origin_keepalive_timeout=123,
9876
- origin_read_timeout=123,
9877
- origin_ssl_protocols=["originSslProtocols"]
9878
- ),
9879
- origin_access_control_id="originAccessControlId",
9880
- origin_custom_headers=[cloudfront.CfnDistribution.OriginCustomHeaderProperty(
9881
- header_name="headerName",
9882
- header_value="headerValue"
9883
- )],
9884
- origin_path="originPath",
9885
- origin_shield=cloudfront.CfnDistribution.OriginShieldProperty(
9886
- enabled=False,
9887
- origin_shield_region="originShieldRegion"
9888
- ),
9889
- s3_origin_config=cloudfront.CfnDistribution.S3OriginConfigProperty(
9890
- origin_access_identity="originAccessIdentity"
9891
- ),
9892
- vpc_origin_config=cloudfront.CfnDistribution.VpcOriginConfigProperty(
9893
- vpc_origin_id="vpcOriginId",
9894
-
9895
- # the properties below are optional
9896
- origin_keepalive_timeout=123,
9897
- origin_read_timeout=123
9898
- )
9899
- )],
9900
- price_class="priceClass",
9901
- restrictions=cloudfront.CfnDistribution.RestrictionsProperty(
9902
- geo_restriction=cloudfront.CfnDistribution.GeoRestrictionProperty(
9903
- restriction_type="restrictionType",
9904
-
9905
- # the properties below are optional
9906
- locations=["locations"]
9907
- )
9908
- ),
9909
- s3_origin=cloudfront.CfnDistribution.LegacyS3OriginProperty(
9910
- dns_name="dnsName",
11601
+ cfn_distribution_tenant_props = cloudfront.CfnDistributionTenantProps(
11602
+ distribution_id="distributionId",
11603
+ domains=["domains"],
11604
+ name="name",
9911
11605
 
9912
- # the properties below are optional
9913
- origin_access_identity="originAccessIdentity"
11606
+ # the properties below are optional
11607
+ connection_group_id="connectionGroupId",
11608
+ customizations=cloudfront.CfnDistributionTenant.CustomizationsProperty(
11609
+ certificate=cloudfront.CfnDistributionTenant.CertificateProperty(
11610
+ arn="arn"
9914
11611
  ),
9915
- staging=False,
9916
- viewer_certificate=cloudfront.CfnDistribution.ViewerCertificateProperty(
9917
- acm_certificate_arn="acmCertificateArn",
9918
- cloud_front_default_certificate=False,
9919
- iam_certificate_id="iamCertificateId",
9920
- minimum_protocol_version="minimumProtocolVersion",
9921
- ssl_support_method="sslSupportMethod"
11612
+ geo_restrictions=cloudfront.CfnDistributionTenant.GeoRestrictionCustomizationProperty(
11613
+ locations=["locations"],
11614
+ restriction_type="restrictionType"
9922
11615
  ),
9923
- web_acl_id="webAclId"
11616
+ web_acl=cloudfront.CfnDistributionTenant.WebAclCustomizationProperty(
11617
+ action="action",
11618
+ arn="arn"
11619
+ )
9924
11620
  ),
9925
-
9926
- # the properties below are optional
11621
+ enabled=False,
11622
+ managed_certificate_request=cloudfront.CfnDistributionTenant.ManagedCertificateRequestProperty(
11623
+ certificate_transparency_logging_preference="certificateTransparencyLoggingPreference",
11624
+ primary_domain_name="primaryDomainName",
11625
+ validation_token_host="validationTokenHost"
11626
+ ),
11627
+ parameters=[cloudfront.CfnDistributionTenant.ParameterProperty(
11628
+ name="name",
11629
+ value="value"
11630
+ )],
9927
11631
  tags=[CfnTag(
9928
11632
  key="key",
9929
11633
  value="value"
@@ -9931,32 +11635,117 @@ class CfnDistributionProps:
9931
11635
  )
9932
11636
  '''
9933
11637
  if __debug__:
9934
- type_hints = typing.get_type_hints(_typecheckingstub__f7553d47847912fd83a61da98a84c9c8cb5fdb95cf08048d70723db17c73053a)
9935
- check_type(argname="argument distribution_config", value=distribution_config, expected_type=type_hints["distribution_config"])
11638
+ type_hints = typing.get_type_hints(_typecheckingstub__a7e7108347c4dbf8d509df9b928e7c2257744baad28d87264b196951988c668c)
11639
+ check_type(argname="argument distribution_id", value=distribution_id, expected_type=type_hints["distribution_id"])
11640
+ check_type(argname="argument domains", value=domains, expected_type=type_hints["domains"])
11641
+ check_type(argname="argument name", value=name, expected_type=type_hints["name"])
11642
+ check_type(argname="argument connection_group_id", value=connection_group_id, expected_type=type_hints["connection_group_id"])
11643
+ check_type(argname="argument customizations", value=customizations, expected_type=type_hints["customizations"])
11644
+ check_type(argname="argument enabled", value=enabled, expected_type=type_hints["enabled"])
11645
+ check_type(argname="argument managed_certificate_request", value=managed_certificate_request, expected_type=type_hints["managed_certificate_request"])
11646
+ check_type(argname="argument parameters", value=parameters, expected_type=type_hints["parameters"])
9936
11647
  check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
9937
11648
  self._values: typing.Dict[builtins.str, typing.Any] = {
9938
- "distribution_config": distribution_config,
11649
+ "distribution_id": distribution_id,
11650
+ "domains": domains,
11651
+ "name": name,
9939
11652
  }
11653
+ if connection_group_id is not None:
11654
+ self._values["connection_group_id"] = connection_group_id
11655
+ if customizations is not None:
11656
+ self._values["customizations"] = customizations
11657
+ if enabled is not None:
11658
+ self._values["enabled"] = enabled
11659
+ if managed_certificate_request is not None:
11660
+ self._values["managed_certificate_request"] = managed_certificate_request
11661
+ if parameters is not None:
11662
+ self._values["parameters"] = parameters
9940
11663
  if tags is not None:
9941
11664
  self._values["tags"] = tags
9942
11665
 
9943
11666
  @builtins.property
9944
- def distribution_config(
11667
+ def distribution_id(self) -> builtins.str:
11668
+ '''The distribution's identifier.
11669
+
11670
+ For example: ``E1U5RQF7T870K0`` .
11671
+
11672
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-distributiontenant.html#cfn-cloudfront-distributiontenant-distributionid
11673
+ '''
11674
+ result = self._values.get("distribution_id")
11675
+ assert result is not None, "Required property 'distribution_id' is missing"
11676
+ return typing.cast(builtins.str, result)
11677
+
11678
+ @builtins.property
11679
+ def domains(self) -> typing.List[builtins.str]:
11680
+ '''
11681
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-distributiontenant.html#cfn-cloudfront-distributiontenant-domains
11682
+ '''
11683
+ result = self._values.get("domains")
11684
+ assert result is not None, "Required property 'domains' is missing"
11685
+ return typing.cast(typing.List[builtins.str], result)
11686
+
11687
+ @builtins.property
11688
+ def name(self) -> builtins.str:
11689
+ '''
11690
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-distributiontenant.html#cfn-cloudfront-distributiontenant-name
11691
+ '''
11692
+ result = self._values.get("name")
11693
+ assert result is not None, "Required property 'name' is missing"
11694
+ return typing.cast(builtins.str, result)
11695
+
11696
+ @builtins.property
11697
+ def connection_group_id(self) -> typing.Optional[builtins.str]:
11698
+ '''
11699
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-distributiontenant.html#cfn-cloudfront-distributiontenant-connectiongroupid
11700
+ '''
11701
+ result = self._values.get("connection_group_id")
11702
+ return typing.cast(typing.Optional[builtins.str], result)
11703
+
11704
+ @builtins.property
11705
+ def customizations(
9945
11706
  self,
9946
- ) -> typing.Union[_IResolvable_da3f097b, CfnDistribution.DistributionConfigProperty]:
9947
- '''The distribution's configuration.
11707
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnDistributionTenant.CustomizationsProperty]]:
11708
+ '''
11709
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-distributiontenant.html#cfn-cloudfront-distributiontenant-customizations
11710
+ '''
11711
+ result = self._values.get("customizations")
11712
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, CfnDistributionTenant.CustomizationsProperty]], result)
9948
11713
 
9949
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-distribution.html#cfn-cloudfront-distribution-distributionconfig
11714
+ @builtins.property
11715
+ def enabled(
11716
+ self,
11717
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
9950
11718
  '''
9951
- result = self._values.get("distribution_config")
9952
- assert result is not None, "Required property 'distribution_config' is missing"
9953
- return typing.cast(typing.Union[_IResolvable_da3f097b, CfnDistribution.DistributionConfigProperty], result)
11719
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-distributiontenant.html#cfn-cloudfront-distributiontenant-enabled
11720
+ '''
11721
+ result = self._values.get("enabled")
11722
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
11723
+
11724
+ @builtins.property
11725
+ def managed_certificate_request(
11726
+ self,
11727
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnDistributionTenant.ManagedCertificateRequestProperty]]:
11728
+ '''
11729
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-distributiontenant.html#cfn-cloudfront-distributiontenant-managedcertificaterequest
11730
+ '''
11731
+ result = self._values.get("managed_certificate_request")
11732
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, CfnDistributionTenant.ManagedCertificateRequestProperty]], result)
11733
+
11734
+ @builtins.property
11735
+ def parameters(
11736
+ self,
11737
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnDistributionTenant.ParameterProperty]]]]:
11738
+ '''
11739
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-distributiontenant.html#cfn-cloudfront-distributiontenant-parameters
11740
+ '''
11741
+ result = self._values.get("parameters")
11742
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnDistributionTenant.ParameterProperty]]]], result)
9954
11743
 
9955
11744
  @builtins.property
9956
11745
  def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
9957
11746
  '''A complex type that contains zero or more ``Tag`` elements.
9958
11747
 
9959
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-distribution.html#cfn-cloudfront-distribution-tags
11748
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-distributiontenant.html#cfn-cloudfront-distributiontenant-tags
9960
11749
  '''
9961
11750
  result = self._values.get("tags")
9962
11751
  return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], result)
@@ -9968,7 +11757,7 @@ class CfnDistributionProps:
9968
11757
  return not (rhs == self)
9969
11758
 
9970
11759
  def __repr__(self) -> str:
9971
- return "CfnDistributionProps(%s)" % ", ".join(
11760
+ return "CfnDistributionTenantProps(%s)" % ", ".join(
9972
11761
  k + "=" + repr(v) for k, v in self._values.items()
9973
11762
  )
9974
11763
 
@@ -26978,10 +28767,14 @@ __all__ = [
26978
28767
  "CfnCachePolicyProps",
26979
28768
  "CfnCloudFrontOriginAccessIdentity",
26980
28769
  "CfnCloudFrontOriginAccessIdentityProps",
28770
+ "CfnConnectionGroup",
28771
+ "CfnConnectionGroupProps",
26981
28772
  "CfnContinuousDeploymentPolicy",
26982
28773
  "CfnContinuousDeploymentPolicyProps",
26983
28774
  "CfnDistribution",
26984
28775
  "CfnDistributionProps",
28776
+ "CfnDistributionTenant",
28777
+ "CfnDistributionTenantProps",
26985
28778
  "CfnFunction",
26986
28779
  "CfnFunctionProps",
26987
28780
  "CfnKeyGroup",
@@ -27411,6 +29204,72 @@ def _typecheckingstub__ac17d18e4ddb1cb8a79015a96667059270fe5083273f938cf851deeb4
27411
29204
  """Type checking stubs"""
27412
29205
  pass
27413
29206
 
29207
+ def _typecheckingstub__a7fbc949dbac76664bfea111378c9ea57cd63caa1212fdbe30d64584bd8f53de(
29208
+ scope: _constructs_77d1e7e8.Construct,
29209
+ id: builtins.str,
29210
+ *,
29211
+ name: builtins.str,
29212
+ anycast_ip_list_id: typing.Optional[builtins.str] = None,
29213
+ enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
29214
+ ipv6_enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
29215
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
29216
+ ) -> None:
29217
+ """Type checking stubs"""
29218
+ pass
29219
+
29220
+ def _typecheckingstub__dad045911121964ba7e6a7c8d166ac2aaace23640d9bee11f9fbbbb1b78e3236(
29221
+ inspector: _TreeInspector_488e0dd5,
29222
+ ) -> None:
29223
+ """Type checking stubs"""
29224
+ pass
29225
+
29226
+ def _typecheckingstub__d4834ec5a54af69a2e3413ff8a46f3539a6607f6b49adaabe420e5490ae353ea(
29227
+ props: typing.Mapping[builtins.str, typing.Any],
29228
+ ) -> None:
29229
+ """Type checking stubs"""
29230
+ pass
29231
+
29232
+ def _typecheckingstub__46cb5b39bb34a52a464d8364089e47d3ba47e4a293aaa3f92857d624e7902898(
29233
+ value: builtins.str,
29234
+ ) -> None:
29235
+ """Type checking stubs"""
29236
+ pass
29237
+
29238
+ def _typecheckingstub__2633385b8f4da7c2341c3b54e4d30ea9345b38862ced8c6f1d893c36ec7c669d(
29239
+ value: typing.Optional[builtins.str],
29240
+ ) -> None:
29241
+ """Type checking stubs"""
29242
+ pass
29243
+
29244
+ def _typecheckingstub__41addbff9b29ce6c4465d1d973785d727f6742a1723e79dcdce59a1087df694f(
29245
+ value: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]],
29246
+ ) -> None:
29247
+ """Type checking stubs"""
29248
+ pass
29249
+
29250
+ def _typecheckingstub__2678e60f75fc9c3a75819708e1b8cda159dd49a5c52a78d805d37bb94bd0efa5(
29251
+ value: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]],
29252
+ ) -> None:
29253
+ """Type checking stubs"""
29254
+ pass
29255
+
29256
+ def _typecheckingstub__f9f02fbda8fa97b38f114c9910b9d9cef69228aa69dfe80217e98e1707226ce0(
29257
+ value: typing.Optional[typing.List[_CfnTag_f6864754]],
29258
+ ) -> None:
29259
+ """Type checking stubs"""
29260
+ pass
29261
+
29262
+ def _typecheckingstub__d9f88b4b65d8b9e48fd57e5bde8f7d6681cdcbb9e46fe34c223e63914ee033f4(
29263
+ *,
29264
+ name: builtins.str,
29265
+ anycast_ip_list_id: typing.Optional[builtins.str] = None,
29266
+ enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
29267
+ ipv6_enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
29268
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
29269
+ ) -> None:
29270
+ """Type checking stubs"""
29271
+ pass
29272
+
27414
29273
  def _typecheckingstub__b57269fe6faf53d2e30ff31a58c5711db8b8cc3b38dc9ac79efdb585dc8f324b(
27415
29274
  scope: _constructs_77d1e7e8.Construct,
27416
29275
  id: builtins.str,
@@ -27623,6 +29482,13 @@ def _typecheckingstub__acf9839d8791146628088e2f7ab6072f3232af301427572733ecdb1c5
27623
29482
  """Type checking stubs"""
27624
29483
  pass
27625
29484
 
29485
+ def _typecheckingstub__6373c35cb5b68c4917ddc72054f5c42da1b689748928adaa28575e2f9058bcf1(
29486
+ *,
29487
+ string_schema: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnDistribution.StringSchemaProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
29488
+ ) -> None:
29489
+ """Type checking stubs"""
29490
+ pass
29491
+
27626
29492
  def _typecheckingstub__924aa31797d5562075c15043a82632c8afbc217d476fdf805d7efea103da3360(
27627
29493
  *,
27628
29494
  default_cache_behavior: typing.Union[_IResolvable_da3f097b, typing.Union[CfnDistribution.DefaultCacheBehaviorProperty, typing.Dict[builtins.str, typing.Any]]],
@@ -27632,6 +29498,7 @@ def _typecheckingstub__924aa31797d5562075c15043a82632c8afbc217d476fdf805d7efea10
27632
29498
  cache_behaviors: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnDistribution.CacheBehaviorProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
27633
29499
  cnam_es: typing.Optional[typing.Sequence[builtins.str]] = None,
27634
29500
  comment: typing.Optional[builtins.str] = None,
29501
+ connection_mode: typing.Optional[builtins.str] = None,
27635
29502
  continuous_deployment_policy_id: typing.Optional[builtins.str] = None,
27636
29503
  custom_error_responses: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnDistribution.CustomErrorResponseProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
27637
29504
  custom_origin: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnDistribution.LegacyCustomOriginProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
@@ -27645,6 +29512,7 @@ def _typecheckingstub__924aa31797d5562075c15043a82632c8afbc217d476fdf805d7efea10
27645
29512
  restrictions: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnDistribution.RestrictionsProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
27646
29513
  s3_origin: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnDistribution.LegacyS3OriginProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
27647
29514
  staging: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
29515
+ tenant_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnDistribution.TenantConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
27648
29516
  viewer_certificate: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnDistribution.ViewerCertificateProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
27649
29517
  web_acl_id: typing.Optional[builtins.str] = None,
27650
29518
  ) -> None:
@@ -27794,6 +29662,14 @@ def _typecheckingstub__d2a25e92d5905a4c19d3636ff8b631afa34a538497a13fa9d29e56ca4
27794
29662
  """Type checking stubs"""
27795
29663
  pass
27796
29664
 
29665
+ def _typecheckingstub__d3077fc2475a570e548a4c766c77d7d863c9b4298e77dbf52c861eb303170cbd(
29666
+ *,
29667
+ definition: typing.Union[_IResolvable_da3f097b, typing.Union[CfnDistribution.DefinitionProperty, typing.Dict[builtins.str, typing.Any]]],
29668
+ name: builtins.str,
29669
+ ) -> None:
29670
+ """Type checking stubs"""
29671
+ pass
29672
+
27797
29673
  def _typecheckingstub__4deb0a9215bd7c703383e0e2be801747efa09772f2b073423550aa9638220c0d(
27798
29674
  *,
27799
29675
  geo_restriction: typing.Union[_IResolvable_da3f097b, typing.Union[CfnDistribution.GeoRestrictionProperty, typing.Dict[builtins.str, typing.Any]]],
@@ -27816,6 +29692,22 @@ def _typecheckingstub__7b8b62ce6bf1ec6151566719caf2d665f3f7fea596e402fba7354f19f
27816
29692
  """Type checking stubs"""
27817
29693
  pass
27818
29694
 
29695
+ def _typecheckingstub__063da7cd247f9f65fbf71edf06b732e35e339a5952e2f2bf8ccd5eee1c5611d8(
29696
+ *,
29697
+ required: typing.Union[builtins.bool, _IResolvable_da3f097b],
29698
+ comment: typing.Optional[builtins.str] = None,
29699
+ default_value: typing.Optional[builtins.str] = None,
29700
+ ) -> None:
29701
+ """Type checking stubs"""
29702
+ pass
29703
+
29704
+ def _typecheckingstub__d2edbb1e96d7cdd1ba9da9c2eb778117b7b4726ec0bcf6cf55c64bbbdba19541(
29705
+ *,
29706
+ parameter_definitions: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnDistribution.ParameterDefinitionProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
29707
+ ) -> None:
29708
+ """Type checking stubs"""
29709
+ pass
29710
+
27819
29711
  def _typecheckingstub__511560286b35778c69f3d2a23120607f1ab2e58901f0c1ba7acd75a338eb699e(
27820
29712
  *,
27821
29713
  acm_certificate_arn: typing.Optional[builtins.str] = None,
@@ -27844,6 +29736,162 @@ def _typecheckingstub__f7553d47847912fd83a61da98a84c9c8cb5fdb95cf08048d70723db17
27844
29736
  """Type checking stubs"""
27845
29737
  pass
27846
29738
 
29739
+ def _typecheckingstub__b31d7c64540327014853973d80c83a2f4a5686901e7f7ac7b0ace4f059413572(
29740
+ scope: _constructs_77d1e7e8.Construct,
29741
+ id: builtins.str,
29742
+ *,
29743
+ distribution_id: builtins.str,
29744
+ domains: typing.Sequence[builtins.str],
29745
+ name: builtins.str,
29746
+ connection_group_id: typing.Optional[builtins.str] = None,
29747
+ customizations: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnDistributionTenant.CustomizationsProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
29748
+ enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
29749
+ managed_certificate_request: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnDistributionTenant.ManagedCertificateRequestProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
29750
+ parameters: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnDistributionTenant.ParameterProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
29751
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
29752
+ ) -> None:
29753
+ """Type checking stubs"""
29754
+ pass
29755
+
29756
+ def _typecheckingstub__57520040a3293830d92c5db58279dc6ba57c2835396f254ab1cf1fc8a732ea40(
29757
+ inspector: _TreeInspector_488e0dd5,
29758
+ ) -> None:
29759
+ """Type checking stubs"""
29760
+ pass
29761
+
29762
+ def _typecheckingstub__9e01bfefdb980893d11ecf908e131b3da5b94143ee485dce5ed8d1d657843e21(
29763
+ props: typing.Mapping[builtins.str, typing.Any],
29764
+ ) -> None:
29765
+ """Type checking stubs"""
29766
+ pass
29767
+
29768
+ def _typecheckingstub__01b4d19a34e50ac410f9509edd30a04265cf1cbbd17b788ad5aa7507c63f00f8(
29769
+ value: builtins.str,
29770
+ ) -> None:
29771
+ """Type checking stubs"""
29772
+ pass
29773
+
29774
+ def _typecheckingstub__7e4ea73186e7ded8d4be1abca7ad4ad20e62ac773ff4030551f69552bebf4111(
29775
+ value: typing.List[builtins.str],
29776
+ ) -> None:
29777
+ """Type checking stubs"""
29778
+ pass
29779
+
29780
+ def _typecheckingstub__21d549f43b17cc6909f030b9a70862b4d3cc9f8321d3c0808f5a34ad3a82bdac(
29781
+ value: builtins.str,
29782
+ ) -> None:
29783
+ """Type checking stubs"""
29784
+ pass
29785
+
29786
+ def _typecheckingstub__260bd4d44d34feabb54c786083ced4eca1f6825ffa23ac7256d4a56686f6f06e(
29787
+ value: typing.Optional[builtins.str],
29788
+ ) -> None:
29789
+ """Type checking stubs"""
29790
+ pass
29791
+
29792
+ def _typecheckingstub__1ecc1c2d6ca5ed07f9220424e298d73ccc2d9ff84388993cacf60c02fc6431d2(
29793
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, CfnDistributionTenant.CustomizationsProperty]],
29794
+ ) -> None:
29795
+ """Type checking stubs"""
29796
+ pass
29797
+
29798
+ def _typecheckingstub__4faa42cfcdbcfaf7031a5ad328e3b92614cc4b898e43367bd53e66b4edb53dd8(
29799
+ value: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]],
29800
+ ) -> None:
29801
+ """Type checking stubs"""
29802
+ pass
29803
+
29804
+ def _typecheckingstub__5137481a2aef0ac0e79363b8e827531e762d17f59cfa3b092f770cb0813fedc0(
29805
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, CfnDistributionTenant.ManagedCertificateRequestProperty]],
29806
+ ) -> None:
29807
+ """Type checking stubs"""
29808
+ pass
29809
+
29810
+ def _typecheckingstub__c5ac60c7274f522196384c452007fc5b615ae79ffad1520970925978b4606156(
29811
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnDistributionTenant.ParameterProperty]]]],
29812
+ ) -> None:
29813
+ """Type checking stubs"""
29814
+ pass
29815
+
29816
+ def _typecheckingstub__2cea18d7ff4ed5a97170964e15f6e2d6e58a5f394ede6d8f1dd4c80f19f719e2(
29817
+ value: typing.Optional[typing.List[_CfnTag_f6864754]],
29818
+ ) -> None:
29819
+ """Type checking stubs"""
29820
+ pass
29821
+
29822
+ def _typecheckingstub__ff0d269846a4a9f6793265a71266235fd771204d2a0ad4f09ad78055533b5c48(
29823
+ *,
29824
+ arn: typing.Optional[builtins.str] = None,
29825
+ ) -> None:
29826
+ """Type checking stubs"""
29827
+ pass
29828
+
29829
+ def _typecheckingstub__0491da142c813dc4673791039712e33ce224f81450f91a62e3bae808ffa535c1(
29830
+ *,
29831
+ certificate: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnDistributionTenant.CertificateProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
29832
+ geo_restrictions: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnDistributionTenant.GeoRestrictionCustomizationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
29833
+ web_acl: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnDistributionTenant.WebAclCustomizationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
29834
+ ) -> None:
29835
+ """Type checking stubs"""
29836
+ pass
29837
+
29838
+ def _typecheckingstub__d24d49d6e44d4deb653a24465ec61e7862ea07d5a5cdc7f3cfa829da2181be64(
29839
+ *,
29840
+ domain: typing.Optional[builtins.str] = None,
29841
+ reason: typing.Optional[builtins.str] = None,
29842
+ status: typing.Optional[builtins.str] = None,
29843
+ ) -> None:
29844
+ """Type checking stubs"""
29845
+ pass
29846
+
29847
+ def _typecheckingstub__b12cc1d8db14a6223b67c5f9254d5e808563dc8b6065256b09f01459db825b10(
29848
+ *,
29849
+ locations: typing.Optional[typing.Sequence[builtins.str]] = None,
29850
+ restriction_type: typing.Optional[builtins.str] = None,
29851
+ ) -> None:
29852
+ """Type checking stubs"""
29853
+ pass
29854
+
29855
+ def _typecheckingstub__bd3055b78628b26ba1bcd38e78722682f53f911f50dd7e46fce1153242ca9358(
29856
+ *,
29857
+ certificate_transparency_logging_preference: typing.Optional[builtins.str] = None,
29858
+ primary_domain_name: typing.Optional[builtins.str] = None,
29859
+ validation_token_host: typing.Optional[builtins.str] = None,
29860
+ ) -> None:
29861
+ """Type checking stubs"""
29862
+ pass
29863
+
29864
+ def _typecheckingstub__153cd98fd3544f143cb0059bfc0c01069aa936e548aae6596f575cebfb894add(
29865
+ *,
29866
+ name: typing.Optional[builtins.str] = None,
29867
+ value: typing.Optional[builtins.str] = None,
29868
+ ) -> None:
29869
+ """Type checking stubs"""
29870
+ pass
29871
+
29872
+ def _typecheckingstub__1146c72709bb4672e62f556fac241f6dc79c09223c1e3a1863d70512f623c799(
29873
+ *,
29874
+ action: typing.Optional[builtins.str] = None,
29875
+ arn: typing.Optional[builtins.str] = None,
29876
+ ) -> None:
29877
+ """Type checking stubs"""
29878
+ pass
29879
+
29880
+ def _typecheckingstub__a7e7108347c4dbf8d509df9b928e7c2257744baad28d87264b196951988c668c(
29881
+ *,
29882
+ distribution_id: builtins.str,
29883
+ domains: typing.Sequence[builtins.str],
29884
+ name: builtins.str,
29885
+ connection_group_id: typing.Optional[builtins.str] = None,
29886
+ customizations: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnDistributionTenant.CustomizationsProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
29887
+ enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
29888
+ managed_certificate_request: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnDistributionTenant.ManagedCertificateRequestProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
29889
+ parameters: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnDistributionTenant.ParameterProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
29890
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
29891
+ ) -> None:
29892
+ """Type checking stubs"""
29893
+ pass
29894
+
27847
29895
  def _typecheckingstub__7fd6686720dc42916d1486e9d86a083535cb418c14fb4746839d47b9f77562f0(
27848
29896
  scope: _constructs_77d1e7e8.Construct,
27849
29897
  id: builtins.str,