pulumi-aws 7.15.0__py3-none-any.whl → 7.16.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.
Files changed (105) hide show
  1. pulumi_aws/__init__.py +80 -0
  2. pulumi_aws/alb/listener.py +7 -7
  3. pulumi_aws/alb/target_group.py +7 -7
  4. pulumi_aws/alb/target_group_attachment.py +83 -0
  5. pulumi_aws/apigateway/domain_name.py +86 -7
  6. pulumi_aws/apigateway/get_domain_name.py +15 -1
  7. pulumi_aws/apigateway/integration.py +48 -8
  8. pulumi_aws/athena/_inputs.py +412 -5
  9. pulumi_aws/athena/outputs.py +342 -2
  10. pulumi_aws/backup/global_settings.py +15 -7
  11. pulumi_aws/bedrock/agentcore_memory_strategy.py +8 -0
  12. pulumi_aws/cleanrooms/collaboration.py +26 -6
  13. pulumi_aws/cloudfront/__init__.py +6 -0
  14. pulumi_aws/cloudfront/_inputs.py +3601 -478
  15. pulumi_aws/cloudfront/connection_function.py +658 -0
  16. pulumi_aws/cloudfront/connection_group.py +649 -0
  17. pulumi_aws/cloudfront/distribution.py +142 -0
  18. pulumi_aws/cloudfront/distribution_tenant.py +857 -0
  19. pulumi_aws/cloudfront/get_connection_group.py +249 -0
  20. pulumi_aws/cloudfront/get_distribution_tenant.py +279 -0
  21. pulumi_aws/cloudfront/multitenant_distribution.py +1181 -0
  22. pulumi_aws/cloudfront/outputs.py +3034 -376
  23. pulumi_aws/cloudwatch/log_subscription_filter.py +136 -42
  24. pulumi_aws/directconnect/gateway.py +78 -3
  25. pulumi_aws/directconnect/get_gateway.py +24 -4
  26. pulumi_aws/dlm/_inputs.py +3 -3
  27. pulumi_aws/dlm/outputs.py +2 -2
  28. pulumi_aws/dynamodb/__init__.py +1 -0
  29. pulumi_aws/dynamodb/_inputs.py +370 -0
  30. pulumi_aws/dynamodb/global_secondary_index.py +666 -0
  31. pulumi_aws/dynamodb/outputs.py +315 -0
  32. pulumi_aws/dynamodb/table.py +9 -1
  33. pulumi_aws/ec2/_inputs.py +44 -4
  34. pulumi_aws/ec2/get_vpc_endpoint.py +24 -4
  35. pulumi_aws/ec2/outputs.py +54 -4
  36. pulumi_aws/ecr/__init__.py +1 -0
  37. pulumi_aws/ecr/_inputs.py +58 -22
  38. pulumi_aws/ecr/get_repository_creation_template.py +1 -1
  39. pulumi_aws/ecr/lifecycle_policy.py +152 -64
  40. pulumi_aws/ecr/outputs.py +37 -15
  41. pulumi_aws/ecr/pull_time_update_exclusion.py +363 -0
  42. pulumi_aws/ecr/repository_creation_template.py +7 -7
  43. pulumi_aws/ecs/_inputs.py +20 -0
  44. pulumi_aws/ecs/outputs.py +14 -0
  45. pulumi_aws/ecs/task_definition.py +28 -28
  46. pulumi_aws/elasticache/replication_group.py +7 -7
  47. pulumi_aws/fsx/ontap_file_system.py +14 -0
  48. pulumi_aws/glue/resource_policy.py +4 -4
  49. pulumi_aws/guardduty/_inputs.py +41 -1
  50. pulumi_aws/guardduty/outputs.py +27 -1
  51. pulumi_aws/iam/get_saml_provider.py +15 -1
  52. pulumi_aws/iam/outbound_web_identity_federation.py +0 -4
  53. pulumi_aws/iam/policy.py +47 -0
  54. pulumi_aws/iam/saml_provider.py +28 -0
  55. pulumi_aws/iam/virtual_mfa_device.py +66 -38
  56. pulumi_aws/imagebuilder/_inputs.py +87 -0
  57. pulumi_aws/imagebuilder/image.py +47 -0
  58. pulumi_aws/imagebuilder/image_pipeline.py +47 -0
  59. pulumi_aws/imagebuilder/outputs.py +87 -0
  60. pulumi_aws/kms/grant.py +18 -18
  61. pulumi_aws/lambda_/_inputs.py +24 -4
  62. pulumi_aws/lambda_/event_source_mapping.py +2 -0
  63. pulumi_aws/lambda_/function.py +28 -0
  64. pulumi_aws/lambda_/function_url.py +4 -0
  65. pulumi_aws/lambda_/get_function.py +15 -1
  66. pulumi_aws/lambda_/outputs.py +17 -3
  67. pulumi_aws/lambda_/permission.py +47 -0
  68. pulumi_aws/lb/listener.py +7 -7
  69. pulumi_aws/lb/target_group.py +7 -7
  70. pulumi_aws/lb/target_group_attachment.py +83 -0
  71. pulumi_aws/networkfirewall/_inputs.py +3 -3
  72. pulumi_aws/networkfirewall/outputs.py +2 -2
  73. pulumi_aws/networkfirewall/vpc_endpoint_association.py +2 -2
  74. pulumi_aws/networkmanager/vpc_attachment.py +7 -7
  75. pulumi_aws/opensearchingest/pipeline.py +47 -0
  76. pulumi_aws/organizations/__init__.py +1 -0
  77. pulumi_aws/organizations/tag.py +292 -0
  78. pulumi_aws/pulumi-plugin.json +1 -1
  79. pulumi_aws/rds/cluster.py +21 -21
  80. pulumi_aws/rds/get_proxy.py +29 -1
  81. pulumi_aws/rds/proxy.py +94 -0
  82. pulumi_aws/rds/proxy_default_target_group.py +0 -76
  83. pulumi_aws/rds/proxy_target.py +0 -80
  84. pulumi_aws/redshift/__init__.py +1 -0
  85. pulumi_aws/redshift/_inputs.py +329 -0
  86. pulumi_aws/redshift/idc_application.py +687 -0
  87. pulumi_aws/redshift/outputs.py +265 -0
  88. pulumi_aws/route53/get_resolver_firewall_rules.py +9 -0
  89. pulumi_aws/route53/get_resolver_rule.py +19 -4
  90. pulumi_aws/route53/outputs.py +108 -1
  91. pulumi_aws/route53/resolver_firewall_rule.py +199 -32
  92. pulumi_aws/secretsmanager/__init__.py +1 -0
  93. pulumi_aws/secretsmanager/tag.py +333 -0
  94. pulumi_aws/sesv2/__init__.py +1 -0
  95. pulumi_aws/sesv2/tenant.py +418 -0
  96. pulumi_aws/sfn/activity.py +0 -4
  97. pulumi_aws/sfn/alias.py +0 -4
  98. pulumi_aws/transfer/_inputs.py +126 -0
  99. pulumi_aws/transfer/outputs.py +97 -0
  100. pulumi_aws/transfer/web_app.py +54 -7
  101. pulumi_aws/vpclattice/service_network_resource_association.py +47 -0
  102. {pulumi_aws-7.15.0.dist-info → pulumi_aws-7.16.0.dist-info}/METADATA +1 -1
  103. {pulumi_aws-7.15.0.dist-info → pulumi_aws-7.16.0.dist-info}/RECORD +105 -93
  104. {pulumi_aws-7.15.0.dist-info → pulumi_aws-7.16.0.dist-info}/WHEEL +0 -0
  105. {pulumi_aws-7.15.0.dist-info → pulumi_aws-7.16.0.dist-info}/top_level.txt +0 -0
