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
@@ -20,34 +20,37 @@ __all__ = ['ResolverFirewallRuleArgs', 'ResolverFirewallRule']
20
20
  class ResolverFirewallRuleArgs:
21
21
  def __init__(__self__, *,
22
22
  action: pulumi.Input[_builtins.str],
23
- firewall_domain_list_id: pulumi.Input[_builtins.str],
24
23
  firewall_rule_group_id: pulumi.Input[_builtins.str],
25
24
  priority: pulumi.Input[_builtins.int],
26
25
  block_override_dns_type: Optional[pulumi.Input[_builtins.str]] = None,
27
26
  block_override_domain: Optional[pulumi.Input[_builtins.str]] = None,
28
27
  block_override_ttl: Optional[pulumi.Input[_builtins.int]] = None,
29
28
  block_response: Optional[pulumi.Input[_builtins.str]] = None,
29
+ confidence_threshold: Optional[pulumi.Input[_builtins.str]] = None,
30
+ dns_threat_protection: Optional[pulumi.Input[_builtins.str]] = None,
31
+ firewall_domain_list_id: Optional[pulumi.Input[_builtins.str]] = None,
30
32
  firewall_domain_redirection_action: Optional[pulumi.Input[_builtins.str]] = None,
31
33
  name: Optional[pulumi.Input[_builtins.str]] = None,
32
34
  q_type: Optional[pulumi.Input[_builtins.str]] = None,
33
35
  region: Optional[pulumi.Input[_builtins.str]] = None):
34
36
  """
35
37
  The set of arguments for constructing a ResolverFirewallRule resource.
36
- :param pulumi.Input[_builtins.str] action: The action that DNS Firewall should take on a DNS query when it matches one of the domains in the rule's domain list. Valid values: `ALLOW`, `BLOCK`, `ALERT`.
37
- :param pulumi.Input[_builtins.str] firewall_domain_list_id: The ID of the domain list that you want to use in the rule.
38
+ :param pulumi.Input[_builtins.str] action: The action that DNS Firewall should take on a DNS query when it matches one of the domains in the rule's domain list, or a threat in a DNS Firewall Advanced rule. Valid values: `ALLOW`, `BLOCK`, `ALERT`. Note: `ALLOW` is not valid for DNS Firewall Advanced rules.
38
39
  :param pulumi.Input[_builtins.str] firewall_rule_group_id: The unique identifier of the firewall rule group where you want to create the rule.
39
40
  :param pulumi.Input[_builtins.int] priority: The setting that determines the processing order of the rule in the rule group. DNS Firewall processes the rules in a rule group by order of priority, starting from the lowest setting.
40
41
  :param pulumi.Input[_builtins.str] block_override_dns_type: The DNS record's type. This determines the format of the record value that you provided in BlockOverrideDomain. Value values: `CNAME`.
41
42
  :param pulumi.Input[_builtins.str] block_override_domain: The custom DNS record to send back in response to the query.
42
43
  :param pulumi.Input[_builtins.int] block_override_ttl: The recommended amount of time, in seconds, for the DNS resolver or web browser to cache the provided override record. Minimum value of 0. Maximum value of 604800.
43
44
  :param pulumi.Input[_builtins.str] block_response: The way that you want DNS Firewall to block the request. Valid values: `NODATA`, `NXDOMAIN`, `OVERRIDE`.
45
+ :param pulumi.Input[_builtins.str] confidence_threshold: The confidence threshold for DNS Firewall Advanced rules. You must provide this value when creating a DNS Firewall Advanced rule. Valid values: `LOW`, `MEDIUM`, `HIGH`. Conflicts with `firewall_domain_list_id`.
46
+ :param pulumi.Input[_builtins.str] dns_threat_protection: The type of DNS Firewall Advanced rule. You must provide this value when creating a DNS Firewall Advanced rule. Valid values: `DGA`, `DNS_TUNNELING`. Conflicts with `firewall_domain_list_id`.
47
+ :param pulumi.Input[_builtins.str] firewall_domain_list_id: The ID of the domain list that you want to use in the rule. Required for standard rules. Conflicts with `dns_threat_protection` and `confidence_threshold`.
44
48
  :param pulumi.Input[_builtins.str] firewall_domain_redirection_action: Evaluate DNS redirection in the DNS redirection chain, such as CNAME, DNAME, ot ALIAS. Valid values are `INSPECT_REDIRECTION_DOMAIN` and `TRUST_REDIRECTION_DOMAIN`. Default value is `INSPECT_REDIRECTION_DOMAIN`.
45
49
  :param pulumi.Input[_builtins.str] name: A name that lets you identify the rule, to manage and use it.
46
50
  :param pulumi.Input[_builtins.str] q_type: The query type you want the rule to evaluate. Additional details can be found [here](https://en.wikipedia.org/wiki/List_of_DNS_record_types)
47
51
  :param pulumi.Input[_builtins.str] region: Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration.
48
52
  """
49
53
  pulumi.set(__self__, "action", action)
