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
@@ -27,6 +27,7 @@ class DomainNameArgs:
27
27
  certificate_chain: Optional[pulumi.Input[_builtins.str]] = None,
28
28
  certificate_name: Optional[pulumi.Input[_builtins.str]] = None,
29
29
  certificate_private_key: Optional[pulumi.Input[_builtins.str]] = None,
30
+ endpoint_access_mode: Optional[pulumi.Input[_builtins.str]] = None,
30
31
  endpoint_configuration: Optional[pulumi.Input['DomainNameEndpointConfigurationArgs']] = None,
31
32
  mutual_tls_authentication: Optional[pulumi.Input['DomainNameMutualTlsAuthenticationArgs']] = None,
32
33
  ownership_verification_certificate_arn: Optional[pulumi.Input[_builtins.str]] = None,
@@ -44,6 +45,7 @@ class DomainNameArgs:
44
45
  :param pulumi.Input[_builtins.str] certificate_chain: Certificate for the CA that issued the certificate, along with any intermediate CA certificates required to create an unbroken chain to a certificate trusted by the intended API clients. Only valid for `EDGE` endpoint configuration type. Conflicts with `certificate_arn`, `regional_certificate_arn`, and `regional_certificate_name`.
45
46
  :param pulumi.Input[_builtins.str] certificate_name: Unique name to use when registering this certificate as an IAM server certificate. Conflicts with `certificate_arn`, `regional_certificate_arn`, and `regional_certificate_name`. Required if `certificate_arn` is not set.
46
47
  :param pulumi.Input[_builtins.str] certificate_private_key: Private key associated with the domain certificate given in `certificate_body`. Only valid for `EDGE` endpoint configuration type. Conflicts with `certificate_arn`, `regional_certificate_arn`, and `regional_certificate_name`.
48
+ :param pulumi.Input[_builtins.str] endpoint_access_mode: Endpoint access mode of the DomainName. Only available for domain names that use security policies that start with `SecurityPolicy_`. Valid values: `BASIC`, `STRICT`.
47
49
  :param pulumi.Input['DomainNameEndpointConfigurationArgs'] endpoint_configuration: Configuration block defining API endpoint information including type. See below.
48
50
  :param pulumi.Input['DomainNameMutualTlsAuthenticationArgs'] mutual_tls_authentication: Mutual TLS authentication configuration for the domain name. See below.
49
51
  :param pulumi.Input[_builtins.str] ownership_verification_certificate_arn: ARN of the AWS-issued certificate used to validate custom domain ownership (when `certificate_arn` is issued via an ACM Private CA or `mutual_tls_authentication` is configured with an ACM-imported certificate.)
@@ -53,7 +55,7 @@ class DomainNameArgs:
53
55
 
54
56
  When uploading a certificate, the following arguments are supported:
55
57
  :param pulumi.Input[_builtins.str] regional_certificate_name: User-friendly name of the certificate that will be used by regional endpoint for this domain name. Conflicts with `certificate_arn`, `certificate_name`, `certificate_body`, `certificate_chain`, and `certificate_private_key`.