@@ -29,6 +29,7 @@ class DistributionArgs:
29
29
  aliases: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
30
30
  anycast_ip_list_id: Optional[pulumi.Input[_builtins.str]] = None,
31
31
  comment: Optional[pulumi.Input[_builtins.str]] = None,
32
+ connection_function_association: Optional[pulumi.Input['DistributionConnectionFunctionAssociationArgs']] = None,
32
33
  continuous_deployment_policy_id: Optional[pulumi.Input[_builtins.str]] = None,
33
34
  custom_error_responses: Optional[pulumi.Input[Sequence[pulumi.Input['DistributionCustomErrorResponseArgs']]]] = None,
34
35
  default_root_object: Optional[pulumi.Input[_builtins.str]] = None,
@@ -41,6 +42,7 @@ class DistributionArgs:
41
42
  retain_on_delete: Optional[pulumi.Input[_builtins.bool]] = None,
42
43
  staging: Optional[pulumi.Input[_builtins.bool]] = None,
43
44
  tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
45
+ viewer_mtls_config: Optional[pulumi.Input['DistributionViewerMtlsConfigArgs']] = None,
44
46
  wait_for_deployment: Optional[pulumi.Input[_builtins.bool]] = None,
45
47
  web_acl_id: Optional[pulumi.Input[_builtins.str]] = None):
46
48
  """
@@ -53,6 +55,7 @@ class DistributionArgs:
53
55
  :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] aliases: Extra CNAMEs (alternate domain names), if any, for this distribution.
54
56
  :param pulumi.Input[_builtins.str] anycast_ip_list_id: ID of the Anycast static IP list that is associated with the distribution.
55
57
  :param pulumi.Input[_builtins.str] comment: Any comments you want to include about the distribution.
58
+ :param pulumi.Input['DistributionConnectionFunctionAssociationArgs'] connection_function_association: A connection function association configuration block (maximum one).
56
59
  :param pulumi.Input[_builtins.str] continuous_deployment_policy_id: Identifier of a continuous deployment policy. This argument should only be set on a production distribution. See the `cloudfront.ContinuousDeploymentPolicy` resource for additional details.
57
60
  :param pulumi.Input[Sequence[pulumi.Input['DistributionCustomErrorResponseArgs']]] custom_error_responses: One or more custom error response elements (multiples allowed).
58
61
  :param pulumi.Input[_builtins.str] default_root_object: Object that you want CloudFront to return (for example, index.html) when an end user requests the root URL.
@@ -65,6 +68,7 @@ class DistributionArgs:
65
68
  :param pulumi.Input[_builtins.bool] retain_on_delete: Disables the distribution instead of deleting it when destroying the resource through the provider. If this is set, the distribution needs to be deleted manually afterwards. Default: `false`.
66
69
  :param pulumi.Input[_builtins.bool] staging: A Boolean that indicates whether this is a staging distribution. Defaults to `false`.
67
70
  :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
71
+ :param pulumi.Input['DistributionViewerMtlsConfigArgs'] viewer_mtls_config: The viewer mTLS configuration for this distribution (maximum one).
68
72
  :param pulumi.Input[_builtins.bool] wait_for_deployment: If enabled, the resource will wait for the distribution status to change from `InProgress` to `Deployed`. Setting this to`false` will skip the process. Default: `true`.
69
73
  :param pulumi.Input[_builtins.str] web_acl_id: 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 (WAFv2), use the ACL ARN, for example `aws_wafv2_web_acl.example.arn`. To specify a web ACL created using AWS WAF Classic, use the ACL ID, for example `aws_waf_web_acl.example.id`. The WAF Web ACL must exist in the WAF Global (CloudFront) region and the credentials configuring this argument must have `waf:GetWebACL` permissions assigned.
70
74
  """