50
- pulumi.set(__self__, "firewall_domain_list_id", firewall_domain_list_id)
51
54
  pulumi.set(__self__, "firewall_rule_group_id", firewall_rule_group_id)
52
55
  pulumi.set(__self__, "priority", priority)
53
56
  if block_override_dns_type is not None:
@@ -58,6 +61,12 @@ class ResolverFirewallRuleArgs:
58
61
  pulumi.set(__self__, "block_override_ttl", block_override_ttl)
59
62
  if block_response is not None:
60
63
  pulumi.set(__self__, "block_response", block_response)
64
+ if confidence_threshold is not None:
65
+ pulumi.set(__self__, "confidence_threshold", confidence_threshold)
66
+ if dns_threat_protection is not None:
67
+ pulumi.set(__self__, "dns_threat_protection", dns_threat_protection)
68
+ if firewall_domain_list_id is not None:
69
+ pulumi.set(__self__, "firewall_domain_list_id", firewall_domain_list_id)
61
70
  if firewall_domain_redirection_action is not None:
62
71
  pulumi.set(__self__, "firewall_domain_redirection_action", firewall_domain_redirection_action)
63
72
  if name is not None:
@@ -71,7 +80,7 @@ class ResolverFirewallRuleArgs:
71
80
  @pulumi.getter
72
81
  def action(self) -> pulumi.Input[_builtins.str]:
73
82
  """
74
- The action that DNS Firewall should take on a DNS query when it matches one of the domains in the rule's domain list. Valid values: `ALLOW`, `BLOCK`, `ALERT`.
83
+ The action that DNS Firewall should take on a DNS query when it matches one of the domains in the rule's domain list, or a threat in a DNS Firewall Advanced rule. Valid values: `ALLOW`, `BLOCK`, `ALERT`. Note: `ALLOW` is not valid for DNS Firewall Advanced rules.
75
84
  """
76
85
  return pulumi.get(self, "action")
77
86
 
@@ -79,18 +88,6 @@ class ResolverFirewallRuleArgs:
79
88
  def action(self, value: pulumi.Input[_builtins.str]):
80
89
  pulumi.set(self, "action", value)
81
90
 
82
- @_builtins.property
83
- @pulumi.getter(name="firewallDomainListId")
84
- def firewall_domain_list_id(self) -> pulumi.Input[_builtins.str]:
85
- """
86
- The ID of the domain list that you want to use in the rule.
87
- """
88
- return pulumi.get(self, "firewall_domain_list_id")
89
-
90
- @firewall_domain_list_id.setter
91
- def firewall_domain_list_id(self, value: pulumi.Input[_builtins.str]):
92
- pulumi.set(self, "firewall_domain_list_id", value)
93
-
94
91
  @_builtins.property
95
92
  @pulumi.getter(name="firewallRuleGroupId")
96
93
  def firewall_rule_group_id(self) -> pulumi.Input[_builtins.str]:
@@ -163,6 +160,42 @@ class ResolverFirewallRuleArgs:
163
160
  def block_response(self, value: Optional[pulumi.Input[_builtins.str]]):
164
161
  pulumi.set(self, "block_response", value)
165
162
 
163
+ @_builtins.property
164
+ @pulumi.getter(name="confidenceThreshold")
165
+ def confidence_threshold(self) -> Optional[pulumi.Input[_builtins.str]]:
166
+ """
167
+ The confidence threshold for DNS Firewall Advanced rules. You must provide this value when creating a DNS Firewall Advanced rule. Valid values: `LOW`, `MEDIUM`, `HIGH`. Conflicts with `firewall_domain_list_id`.
168
+ """
169
+ return pulumi.get(self, "confidence_threshold")
170
+
171
+ @confidence_threshold.setter
172
+ def confidence_threshold(self, value: Optional[pulumi.Input[_builtins.str]]):
173
+ pulumi.set(self, "confidence_threshold", value)
174
+
175
+ @_builtins.property
176
+ @pulumi.getter(name="dnsThreatProtection")
177
+ def dns_threat_protection(self) -> Optional[pulumi.Input[_builtins.str]]:
178
+ """
179
+ The type of DNS Firewall Advanced rule. You must provide this value when creating a DNS Firewall Advanced rule. Valid values: `DGA`, `DNS_TUNNELING`. Conflicts with `firewall_domain_list_id`.
180
+ """
181
+ return pulumi.get(self, "dns_threat_protection")
182
+
183
+ @dns_threat_protection.setter
184
+ def dns_threat_protection(self, value: Optional[pulumi.Input[_builtins.str]]):
185
+ pulumi.set(self, "dns_threat_protection", value)
186
+
187
+ @_builtins.property
188
+ @pulumi.getter(name="firewallDomainListId")
189
+ def firewall_domain_list_id(self) -> Optional[pulumi.Input[_builtins.str]]:
190
+ """
191
+ The ID of the domain list that you want to use in the rule. Required for standard rules. Conflicts with `dns_threat_protection` and `confidence_threshold`.
192
+ """
193
+ return pulumi.get(self, "firewall_domain_list_id")
194
+
195
+ @firewall_domain_list_id.setter
196
+ def firewall_domain_list_id(self, value: Optional[pulumi.Input[_builtins.str]]):
197
+ pulumi.set(self, "firewall_domain_list_id", value)
198
+
166
199
  @_builtins.property
