aws-cdk-lib 2.176.0__py3-none-any.whl → 2.178.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 (120) hide show
  1. aws_cdk/__init__.py +106 -62
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.176.0.jsii.tgz → aws-cdk-lib@2.178.0.jsii.tgz} +0 -0
  4. aws_cdk/aws_amplifyuibuilder/__init__.py +8 -8
  5. aws_cdk/aws_apigateway/__init__.py +97 -97
  6. aws_cdk/aws_apigatewayv2/__init__.py +35 -10
  7. aws_cdk/aws_apigatewayv2_integrations/__init__.py +2 -2
  8. aws_cdk/aws_appconfig/__init__.py +10 -10
  9. aws_cdk/aws_appflow/__init__.py +20 -20
  10. aws_cdk/aws_applicationsignals/__init__.py +8 -8
  11. aws_cdk/aws_appmesh/__init__.py +8 -8
  12. aws_cdk/aws_appsync/__init__.py +10387 -7038
  13. aws_cdk/aws_apptest/__init__.py +4 -4
  14. aws_cdk/aws_aps/__init__.py +135 -0
  15. aws_cdk/aws_athena/__init__.py +10 -10
  16. aws_cdk/aws_backup/__init__.py +14 -14
  17. aws_cdk/aws_batch/__init__.py +189 -24
  18. aws_cdk/aws_bcmdataexports/__init__.py +4 -4
  19. aws_cdk/aws_bedrock/__init__.py +5494 -2518
  20. aws_cdk/aws_certificatemanager/__init__.py +15 -14
  21. aws_cdk/aws_chatbot/__init__.py +4 -4
  22. aws_cdk/aws_cloudformation/__init__.py +22 -18
  23. aws_cdk/aws_cloudfront/__init__.py +686 -9
  24. aws_cdk/aws_cloudfront_origins/__init__.py +73 -2
  25. aws_cdk/aws_cloudtrail/__init__.py +4 -4
  26. aws_cdk/aws_cloudwatch/__init__.py +53 -53
  27. aws_cdk/aws_codedeploy/__init__.py +2 -2
  28. aws_cdk/aws_codepipeline/__init__.py +59 -6
  29. aws_cdk/aws_codepipeline_actions/__init__.py +2 -2
  30. aws_cdk/aws_cognito/__init__.py +204 -159
  31. aws_cdk/aws_connect/__init__.py +4 -4
  32. aws_cdk/aws_customerprofiles/__init__.py +6 -4
  33. aws_cdk/aws_databrew/__init__.py +16 -16
  34. aws_cdk/aws_datasync/__init__.py +14 -11
  35. aws_cdk/aws_datazone/__init__.py +199 -129
  36. aws_cdk/aws_dms/__init__.py +4 -4
  37. aws_cdk/aws_dynamodb/__init__.py +267 -25
  38. aws_cdk/aws_ec2/__init__.py +1142 -184
  39. aws_cdk/aws_ecs/__init__.py +767 -124
  40. aws_cdk/aws_ecs_patterns/__init__.py +49 -0
  41. aws_cdk/aws_efs/__init__.py +8 -8
  42. aws_cdk/aws_eks/__init__.py +55 -35
  43. aws_cdk/aws_elasticache/__init__.py +10 -10
  44. aws_cdk/aws_elasticloadbalancingv2/__init__.py +47 -18
  45. aws_cdk/aws_elasticsearch/__init__.py +10 -10
  46. aws_cdk/aws_emr/__init__.py +16 -16
  47. aws_cdk/aws_emrserverless/__init__.py +93 -4
  48. aws_cdk/aws_entityresolution/__init__.py +31 -17
  49. aws_cdk/aws_events/__init__.py +12 -12
  50. aws_cdk/aws_fis/__init__.py +16 -16
  51. aws_cdk/aws_fms/__init__.py +46 -0
  52. aws_cdk/aws_gamelift/__init__.py +8 -10
  53. aws_cdk/aws_glue/__init__.py +1326 -7
  54. aws_cdk/aws_greengrassv2/__init__.py +8 -8
  55. aws_cdk/aws_guardduty/__init__.py +521 -0
  56. aws_cdk/aws_healthlake/__init__.py +10 -2
  57. aws_cdk/aws_iam/__init__.py +8 -0
  58. aws_cdk/aws_imagebuilder/__init__.py +88 -74
  59. aws_cdk/aws_iot/__init__.py +40 -40
  60. aws_cdk/aws_iotanalytics/__init__.py +4 -4
  61. aws_cdk/aws_iotfleetwise/__init__.py +424 -10
  62. aws_cdk/aws_iotsitewise/__init__.py +84 -13
  63. aws_cdk/aws_iottwinmaker/__init__.py +18 -18
  64. aws_cdk/aws_iotwireless/__init__.py +4 -4
  65. aws_cdk/aws_kafkaconnect/__init__.py +10 -10
  66. aws_cdk/aws_kendra/__init__.py +0 -10
  67. aws_cdk/aws_kinesisanalytics/__init__.py +4 -4
  68. aws_cdk/aws_kinesisanalyticsv2/__init__.py +4 -4
  69. aws_cdk/aws_kinesisfirehose/__init__.py +4544 -183
  70. aws_cdk/aws_kms/__init__.py +11 -10
  71. aws_cdk/aws_lambda/__init__.py +47 -4
  72. aws_cdk/aws_lambda_nodejs/__init__.py +24 -5
  73. aws_cdk/aws_launchwizard/__init__.py +10 -10
  74. aws_cdk/aws_logs/__init__.py +78 -74
  75. aws_cdk/aws_mediaconnect/__init__.py +509 -12
  76. aws_cdk/aws_medialive/__init__.py +16 -16
  77. aws_cdk/aws_mediatailor/__init__.py +10 -10
  78. aws_cdk/aws_networkfirewall/__init__.py +12 -12
  79. aws_cdk/aws_notifications/__init__.py +1927 -0
  80. aws_cdk/aws_notificationscontacts/__init__.py +593 -0
  81. aws_cdk/aws_omics/__init__.py +4 -4
  82. aws_cdk/aws_opensearchservice/__init__.py +10 -10
  83. aws_cdk/aws_opsworks/__init__.py +58 -58
  84. aws_cdk/aws_personalize/__init__.py +8 -8
  85. aws_cdk/aws_pipes/__init__.py +20 -20
  86. aws_cdk/aws_qbusiness/__init__.py +119 -0
  87. aws_cdk/aws_quicksight/__init__.py +247 -92
  88. aws_cdk/aws_rds/__init__.py +37 -37
  89. aws_cdk/aws_redshift/__init__.py +19 -15
  90. aws_cdk/aws_resiliencehub/__init__.py +0 -41
  91. aws_cdk/aws_route53/__init__.py +10 -4
  92. aws_cdk/aws_route53_targets/__init__.py +15 -15
  93. aws_cdk/aws_rum/__init__.py +4 -4
  94. aws_cdk/aws_s3/__init__.py +801 -2
  95. aws_cdk/aws_s3_notifications/__init__.py +5 -5
  96. aws_cdk/aws_s3tables/__init__.py +2 -2
  97. aws_cdk/aws_sagemaker/__init__.py +84 -60
  98. aws_cdk/aws_sam/__init__.py +48 -48
  99. aws_cdk/aws_secretsmanager/__init__.py +30 -14
  100. aws_cdk/aws_securityhub/__init__.py +12 -12
  101. aws_cdk/aws_sns/__init__.py +137 -12
  102. aws_cdk/aws_ssm/__init__.py +5 -5
  103. aws_cdk/aws_ssmquicksetup/__init__.py +10 -10
  104. aws_cdk/aws_stepfunctions/__init__.py +13207 -4740
  105. aws_cdk/aws_stepfunctions_tasks/__init__.py +77615 -22817
  106. aws_cdk/aws_synthetics/__init__.py +109 -36
  107. aws_cdk/aws_timestream/__init__.py +41 -0
  108. aws_cdk/aws_transfer/__init__.py +9 -10
  109. aws_cdk/aws_wafv2/__init__.py +24 -22
  110. aws_cdk/aws_wisdom/__init__.py +8 -8
  111. aws_cdk/aws_workspacesweb/__init__.py +60 -60
  112. aws_cdk/aws_xray/__init__.py +8 -8
  113. aws_cdk/cloud_assembly_schema/__init__.py +63 -4
  114. aws_cdk/cx_api/__init__.py +62 -4
  115. {aws_cdk_lib-2.176.0.dist-info → aws_cdk_lib-2.178.0.dist-info}/METADATA +3 -3
  116. {aws_cdk_lib-2.176.0.dist-info → aws_cdk_lib-2.178.0.dist-info}/RECORD +120 -118
  117. {aws_cdk_lib-2.176.0.dist-info → aws_cdk_lib-2.178.0.dist-info}/LICENSE +0 -0
  118. {aws_cdk_lib-2.176.0.dist-info → aws_cdk_lib-2.178.0.dist-info}/NOTICE +0 -0
  119. {aws_cdk_lib-2.176.0.dist-info → aws_cdk_lib-2.178.0.dist-info}/WHEEL +0 -0
  120. {aws_cdk_lib-2.176.0.dist-info → aws_cdk_lib-2.178.0.dist-info}/top_level.txt +0 -0