@@ -79,6 +83,8 @@ class DistributionArgs:
79
83
  pulumi.set(__self__, "anycast_ip_list_id", anycast_ip_list_id)
80
84
  if comment is not None:
81
85
  pulumi.set(__self__, "comment", comment)
86
+ if connection_function_association is not None:
87
+ pulumi.set(__self__, "connection_function_association", connection_function_association)
82
88
  if continuous_deployment_policy_id is not None:
83
89
  pulumi.set(__self__, "continuous_deployment_policy_id", continuous_deployment_policy_id)
84
90
  if custom_error_responses is not None:
@@ -103,6 +109,8 @@ class DistributionArgs:
103
109
  pulumi.set(__self__, "staging", staging)
104
110
  if tags is not None:
105
111
  pulumi.set(__self__, "tags", tags)
112
+ if viewer_mtls_config is not None:
113
+ pulumi.set(__self__, "viewer_mtls_config", viewer_mtls_config)
106
114
  if wait_for_deployment is not None:
107
115
  pulumi.set(__self__, "wait_for_deployment", wait_for_deployment)
108
116
  if web_acl_id is not None:
@@ -204,6 +212,18 @@ class DistributionArgs:
204
212
  def comment(self, value: Optional[pulumi.Input[_builtins.str]]):
205
213
  pulumi.set(self, "comment", value)
206
214
 
215
+ @_builtins.property
216
+ @pulumi.getter(name="connectionFunctionAssociation")
217
+ def connection_function_association(self) -> Optional[pulumi.Input['DistributionConnectionFunctionAssociationArgs']]:
218
+ """
219
+ A connection function association configuration block (maximum one).
220
+ """
221
+ return pulumi.get(self, "connection_function_association")
222
+
223
+ @connection_function_association.setter
224
+ def connection_function_association(self, value: Optional[pulumi.Input['DistributionConnectionFunctionAssociationArgs']]):
225
+ pulumi.set(self, "connection_function_association", value)
226
+
207
227
  @_builtins.property
208
228
  @pulumi.getter(name="continuousDeploymentPolicyId")
209
229
  def continuous_deployment_policy_id(self) -> Optional[pulumi.Input[_builtins.str]]:
@@ -348,6 +368,18 @@ class DistributionArgs:
348
368
  def tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
349
369
  pulumi.set(self, "tags", value)
350
370
 
371
+ @_builtins.property
372
+ @pulumi.getter(name="viewerMtlsConfig")
373
+ def viewer_mtls_config(self) -> Optional[pulumi.Input['DistributionViewerMtlsConfigArgs']]:
374
+ """
375
+ The viewer mTLS configuration for this distribution (maximum one).
376
+ """
377
+ return pulumi.get(self, "viewer_mtls_config")
378
+
379
+ @viewer_mtls_config.setter
380
+ def viewer_mtls_config(self, value: Optional[pulumi.Input['DistributionViewerMtlsConfigArgs']]):
381
+ pulumi.set(self, "viewer_mtls_config", value)
382
+
351
383
  @_builtins.property
352
384
  @pulumi.getter(name="waitForDeployment")
353
385
  def wait_for_deployment(self) -> Optional[pulumi.Input[_builtins.bool]]:
@@ -381,6 +413,7 @@ class _DistributionState:
381
413
  arn: Optional[pulumi.Input[_builtins.str]] = None,
382
414
  caller_reference: Optional[pulumi.Input[_builtins.str]] = None,
383
415
  comment: Optional[pulumi.Input[_builtins.str]] = None,
416
+ connection_function_association: Optional[pulumi.Input['DistributionConnectionFunctionAssociationArgs']] = None,
384
417
  continuous_deployment_policy_id: Optional[pulumi.Input[_builtins.str]] = None,
385
418
  custom_error_responses: Optional[pulumi.Input[Sequence[pulumi.Input['DistributionCustomErrorResponseArgs']]]] = None,
386
419
  default_cache_behavior: Optional[pulumi.Input['DistributionDefaultCacheBehaviorArgs']] = None,