167
200
  @pulumi.getter(name="firewallDomainRedirectionAction")
168
201
  def firewall_domain_redirection_action(self) -> Optional[pulumi.Input[_builtins.str]]:
@@ -220,23 +253,29 @@ class _ResolverFirewallRuleState:
220
253
  block_override_domain: Optional[pulumi.Input[_builtins.str]] = None,
221
254
  block_override_ttl: Optional[pulumi.Input[_builtins.int]] = None,
222
255
  block_response: Optional[pulumi.Input[_builtins.str]] = None,
256
+ confidence_threshold: Optional[pulumi.Input[_builtins.str]] = None,
257
+ dns_threat_protection: Optional[pulumi.Input[_builtins.str]] = None,
223
258
  firewall_domain_list_id: Optional[pulumi.Input[_builtins.str]] = None,
224
259
  firewall_domain_redirection_action: Optional[pulumi.Input[_builtins.str]] = None,
225
260
  firewall_rule_group_id: Optional[pulumi.Input[_builtins.str]] = None,
261
+ firewall_threat_protection_id: Optional[pulumi.Input[_builtins.str]] = None,
226
262
  name: Optional[pulumi.Input[_builtins.str]] = None,
227
263
  priority: Optional[pulumi.Input[_builtins.int]] = None,
228
264
  q_type: Optional[pulumi.Input[_builtins.str]] = None,
229
265
  region: Optional[pulumi.Input[_builtins.str]] = None):
230
266
  """
231
267
  Input properties used for looking up and filtering ResolverFirewallRule resources.
232
- :param pulumi.Input[_builtins.str] action: The action that DNS Firewall should take on a DNS query when it matches one of the domains in the rule's domain list. Valid values: `ALLOW`, `BLOCK`, `ALERT`.
268
+ :param pulumi.Input[_builtins.str] action: The action that DNS Firewall should take on a DNS query when it matches one of the domains in the rule's domain list, or a threat in a DNS Firewall Advanced rule. Valid values: `ALLOW`, `BLOCK`, `ALERT`. Note: `ALLOW` is not valid for DNS Firewall Advanced rules.
233
269
  :param pulumi.Input[_builtins.str] block_override_dns_type: The DNS record's type. This determines the format of the record value that you provided in BlockOverrideDomain. Value values: `CNAME`.
234
270
  :param pulumi.Input[_builtins.str] block_override_domain: The custom DNS record to send back in response to the query.
235
271
  :param pulumi.Input[_builtins.int] block_override_ttl: The recommended amount of time, in seconds, for the DNS resolver or web browser to cache the provided override record. Minimum value of 0. Maximum value of 604800.
236
272
  :param pulumi.Input[_builtins.str] block_response: The way that you want DNS Firewall to block the request. Valid values: `NODATA`, `NXDOMAIN`, `OVERRIDE`.
237
- :param pulumi.Input[_builtins.str] firewall_domain_list_id: The ID of the domain list that you want to use in the rule.
273
+ :param pulumi.Input[_builtins.str] confidence_threshold: The confidence threshold for DNS Firewall Advanced rules. You must provide this value when creating a DNS Firewall Advanced rule. Valid values: `LOW`, `MEDIUM`, `HIGH`. Conflicts with `firewall_domain_list_id`.
274
+ :param pulumi.Input[_builtins.str] dns_threat_protection: The type of DNS Firewall Advanced rule. You must provide this value when creating a DNS Firewall Advanced rule. Valid values: `DGA`, `DNS_TUNNELING`. Conflicts with `firewall_domain_list_id`.
275
+ :param pulumi.Input[_builtins.str] firewall_domain_list_id: The ID of the domain list that you want to use in the rule. Required for standard rules. Conflicts with `dns_threat_protection` and `confidence_threshold`.
238
276
  :param pulumi.Input[_builtins.str] firewall_domain_redirection_action: Evaluate DNS redirection in the DNS redirection chain, such as CNAME, DNAME, ot ALIAS. Valid values are `INSPECT_REDIRECTION_DOMAIN` and `TRUST_REDIRECTION_DOMAIN`. Default value is `INSPECT_REDIRECTION_DOMAIN`.
239
277
  :param pulumi.Input[_builtins.str] firewall_rule_group_id: The unique identifier of the firewall rule group where you want to create the rule.
278
+ :param pulumi.Input[_builtins.str] firewall_threat_protection_id: The ID of the DNS Firewall Advanced rule. Only set for DNS Firewall Advanced rules.
240
279
  :param pulumi.Input[_builtins.str] name: A name that lets you identify the rule, to manage and use it.
241
280
  :param pulumi.Input[_builtins.int] priority: The setting that determines the processing order of the rule in the rule group. DNS Firewall processes the rules in a rule group by order of priority, starting from the lowest setting.
242
281
  :param pulumi.Input[_builtins.str] q_type: The query type you want the rule to evaluate. Additional details can be found [here](https://en.wikipedia.org/wiki/List_of_DNS_record_types)
@@ -252,12 +291,18 @@ class _ResolverFirewallRuleState:
252
291
  pulumi.set(__self__, "block_override_ttl", block_override_ttl)
253
292
  if block_response is not None:
254
293
  pulumi.set(__self__, "block_response", block_response)
294
+ if confidence_threshold is not None:
295
+ pulumi.set(__self__, "confidence_threshold", confidence_threshold)
296
+ if dns_threat_protection is not None:
297
+ pulumi.set(__self__, "dns_threat_protection", dns_threat_protection)
255
298
  if firewall_domain_list_id is not None:
256
299
  pulumi.set(__self__, "firewall_domain_list_id", firewall_domain_list_id)
257
300
  if firewall_domain_redirection_action is not None:
258
301
  pulumi.set(__self__, "firewall_domain_redirection_action", firewall_domain_redirection_action)
259
302
  if firewall_rule_group_id is not None:
260
303
  pulumi.set(__self__, "firewall_rule_group_id", firewall_rule_group_id)
304
+ if firewall_threat_protection_id is not None:
305
+ pulumi.set(__self__, "firewall_threat_protection_id", firewall_threat_protection_id)
261
306
  if name is not None:
262
307
  pulumi.set(__self__, "name", name)
263
308
  if priority is not None:
@@ -271,7 +316,7 @@ class _ResolverFirewallRuleState:
271
316
  @pulumi.getter
272
317
  def action(self) -> Optional[pulumi.Input[_builtins.str]]:
273
318
  """