@@ -1347,6 +1347,8 @@ class AccessLevel(enum.Enum):
1347
1347
 
1348
1348
  READ = "READ"
1349
1349
  '''Grants read permissions to CloudFront Distribution.'''
1350
+ LIST = "LIST"
1351
+ '''Grants list permissions to CloudFront Distribution.'''
1350
1352
  WRITE = "WRITE"
1351
1353
  '''Grants write permission to CloudFront Distribution.'''
1352
1354
  DELETE = "DELETE"
@@ -2699,6 +2701,8 @@ class CfnAnycastIpList(
2699
2701
  ):
2700
2702
  '''An Anycast static IP list.
2701
2703
 
2704
+ For more information, see `Request Anycast static IPs to use for allowlisting <https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/request-static-ips.html>`_ in the *Amazon CloudFront Developer Guide* .
2705
+
2702
2706
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-anycastiplist.html
2703
2707
  :cloudformationResource: AWS::CloudFront::AnycastIpList
2704
2708
  :exampleMetadata: fixture=_generated
@@ -2880,6 +2884,8 @@ class CfnAnycastIpList(
2880
2884
  ) -> None:
2881
2885
  '''An Anycast static IP list.
2882
2886
 
2887
+ For more information, see `Request Anycast static IPs to use for allowlisting <https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/request-static-ips.html>`_ in the *Amazon CloudFront Developer Guide* .
2888
+
2883
2889
  :param anycast_ips: The static IP addresses that are allocated to the Anycast static IP list.
2884
2890
  :param arn: The Amazon Resource Name (ARN) of the Anycast static IP list.
2885
2891
  :param id: The ID of the Anycast static IP list.
@@ -7003,6 +7009,13 @@ class CfnDistribution(
7003
7009
  ),
7004
7010
  s3_origin_config=cloudfront.CfnDistribution.S3OriginConfigProperty(
7005
7011
  origin_access_identity="originAccessIdentity"
7012
+ ),
7013
+ vpc_origin_config=cloudfront.CfnDistribution.VpcOriginConfigProperty(
7014
+ vpc_origin_id="vpcOriginId",
7015
+
7016
+ # the properties below are optional
7017
+ origin_keepalive_timeout=123,
7018
+ origin_read_timeout=123
7006
7019
  )
7007
7020
  )],
7008
7021
  price_class="priceClass",
@@ -8725,6 +8738,7 @@ class CfnDistribution(
8725
8738
  "origin_path": "originPath",
8726
8739
  "origin_shield": "originShield",
8727
8740
  "s3_origin_config": "s3OriginConfig",
8741
+ "vpc_origin_config": "vpcOriginConfig",
8728
8742
  },
8729
8743
  )
8730
8744
  class OriginProperty:
@@ -8741,6 +8755,7 @@ class CfnDistribution(
8741
8755
  origin_path: typing.Optional[builtins.str] = None,
8742
8756
  origin_shield: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnDistribution.OriginShieldProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
8743
8757
  s3_origin_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnDistribution.S3OriginConfigProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
8758
+ vpc_origin_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnDistribution.VpcOriginConfigProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
8744
8759
  ) -> None:
8745
8760
  '''An origin.
8746
8761
 
@@ -8766,6 +8781,7 @@ class CfnDistribution(
8766
8781
  :param origin_path: An optional path that CloudFront appends to the origin domain name when CloudFront requests content from the origin. 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* . Default: - ""
8767
8782
  :param origin_shield: CloudFront Origin Shield. 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* .
8768
8783
  :param s3_origin_config: Use this type to specify an origin that is an Amazon S3 bucket that is not configured with static website hosting. To specify any other type of origin, including an Amazon S3 bucket that is configured with static website hosting, use the ``CustomOriginConfig`` type instead.
8784
+ :param vpc_origin_config:
8769
8785
 
8770
8786
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origin.html
8771
8787
  :exampleMetadata: fixture=_generated
@@ -8805,6 +8821,13 @@ class CfnDistribution(
8805
8821
  ),
8806
8822
  s3_origin_config=cloudfront.CfnDistribution.S3OriginConfigProperty(
8807
8823
  origin_access_identity="originAccessIdentity"
8824
+ ),
8825
+ vpc_origin_config=cloudfront.CfnDistribution.VpcOriginConfigProperty(
8826
+ vpc_origin_id="vpcOriginId",
8827
+
8828
+ # the properties below are optional
8829
+ origin_keepalive_timeout=123,
8830
+ origin_read_timeout=123
8808
8831
  )
8809
8832
  )
8810
8833
  '''