56
- :param pulumi.Input[_builtins.str] security_policy: Transport Layer Security (TLS) version + cipher suite for this DomainName. Valid values are `TLS_1_0` and `TLS_1_2`. Must be configured to perform drift detection.
58
+ :param pulumi.Input[_builtins.str] security_policy: Transport Layer Security (TLS) version + cipher suite for this DomainName. Must be configured to perform drift detection. For a list of valid security policies, see [DomainName](https://docs.aws.amazon.com/apigateway/latest/api/API_DomainName.html) in the Amazon API Gateway API Reference.
57
59
  :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
58
60
 
59
61
  When referencing an AWS-managed certificate, the following arguments are supported:
@@ -69,6 +71,8 @@ class DomainNameArgs:
69
71
  pulumi.set(__self__, "certificate_name", certificate_name)
70
72
  if certificate_private_key is not None:
71
73
  pulumi.set(__self__, "certificate_private_key", certificate_private_key)
74
+ if endpoint_access_mode is not None:
75
+ pulumi.set(__self__, "endpoint_access_mode", endpoint_access_mode)
72
76
  if endpoint_configuration is not None:
73
77
  pulumi.set(__self__, "endpoint_configuration", endpoint_configuration)
74
78
  if mutual_tls_authentication is not None:
@@ -160,6 +164,18 @@ class DomainNameArgs:
160
164
  def certificate_private_key(self, value: Optional[pulumi.Input[_builtins.str]]):
161
165
  pulumi.set(self, "certificate_private_key", value)
162
166
 
167
+ @_builtins.property
168
+ @pulumi.getter(name="endpointAccessMode")
169
+ def endpoint_access_mode(self) -> Optional[pulumi.Input[_builtins.str]]:
170
+ """
171
+ Endpoint access mode of the DomainName. Only available for domain names that use security policies that start with `SecurityPolicy_`. Valid values: `BASIC`, `STRICT`.
172
+ """
173
+ return pulumi.get(self, "endpoint_access_mode")
174
+
175
+ @endpoint_access_mode.setter
176
+ def endpoint_access_mode(self, value: Optional[pulumi.Input[_builtins.str]]):
177
+ pulumi.set(self, "endpoint_access_mode", value)
178
+
163
179
  @_builtins.property
164
180
  @pulumi.getter(name="endpointConfiguration")
165
181
  def endpoint_configuration(self) -> Optional[pulumi.Input['DomainNameEndpointConfigurationArgs']]:
@@ -250,7 +266,7 @@ class DomainNameArgs:
250
266
  @pulumi.getter(name="securityPolicy")
251
267
  def security_policy(self) -> Optional[pulumi.Input[_builtins.str]]:
252
268
  """
253
- Transport Layer Security (TLS) version + cipher suite for this DomainName. Valid values are `TLS_1_0` and `TLS_1_2`. Must be configured to perform drift detection.
269
+ Transport Layer Security (TLS) version + cipher suite for this DomainName. Must be configured to perform drift detection. For a list of valid security policies, see [DomainName](https://docs.aws.amazon.com/apigateway/latest/api/API_DomainName.html) in the Amazon API Gateway API Reference.
254
270
  """
255
271
  return pulumi.get(self, "security_policy")
256
272
 
@@ -287,6 +303,7 @@ class _DomainNameState:
287
303
  cloudfront_zone_id: Optional[pulumi.Input[_builtins.str]] = None,
288
304
  domain_name: Optional[pulumi.Input[_builtins.str]] = None,
289
305
  domain_name_id: Optional[pulumi.Input[_builtins.str]] = None,
306
+ endpoint_access_mode: Optional[pulumi.Input[_builtins.str]] = None,
290
307
  endpoint_configuration: Optional[pulumi.Input['DomainNameEndpointConfigurationArgs']] = None,
291
308
  mutual_tls_authentication: Optional[pulumi.Input['DomainNameMutualTlsAuthenticationArgs']] = None,
292
309
  ownership_verification_certificate_arn: Optional[pulumi.Input[_builtins.str]] = None,
@@ -312,6 +329,7 @@ class _DomainNameState:
312
329
  :param pulumi.Input[_builtins.str] cloudfront_zone_id: For convenience, the hosted zone ID (`Z2FDTNDATAQYW2`) that can be used to create a Route53 alias record for the distribution.
313
330
  :param pulumi.Input[_builtins.str] domain_name: Fully-qualified domain name to register.
314
331
  :param pulumi.Input[_builtins.str] domain_name_id: The identifier for the domain name resource. Supported only for private custom domain names.
332
+ :param pulumi.Input[_builtins.str] endpoint_access_mode: Endpoint access mode of the DomainName. Only available for domain names that use security policies that start with `SecurityPolicy_`. Valid values: `BASIC`, `STRICT`.
315
333
  :param pulumi.Input['DomainNameEndpointConfigurationArgs'] endpoint_configuration: Configuration block defining API endpoint information including type. See below.
316
334
  :param pulumi.Input['DomainNameMutualTlsAuthenticationArgs'] mutual_tls_authentication: Mutual TLS authentication configuration for the domain name. See below.
317
335
  :param pulumi.Input[_builtins.str] ownership_verification_certificate_arn: ARN of the AWS-issued certificate used to validate custom domain ownership (when `certificate_arn` is issued via an ACM Private CA or `mutual_tls_authentication` is configured with an ACM-imported certificate.)
@@ -323,7 +341,7 @@ class _DomainNameState:
323
341
  :param pulumi.Input[_builtins.str] regional_certificate_name: User-friendly name of the certificate that will be used by regional endpoint for this domain name. Conflicts with `certificate_arn`, `certificate_name`, `certificate_body`, `certificate_chain`, and `certificate_private_key`.
324
342
  :param pulumi.Input[_builtins.str] regional_domain_name: Hostname for the custom domain's regional endpoint.
325
343
  :param pulumi.Input[_builtins.str] regional_zone_id: Hosted zone ID that can be used to create a Route53 alias record for the regional endpoint.
326
- :param pulumi.Input[_builtins.str] security_policy: Transport Layer Security (TLS) version + cipher suite for this DomainName. Valid values are `TLS_1_0` and `TLS_1_2`. Must be configured to perform drift detection.
344
+ :param pulumi.Input[_builtins.str] security_policy: Transport Layer Security (TLS) version + cipher suite for this DomainName. Must be configured to perform drift detection. For a list of valid security policies, see [DomainName](https://docs.aws.amazon.com/apigateway/latest/api/API_DomainName.html) in the Amazon API Gateway API Reference.
327
345
  :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
328
346
 
329
347
  When referencing an AWS-managed certificate, the following arguments are supported:
@@ -351,6 +369,8 @@ class _DomainNameState:
351
369
  pulumi.set(__self__, "domain_name", domain_name)
352
370
  if domain_name_id is not None:
353
371
  pulumi.set(__self__, "domain_name_id", domain_name_id)
372
+ if endpoint_access_mode is not None:
373
+ pulumi.set(__self__, "endpoint_access_mode", endpoint_access_mode)
354
374
  if endpoint_configuration is not None:
355
375
  pulumi.set(__self__, "endpoint_configuration", endpoint_configuration)
356
376
  if mutual_tls_authentication is not None:
@@ -508,6 +528,18 @@ class _DomainNameState:
508
528
  def domain_name_id(self, value: Optional[pulumi.Input[_builtins.str]]):
509
529
  pulumi.set(self, "domain_name_id", value)
510
530
 
531
+ @_builtins.property
532
+ @pulumi.getter(name="endpointAccessMode")
533
+ def endpoint_access_mode(self) -> Optional[pulumi.Input[_builtins.str]]:
534
+ """
535
+ Endpoint access mode of the DomainName. Only available for domain names that use security policies that start with `SecurityPolicy_`. Valid values: `BASIC`, `STRICT`.
536
+ """
537
+ return pulumi.get(self, "endpoint_access_mode")
538
+
539
+ @endpoint_access_mode.setter
540
+ def endpoint_access_mode(self, value: Optional[pulumi.Input[_builtins.str]]):
541
+ pulumi.set(self, "endpoint_access_mode", value)
542
+
511
543
  @_builtins.property
512
544
  @pulumi.getter(name="endpointConfiguration")
513
545
  def endpoint_configuration(self) -> Optional[pulumi.Input['DomainNameEndpointConfigurationArgs']]:
@@ -622,7 +654,7 @@ class _DomainNameState:
622
654
  @pulumi.getter(name="securityPolicy")
623
655
  def security_policy(self) -> Optional[pulumi.Input[_builtins.str]]:
624
656
  """
625
- Transport Layer Security (TLS) version + cipher suite for this DomainName. Valid values are `TLS_1_0` and `TLS_1_2`. Must be configured to perform drift detection.
657
+ Transport Layer Security (TLS) version + cipher suite for this DomainName. Must be configured to perform drift detection. For a list of valid security policies, see [DomainName](https://docs.aws.amazon.com/apigateway/latest/api/API_DomainName.html) in the Amazon API Gateway API Reference.
626
658
  """
627
659
  return pulumi.get(self, "security_policy")
628
660
 
@@ -669,6 +701,7 @@ class DomainName(pulumi.CustomResource):
669
701
  certificate_name: Optional[pulumi.Input[_builtins.str]] = None,
670
702
  certificate_private_key: Optional[pulumi.Input[_builtins.str]] = None,
671
703
  domain_name: Optional[pulumi.Input[_builtins.str]] = None,
704
+ endpoint_access_mode: Optional[pulumi.Input[_builtins.str]] = None,
672
705
  endpoint_configuration: Optional[pulumi.Input[Union['DomainNameEndpointConfigurationArgs', 'DomainNameEndpointConfigurationArgsDict']]] = None,
673
706
  mutual_tls_authentication: Optional[pulumi.Input[Union['DomainNameMutualTlsAuthenticationArgs', 'DomainNameMutualTlsAuthenticationArgsDict']]] = None,
674
707
  ownership_verification_certificate_arn: Optional[pulumi.Input[_builtins.str]] = None,
@@ -756,6 +789,22 @@ class DomainName(pulumi.CustomResource):
756
789
  }])