274
- The action that DNS Firewall should take on a DNS query when it matches one of the domains in the rule's domain list. Valid values: `ALLOW`, `BLOCK`, `ALERT`.
319
+ The action that DNS Firewall should take on a DNS query when it matches one of the domains in the rule's domain list, or a threat in a DNS Firewall Advanced rule. Valid values: `ALLOW`, `BLOCK`, `ALERT`. Note: `ALLOW` is not valid for DNS Firewall Advanced rules.
275
320
  """
276
321
  return pulumi.get(self, "action")
277
322
 
@@ -327,11 +372,35 @@ class _ResolverFirewallRuleState:
327
372
  def block_response(self, value: Optional[pulumi.Input[_builtins.str]]):
328
373
  pulumi.set(self, "block_response", value)
329
374
 
375
+ @_builtins.property
376
+ @pulumi.getter(name="confidenceThreshold")
377
+ def confidence_threshold(self) -> Optional[pulumi.Input[_builtins.str]]:
378
+ """
379
+ The confidence threshold for DNS Firewall Advanced rules. You must provide this value when creating a DNS Firewall Advanced rule. Valid values: `LOW`, `MEDIUM`, `HIGH`. Conflicts with `firewall_domain_list_id`.
380
+ """
381
+ return pulumi.get(self, "confidence_threshold")
382
+
383
+ @confidence_threshold.setter
384
+ def confidence_threshold(self, value: Optional[pulumi.Input[_builtins.str]]):
385
+ pulumi.set(self, "confidence_threshold", value)
386
+
387
+ @_builtins.property
388
+ @pulumi.getter(name="dnsThreatProtection")
389
+ def dns_threat_protection(self) -> Optional[pulumi.Input[_builtins.str]]:
390
+ """
391
+ The type of DNS Firewall Advanced rule. You must provide this value when creating a DNS Firewall Advanced rule. Valid values: `DGA`, `DNS_TUNNELING`. Conflicts with `firewall_domain_list_id`.
392
+ """
393
+ return pulumi.get(self, "dns_threat_protection")
394
+
395
+ @dns_threat_protection.setter
396
+ def dns_threat_protection(self, value: Optional[pulumi.Input[_builtins.str]]):
397
+ pulumi.set(self, "dns_threat_protection", value)
398
+
330
399
  @_builtins.property
331
400
  @pulumi.getter(name="firewallDomainListId")
332
401
  def firewall_domain_list_id(self) -> Optional[pulumi.Input[_builtins.str]]:
333
402
  """