@@ -8820,6 +8843,7 @@ class CfnDistribution(
8820
8843
  check_type(argname="argument origin_path", value=origin_path, expected_type=type_hints["origin_path"])
8821
8844
  check_type(argname="argument origin_shield", value=origin_shield, expected_type=type_hints["origin_shield"])
8822
8845
  check_type(argname="argument s3_origin_config", value=s3_origin_config, expected_type=type_hints["s3_origin_config"])
8846
+ check_type(argname="argument vpc_origin_config", value=vpc_origin_config, expected_type=type_hints["vpc_origin_config"])
8823
8847
  self._values: typing.Dict[builtins.str, typing.Any] = {
8824
8848
  "domain_name": domain_name,
8825
8849
  "id": id,
@@ -8840,6 +8864,8 @@ class CfnDistribution(
8840
8864
  self._values["origin_shield"] = origin_shield
8841
8865
  if s3_origin_config is not None:
8842
8866
  self._values["s3_origin_config"] = s3_origin_config
8867
+ if vpc_origin_config is not None:
8868
+ self._values["vpc_origin_config"] = vpc_origin_config
8843
8869
 
8844
8870
  @builtins.property
8845
8871
  def domain_name(self) -> builtins.str:
@@ -8969,6 +8995,16 @@ class CfnDistribution(
8969
8995
  result = self._values.get("s3_origin_config")
8970
8996
  return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnDistribution.S3OriginConfigProperty"]], result)
8971
8997
 
8998
+ @builtins.property
8999
+ def vpc_origin_config(
9000
+ self,
9001
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnDistribution.VpcOriginConfigProperty"]]:
9002
+ '''
9003
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-origin.html#cfn-cloudfront-distribution-origin-vpcoriginconfig
9004
+ '''
9005
+ result = self._values.get("vpc_origin_config")
9006
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnDistribution.VpcOriginConfigProperty"]], result)
9007
+
8972
9008
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
8973
9009
  return isinstance(rhs, self.__class__) and rhs._values == self._values
8974
9010
 
@@ -9214,7 +9250,7 @@ class CfnDistribution(
9214
9250
  def __init__(
9215
9251
  self,
9216
9252
  *,
9217
- items: typing.Union[_IResolvable_da3f097b, typing.Sequence[jsii.Number]],
9253
+ items: typing.Union[typing.Sequence[jsii.Number], _IResolvable_da3f097b],
9218
9254
  quantity: jsii.Number,
9219
9255
  ) -> None:
9220
9256
  '''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.
@@ -9248,14 +9284,14 @@ class CfnDistribution(
9248
9284
  @builtins.property
9249
9285
  def items(
9250
9286
  self,
9251
- ) -> typing.Union[_IResolvable_da3f097b, typing.List[jsii.Number]]:
9287
+ ) -> typing.Union[typing.List[jsii.Number], _IResolvable_da3f097b]:
9252
9288
  '''The items (status codes) for an origin group.
9253
9289
 
9254
9290
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-statuscodes.html#cfn-cloudfront-distribution-statuscodes-items
9255
9291
  '''
9256
9292
  result = self._values.get("items")
9257
9293
  assert result is not None, "Required property 'items' is missing"
9258
- return typing.cast(typing.Union[_IResolvable_da3f097b, typing.List[jsii.Number]], result)
9294
+ return typing.cast(typing.Union[typing.List[jsii.Number], _IResolvable_da3f097b], result)
9259
9295
 
9260
9296
  @builtins.property
9261
9297
  def quantity(self) -> jsii.Number:
@@ -9321,7 +9357,7 @@ class CfnDistribution(
9321
9357
  :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``
9322
9358
  :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.)
9323
9359
  :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.
9324
- :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 `AWS 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.
9360
+ :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.
9325
9361
 
9326
9362
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-viewercertificate.html
9327
9363
  :exampleMetadata: fixture=_generated
@@ -9439,7 +9475,7 @@ class CfnDistribution(
9439
9475
 
9440
9476
  - ``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.
9441
9477
  - ``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.
9442
- - ``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 `AWS Support Center <https://docs.aws.amazon.com/support/home>`_ .
9478
+ - ``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>`_ .
9443
9479
 
9444
9480
  If the distribution uses the CloudFront domain name such as ``d111111abcdef8.cloudfront.net`` , don't set a value for this field.
9445
9481
 
@@ -9459,6 +9495,98 @@ class CfnDistribution(
9459
9495
  k + "=" + repr(v) for k, v in self._values.items()
9460
9496
  )
9461
9497
 
9498
+ @jsii.data_type(
9499
+ jsii_type="aws-cdk-lib.aws_cloudfront.CfnDistribution.VpcOriginConfigProperty",
9500
+ jsii_struct_bases=[],
9501
+ name_mapping={
9502
+ "vpc_origin_id": "vpcOriginId",
9503
+ "origin_keepalive_timeout": "originKeepaliveTimeout",
9504
+ "origin_read_timeout": "originReadTimeout",
9505
+ },
9506
+ )
9507
+ class VpcOriginConfigProperty:
9508
+ def __init__(
9509
+ self,
9510
+ *,
9511
+ vpc_origin_id: builtins.str,
9512
+ origin_keepalive_timeout: typing.Optional[jsii.Number] = None,
9513
+ origin_read_timeout: typing.Optional[jsii.Number] = None,
9514
+ ) -> None:
9515
+ '''
9516
+ :param vpc_origin_id:
9517
+ :param origin_keepalive_timeout: Default: - 5
9518
+ :param origin_read_timeout: Default: - 30
9519
+
9520
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-vpcoriginconfig.html
9521
+ :exampleMetadata: fixture=_generated
9522
+
9523
+ Example::
9524
+
9525
+ # The code below shows an example of how to instantiate this type.
9526
+ # The values are placeholders you should change.
9527
+ from aws_cdk import aws_cloudfront as cloudfront
9528
+
9529
+ vpc_origin_config_property = cloudfront.CfnDistribution.VpcOriginConfigProperty(
9530
+ vpc_origin_id="vpcOriginId",
9531
+
9532
+ # the properties below are optional
9533
+ origin_keepalive_timeout=123,
9534
+ origin_read_timeout=123
9535
+ )
9536
+ '''
9537
+ if __debug__:
9538
+ type_hints = typing.get_type_hints(_typecheckingstub__f7a2beaed61436754427d5794c11e2b8b3ecac452591d86453fc6b4321c161b0)
9539
+ check_type(argname="argument vpc_origin_id", value=vpc_origin_id, expected_type=type_hints["vpc_origin_id"])
9540
+ check_type(argname="argument origin_keepalive_timeout", value=origin_keepalive_timeout, expected_type=type_hints["origin_keepalive_timeout"])
9541
+ check_type(argname="argument origin_read_timeout", value=origin_read_timeout, expected_type=type_hints["origin_read_timeout"])
9542
+ self._values: typing.Dict[builtins.str, typing.Any] = {
9543
+ "vpc_origin_id": vpc_origin_id,
9544
+ }
9545
+ if origin_keepalive_timeout is not None:
9546
+ self._values["origin_keepalive_timeout"] = origin_keepalive_timeout
9547
+ if origin_read_timeout is not None:
9548
+ self._values["origin_read_timeout"] = origin_read_timeout
9549
+
9550
+ @builtins.property
9551
+ def vpc_origin_id(self) -> builtins.str:
9552
+ '''
9553
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-vpcoriginconfig.html#cfn-cloudfront-distribution-vpcoriginconfig-vpcoriginid
9554
+ '''
9555
+ result = self._values.get("vpc_origin_id")
9556
+ assert result is not None, "Required property 'vpc_origin_id' is missing"
9557
+ return typing.cast(builtins.str, result)
9558
+
9559
+ @builtins.property
9560
+ def origin_keepalive_timeout(self) -> typing.Optional[jsii.Number]:
9561
+ '''
9562
+ :default: - 5
9563
+
9564
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-vpcoriginconfig.html#cfn-cloudfront-distribution-vpcoriginconfig-originkeepalivetimeout
9565
+ '''
9566
+ result = self._values.get("origin_keepalive_timeout")
9567
+ return typing.cast(typing.Optional[jsii.Number], result)
9568
+
9569
+ @builtins.property
9570
+ def origin_read_timeout(self) -> typing.Optional[jsii.Number]:
9571
+ '''
9572
+ :default: - 30
9573
+
9574
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-vpcoriginconfig.html#cfn-cloudfront-distribution-vpcoriginconfig-originreadtimeout
9575
+ '''
9576
+ result = self._values.get("origin_read_timeout")
9577
+ return typing.cast(typing.Optional[jsii.Number], result)
9578
+
9579
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
9580
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
9581
+
9582
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
9583
+ return not (rhs == self)
9584
+
9585
+ def __repr__(self) -> str:
9586
+ return "VpcOriginConfigProperty(%s)" % ", ".join(
9587
+ k + "=" + repr(v) for k, v in self._values.items()
9588
+ )
9589
+
9462
9590
 
9463
9591
  @jsii.data_type(
9464
9592
  jsii_type="aws-cdk-lib.aws_cloudfront.CfnDistributionProps",
@@ -9664,6 +9792,13 @@ class CfnDistributionProps:
9664
9792
  ),
9665
9793
  s3_origin_config=cloudfront.CfnDistribution.S3OriginConfigProperty(
9666
9794
  origin_access_identity="originAccessIdentity"
9795
+ ),
9796
+ vpc_origin_config=cloudfront.CfnDistribution.VpcOriginConfigProperty(
9797
+ vpc_origin_id="vpcOriginId",
9798
+
9799
+ # the properties below are optional
9800
+ origin_keepalive_timeout=123,
9801
+ origin_read_timeout=123
9667
9802
  )
9668
9803
  )],
9669
9804
  price_class="priceClass",
@@ -15709,6 +15844,422 @@ class CfnStreamingDistributionProps:
15709
15844
  )
15710
15845
 
15711
15846
 
15847
+ @jsii.implements(_IInspectable_c2943556, _ITaggableV2_4e6798f8)
15848
+ class CfnVpcOrigin(
15849
+ _CfnResource_9df397a6,
15850
+ metaclass=jsii.JSIIMeta,
15851
+ jsii_type="aws-cdk-lib.aws_cloudfront.CfnVpcOrigin",
15852
+ ):
15853
+ '''An Amazon CloudFront VPC origin.
15854
+
15855
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-vpcorigin.html
15856
+ :cloudformationResource: AWS::CloudFront::VpcOrigin
15857
+ :exampleMetadata: fixture=_generated
15858
+
15859
+ Example::
15860
+
15861
+ # The code below shows an example of how to instantiate this type.
15862
+ # The values are placeholders you should change.
15863
+ from aws_cdk import aws_cloudfront as cloudfront
15864
+
15865
+ cfn_vpc_origin = cloudfront.CfnVpcOrigin(self, "MyCfnVpcOrigin",
15866
+ vpc_origin_endpoint_config=cloudfront.CfnVpcOrigin.VpcOriginEndpointConfigProperty(
15867
+ arn="arn",
15868
+ name="name",
15869
+
15870
+ # the properties below are optional
15871
+ http_port=123,
15872
+ https_port=123,
15873
+ origin_protocol_policy="originProtocolPolicy",
15874
+ origin_ssl_protocols=["originSslProtocols"]
15875
+ ),
15876
+
15877
+ # the properties below are optional
15878
+ tags=[CfnTag(
15879
+ key="key",
15880
+ value="value"
15881
+ )]
15882
+ )
15883
+ '''
15884
+
15885
+ def __init__(
15886
+ self,
15887
+ scope: _constructs_77d1e7e8.Construct,
15888
+ id: builtins.str,
15889
+ *,
15890
+ vpc_origin_endpoint_config: typing.Union[_IResolvable_da3f097b, typing.Union["CfnVpcOrigin.VpcOriginEndpointConfigProperty", typing.Dict[builtins.str, typing.Any]]],
15891
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
15892
+ ) -> None:
15893
+ '''
15894
+ :param scope: Scope in which this resource is defined.
15895
+ :param id: Construct identifier for this resource (unique in its scope).
15896
+ :param vpc_origin_endpoint_config: The VPC origin endpoint configuration.
15897
+ :param tags: A complex type that contains zero or more ``Tag`` elements.
15898
+ '''
15899
+ if __debug__:
15900
+ type_hints = typing.get_type_hints(_typecheckingstub__f7062f7bb7781a86be4f5d08bb3bb95af09a186c881a9c115d240e93409599a3)
15901
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
15902
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
15903
+ props = CfnVpcOriginProps(
15904
+ vpc_origin_endpoint_config=vpc_origin_endpoint_config, tags=tags
15905
+ )
15906
+
15907
+ jsii.create(self.__class__, self, [scope, id, props])
15908
+
15909
+ @jsii.member(jsii_name="inspect")
15910
+ def inspect(self, inspector: _TreeInspector_488e0dd5) -> None:
15911
+ '''Examines the CloudFormation resource and discloses attributes.
15912
+
15913
+ :param inspector: tree inspector to collect and process attributes.
15914
+ '''
15915
+ if __debug__:
15916
+ type_hints = typing.get_type_hints(_typecheckingstub__28f636d13eaee8a7287928cb7df58e76d1def769726a097be97eabfb808c51f8)
15917
+ check_type(argname="argument inspector", value=inspector, expected_type=type_hints["inspector"])
15918
+ return typing.cast(None, jsii.invoke(self, "inspect", [inspector]))
15919
+
15920
+ @jsii.member(jsii_name="renderProperties")
15921
+ def _render_properties(
15922
+ self,
15923
+ props: typing.Mapping[builtins.str, typing.Any],
15924
+ ) -> typing.Mapping[builtins.str, typing.Any]:
15925
+ '''
15926
+ :param props: -
15927
+ '''
15928
+ if __debug__:
15929
+ type_hints = typing.get_type_hints(_typecheckingstub__131a454614cc703864083ecdf8cf7d7fe02af623b811d7c123ef1c6f604cfe1e)
15930
+ check_type(argname="argument props", value=props, expected_type=type_hints["props"])
15931
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "renderProperties", [props]))
15932
+
15933
+ @jsii.python.classproperty
15934
+ @jsii.member(jsii_name="CFN_RESOURCE_TYPE_NAME")
15935
+ def CFN_RESOURCE_TYPE_NAME(cls) -> builtins.str:
15936
+ '''The CloudFormation resource type name for this resource class.'''
15937
+ return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
15938
+
15939
+ @builtins.property
15940
+ @jsii.member(jsii_name="attrArn")
15941
+ def attr_arn(self) -> builtins.str:
15942
+ '''The VPC origin ARN.
15943
+
15944
+ :cloudformationAttribute: Arn
15945
+ '''
15946
+ return typing.cast(builtins.str, jsii.get(self, "attrArn"))
15947
+
15948
+ @builtins.property
15949
+ @jsii.member(jsii_name="attrCreatedTime")
15950
+ def attr_created_time(self) -> builtins.str:
15951
+ '''The VPC origin created time.
15952
+
15953
+ :cloudformationAttribute: CreatedTime
15954
+ '''
15955
+ return typing.cast(builtins.str, jsii.get(self, "attrCreatedTime"))
15956
+
15957
+ @builtins.property
15958
+ @jsii.member(jsii_name="attrId")
15959
+ def attr_id(self) -> builtins.str:
15960
+ '''The VPC origin ID.
15961
+
15962
+ :cloudformationAttribute: Id
15963
+ '''
15964
+ return typing.cast(builtins.str, jsii.get(self, "attrId"))
15965
+
15966
+ @builtins.property
15967
+ @jsii.member(jsii_name="attrLastModifiedTime")
15968
+ def attr_last_modified_time(self) -> builtins.str:
15969
+ '''The VPC origin last modified time.
15970
+
15971
+ :cloudformationAttribute: LastModifiedTime
15972
+ '''
15973
+ return typing.cast(builtins.str, jsii.get(self, "attrLastModifiedTime"))
15974
+
15975
+ @builtins.property
15976
+ @jsii.member(jsii_name="attrStatus")
15977
+ def attr_status(self) -> builtins.str:
15978
+ '''The VPC origin status.
15979
+
15980
+ :cloudformationAttribute: Status
15981
+ '''
15982
+ return typing.cast(builtins.str, jsii.get(self, "attrStatus"))
15983
+
15984
+ @builtins.property
15985
+ @jsii.member(jsii_name="cdkTagManager")
15986
+ def cdk_tag_manager(self) -> _TagManager_0a598cb3:
15987
+ '''Tag Manager which manages the tags for this resource.'''
15988
+ return typing.cast(_TagManager_0a598cb3, jsii.get(self, "cdkTagManager"))
15989
+
15990
+ @builtins.property
15991
+ @jsii.member(jsii_name="cfnProperties")
15992
+ def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
15993
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
15994
+
15995
+ @builtins.property
15996
+ @jsii.member(jsii_name="vpcOriginEndpointConfig")
15997
+ def vpc_origin_endpoint_config(
15998
+ self,
15999
+ ) -> typing.Union[_IResolvable_da3f097b, "CfnVpcOrigin.VpcOriginEndpointConfigProperty"]:
16000
+ '''The VPC origin endpoint configuration.'''
16001
+ return typing.cast(typing.Union[_IResolvable_da3f097b, "CfnVpcOrigin.VpcOriginEndpointConfigProperty"], jsii.get(self, "vpcOriginEndpointConfig"))
16002
+
16003
+ @vpc_origin_endpoint_config.setter
16004
+ def vpc_origin_endpoint_config(
16005
+ self,
16006
+ value: typing.Union[_IResolvable_da3f097b, "CfnVpcOrigin.VpcOriginEndpointConfigProperty"],
16007
+ ) -> None:
16008
+ if __debug__:
16009
+ type_hints = typing.get_type_hints(_typecheckingstub__9265e1489f928e735dda183f6e028e321fecb788c24bb3ae245d1548533ba74e)
16010
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
16011
+ jsii.set(self, "vpcOriginEndpointConfig", value) # pyright: ignore[reportArgumentType]
16012
+
16013
+ @builtins.property
16014
+ @jsii.member(jsii_name="tags")
16015
+ def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
16016
+ '''A complex type that contains zero or more ``Tag`` elements.'''
16017
+ return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], jsii.get(self, "tags"))
16018
+
16019
+ @tags.setter
16020
+ def tags(self, value: typing.Optional[typing.List[_CfnTag_f6864754]]) -> None:
16021
+ if __debug__:
16022
+ type_hints = typing.get_type_hints(_typecheckingstub__cc93ea0e93a8ae8f83cf244dcb1cb75eec5e49566a07e24c8943e0e19484ca81)
16023
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
16024
+ jsii.set(self, "tags", value) # pyright: ignore[reportArgumentType]
16025
+
16026
+ @jsii.data_type(
16027
+ jsii_type="aws-cdk-lib.aws_cloudfront.CfnVpcOrigin.VpcOriginEndpointConfigProperty",
16028
+ jsii_struct_bases=[],
16029
+ name_mapping={
16030
+ "arn": "arn",
16031
+ "name": "name",
16032
+ "http_port": "httpPort",
16033
+ "https_port": "httpsPort",
16034
+ "origin_protocol_policy": "originProtocolPolicy",
16035
+ "origin_ssl_protocols": "originSslProtocols",
16036
+ },
16037
+ )
16038
+ class VpcOriginEndpointConfigProperty:
16039
+ def __init__(
16040
+ self,
16041
+ *,
16042
+ arn: builtins.str,
16043
+ name: builtins.str,
16044
+ http_port: typing.Optional[jsii.Number] = None,
16045
+ https_port: typing.Optional[jsii.Number] = None,
16046
+ origin_protocol_policy: typing.Optional[builtins.str] = None,
16047
+ origin_ssl_protocols: typing.Optional[typing.Sequence[builtins.str]] = None,
16048
+ ) -> None:
16049
+ '''An Amazon CloudFront VPC origin endpoint configuration.
16050
+
16051
+ :param arn: The ARN of the CloudFront VPC origin endpoint configuration.
16052
+ :param name: The name of the CloudFront VPC origin endpoint configuration.
16053
+ :param http_port: The HTTP port for the CloudFront VPC origin endpoint configuration. Default: - 80
16054
+ :param https_port: The HTTPS port of the CloudFront VPC origin endpoint configuration. Default: - 443
16055
+ :param origin_protocol_policy: The origin protocol policy for the CloudFront VPC origin endpoint configuration. Default: - "match-viewer"
16056
+ :param origin_ssl_protocols:
16057
+
16058
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-vpcorigin-vpcoriginendpointconfig.html
16059
+ :exampleMetadata: fixture=_generated
16060
+
16061
+ Example::
16062
+
16063
+ # The code below shows an example of how to instantiate this type.
16064
+ # The values are placeholders you should change.
16065
+ from aws_cdk import aws_cloudfront as cloudfront
16066
+
16067
+ vpc_origin_endpoint_config_property = cloudfront.CfnVpcOrigin.VpcOriginEndpointConfigProperty(
16068
+ arn="arn",
16069
+ name="name",
16070
+
16071
+ # the properties below are optional
16072
+ http_port=123,
16073
+ https_port=123,
16074
+ origin_protocol_policy="originProtocolPolicy",
16075
+ origin_ssl_protocols=["originSslProtocols"]
16076
+ )
16077
+ '''
16078
+ if __debug__:
16079
+ type_hints = typing.get_type_hints(_typecheckingstub__005dcbc2d3e8c1b9440d0937d4f4088afc4fb1a0a647692004a2a371311c7428)
16080
+ check_type(argname="argument arn", value=arn, expected_type=type_hints["arn"])
16081
+ check_type(argname="argument name", value=name, expected_type=type_hints["name"])
16082
+ check_type(argname="argument http_port", value=http_port, expected_type=type_hints["http_port"])
16083
+ check_type(argname="argument https_port", value=https_port, expected_type=type_hints["https_port"])
16084
+ check_type(argname="argument origin_protocol_policy", value=origin_protocol_policy, expected_type=type_hints["origin_protocol_policy"])
16085
+ check_type(argname="argument origin_ssl_protocols", value=origin_ssl_protocols, expected_type=type_hints["origin_ssl_protocols"])
16086
+ self._values: typing.Dict[builtins.str, typing.Any] = {
16087
+ "arn": arn,
16088
+ "name": name,
16089
+ }
16090
+ if http_port is not None:
16091
+ self._values["http_port"] = http_port
16092
+ if https_port is not None:
16093
+ self._values["https_port"] = https_port
16094
+ if origin_protocol_policy is not None:
16095
+ self._values["origin_protocol_policy"] = origin_protocol_policy
16096
+ if origin_ssl_protocols is not None:
16097
+ self._values["origin_ssl_protocols"] = origin_ssl_protocols
16098
+
16099
+ @builtins.property
16100
+ def arn(self) -> builtins.str:
16101
+ '''The ARN of the CloudFront VPC origin endpoint configuration.
16102
+
16103
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-vpcorigin-vpcoriginendpointconfig.html#cfn-cloudfront-vpcorigin-vpcoriginendpointconfig-arn
16104
+ '''
16105
+ result = self._values.get("arn")
16106
+ assert result is not None, "Required property 'arn' is missing"
16107
+ return typing.cast(builtins.str, result)
16108
+
16109
+ @builtins.property
16110
+ def name(self) -> builtins.str:
16111
+ '''The name of the CloudFront VPC origin endpoint configuration.
16112
+
16113
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-vpcorigin-vpcoriginendpointconfig.html#cfn-cloudfront-vpcorigin-vpcoriginendpointconfig-name
16114
+ '''
16115
+ result = self._values.get("name")
16116
+ assert result is not None, "Required property 'name' is missing"
16117
+ return typing.cast(builtins.str, result)
16118
+
16119
+ @builtins.property
16120
+ def http_port(self) -> typing.Optional[jsii.Number]:
16121
+ '''The HTTP port for the CloudFront VPC origin endpoint configuration.
16122
+
16123
+ :default: - 80
16124
+
16125
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-vpcorigin-vpcoriginendpointconfig.html#cfn-cloudfront-vpcorigin-vpcoriginendpointconfig-httpport
16126
+ '''
16127
+ result = self._values.get("http_port")
16128
+ return typing.cast(typing.Optional[jsii.Number], result)
16129
+
16130
+ @builtins.property
16131
+ def https_port(self) -> typing.Optional[jsii.Number]:
16132
+ '''The HTTPS port of the CloudFront VPC origin endpoint configuration.
16133
+
16134
+ :default: - 443
16135
+
16136
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-vpcorigin-vpcoriginendpointconfig.html#cfn-cloudfront-vpcorigin-vpcoriginendpointconfig-httpsport
16137
+ '''
16138
+ result = self._values.get("https_port")
16139
+ return typing.cast(typing.Optional[jsii.Number], result)
16140
+
16141
+ @builtins.property
16142
+ def origin_protocol_policy(self) -> typing.Optional[builtins.str]:
16143
+ '''The origin protocol policy for the CloudFront VPC origin endpoint configuration.
16144
+
16145
+ :default: - "match-viewer"
16146
+
16147
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-vpcorigin-vpcoriginendpointconfig.html#cfn-cloudfront-vpcorigin-vpcoriginendpointconfig-originprotocolpolicy
16148
+ '''
16149
+ result = self._values.get("origin_protocol_policy")
16150
+ return typing.cast(typing.Optional[builtins.str], result)
16151
+
16152
+ @builtins.property
16153
+ def origin_ssl_protocols(self) -> typing.Optional[typing.List[builtins.str]]:
16154
+ '''
16155
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-vpcorigin-vpcoriginendpointconfig.html#cfn-cloudfront-vpcorigin-vpcoriginendpointconfig-originsslprotocols
16156
+ '''
16157
+ result = self._values.get("origin_ssl_protocols")
16158
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
16159
+
16160
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
16161
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
16162
+
16163
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
16164
+ return not (rhs == self)
16165
+
16166
+ def __repr__(self) -> str:
16167
+ return "VpcOriginEndpointConfigProperty(%s)" % ", ".join(
16168
+ k + "=" + repr(v) for k, v in self._values.items()
16169
+ )
16170
+
16171
+
16172
+ @jsii.data_type(
16173
+ jsii_type="aws-cdk-lib.aws_cloudfront.CfnVpcOriginProps",
16174
+ jsii_struct_bases=[],
16175
+ name_mapping={
16176
+ "vpc_origin_endpoint_config": "vpcOriginEndpointConfig",
16177
+ "tags": "tags",
16178
+ },
16179
+ )
16180
+ class CfnVpcOriginProps:
16181
+ def __init__(
16182
+ self,
16183
+ *,
16184
+ vpc_origin_endpoint_config: typing.Union[_IResolvable_da3f097b, typing.Union[CfnVpcOrigin.VpcOriginEndpointConfigProperty, typing.Dict[builtins.str, typing.Any]]],
16185
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
16186
+ ) -> None:
16187
+ '''Properties for defining a ``CfnVpcOrigin``.
16188
+
16189
+ :param vpc_origin_endpoint_config: The VPC origin endpoint configuration.
16190
+ :param tags: A complex type that contains zero or more ``Tag`` elements.
16191
+
16192
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-vpcorigin.html
16193
+ :exampleMetadata: fixture=_generated
16194
+
16195
+ Example::
16196
+
16197
+ # The code below shows an example of how to instantiate this type.
16198
+ # The values are placeholders you should change.
16199
+ from aws_cdk import aws_cloudfront as cloudfront
16200
+
16201
+ cfn_vpc_origin_props = cloudfront.CfnVpcOriginProps(
16202
+ vpc_origin_endpoint_config=cloudfront.CfnVpcOrigin.VpcOriginEndpointConfigProperty(
16203
+ arn="arn",
16204
+ name="name",
16205
+
16206
+ # the properties below are optional
16207
+ http_port=123,
16208
+ https_port=123,
16209
+ origin_protocol_policy="originProtocolPolicy",
16210
+ origin_ssl_protocols=["originSslProtocols"]
16211
+ ),
16212
+
16213
+ # the properties below are optional
16214
+ tags=[CfnTag(
16215
+ key="key",
16216
+ value="value"
16217
+ )]
16218
+ )
16219
+ '''
16220
+ if __debug__:
16221
+ type_hints = typing.get_type_hints(_typecheckingstub__6657c895db0b69fae418a09161e8a96bc69ee82e7f5b764cd772724449c93252)
16222
+ check_type(argname="argument vpc_origin_endpoint_config", value=vpc_origin_endpoint_config, expected_type=type_hints["vpc_origin_endpoint_config"])
16223
+ check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
16224
+ self._values: typing.Dict[builtins.str, typing.Any] = {
16225
+ "vpc_origin_endpoint_config": vpc_origin_endpoint_config,
16226
+ }
16227
+ if tags is not None:
16228
+ self._values["tags"] = tags
16229
+
16230
+ @builtins.property
16231
+ def vpc_origin_endpoint_config(
16232
+ self,
16233
+ ) -> typing.Union[_IResolvable_da3f097b, CfnVpcOrigin.VpcOriginEndpointConfigProperty]:
16234
+ '''The VPC origin endpoint configuration.
16235
+
16236
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-vpcorigin.html#cfn-cloudfront-vpcorigin-vpcoriginendpointconfig
16237
+ '''
16238
+ result = self._values.get("vpc_origin_endpoint_config")
16239
+ assert result is not None, "Required property 'vpc_origin_endpoint_config' is missing"
16240
+ return typing.cast(typing.Union[_IResolvable_da3f097b, CfnVpcOrigin.VpcOriginEndpointConfigProperty], result)
16241
+
16242
+ @builtins.property
16243
+ def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
16244
+ '''A complex type that contains zero or more ``Tag`` elements.
16245
+
16246
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-vpcorigin.html#cfn-cloudfront-vpcorigin-tags
16247
+ '''
16248
+ result = self._values.get("tags")
16249
+ return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], result)
16250
+
16251
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
16252
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
16253
+
16254
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
16255
+ return not (rhs == self)
16256
+
16257
+ def __repr__(self) -> str:
16258
+ return "CfnVpcOriginProps(%s)" % ", ".join(
16259
+ k + "=" + repr(v) for k, v in self._values.items()
16260
+ )
16261
+
16262
+
15712
16263
  @jsii.enum(jsii_type="aws-cdk-lib.aws_cloudfront.CloudFrontAllowedCachedMethods")
15713
16264
  class CloudFrontAllowedCachedMethods(enum.Enum):
15714
16265
  '''Enums for the methods CloudFront can cache.'''
@@ -19564,6 +20115,7 @@ typing.cast(typing.Any, OriginBase).__jsii_proxy_class__ = lambda : _OriginBaseP
19564
20115
  name_mapping={
19565
20116
  "failover_config": "failoverConfig",
19566
20117
  "origin_property": "originProperty",
20118
+ "selection_criteria": "selectionCriteria",
19567
20119
  },
19568
20120
  )
19569
20121
  class OriginBindConfig:
@@ -19572,11 +20124,13 @@ class OriginBindConfig:
19572
20124
  *,
19573
20125
  failover_config: typing.Optional[typing.Union["OriginFailoverConfig", typing.Dict[builtins.str, typing.Any]]] = None,
19574
20126
  origin_property: typing.Optional[typing.Union[CfnDistribution.OriginProperty, typing.Dict[builtins.str, typing.Any]]] = None,
20127
+ selection_criteria: typing.Optional["OriginSelectionCriteria"] = None,
19575
20128
  ) -> None:
19576
20129
  '''The struct returned from ``IOrigin.bind``.
19577
20130
 
19578
20131
  :param failover_config: The failover configuration for this Origin. Default: - nothing is returned
19579
20132
  :param origin_property: The CloudFormation OriginProperty configuration for this Origin. Default: - nothing is returned
20133
+ :param selection_criteria: The selection criteria for how your origins are selected. Default: - OriginSelectionCriteria.DEFAULT
19580
20134
 
19581
20135
  :exampleMetadata: fixture=_generated
19582
20136
 
@@ -19624,8 +20178,16 @@ class OriginBindConfig:
19624
20178
  ),
19625
20179
  s3_origin_config=cloudfront.CfnDistribution.S3OriginConfigProperty(
19626
20180
  origin_access_identity="originAccessIdentity"
20181
+ ),
20182
+ vpc_origin_config=cloudfront.CfnDistribution.VpcOriginConfigProperty(
20183
+ vpc_origin_id="vpcOriginId",
20184
+
20185
+ # the properties below are optional
20186
+ origin_keepalive_timeout=123,
20187
+ origin_read_timeout=123
19627
20188
  )
19628
- )
20189
+ ),
20190
+ selection_criteria=cloudfront.OriginSelectionCriteria.DEFAULT
19629
20191
  )
19630
20192
  '''
19631
20193
  if isinstance(failover_config, dict):
@@ -19636,11 +20198,14 @@ class OriginBindConfig:
19636
20198
  type_hints = typing.get_type_hints(_typecheckingstub__d3e6a8992dd905a0c0d851cfed62aa0f881803068317a0b59eb84571249e84f1)
19637
20199
  check_type(argname="argument failover_config", value=failover_config, expected_type=type_hints["failover_config"])
19638
20200
  check_type(argname="argument origin_property", value=origin_property, expected_type=type_hints["origin_property"])
20201
+ check_type(argname="argument selection_criteria", value=selection_criteria, expected_type=type_hints["selection_criteria"])
19639
20202
  self._values: typing.Dict[builtins.str, typing.Any] = {}
19640
20203
  if failover_config is not None:
19641
20204
  self._values["failover_config"] = failover_config
19642
20205
  if origin_property is not None:
19643
20206
  self._values["origin_property"] = origin_property
20207
+ if selection_criteria is not None:
20208
+ self._values["selection_criteria"] = selection_criteria
19644
20209
 
19645
20210
  @builtins.property
19646
20211
  def failover_config(self) -> typing.Optional["OriginFailoverConfig"]:
@@ -19660,6 +20225,17 @@ class OriginBindConfig:
19660
20225
  result = self._values.get("origin_property")
19661
20226
  return typing.cast(typing.Optional[CfnDistribution.OriginProperty], result)
19662
20227
 
20228
+ @builtins.property
20229
+ def selection_criteria(self) -> typing.Optional["OriginSelectionCriteria"]:
20230
+ '''The selection criteria for how your origins are selected.
20231
+
20232
+ :default: - OriginSelectionCriteria.DEFAULT
20233
+
20234
+ :see: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/high_availability_origin_failover.html#concept_origin_groups.creating
20235
+ '''
20236
+ result = self._values.get("selection_criteria")
20237
+ return typing.cast(typing.Optional["OriginSelectionCriteria"], result)
20238
+
19663
20239
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
19664
20240
  return isinstance(rhs, self.__class__) and rhs._values == self._values
19665
20241
 
@@ -20718,6 +21294,35 @@ class OriginRequestQueryStringBehavior(
20718
21294
  return typing.cast(typing.Optional[typing.List[builtins.str]], jsii.get(self, "queryStrings"))
20719
21295
 
20720
21296
 
21297
+ @jsii.enum(jsii_type="aws-cdk-lib.aws_cloudfront.OriginSelectionCriteria")
21298
+ class OriginSelectionCriteria(enum.Enum):
21299
+ '''The selection criteria for the origin group.
21300
+
21301
+ :exampleMetadata: infused
21302
+
21303
+ Example::
21304
+
21305
+ cloudfront.Distribution(self, "myDist",
21306
+ default_behavior=cloudfront.BehaviorOptions(
21307
+ origin=origins.OriginGroup(
21308
+ primary_origin=origins.HttpOrigin("<AWS Elemental MediaPackageV2 origin 1>"),
21309
+ fallback_origin=origins.HttpOrigin("<AWS Elemental MediaPackageV2 origin 2>"),
21310
+ fallback_status_codes=[404],
21311
+ selection_criteria=cloudfront.OriginSelectionCriteria.MEDIA_QUALITY_BASED
21312
+ )
21313
+ )
21314
+ )
21315
+ '''
21316
+
21317
+ DEFAULT = "DEFAULT"
21318
+ '''Default selection behavior.'''
21319
+ MEDIA_QUALITY_BASED = "MEDIA_QUALITY_BASED"
21320
+ '''Selection based on media quality.
21321
+
21322
+ This option is only valid for AWS Elemental MediaPackage v2 Origins.
21323
+ '''
21324
+
21325
+
20721
21326
  @jsii.enum(jsii_type="aws-cdk-lib.aws_cloudfront.OriginSslPolicy")
20722
21327
  class OriginSslPolicy(enum.Enum):
20723
21328
  SSL_V3 = "SSL_V3"
@@ -21519,7 +22124,7 @@ class ResponseHeadersCorsBehavior:
21519
22124
 
21520
22125
  :param access_control_allow_credentials: A Boolean that CloudFront uses as the value for the Access-Control-Allow-Credentials HTTP response header.
21521
22126
  :param access_control_allow_headers: A list of HTTP header names that CloudFront includes as values for the Access-Control-Allow-Headers HTTP response header. You can specify ``['*']`` to allow all headers.
21522
- :param access_control_allow_methods: A list of HTTP methods that CloudFront includes as values for the Access-Control-Allow-Methods HTTP response header.
22127
+ :param access_control_allow_methods: A list of HTTP methods that CloudFront includes as values for the Access-Control-Allow-Methods HTTP response header. Allowed methods: ``'GET'``, ``'DELETE'``, ``'HEAD'``, ``'OPTIONS'``, ``'PATCH'``, ``'POST'``, and ``'PUT'``. You can specify ``['ALL']`` to allow all methods.
21523
22128
  :param access_control_allow_origins: A list of origins (domain names) that CloudFront can use as the value for the Access-Control-Allow-Origin HTTP response header. You can specify ``['*']`` to allow all origins.
21524
22129
  :param origin_override: A Boolean that determines whether CloudFront overrides HTTP response headers received from the origin with the ones specified in this response headers policy.
21525
22130
  :param access_control_expose_headers: A list of HTTP headers that CloudFront includes as values for the Access-Control-Expose-Headers HTTP response header. You can specify ``['*']`` to expose all headers. Default: - no headers exposed
@@ -21614,7 +22219,11 @@ class ResponseHeadersCorsBehavior:
21614
22219
 
21615
22220
  @builtins.property
21616
22221
  def access_control_allow_methods(self) -> typing.List[builtins.str]:
21617
- '''A list of HTTP methods that CloudFront includes as values for the Access-Control-Allow-Methods HTTP response header.'''
22222
+ '''A list of HTTP methods that CloudFront includes as values for the Access-Control-Allow-Methods HTTP response header.
22223
+
22224
+ Allowed methods: ``'GET'``, ``'DELETE'``, ``'HEAD'``, ``'OPTIONS'``, ``'PATCH'``, ``'POST'``, and ``'PUT'``.
22225
+ You can specify ``['ALL']`` to allow all methods.
22226
+ '''
21618
22227
  result = self._values.get("access_control_allow_methods")
21619
22228
  assert result is not None, "Required property 'access_control_allow_methods' is missing"
21620
22229
  return typing.cast(typing.List[builtins.str], result)
@@ -25588,6 +26197,8 @@ __all__ = [
25588
26197
  "CfnResponseHeadersPolicyProps",
25589
26198
  "CfnStreamingDistribution",
25590
26199
  "CfnStreamingDistributionProps",
26200
+ "CfnVpcOrigin",
26201
+ "CfnVpcOriginProps",
25591
26202
  "CloudFrontAllowedCachedMethods",
25592
26203
  "CloudFrontAllowedMethods",
25593
26204
  "CloudFrontWebDistribution",
@@ -25652,6 +26263,7 @@ __all__ = [
25652
26263
  "OriginRequestPolicy",
25653
26264
  "OriginRequestPolicyProps",
25654
26265
  "OriginRequestQueryStringBehavior",
26266
+ "OriginSelectionCriteria",
25655
26267
  "OriginSslPolicy",
25656
26268
  "PriceClass",
25657
26269
  "PublicKey",
@@ -26356,6 +26968,7 @@ def _typecheckingstub__cb4237408749840dbecf9d9aed57975910052da22b994c7e13cc97c98
26356
26968
  origin_path: typing.Optional[builtins.str] = None,
26357
26969
  origin_shield: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnDistribution.OriginShieldProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
26358
26970
  s3_origin_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnDistribution.S3OriginConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
26971
+ vpc_origin_config: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnDistribution.VpcOriginConfigProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
26359
26972
  ) -> None:
26360
26973
  """Type checking stubs"""
26361
26974
  pass
@@ -26384,7 +26997,7 @@ def _typecheckingstub__8d9ff629693eb9bcb66704ce461d05e62e0755b651cbbc7ead2b89151
26384
26997
 
26385
26998
  def _typecheckingstub__7b8b62ce6bf1ec6151566719caf2d665f3f7fea596e402fba7354f19f781f23c(
26386
26999
  *,
26387
- items: typing.Union[_IResolvable_da3f097b, typing.Sequence[jsii.Number]],
27000
+ items: typing.Union[typing.Sequence[jsii.Number], _IResolvable_da3f097b],
26388
27001
  quantity: jsii.Number,
26389
27002
  ) -> None:
26390
27003
  """Type checking stubs"""
@@ -26401,6 +27014,15 @@ def _typecheckingstub__511560286b35778c69f3d2a23120607f1ab2e58901f0c1ba7acd75a33
26401
27014
  """Type checking stubs"""
26402
27015
  pass
26403
27016
 
27017
+ def _typecheckingstub__f7a2beaed61436754427d5794c11e2b8b3ecac452591d86453fc6b4321c161b0(
27018
+ *,
27019
+ vpc_origin_id: builtins.str,
27020
+ origin_keepalive_timeout: typing.Optional[jsii.Number] = None,
27021
+ origin_read_timeout: typing.Optional[jsii.Number] = None,
27022
+ ) -> None:
27023
+ """Type checking stubs"""
27024
+ pass
27025
+
26404
27026
  def _typecheckingstub__f7553d47847912fd83a61da98a84c9c8cb5fdb95cf08048d70723db17c73053a(
26405
27027
  *,
26406
27028
  distribution_config: typing.Union[_IResolvable_da3f097b, typing.Union[CfnDistribution.DistributionConfigProperty, typing.Dict[builtins.str, typing.Any]]],
@@ -27156,6 +27778,60 @@ def _typecheckingstub__eb98a63a577b61baa6128a211026a41a13348dc9752d07118d9db5c63
27156
27778
  """Type checking stubs"""
27157
27779
  pass
27158
27780
 
27781
+ def _typecheckingstub__f7062f7bb7781a86be4f5d08bb3bb95af09a186c881a9c115d240e93409599a3(
27782
+ scope: _constructs_77d1e7e8.Construct,
27783
+ id: builtins.str,
27784
+ *,
27785
+ vpc_origin_endpoint_config: typing.Union[_IResolvable_da3f097b, typing.Union[CfnVpcOrigin.VpcOriginEndpointConfigProperty, typing.Dict[builtins.str, typing.Any]]],
27786
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
27787
+ ) -> None:
27788
+ """Type checking stubs"""
27789
+ pass
27790
+
27791
+ def _typecheckingstub__28f636d13eaee8a7287928cb7df58e76d1def769726a097be97eabfb808c51f8(
27792
+ inspector: _TreeInspector_488e0dd5,
27793
+ ) -> None:
27794
+ """Type checking stubs"""
27795
+ pass
27796
+
27797
+ def _typecheckingstub__131a454614cc703864083ecdf8cf7d7fe02af623b811d7c123ef1c6f604cfe1e(
27798
+ props: typing.Mapping[builtins.str, typing.Any],
27799
+ ) -> None:
27800
+ """Type checking stubs"""
27801
+ pass
27802
+
27803
+ def _typecheckingstub__9265e1489f928e735dda183f6e028e321fecb788c24bb3ae245d1548533ba74e(
27804
+ value: typing.Union[_IResolvable_da3f097b, CfnVpcOrigin.VpcOriginEndpointConfigProperty],
27805
+ ) -> None:
27806
+ """Type checking stubs"""
27807
+ pass
27808
+
27809
+ def _typecheckingstub__cc93ea0e93a8ae8f83cf244dcb1cb75eec5e49566a07e24c8943e0e19484ca81(
27810
+ value: typing.Optional[typing.List[_CfnTag_f6864754]],
27811
+ ) -> None:
27812
+ """Type checking stubs"""
27813
+ pass
27814
+
27815
+ def _typecheckingstub__005dcbc2d3e8c1b9440d0937d4f4088afc4fb1a0a647692004a2a371311c7428(
27816
+ *,
27817
+ arn: builtins.str,
27818
+ name: builtins.str,
27819
+ http_port: typing.Optional[jsii.Number] = None,
27820
+ https_port: typing.Optional[jsii.Number] = None,
27821
+ origin_protocol_policy: typing.Optional[builtins.str] = None,
27822
+ origin_ssl_protocols: typing.Optional[typing.Sequence[builtins.str]] = None,
27823
+ ) -> None:
27824
+ """Type checking stubs"""
27825
+ pass
27826
+
27827
+ def _typecheckingstub__6657c895db0b69fae418a09161e8a96bc69ee82e7f5b764cd772724449c93252(
27828
+ *,
27829
+ vpc_origin_endpoint_config: typing.Union[_IResolvable_da3f097b, typing.Union[CfnVpcOrigin.VpcOriginEndpointConfigProperty, typing.Dict[builtins.str, typing.Any]]],
27830
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
27831
+ ) -> None:
27832
+ """Type checking stubs"""
27833
+ pass
27834
+
27159
27835
  def _typecheckingstub__4066bd6a3cdef7b839e125a6133e4a1d52cc939d9ec9dd0288d2750b135e9452(
27160
27836
  *,
27161
27837
  distribution_id: builtins.str,
@@ -27519,6 +28195,7 @@ def _typecheckingstub__d3e6a8992dd905a0c0d851cfed62aa0f881803068317a0b59eb845712
27519
28195
  *,
27520
28196
  failover_config: typing.Optional[typing.Union[OriginFailoverConfig, typing.Dict[builtins.str, typing.Any]]] = None,
27521
28197
  origin_property: typing.Optional[typing.Union[CfnDistribution.OriginProperty, typing.Dict[builtins.str, typing.Any]]] = None,
28198
+ selection_criteria: typing.Optional[OriginSelectionCriteria] = None,
27522
28199
  ) -> None:
27523
28200
  """Type checking stubs"""
27524
28201
  pass