757
790
  ```
758
791
 
792
+ ### Enhanced Security Policy
793
+
794
+ ```python
795
+ import pulumi
796
+ import pulumi_aws as aws
797
+
798
+ example = aws.apigateway.DomainName("example",
799
+ domain_name="api.example.com",
800
+ regional_certificate_arn=example_aws_acm_certificate_validation["certificateArn"],
801
+ security_policy="SecurityPolicy_TLS13_1_3_2025_09",
802
+ endpoint_access_mode="STRICT",
803
+ endpoint_configuration={
804
+ "types": "REGIONAL",
805
+ })
806
+ ```
807
+
759
808
  ## Import
760
809
 
761
810
  For a private custom domain name:
@@ -779,6 +828,7 @@ class DomainName(pulumi.CustomResource):
779
828
  :param pulumi.Input[_builtins.str] certificate_name: Unique name to use when registering this certificate as an IAM server certificate. Conflicts with `certificate_arn`, `regional_certificate_arn`, and `regional_certificate_name`. Required if `certificate_arn` is not set.
780
829
  :param pulumi.Input[_builtins.str] certificate_private_key: Private key associated with the domain certificate given in `certificate_body`. Only valid for `EDGE` endpoint configuration type. Conflicts with `certificate_arn`, `regional_certificate_arn`, and `regional_certificate_name`.
781
830
  :param pulumi.Input[_builtins.str] domain_name: Fully-qualified domain name to register.
831
+ :param pulumi.Input[_builtins.str] endpoint_access_mode: Endpoint access mode of the DomainName. Only available for domain names that use security policies that start with `SecurityPolicy_`. Valid values: `BASIC`, `STRICT`.
782
832
  :param pulumi.Input[Union['DomainNameEndpointConfigurationArgs', 'DomainNameEndpointConfigurationArgsDict']] endpoint_configuration: Configuration block defining API endpoint information including type. See below.
783
833
  :param pulumi.Input[Union['DomainNameMutualTlsAuthenticationArgs', 'DomainNameMutualTlsAuthenticationArgsDict']] mutual_tls_authentication: Mutual TLS authentication configuration for the domain name. See below.
784
834
  :param pulumi.Input[_builtins.str] ownership_verification_certificate_arn: ARN of the AWS-issued certificate used to validate custom domain ownership (when `certificate_arn` is issued via an ACM Private CA or `mutual_tls_authentication` is configured with an ACM-imported certificate.)
@@ -788,7 +838,7 @@ class DomainName(pulumi.CustomResource):
788
838
 
789
839
  When uploading a certificate, the following arguments are supported:
790
840
  :param pulumi.Input[_builtins.str] regional_certificate_name: User-friendly name of the certificate that will be used by regional endpoint for this domain name. Conflicts with `certificate_arn`, `certificate_name`, `certificate_body`, `certificate_chain`, and `certificate_private_key`.
791
- :param pulumi.Input[_builtins.str] security_policy: Transport Layer Security (TLS) version + cipher suite for this DomainName. Valid values are `TLS_1_0` and `TLS_1_2`. Must be configured to perform drift detection.
841
+ :param pulumi.Input[_builtins.str] security_policy: Transport Layer Security (TLS) version + cipher suite for this DomainName. Must be configured to perform drift detection. For a list of valid security policies, see [DomainName](https://docs.aws.amazon.com/apigateway/latest/api/API_DomainName.html) in the Amazon API Gateway API Reference.
792
842
  :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
793
843
 
794
844
  When referencing an AWS-managed certificate, the following arguments are supported:
@@ -876,6 +926,22 @@ class DomainName(pulumi.CustomResource):
876
926
  }])
877
927
  ```