334
- The ID of the domain list that you want to use in the rule.
403
+ The ID of the domain list that you want to use in the rule. Required for standard rules. Conflicts with `dns_threat_protection` and `confidence_threshold`.
335
404
  """
336
405
  return pulumi.get(self, "firewall_domain_list_id")
337
406
 
@@ -363,6 +432,18 @@ class _ResolverFirewallRuleState:
363
432
  def firewall_rule_group_id(self, value: Optional[pulumi.Input[_builtins.str]]):
364
433
  pulumi.set(self, "firewall_rule_group_id", value)
365
434
 
435
+ @_builtins.property
436
+ @pulumi.getter(name="firewallThreatProtectionId")
437
+ def firewall_threat_protection_id(self) -> Optional[pulumi.Input[_builtins.str]]:
438
+ """
439
+ The ID of the DNS Firewall Advanced rule. Only set for DNS Firewall Advanced rules.
440
+ """
441
+ return pulumi.get(self, "firewall_threat_protection_id")
442
+
443
+ @firewall_threat_protection_id.setter
444
+ def firewall_threat_protection_id(self, value: Optional[pulumi.Input[_builtins.str]]):
445
+ pulumi.set(self, "firewall_threat_protection_id", value)
446
+
366
447
  @_builtins.property
367
448
  @pulumi.getter
368
449
  def name(self) -> Optional[pulumi.Input[_builtins.str]]:
@@ -423,6 +504,8 @@ class ResolverFirewallRule(pulumi.CustomResource):
423
504
  block_override_domain: Optional[pulumi.Input[_builtins.str]] = None,
424
505
  block_override_ttl: Optional[pulumi.Input[_builtins.int]] = None,
425
506
  block_response: Optional[pulumi.Input[_builtins.str]] = None,
507
+ confidence_threshold: Optional[pulumi.Input[_builtins.str]] = None,
508
+ dns_threat_protection: Optional[pulumi.Input[_builtins.str]] = None,
426
509
  firewall_domain_list_id: Optional[pulumi.Input[_builtins.str]] = None,
427
510
  firewall_domain_redirection_action: Optional[pulumi.Input[_builtins.str]] = None,
428
511
  firewall_rule_group_id: Optional[pulumi.Input[_builtins.str]] = None,
@@ -436,6 +519,8 @@ class ResolverFirewallRule(pulumi.CustomResource):
436
519
 
437
520
  ## Example Usage
438
521
 
522
+ ### Domain List Rule
523
+
439
524
  ```python
440
525
  import pulumi
441
526
  import pulumi_aws as aws
@@ -459,9 +544,30 @@ class ResolverFirewallRule(pulumi.CustomResource):
459
544
  priority=100)
460
545
  ```
461
546
 
547
+ ### DNS Firewall Advanced Rule
548
+
549
+ ```python
550
+ import pulumi
551
+ import pulumi_aws as aws
552
+
553
+ example = aws.route53.ResolverFirewallRuleGroup("example",
554
+ name="example",
555
+ tags={})
556
+ example_resolver_firewall_rule = aws.route53.ResolverFirewallRule("example",
557
+ name="block-dga",
558
+ action="BLOCK",
559
+ block_response="NODATA",
560
+ firewall_rule_group_id=example.id,
561
+ dns_threat_protection="DGA",
562
+ confidence_threshold="HIGH",
563
+ priority=100)
564
+ ```
565
+
462
566
  ## Import
463
567
 
464
- Using `pulumi import`, import Route 53 Resolver DNS Firewall rules using the Route 53 Resolver DNS Firewall rule group ID and domain list ID separated by ':'. For example:
568
+ DNS Firewall Advanced rule:
569
+
570
+ Using `pulumi import`, import Route 53 Resolver DNS Firewall rules using the Route 53 Resolver DNS Firewall rule group ID and domain list ID (for standard rules) or threat protection ID (for advanced rules) separated by ':'. For example:
465
571
 
466
572
  ```sh
467
573
  $ pulumi import aws:route53/resolverFirewallRule:ResolverFirewallRule example rslvr-frg-0123456789abcdef:rslvr-fdl-0123456789abcdef
@@ -469,12 +575,14 @@ class ResolverFirewallRule(pulumi.CustomResource):
469
575
 
470
576
  :param str resource_name: The name of the resource.
471
577
  :param pulumi.ResourceOptions opts: Options for the resource.
472
- :param pulumi.Input[_builtins.str] action: The action that DNS Firewall should take on a DNS query when it matches one of the domains in the rule's domain list. Valid values: `ALLOW`, `BLOCK`, `ALERT`.
578
+ :param pulumi.Input[_builtins.str] action: The action that DNS Firewall should take on a DNS query when it matches one of the domains in the rule's domain list, or a threat in a DNS Firewall Advanced rule. Valid values: `ALLOW`, `BLOCK`, `ALERT`. Note: `ALLOW` is not valid for DNS Firewall Advanced rules.
473
579
  :param pulumi.Input[_builtins.str] block_override_dns_type: The DNS record's type. This determines the format of the record value that you provided in BlockOverrideDomain. Value values: `CNAME`.
474
580
  :param pulumi.Input[_builtins.str] block_override_domain: The custom DNS record to send back in response to the query.
475
581
  :param pulumi.Input[_builtins.int] block_override_ttl: The recommended amount of time, in seconds, for the DNS resolver or web browser to cache the provided override record. Minimum value of 0. Maximum value of 604800.
476
582
  :param pulumi.Input[_builtins.str] block_response: The way that you want DNS Firewall to block the request. Valid values: `NODATA`, `NXDOMAIN`, `OVERRIDE`.
477
- :param pulumi.Input[_builtins.str] firewall_domain_list_id: The ID of the domain list that you want to use in the rule.
583
+ :param pulumi.Input[_builtins.str] confidence_threshold: The confidence threshold for DNS Firewall Advanced rules. You must provide this value when creating a DNS Firewall Advanced rule. Valid values: `LOW`, `MEDIUM`, `HIGH`. Conflicts with `firewall_domain_list_id`.
584
+ :param pulumi.Input[_builtins.str] dns_threat_protection: The type of DNS Firewall Advanced rule. You must provide this value when creating a DNS Firewall Advanced rule. Valid values: `DGA`, `DNS_TUNNELING`. Conflicts with `firewall_domain_list_id`.
585
+ :param pulumi.Input[_builtins.str] firewall_domain_list_id: The ID of the domain list that you want to use in the rule. Required for standard rules. Conflicts with `dns_threat_protection` and `confidence_threshold`.
478
586
  :param pulumi.Input[_builtins.str] firewall_domain_redirection_action: Evaluate DNS redirection in the DNS redirection chain, such as CNAME, DNAME, ot ALIAS. Valid values are `INSPECT_REDIRECTION_DOMAIN` and `TRUST_REDIRECTION_DOMAIN`. Default value is `INSPECT_REDIRECTION_DOMAIN`.
479
587
  :param pulumi.Input[_builtins.str] firewall_rule_group_id: The unique identifier of the firewall rule group where you want to create the rule.
480
588
  :param pulumi.Input[_builtins.str] name: A name that lets you identify the rule, to manage and use it.
@@ -493,6 +601,8 @@ class ResolverFirewallRule(pulumi.CustomResource):
493
601
 
494
602
  ## Example Usage
495
603
 
604
+ ### Domain List Rule
605
+
496
606
  ```python
497
607
  import pulumi
498
608
  import pulumi_aws as aws
@@ -516,9 +626,30 @@ class ResolverFirewallRule(pulumi.CustomResource):
516
626
  priority=100)
517
627
  ```
518
628
 
629
+ ### DNS Firewall Advanced Rule
630
+
631
+ ```python
632
+ import pulumi
633
+ import pulumi_aws as aws
634
+
635
+ example = aws.route53.ResolverFirewallRuleGroup("example",
636
+ name="example",
637
+ tags={})
638
+ example_resolver_firewall_rule = aws.route53.ResolverFirewallRule("example",
639
+ name="block-dga",
640
+ action="BLOCK",
641
+ block_response="NODATA",
642
+ firewall_rule_group_id=example.id,
643
+ dns_threat_protection="DGA",
644
+ confidence_threshold="HIGH",
645
+ priority=100)
646
+ ```
647
+
519
648
  ## Import
520
649
 
521
- Using `pulumi import`, import Route 53 Resolver DNS Firewall rules using the Route 53 Resolver DNS Firewall rule group ID and domain list ID separated by ':'. For example:
650
+ DNS Firewall Advanced rule:
651
+
652
+ Using `pulumi import`, import Route 53 Resolver DNS Firewall rules using the Route 53 Resolver DNS Firewall rule group ID and domain list ID (for standard rules) or threat protection ID (for advanced rules) separated by ':'. For example:
522
653
 
523
654
  ```sh
524
655
  $ pulumi import aws:route53/resolverFirewallRule:ResolverFirewallRule example rslvr-frg-0123456789abcdef:rslvr-fdl-0123456789abcdef
@@ -544,6 +675,8 @@ class ResolverFirewallRule(pulumi.CustomResource):
544
675
  block_override_domain: Optional[pulumi.Input[_builtins.str]] = None,
545
676
  block_override_ttl: Optional[pulumi.Input[_builtins.int]] = None,
546
677
  block_response: Optional[pulumi.Input[_builtins.str]] = None,
678
+ confidence_threshold: Optional[pulumi.Input[_builtins.str]] = None,
679
+ dns_threat_protection: Optional[pulumi.Input[_builtins.str]] = None,
547
680
  firewall_domain_list_id: Optional[pulumi.Input[_builtins.str]] = None,
548
681
  firewall_domain_redirection_action: Optional[pulumi.Input[_builtins.str]] = None,
549
682
  firewall_rule_group_id: Optional[pulumi.Input[_builtins.str]] = None,
@@ -567,8 +700,8 @@ class ResolverFirewallRule(pulumi.CustomResource):
567
700
  __props__.__dict__["block_override_domain"] = block_override_domain
568
701
  __props__.__dict__["block_override_ttl"] = block_override_ttl
569
702
  __props__.__dict__["block_response"] = block_response
570
- if firewall_domain_list_id is None and not opts.urn:
571
- raise TypeError("Missing required property 'firewall_domain_list_id'")
703
+ __props__.__dict__["confidence_threshold"] = confidence_threshold
704
+ __props__.__dict__["dns_threat_protection"] = dns_threat_protection
572
705
  __props__.__dict__["firewall_domain_list_id"] = firewall_domain_list_id
573
706
  __props__.__dict__["firewall_domain_redirection_action"] = firewall_domain_redirection_action
574
707
  if firewall_rule_group_id is None and not opts.urn:
@@ -580,6 +713,7 @@ class ResolverFirewallRule(pulumi.CustomResource):
580
713
  __props__.__dict__["priority"] = priority
581
714
  __props__.__dict__["q_type"] = q_type
582
715
  __props__.__dict__["region"] = region
716
+ __props__.__dict__["firewall_threat_protection_id"] = None
583
717
  super(ResolverFirewallRule, __self__).__init__(
584
718
  'aws:route53/resolverFirewallRule:ResolverFirewallRule',
585
719
  resource_name,
@@ -595,9 +729,12 @@ class ResolverFirewallRule(pulumi.CustomResource):
595
729
  block_override_domain: Optional[pulumi.Input[_builtins.str]] = None,
596
730
  block_override_ttl: Optional[pulumi.Input[_builtins.int]] = None,
597
731
  block_response: Optional[pulumi.Input[_builtins.str]] = None,
732
+ confidence_threshold: Optional[pulumi.Input[_builtins.str]] = None,
733
+ dns_threat_protection: Optional[pulumi.Input[_builtins.str]] = None,
598
734
  firewall_domain_list_id: Optional[pulumi.Input[_builtins.str]] = None,
599
735
  firewall_domain_redirection_action: Optional[pulumi.Input[_builtins.str]] = None,
600
736
  firewall_rule_group_id: Optional[pulumi.Input[_builtins.str]] = None,
737
+ firewall_threat_protection_id: Optional[pulumi.Input[_builtins.str]] = None,
601
738
  name: Optional[pulumi.Input[_builtins.str]] = None,
602
739
  priority: Optional[pulumi.Input[_builtins.int]] = None,
603
740
  q_type: Optional[pulumi.Input[_builtins.str]] = None,
@@ -609,14 +746,17 @@ class ResolverFirewallRule(pulumi.CustomResource):
609
746
  :param str resource_name: The unique name of the resulting resource.
610
747
  :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
611
748
  :param pulumi.ResourceOptions opts: Options for the resource.
612
- :param pulumi.Input[_builtins.str] action: The action that DNS Firewall should take on a DNS query when it matches one of the domains in the rule's domain list. Valid values: `ALLOW`, `BLOCK`, `ALERT`.
749
+ :param pulumi.Input[_builtins.str] action: The action that DNS Firewall should take on a DNS query when it matches one of the domains in the rule's domain list, or a threat in a DNS Firewall Advanced rule. Valid values: `ALLOW`, `BLOCK`, `ALERT`. Note: `ALLOW` is not valid for DNS Firewall Advanced rules.
613
750
  :param pulumi.Input[_builtins.str] block_override_dns_type: The DNS record's type. This determines the format of the record value that you provided in BlockOverrideDomain. Value values: `CNAME`.
614
751
  :param pulumi.Input[_builtins.str] block_override_domain: The custom DNS record to send back in response to the query.
615
752
  :param pulumi.Input[_builtins.int] block_override_ttl: The recommended amount of time, in seconds, for the DNS resolver or web browser to cache the provided override record. Minimum value of 0. Maximum value of 604800.
616
753
  :param pulumi.Input[_builtins.str] block_response: The way that you want DNS Firewall to block the request. Valid values: `NODATA`, `NXDOMAIN`, `OVERRIDE`.
617
- :param pulumi.Input[_builtins.str] firewall_domain_list_id: The ID of the domain list that you want to use in the rule.
754
+ :param pulumi.Input[_builtins.str] confidence_threshold: The confidence threshold for DNS Firewall Advanced rules. You must provide this value when creating a DNS Firewall Advanced rule. Valid values: `LOW`, `MEDIUM`, `HIGH`. Conflicts with `firewall_domain_list_id`.
755
+ :param pulumi.Input[_builtins.str] dns_threat_protection: The type of DNS Firewall Advanced rule. You must provide this value when creating a DNS Firewall Advanced rule. Valid values: `DGA`, `DNS_TUNNELING`. Conflicts with `firewall_domain_list_id`.
756
+ :param pulumi.Input[_builtins.str] firewall_domain_list_id: The ID of the domain list that you want to use in the rule. Required for standard rules. Conflicts with `dns_threat_protection` and `confidence_threshold`.
618
757
  :param pulumi.Input[_builtins.str] firewall_domain_redirection_action: Evaluate DNS redirection in the DNS redirection chain, such as CNAME, DNAME, ot ALIAS. Valid values are `INSPECT_REDIRECTION_DOMAIN` and `TRUST_REDIRECTION_DOMAIN`. Default value is `INSPECT_REDIRECTION_DOMAIN`.
619
758
  :param pulumi.Input[_builtins.str] firewall_rule_group_id: The unique identifier of the firewall rule group where you want to create the rule.
759
+ :param pulumi.Input[_builtins.str] firewall_threat_protection_id: The ID of the DNS Firewall Advanced rule. Only set for DNS Firewall Advanced rules.
620
760
  :param pulumi.Input[_builtins.str] name: A name that lets you identify the rule, to manage and use it.
621
761
  :param pulumi.Input[_builtins.int] priority: The setting that determines the processing order of the rule in the rule group. DNS Firewall processes the rules in a rule group by order of priority, starting from the lowest setting.
622
762
  :param pulumi.Input[_builtins.str] q_type: The query type you want the rule to evaluate. Additional details can be found [here](https://en.wikipedia.org/wiki/List_of_DNS_record_types)
@@ -631,9 +771,12 @@ class ResolverFirewallRule(pulumi.CustomResource):
631
771
  __props__.__dict__["block_override_domain"] = block_override_domain
632
772
  __props__.__dict__["block_override_ttl"] = block_override_ttl
633
773
  __props__.__dict__["block_response"] = block_response
774
+ __props__.__dict__["confidence_threshold"] = confidence_threshold
775
+ __props__.__dict__["dns_threat_protection"] = dns_threat_protection
634
776
  __props__.__dict__["firewall_domain_list_id"] = firewall_domain_list_id
635
777
  __props__.__dict__["firewall_domain_redirection_action"] = firewall_domain_redirection_action
636
778
  __props__.__dict__["firewall_rule_group_id"] = firewall_rule_group_id
779
+ __props__.__dict__["firewall_threat_protection_id"] = firewall_threat_protection_id
637
780
  __props__.__dict__["name"] = name
638
781
  __props__.__dict__["priority"] = priority
639
782
  __props__.__dict__["q_type"] = q_type
@@ -644,7 +787,7 @@ class ResolverFirewallRule(pulumi.CustomResource):
644
787
  @pulumi.getter
645
788
  def action(self) -> pulumi.Output[_builtins.str]:
646
789
  """