@@ -408,6 +441,7 @@ class _DistributionState:
408
441
  trusted_key_groups: Optional[pulumi.Input[Sequence[pulumi.Input['DistributionTrustedKeyGroupArgs']]]] = None,
409
442
  trusted_signers: Optional[pulumi.Input[Sequence[pulumi.Input['DistributionTrustedSignerArgs']]]] = None,
410
443
  viewer_certificate: Optional[pulumi.Input['DistributionViewerCertificateArgs']] = None,
444
+ viewer_mtls_config: Optional[pulumi.Input['DistributionViewerMtlsConfigArgs']] = None,
411
445
  wait_for_deployment: Optional[pulumi.Input[_builtins.bool]] = None,
412
446
  web_acl_id: Optional[pulumi.Input[_builtins.str]] = None):
413
447
  """
@@ -417,6 +451,7 @@ class _DistributionState:
417
451
  :param pulumi.Input[_builtins.str] arn: ARN for the distribution. For example: `arn:aws:cloudfront::123456789012:distribution/EDFDVBD632BHDS5`, where `123456789012` is your AWS account ID.
418
452
  :param pulumi.Input[_builtins.str] caller_reference: Internal value used by CloudFront to allow future updates to the distribution configuration.
419
453
  :param pulumi.Input[_builtins.str] comment: Any comments you want to include about the distribution.
454
+ :param pulumi.Input['DistributionConnectionFunctionAssociationArgs'] connection_function_association: A connection function association configuration block (maximum one).
420
455
  :param pulumi.Input[_builtins.str] continuous_deployment_policy_id: Identifier of a continuous deployment policy. This argument should only be set on a production distribution. See the `cloudfront.ContinuousDeploymentPolicy` resource for additional details.
421
456
  :param pulumi.Input[Sequence[pulumi.Input['DistributionCustomErrorResponseArgs']]] custom_error_responses: One or more custom error response elements (multiples allowed).
422
457
  :param pulumi.Input['DistributionDefaultCacheBehaviorArgs'] default_cache_behavior: Default cache behavior for this distribution (maximum one). Requires either `cache_policy_id` (preferred) or `forwarded_values` (deprecated) be set.
@@ -444,6 +479,7 @@ class _DistributionState:
444
479
  :param pulumi.Input[Sequence[pulumi.Input['DistributionTrustedKeyGroupArgs']]] trusted_key_groups: List of nested attributes for active trusted key groups, if the distribution is set up to serve private content with signed URLs.
445
480
  :param pulumi.Input[Sequence[pulumi.Input['DistributionTrustedSignerArgs']]] trusted_signers: List of nested attributes for active trusted signers, if the distribution is set up to serve private content with signed URLs.
446
481
  :param pulumi.Input['DistributionViewerCertificateArgs'] viewer_certificate: The SSL configuration for this distribution (maximum one).
482
+ :param pulumi.Input['DistributionViewerMtlsConfigArgs'] viewer_mtls_config: The viewer mTLS configuration for this distribution (maximum one).
447
483
  :param pulumi.Input[_builtins.bool] wait_for_deployment: If enabled, the resource will wait for the distribution status to change from `InProgress` to `Deployed`. Setting this to`false` will skip the process. Default: `true`.
448
484
  :param pulumi.Input[_builtins.str] web_acl_id: 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 (WAFv2), use the ACL ARN, for example `aws_wafv2_web_acl.example.arn`. To specify a web ACL created using AWS WAF Classic, use the ACL ID, for example `aws_waf_web_acl.example.id`. The WAF Web ACL must exist in the WAF Global (CloudFront) region and the credentials configuring this argument must have `waf:GetWebACL` permissions assigned.
449
485
  """
@@ -457,6 +493,8 @@ class _DistributionState:
457
493
  pulumi.set(__self__, "caller_reference", caller_reference)
458
494
  if comment is not None:
459
495
  pulumi.set(__self__, "comment", comment)
496
+ if connection_function_association is not None:
497
+ pulumi.set(__self__, "connection_function_association", connection_function_association)
460
498
  if continuous_deployment_policy_id is not None:
461
499
  pulumi.set(__self__, "continuous_deployment_policy_id", continuous_deployment_policy_id)
462
500
  if custom_error_responses is not None:
@@ -511,6 +549,8 @@ class _DistributionState:
511
549
  pulumi.set(__self__, "trusted_signers", trusted_signers)
512
550
  if viewer_certificate is not None:
513
551
  pulumi.set(__self__, "viewer_certificate", viewer_certificate)
552
+ if viewer_mtls_config is not None:
553
+ pulumi.set(__self__, "viewer_mtls_config", viewer_mtls_config)
514
554
  if wait_for_deployment is not None:
515
555
  pulumi.set(__self__, "wait_for_deployment", wait_for_deployment)
516
556
  if web_acl_id is not None:
@@ -576,6 +616,18 @@ class _DistributionState:
576
616
  def comment(self, value: Optional[pulumi.Input[_builtins.str]]):
577
617
  pulumi.set(self, "comment", value)
578
618
 