878
928
 
929
+ ### Enhanced Security Policy
930
+
931
+ ```python
932
+ import pulumi
933
+ import pulumi_aws as aws
934
+
935
+ example = aws.apigateway.DomainName("example",
936
+ domain_name="api.example.com",
937
+ regional_certificate_arn=example_aws_acm_certificate_validation["certificateArn"],
938
+ security_policy="SecurityPolicy_TLS13_1_3_2025_09",
939
+ endpoint_access_mode="STRICT",
940
+ endpoint_configuration={
941
+ "types": "REGIONAL",
942
+ })
943
+ ```
944
+
879
945
  ## Import
880
946
 
881
947
  For a private custom domain name:
@@ -912,6 +978,7 @@ class DomainName(pulumi.CustomResource):
912
978
  certificate_name: Optional[pulumi.Input[_builtins.str]] = None,
913
979
  certificate_private_key: Optional[pulumi.Input[_builtins.str]] = None,
914
980
  domain_name: Optional[pulumi.Input[_builtins.str]] = None,
981
+ endpoint_access_mode: Optional[pulumi.Input[_builtins.str]] = None,
915
982
  endpoint_configuration: Optional[pulumi.Input[Union['DomainNameEndpointConfigurationArgs', 'DomainNameEndpointConfigurationArgsDict']]] = None,