647
- The action that DNS Firewall should take on a DNS query when it matches one of the domains in the rule's domain list. Valid values: `ALLOW`, `BLOCK`, `ALERT`.
790
+ The action that DNS Firewall should take on a DNS query when it matches one of the domains in the rule's domain list, or a threat in a DNS Firewall Advanced rule. Valid values: `ALLOW`, `BLOCK`, `ALERT`. Note: `ALLOW` is not valid for DNS Firewall Advanced rules.
648
791
  """
649
792
  return pulumi.get(self, "action")
650
793
 
@@ -680,11 +823,27 @@ class ResolverFirewallRule(pulumi.CustomResource):
680
823
  """
681
824
  return pulumi.get(self, "block_response")
682
825
 
826
+ @_builtins.property
827
+ @pulumi.getter(name="confidenceThreshold")
828
+ def confidence_threshold(self) -> pulumi.Output[Optional[_builtins.str]]:
829
+ """
830
+ The confidence threshold for DNS Firewall Advanced rules. You must provide this value when creating a DNS Firewall Advanced rule. Valid values: `LOW`, `MEDIUM`, `HIGH`. Conflicts with `firewall_domain_list_id`.
831
+ """
832
+ return pulumi.get(self, "confidence_threshold")
833
+
834
+ @_builtins.property
835
+ @pulumi.getter(name="dnsThreatProtection")
836
+ def dns_threat_protection(self) -> pulumi.Output[Optional[_builtins.str]]:
837
+ """
838
+ The type of DNS Firewall Advanced rule. You must provide this value when creating a DNS Firewall Advanced rule. Valid values: `DGA`, `DNS_TUNNELING`. Conflicts with `firewall_domain_list_id`.
839
+ """
840
+ return pulumi.get(self, "dns_threat_protection")
841
+
683
842
  @_builtins.property