619
+ @_builtins.property
620
+ @pulumi.getter(name="connectionFunctionAssociation")
621
+ def connection_function_association(self) -> Optional[pulumi.Input['DistributionConnectionFunctionAssociationArgs']]:
622
+ """
623
+ A connection function association configuration block (maximum one).
624
+ """
625
+ return pulumi.get(self, "connection_function_association")
626
+
627
+ @connection_function_association.setter
628
+ def connection_function_association(self, value: Optional[pulumi.Input['DistributionConnectionFunctionAssociationArgs']]):
629
+ pulumi.set(self, "connection_function_association", value)
630
+
579
631
  @_builtins.property
580
632
  @pulumi.getter(name="continuousDeploymentPolicyId")
581
633
  def continuous_deployment_policy_id(self) -> Optional[pulumi.Input[_builtins.str]]:
@@ -900,6 +952,18 @@ class _DistributionState:
900
952
  def viewer_certificate(self, value: Optional[pulumi.Input['DistributionViewerCertificateArgs']]):
901
953
  pulumi.set(self, "viewer_certificate", value)
902
954
 
955
+ @_builtins.property
956
+ @pulumi.getter(name="viewerMtlsConfig")
957
+ def viewer_mtls_config(self) -> Optional[pulumi.Input['DistributionViewerMtlsConfigArgs']]:
958
+ """
959
+ The viewer mTLS configuration for this distribution (maximum one).
960
+ """
961
+ return pulumi.get(self, "viewer_mtls_config")
962
+
963
+ @viewer_mtls_config.setter
964
+ def viewer_mtls_config(self, value: Optional[pulumi.Input['DistributionViewerMtlsConfigArgs']]):
965
+ pulumi.set(self, "viewer_mtls_config", value)
966
+
903
967
  @_builtins.property
904
968
  @pulumi.getter(name="waitForDeployment")
905
969
  def wait_for_deployment(self) -> Optional[pulumi.Input[_builtins.bool]]:
@@ -934,6 +998,7 @@ class Distribution(pulumi.CustomResource):
934
998
  aliases: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
935
999
  anycast_ip_list_id: Optional[pulumi.Input[_builtins.str]] = None,
936
1000
  comment: Optional[pulumi.Input[_builtins.str]] = None,
1001
+ connection_function_association: Optional[pulumi.Input[Union['DistributionConnectionFunctionAssociationArgs', 'DistributionConnectionFunctionAssociationArgsDict']]] = None,
937
1002
  continuous_deployment_policy_id: Optional[pulumi.Input[_builtins.str]] = None,
938
1003
  custom_error_responses: Optional[pulumi.Input[Sequence[pulumi.Input[Union['DistributionCustomErrorResponseArgs', 'DistributionCustomErrorResponseArgsDict']]]]] = None,
939
1004
  default_cache_behavior: Optional[pulumi.Input[Union['DistributionDefaultCacheBehaviorArgs', 'DistributionDefaultCacheBehaviorArgsDict']]] = None,
@@ -951,6 +1016,7 @@ class Distribution(pulumi.CustomResource):
951
1016
  staging: Optional[pulumi.Input[_builtins.bool]] = None,
952
1017
  tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
953
1018
  viewer_certificate: Optional[pulumi.Input[Union['DistributionViewerCertificateArgs', 'DistributionViewerCertificateArgsDict']]] = None,
1019
+ viewer_mtls_config: Optional[pulumi.Input[Union['DistributionViewerMtlsConfigArgs', 'DistributionViewerMtlsConfigArgsDict']]] = None,
954
1020
  wait_for_deployment: Optional[pulumi.Input[_builtins.bool]] = None,
955
1021
  web_acl_id: Optional[pulumi.Input[_builtins.str]] = None,
956
1022
  __props__=None):
@@ -1302,6 +1368,30 @@ class Distribution(pulumi.CustomResource):
1302
1368
  delivery_destination_arn=example_log_delivery_destination.arn)