916
983
  mutual_tls_authentication: Optional[pulumi.Input[Union['DomainNameMutualTlsAuthenticationArgs', 'DomainNameMutualTlsAuthenticationArgsDict']]] = None,
917
984
  ownership_verification_certificate_arn: Optional[pulumi.Input[_builtins.str]] = None,
@@ -938,6 +1005,7 @@ class DomainName(pulumi.CustomResource):
938
1005
  if domain_name is None and not opts.urn:
939
1006
  raise TypeError("Missing required property 'domain_name'")
940
1007
  __props__.__dict__["domain_name"] = domain_name
1008
+ __props__.__dict__["endpoint_access_mode"] = endpoint_access_mode
941
1009
  __props__.__dict__["endpoint_configuration"] = endpoint_configuration
942
1010
  __props__.__dict__["mutual_tls_authentication"] = mutual_tls_authentication
943
1011
  __props__.__dict__["ownership_verification_certificate_arn"] = ownership_verification_certificate_arn
@@ -978,6 +1046,7 @@ class DomainName(pulumi.CustomResource):
978
1046
  cloudfront_zone_id: Optional[pulumi.Input[_builtins.str]] = None,
979
1047
  domain_name: Optional[pulumi.Input[_builtins.str]] = None,
980
1048
  domain_name_id: Optional[pulumi.Input[_builtins.str]] = None,
1049
+ endpoint_access_mode: Optional[pulumi.Input[_builtins.str]] = None,
981
1050
  endpoint_configuration: Optional[pulumi.Input[Union['DomainNameEndpointConfigurationArgs', 'DomainNameEndpointConfigurationArgsDict']]] = None,
982
1051
  mutual_tls_authentication: Optional[pulumi.Input[Union['DomainNameMutualTlsAuthenticationArgs', 'DomainNameMutualTlsAuthenticationArgsDict']]] = None,
983
1052
  ownership_verification_certificate_arn: Optional[pulumi.Input[_builtins.str]] = None,
@@ -1008,6 +1077,7 @@ class DomainName(pulumi.CustomResource):
1008
1077
  :param pulumi.Input[_builtins.str] cloudfront_zone_id: For convenience, the hosted zone ID (`Z2FDTNDATAQYW2`) that can be used to create a Route53 alias record for the distribution.
1009
1078
  :param pulumi.Input[_builtins.str] domain_name: Fully-qualified domain name to register.
1010
1079
  :param pulumi.Input[_builtins.str] domain_name_id: The identifier for the domain name resource. Supported only for private custom domain names.
1080
+ :param pulumi.Input[_builtins.str] endpoint_access_mode: Endpoint access mode of the DomainName. Only available for domain names that use security policies that start with `SecurityPolicy_`. Valid values: `BASIC`, `STRICT`.
1011
1081
  :param pulumi.Input[Union['DomainNameEndpointConfigurationArgs', 'DomainNameEndpointConfigurationArgsDict']] endpoint_configuration: Configuration block defining API endpoint information including type. See below.
1012
1082
  :param pulumi.Input[Union['DomainNameMutualTlsAuthenticationArgs', 'DomainNameMutualTlsAuthenticationArgsDict']] mutual_tls_authentication: Mutual TLS authentication configuration for the domain name. See below.
1013
1083
  :param pulumi.Input[_builtins.str] ownership_verification_certificate_arn: ARN of the AWS-issued certificate used to validate custom domain ownership (when `certificate_arn` is issued via an ACM Private CA or `mutual_tls_authentication` is configured with an ACM-imported certificate.)