684
843
  @pulumi.getter(name="firewallDomainListId")
685
- def firewall_domain_list_id(self) -> pulumi.Output[_builtins.str]:
844
+ def firewall_domain_list_id(self) -> pulumi.Output[Optional[_builtins.str]]:
686
845
  """
687
- The ID of the domain list that you want to use in the rule.
846
+ The ID of the domain list that you want to use in the rule. Required for standard rules. Conflicts with `dns_threat_protection` and `confidence_threshold`.
688
847
  """
689
848
  return pulumi.get(self, "firewall_domain_list_id")
690
849
 
@@ -704,6 +863,14 @@ class ResolverFirewallRule(pulumi.CustomResource):
704
863
  """
705
864
  return pulumi.get(self, "firewall_rule_group_id")
706
865
 
866
+ @_builtins.property
867
+ @pulumi.getter(name="firewallThreatProtectionId")
868
+ def firewall_threat_protection_id(self) -> pulumi.Output[_builtins.str]:
869
+ """
870
+ The ID of the DNS Firewall Advanced rule. Only set for DNS Firewall Advanced rules.
871
+ """
872
+ return pulumi.get(self, "firewall_threat_protection_id")
873
+
707
874
  @_builtins.property
708
875
  @pulumi.getter
709
876
  def name(self) -> pulumi.Output[_builtins.str]:
@@ -16,5 +16,6 @@ from .secret import *
16
16
  from .secret_policy import *
17
17
  from .secret_rotation import *
18
18
  from .secret_version import *
19
+ from .tag import *
19
20
  from ._inputs import *
20
21
  from . import outputs