1303
1369
  ```
1304
1370
 
1371
+ ### With Connection Function and Viewer mTLS
1372
+
1373
+ The example below creates a CloudFront distribution with a connection function association and viewer mTLS configuration.
1374
+
1375
+ ```python
1376
+ import pulumi
1377
+ import pulumi_aws as aws
1378
+
1379
+ example = aws.cloudfront.ConnectionFunction("example", name="example-connection-function")
1380
+ example_trust_store = aws.cloudfront.TrustStore("example", name="example-trust-store")
1381
+ example_distribution = aws.cloudfront.Distribution("example",
1382
+ connection_function_association={
1383
+ "id": example.id,
1384
+ },
1385
+ viewer_mtls_config={
1386
+ "mode": "verify",
1387
+ "trust_store_config": {
1388
+ "trust_store_id": example_trust_store.id,
1389
+ "advertise_trust_store_ca_names": True,
1390
+ "ignore_certificate_expiry": False,
1391
+ },
1392
+ })
1393
+ ```
1394
+
1305
1395
  ## Import
1306
1396
 
1307
1397
  Using `pulumi import`, import CloudFront Distributions using the `id`. For example:
@@ -1315,6 +1405,7 @@ class Distribution(pulumi.CustomResource):
1315
1405
  :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] aliases: Extra CNAMEs (alternate domain names), if any, for this distribution.
1316
1406
  :param pulumi.Input[_builtins.str] anycast_ip_list_id: ID of the Anycast static IP list that is associated with the distribution.
1317
1407
  :param pulumi.Input[_builtins.str] comment: Any comments you want to include about the distribution.
1408
+ :param pulumi.Input[Union['DistributionConnectionFunctionAssociationArgs', 'DistributionConnectionFunctionAssociationArgsDict']] connection_function_association: A connection function association configuration block (maximum one).
1318
1409
  :param pulumi.Input[_builtins.str] continuous_deployment_policy_id: Identifier of a continuous deployment policy. This argument should only be set on a production distribution. See the `cloudfront.ContinuousDeploymentPolicy` resource for additional details.
1319
1410
  :param pulumi.Input[Sequence[pulumi.Input[Union['DistributionCustomErrorResponseArgs', 'DistributionCustomErrorResponseArgsDict']]]] custom_error_responses: One or more custom error response elements (multiples allowed).
1320
1411
  :param pulumi.Input[Union['DistributionDefaultCacheBehaviorArgs', 'DistributionDefaultCacheBehaviorArgsDict']] default_cache_behavior: Default cache behavior for this distribution (maximum one). Requires either `cache_policy_id` (preferred) or `forwarded_values` (deprecated) be set.
@@ -1332,6 +1423,7 @@ class Distribution(pulumi.CustomResource):
1332
1423
  :param pulumi.Input[_builtins.bool] staging: A Boolean that indicates whether this is a staging distribution. Defaults to `false`.
1333
1424
  :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
1334
1425
  :param pulumi.Input[Union['DistributionViewerCertificateArgs', 'DistributionViewerCertificateArgsDict']] viewer_certificate: The SSL configuration for this distribution (maximum one).
1426
+ :param pulumi.Input[Union['DistributionViewerMtlsConfigArgs', 'DistributionViewerMtlsConfigArgsDict']] viewer_mtls_config: The viewer mTLS configuration for this distribution (maximum one).
1335
1427
  :param pulumi.Input[_builtins.bool] wait_for_deployment: If enabled, the resource will wait for the distribution status to change from `InProgress` to `Deployed`. Setting this to`false` will skip the process. Default: `true`.
1336
1428
  :param pulumi.Input[_builtins.str] web_acl_id: 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 (WAFv2), use the ACL ARN, for example `aws_wafv2_web_acl.example.arn`. To specify a web ACL created using AWS WAF Classic, use the ACL ID, for example `aws_waf_web_acl.example.id`. The WAF Web ACL must exist in the WAF Global (CloudFront) region and the credentials configuring this argument must have `waf:GetWebACL` permissions assigned.
1337
1429
  """
@@ -1689,6 +1781,30 @@ class Distribution(pulumi.CustomResource):
1689
1781
  delivery_destination_arn=example_log_delivery_destination.arn)
1690
1782
  ```
1691
1783
 
1784
+ ### With Connection Function and Viewer mTLS
1785
+
1786
+ The example below creates a CloudFront distribution with a connection function association and viewer mTLS configuration.
1787
+
1788
+ ```python
1789
+ import pulumi
1790
+ import pulumi_aws as aws
1791
+
1792
+ example = aws.cloudfront.ConnectionFunction("example", name="example-connection-function")
1793
+ example_trust_store = aws.cloudfront.TrustStore("example", name="example-trust-store")
1794
+ example_distribution = aws.cloudfront.Distribution("example",
1795
+ connection_function_association={
1796
+ "id": example.id,
1797
+ },
1798
+ viewer_mtls_config={
1799
+ "mode": "verify",
1800
+ "trust_store_config": {
1801
+ "trust_store_id": example_trust_store.id,
1802
+ "advertise_trust_store_ca_names": True,
1803
+ "ignore_certificate_expiry": False,
1804
+ },
1805
+ })
1806
+ ```
1807
+
1692
1808
  ## Import
1693
1809
 
1694
1810
  Using `pulumi import`, import CloudFront Distributions using the `id`. For example:
@@ -1715,6 +1831,7 @@ class Distribution(pulumi.CustomResource):
1715
1831
  aliases: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
1716
1832
  anycast_ip_list_id: Optional[pulumi.Input[_builtins.str]] = None,
1717
1833
  comment: Optional[pulumi.Input[_builtins.str]] = None,
1834
+ connection_function_association: Optional[pulumi.Input[Union['DistributionConnectionFunctionAssociationArgs', 'DistributionConnectionFunctionAssociationArgsDict']]] = None,
1718
1835
  continuous_deployment_policy_id: Optional[pulumi.Input[_builtins.str]] = None,
1719
1836
  custom_error_responses: Optional[pulumi.Input[Sequence[pulumi.Input[Union['DistributionCustomErrorResponseArgs', 'DistributionCustomErrorResponseArgsDict']]]]] = None,
1720
1837
  default_cache_behavior: Optional[pulumi.Input[Union['DistributionDefaultCacheBehaviorArgs', 'DistributionDefaultCacheBehaviorArgsDict']]] = None,
@@ -1732,6 +1849,7 @@ class Distribution(pulumi.CustomResource):
1732
1849
  staging: Optional[pulumi.Input[_builtins.bool]] = None,
1733
1850
  tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
1734
1851
  viewer_certificate: Optional[pulumi.Input[Union['DistributionViewerCertificateArgs', 'DistributionViewerCertificateArgsDict']]] = None,