@@ -1019,7 +1089,7 @@ class DomainName(pulumi.CustomResource):
1019
1089
  :param pulumi.Input[_builtins.str] regional_certificate_name: User-friendly name of the certificate that will be used by regional endpoint for this domain name. Conflicts with `certificate_arn`, `certificate_name`, `certificate_body`, `certificate_chain`, and `certificate_private_key`.
1020
1090
  :param pulumi.Input[_builtins.str] regional_domain_name: Hostname for the custom domain's regional endpoint.
1021
1091
  :param pulumi.Input[_builtins.str] regional_zone_id: Hosted zone ID that can be used to create a Route53 alias record for the regional endpoint.
1022
- :param pulumi.Input[_builtins.str] security_policy: Transport Layer Security (TLS) version + cipher suite for this DomainName. Valid values are `TLS_1_0` and `TLS_1_2`. Must be configured to perform drift detection.
1092
+ :param pulumi.Input[_builtins.str] security_policy: Transport Layer Security (TLS) version + cipher suite for this DomainName. Must be configured to perform drift detection. For a list of valid security policies, see [DomainName](https://docs.aws.amazon.com/apigateway/latest/api/API_DomainName.html) in the Amazon API Gateway API Reference.
1023
1093
  :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] tags: Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
1024
1094
 
1025
1095
  When referencing an AWS-managed certificate, the following arguments are supported:
@@ -1040,6 +1110,7 @@ class DomainName(pulumi.CustomResource):
1040
1110
  __props__.__dict__["cloudfront_zone_id"] = cloudfront_zone_id
1041
1111
  __props__.__dict__["domain_name"] = domain_name
1042
1112
  __props__.__dict__["domain_name_id"] = domain_name_id
1113
+ __props__.__dict__["endpoint_access_mode"] = endpoint_access_mode
1043
1114
  __props__.__dict__["endpoint_configuration"] = endpoint_configuration
1044
1115
  __props__.__dict__["mutual_tls_authentication"] = mutual_tls_authentication
1045
1116
  __props__.__dict__["ownership_verification_certificate_arn"] = ownership_verification_certificate_arn
@@ -1142,6 +1213,14 @@ class DomainName(pulumi.CustomResource):
1142
1213
  """
1143
1214
  return pulumi.get(self, "domain_name_id")
1144
1215
 
1216
+ @_builtins.property
1217
+ @pulumi.getter(name="endpointAccessMode")
1218
+ def endpoint_access_mode(self) -> pulumi.Output[Optional[_builtins.str]]:
1219
+ """
1220
+ Endpoint access mode of the DomainName. Only available for domain names that use security policies that start with `SecurityPolicy_`. Valid values: `BASIC`, `STRICT`.
1221
+ """
1222
+ return pulumi.get(self, "endpoint_access_mode")
1223
+
1145
1224
  @_builtins.property
1146
1225
  @pulumi.getter(name="endpointConfiguration")
1147
1226
  def endpoint_configuration(self) -> pulumi.Output['outputs.DomainNameEndpointConfiguration']:
@@ -1220,7 +1299,7 @@ class DomainName(pulumi.CustomResource):
1220
1299
  @pulumi.getter(name="securityPolicy")
1221
1300
  def security_policy(self) -> pulumi.Output[_builtins.str]:
1222
1301
  """