1852
+ viewer_mtls_config: Optional[pulumi.Input[Union['DistributionViewerMtlsConfigArgs', 'DistributionViewerMtlsConfigArgsDict']]] = None,
1735
1853
  wait_for_deployment: Optional[pulumi.Input[_builtins.bool]] = None,
1736
1854
  web_acl_id: Optional[pulumi.Input[_builtins.str]] = None,
1737
1855
  __props__=None):
@@ -1746,6 +1864,7 @@ class Distribution(pulumi.CustomResource):
1746
1864
  __props__.__dict__["aliases"] = aliases
1747
1865
  __props__.__dict__["anycast_ip_list_id"] = anycast_ip_list_id
1748
1866
  __props__.__dict__["comment"] = comment
1867
+ __props__.__dict__["connection_function_association"] = connection_function_association
1749
1868
  __props__.__dict__["continuous_deployment_policy_id"] = continuous_deployment_policy_id
1750
1869
  __props__.__dict__["custom_error_responses"] = custom_error_responses
1751
1870
  if default_cache_behavior is None and not opts.urn:
@@ -1773,6 +1892,7 @@ class Distribution(pulumi.CustomResource):
1773
1892
  if viewer_certificate is None and not opts.urn:
1774
1893
  raise TypeError("Missing required property 'viewer_certificate'")
1775
1894
  __props__.__dict__["viewer_certificate"] = viewer_certificate
1895
+ __props__.__dict__["viewer_mtls_config"] = viewer_mtls_config
1776
1896
  __props__.__dict__["wait_for_deployment"] = wait_for_deployment
1777
1897
  __props__.__dict__["web_acl_id"] = web_acl_id
1778
1898
  __props__.__dict__["arn"] = None
@@ -1802,6 +1922,7 @@ class Distribution(pulumi.CustomResource):
1802
1922
  arn: Optional[pulumi.Input[_builtins.str]] = None,
1803
1923
  caller_reference: Optional[pulumi.Input[_builtins.str]] = None,
1804
1924
  comment: Optional[pulumi.Input[_builtins.str]] = None,
1925
+ connection_function_association: Optional[pulumi.Input[Union['DistributionConnectionFunctionAssociationArgs', 'DistributionConnectionFunctionAssociationArgsDict']]] = None,
1805
1926
  continuous_deployment_policy_id: Optional[pulumi.Input[_builtins.str]] = None,
1806
1927
  custom_error_responses: Optional[pulumi.Input[Sequence[pulumi.Input[Union['DistributionCustomErrorResponseArgs', 'DistributionCustomErrorResponseArgsDict']]]]] = None,
1807
1928
  default_cache_behavior: Optional[pulumi.Input[Union['DistributionDefaultCacheBehaviorArgs', 'DistributionDefaultCacheBehaviorArgsDict']]] = None,
@@ -1829,6 +1950,7 @@ class Distribution(pulumi.CustomResource):
1829
1950
  trusted_key_groups: Optional[pulumi.Input[Sequence[pulumi.Input[Union['DistributionTrustedKeyGroupArgs', 'DistributionTrustedKeyGroupArgsDict']]]]] = None,
1830
1951
  trusted_signers: Optional[pulumi.Input[Sequence[pulumi.Input[Union['DistributionTrustedSignerArgs', 'DistributionTrustedSignerArgsDict']]]]] = None,
1831
1952
  viewer_certificate: Optional[pulumi.Input[Union['DistributionViewerCertificateArgs', 'DistributionViewerCertificateArgsDict']]] = None,
1953
+ viewer_mtls_config: Optional[pulumi.Input[Union['DistributionViewerMtlsConfigArgs', 'DistributionViewerMtlsConfigArgsDict']]] = None,
1832
1954
  wait_for_deployment: Optional[pulumi.Input[_builtins.bool]] = None,
1833
1955
  web_acl_id: Optional[pulumi.Input[_builtins.str]] = None) -> 'Distribution':