1223
- Transport Layer Security (TLS) version + cipher suite for this DomainName. Valid values are `TLS_1_0` and `TLS_1_2`. Must be configured to perform drift detection.
1302
+ Transport Layer Security (TLS) version + cipher suite for this DomainName. Must be configured to perform drift detection. For a list of valid security policies, see [DomainName](https://docs.aws.amazon.com/apigateway/latest/api/API_DomainName.html) in the Amazon API Gateway API Reference.
1224
1303
  """
1225
1304
  return pulumi.get(self, "security_policy")
1226
1305
 
@@ -27,7 +27,7 @@ class GetDomainNameResult:
27
27
  """
28
28
  A collection of values returned by getDomainName.
29
29
  """
30
- def __init__(__self__, arn=None, certificate_arn=None, certificate_name=None, certificate_upload_date=None, cloudfront_domain_name=None, cloudfront_zone_id=None, domain_name=None, domain_name_id=None, endpoint_configurations=None, id=None, policy=None, region=None, regional_certificate_arn=None, regional_certificate_name=None, regional_domain_name=None, regional_zone_id=None, security_policy=None, tags=None):
30
+ def __init__(__self__, arn=None, certificate_arn=None, certificate_name=None, certificate_upload_date=None, cloudfront_domain_name=None, cloudfront_zone_id=None, domain_name=None, domain_name_id=None, endpoint_access_mode=None, endpoint_configurations=None, id=None, policy=None, region=None, regional_certificate_arn=None, regional_certificate_name=None, regional_domain_name=None, regional_zone_id=None, security_policy=None, tags=None):
31
31
  if arn and not isinstance(arn, str):
32
32
  raise TypeError("Expected argument 'arn' to be a str")
33
33
  pulumi.set(__self__, "arn", arn)
@@ -52,6 +52,9 @@ class GetDomainNameResult:
52
52
  if domain_name_id and not isinstance(domain_name_id, str):
53
53
  raise TypeError("Expected argument 'domain_name_id' to be a str")
54
54
  pulumi.set(__self__, "domain_name_id", domain_name_id)
55
+ if endpoint_access_mode and not isinstance(endpoint_access_mode, str):
56
+ raise TypeError("Expected argument 'endpoint_access_mode' to be a str")
57
+ pulumi.set(__self__, "endpoint_access_mode", endpoint_access_mode)
55
58
  if endpoint_configurations and not isinstance(endpoint_configurations, list):
56
59
  raise TypeError("Expected argument 'endpoint_configurations' to be a list")
57
60
  pulumi.set(__self__, "endpoint_configurations", endpoint_configurations)
@@ -141,6 +144,14 @@ class GetDomainNameResult:
141
144
  def domain_name_id(self) -> _builtins.str:
142
145
  return pulumi.get(self, "domain_name_id")
143
146
 
147
+ @_builtins.property
148
+ @pulumi.getter(name="endpointAccessMode")
149
+ def endpoint_access_mode(self) -> _builtins.str:
150
+ """
151
+ (Optional) Endpoint access mode of the DomainName. Only available for domain names that use security policies that start with `SecurityPolicy_`.
152
+ """
153
+ return pulumi.get(self, "endpoint_access_mode")
154
+
144
155
  @_builtins.property
145
156
  @pulumi.getter(name="endpointConfigurations")
146
157
  def endpoint_configurations(self) -> Sequence['outputs.GetDomainNameEndpointConfigurationResult']:
@@ -233,6 +244,7 @@ class AwaitableGetDomainNameResult(GetDomainNameResult):
233
244
  cloudfront_zone_id=self.cloudfront_zone_id,
234
245
  domain_name=self.domain_name,
235
246
  domain_name_id=self.domain_name_id,
247
+ endpoint_access_mode=self.endpoint_access_mode,
236
248
  endpoint_configurations=self.endpoint_configurations,
237
249
  id=self.id,
238
250
  policy=self.policy,
@@ -285,6 +297,7 @@ def get_domain_name(domain_name: Optional[_builtins.str] = None,
285
297
  cloudfront_zone_id=pulumi.get(__ret__, 'cloudfront_zone_id'),
286
298
  domain_name=pulumi.get(__ret__, 'domain_name'),
287
299
  domain_name_id=pulumi.get(__ret__, 'domain_name_id'),
300
+ endpoint_access_mode=pulumi.get(__ret__, 'endpoint_access_mode'),
288
301
  endpoint_configurations=pulumi.get(__ret__, 'endpoint_configurations'),
289
302
  id=pulumi.get(__ret__, 'id'),
290
303
  policy=pulumi.get(__ret__, 'policy'),
@@ -334,6 +347,7 @@ def get_domain_name_output(domain_name: Optional[pulumi.Input[_builtins.str]] =
334
347
  cloudfront_zone_id=pulumi.get(__response__, 'cloudfront_zone_id'),
335
348
  domain_name=pulumi.get(__response__, 'domain_name'),
336
349
  domain_name_id=pulumi.get(__response__, 'domain_name_id'),
350
+ endpoint_access_mode=pulumi.get(__response__, 'endpoint_access_mode'),
337
351
  endpoint_configurations=pulumi.get(__response__, 'endpoint_configurations'),
338
352
  id=pulumi.get(__response__, 'id'),
339
353
  policy=pulumi.get(__response__, 'policy'),
@@ -780,9 +780,9 @@ class Integration(pulumi.CustomResource):
780
780
  import pulumi_aws as aws
781
781
  import pulumi_std as std
782
782
 
783
- config = pulumi.Config()
784
- myregion = config.require_object("myregion")
785
- account_id = config.require_object("accountId")
783
+ current = aws.get_caller_identity()
784
+ current_get_region = aws.get_region()
785
+ current_get_partition = aws.get_partition()
786
786
  # API Gateway
787
787
  api = aws.apigateway.RestApi("api", name="myapi")
788
788
  resource = aws.apigateway.Resource("resource",
@@ -830,10 +830,30 @@ class Integration(pulumi.CustomResource):
830
830
  id=api.id,
831
831
  http_method=method.http_method,
832
832
  path=resource.path
833
- ).apply(lambda resolved_outputs: f"arn:aws:execute-api:{myregion}:{account_id}:{resolved_outputs['id']}/*/{resolved_outputs['http_method']}{resolved_outputs['path']}")
833
+ ).apply(lambda resolved_outputs: f"arn:{current_get_partition.partition}:execute-api:{current_get_region.region}:{current.account_id}:{resolved_outputs['id']}/*/{resolved_outputs['http_method']}{resolved_outputs['path']}")
834
834
  )
835
835
  ```
836
836
 
837
+ ## Lambda integration with response streaming
838
+
839
+ All other resources and data sources are the same as in the previous example; only the integration configuration differs.
840
+ Note that the `timeout` of the `lambda.Function` may need to be adjusted.
841
+
842
+ ```python
843
+ import pulumi
844
+ import pulumi_aws as aws
845
+
846
+ integration = aws.apigateway.Integration("integration",
847
+ rest_api=api["id"],
848
+ resource_id=resource["id"],
849
+ http_method=method["httpMethod"],
850
+ integration_http_method="POST",
851
+ type="AWS_PROXY",
852
+ uri=lambda_["responseStreamingInvokeArn"],
853
+ response_transfer_mode="STREAM",
854
+ timeout_milliseconds=900000)
855
+ ```
856
+
837
857
  ## VPC Link
838
858
 
839
859
  ```python
@@ -1029,9 +1049,9 @@ class Integration(pulumi.CustomResource):
1029
1049
  import pulumi_aws as aws
1030
1050
  import pulumi_std as std
1031
1051
 
1032
- config = pulumi.Config()
1033
- myregion = config.require_object("myregion")
1034
- account_id = config.require_object("accountId")
1052
+ current = aws.get_caller_identity()
1053
+ current_get_region = aws.get_region()
1054
+ current_get_partition = aws.get_partition()
1035
1055
  # API Gateway
1036
1056
  api = aws.apigateway.RestApi("api", name="myapi")
1037
1057
  resource = aws.apigateway.Resource("resource",
@@ -1079,10 +1099,30 @@ class Integration(pulumi.CustomResource):
1079
1099
  id=api.id,
1080
1100
  http_method=method.http_method,
1081
1101
  path=resource.path
1082
- ).apply(lambda resolved_outputs: f"arn:aws:execute-api:{myregion}:{account_id}:{resolved_outputs['id']}/*/{resolved_outputs['http_method']}{resolved_outputs['path']}")
1102
+ ).apply(lambda resolved_outputs: f"arn:{current_get_partition.partition}:execute-api:{current_get_region.region}:{current.account_id}:{resolved_outputs['id']}/*/{resolved_outputs['http_method']}{resolved_outputs['path']}")
1083
1103
  )
1084
1104
  ```
1085
1105
 
1106
+ ## Lambda integration with response streaming
1107
+
1108
+ All other resources and data sources are the same as in the previous example; only the integration configuration differs.
1109
+ Note that the `timeout` of the `lambda.Function` may need to be adjusted.
1110
+
1111
+ ```python
1112
+ import pulumi
1113
+ import pulumi_aws as aws
1114
+
1115
+ integration = aws.apigateway.Integration("integration",
1116
+ rest_api=api["id"],
1117
+ resource_id=resource["id"],
1118
+ http_method=method["httpMethod"],
1119
+ integration_http_method="POST",
1120
+ type="AWS_PROXY",
1121
+ uri=lambda_["responseStreamingInvokeArn"],
1122
+ response_transfer_mode="STREAM",
1123
+ timeout_milliseconds=900000)
1124
+ ```
1125
+
1086
1126
  ## VPC Link
1087
1127
 
1088
1128
  ```python