1834
1956
  """
@@ -1843,6 +1965,7 @@ class Distribution(pulumi.CustomResource):
1843
1965
  :param pulumi.Input[_builtins.str] arn: ARN for the distribution. For example: `arn:aws:cloudfront::123456789012:distribution/EDFDVBD632BHDS5`, where `123456789012` is your AWS account ID.
1844
1966
  :param pulumi.Input[_builtins.str] caller_reference: Internal value used by CloudFront to allow future updates to the distribution configuration.
1845
1967
  :param pulumi.Input[_builtins.str] comment: Any comments you want to include about the distribution.
1968
+ :param pulumi.Input[Union['DistributionConnectionFunctionAssociationArgs', 'DistributionConnectionFunctionAssociationArgsDict']] connection_function_association: A connection function association configuration block (maximum one).
1846
1969
  :param pulumi.Input[_builtins.str] continuous_deployment_policy_id: Identifier of a continuous deployment policy. This argument should only be set on a production distribution. See the `cloudfront.ContinuousDeploymentPolicy` resource for additional details.
1847
1970
  :param pulumi.Input[Sequence[pulumi.Input[Union['DistributionCustomErrorResponseArgs', 'DistributionCustomErrorResponseArgsDict']]]] custom_error_responses: One or more custom error response elements (multiples allowed).
1848
1971
  :param pulumi.Input[Union['DistributionDefaultCacheBehaviorArgs', 'DistributionDefaultCacheBehaviorArgsDict']] default_cache_behavior: Default cache behavior for this distribution (maximum one). Requires either `cache_policy_id` (preferred) or `forwarded_values` (deprecated) be set.
@@ -1870,6 +1993,7 @@ class Distribution(pulumi.CustomResource):
1870
1993
  :param pulumi.Input[Sequence[pulumi.Input[Union['DistributionTrustedKeyGroupArgs', 'DistributionTrustedKeyGroupArgsDict']]]] trusted_key_groups: List of nested attributes for active trusted key groups, if the distribution is set up to serve private content with signed URLs.
1871
1994
  :param pulumi.Input[Sequence[pulumi.Input[Union['DistributionTrustedSignerArgs', 'DistributionTrustedSignerArgsDict']]]] trusted_signers: List of nested attributes for active trusted signers, if the distribution is set up to serve private content with signed URLs.
1872
1995
  :param pulumi.Input[Union['DistributionViewerCertificateArgs', 'DistributionViewerCertificateArgsDict']] viewer_certificate: The SSL configuration for this distribution (maximum one).
1996
+ :param pulumi.Input[Union['DistributionViewerMtlsConfigArgs', 'DistributionViewerMtlsConfigArgsDict']] viewer_mtls_config: The viewer mTLS configuration for this distribution (maximum one).
1873
1997
  :param pulumi.Input[_builtins.bool] wait_for_deployment: If enabled, the resource will wait for the distribution status to change from `InProgress` to `Deployed`. Setting this to`false` will skip the process. Default: `true`.
1874
1998
  :param pulumi.Input[_builtins.str] web_acl_id: 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 (WAFv2), use the ACL ARN, for example `aws_wafv2_web_acl.example.arn`. To specify a web ACL created using AWS WAF Classic, use the ACL ID, for example `aws_waf_web_acl.example.id`. The WAF Web ACL must exist in the WAF Global (CloudFront) region and the credentials configuring this argument must have `waf:GetWebACL` permissions assigned.
1875
1999
  """
@@ -1882,6 +2006,7 @@ class Distribution(pulumi.CustomResource):
1882
2006
  __props__.__dict__["arn"] = arn
1883
2007
  __props__.__dict__["caller_reference"] = caller_reference
1884
2008
  __props__.__dict__["comment"] = comment
2009
+ __props__.__dict__["connection_function_association"] = connection_function_association
1885
2010
  __props__.__dict__["continuous_deployment_policy_id"] = continuous_deployment_policy_id
1886
2011
  __props__.__dict__["custom_error_responses"] = custom_error_responses
1887
2012
  __props__.__dict__["default_cache_behavior"] = default_cache_behavior
@@ -1909,6 +2034,7 @@ class Distribution(pulumi.CustomResource):
1909
2034
  __props__.__dict__["trusted_key_groups"] = trusted_key_groups
1910
2035
  __props__.__dict__["trusted_signers"] = trusted_signers
1911
2036
  __props__.__dict__["viewer_certificate"] = viewer_certificate
2037
+ __props__.__dict__["viewer_mtls_config"] = viewer_mtls_config
1912
2038
  __props__.__dict__["wait_for_deployment"] = wait_for_deployment
1913
2039
  __props__.__dict__["web_acl_id"] = web_acl_id
1914
2040
  return Distribution(resource_name, opts=opts, __props__=__props__)
@@ -1953,6 +2079,14 @@ class Distribution(pulumi.CustomResource):
1953
2079
  """
1954
2080
  return pulumi.get(self, "comment")
1955
2081
 
2082
+ @_builtins.property
2083
+ @pulumi.getter(name="connectionFunctionAssociation")
2084
+ def connection_function_association(self) -> pulumi.Output[Optional['outputs.DistributionConnectionFunctionAssociation']]:
2085
+ """
2086
+ A connection function association configuration block (maximum one).
2087
+ """
2088
+ return pulumi.get(self, "connection_function_association")
2089
+
1956
2090
  @_builtins.property
1957
2091
  @pulumi.getter(name="continuousDeploymentPolicyId")
1958
2092
  def continuous_deployment_policy_id(self) -> pulumi.Output[_builtins.str]:
@@ -2169,6 +2303,14 @@ class Distribution(pulumi.CustomResource):
2169
2303
  """
2170
2304
  return pulumi.get(self, "viewer_certificate")
2171
2305
 
2306
+ @_builtins.property
2307
+ @pulumi.getter(name="viewerMtlsConfig")
2308
+ def viewer_mtls_config(self) -> pulumi.Output[Optional['outputs.DistributionViewerMtlsConfig']]:
2309
+ """
2310
+ The viewer mTLS configuration for this distribution (maximum one).
2311
+ """
2312
+ return pulumi.get(self, "viewer_mtls_config")
2313
+
2172
2314
  @_builtins.property
2173
2315
  @pulumi.getter(name="waitForDeployment")
2174
2316
  def wait_for_deployment(self) -> pulumi.Output[Optional[_builtins.bool]]: