aws-sdk-route53resolver 1.98.0 → 1.100.0

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.
@@ -219,6 +219,168 @@ module Aws::Route53Resolver
219
219
  include Aws::Structure
220
220
  end
221
221
 
222
+ # An error that occurred while creating a firewall rule in a batch
223
+ # operation.
224
+ #
225
+ # @!attribute [rw] firewall_rule
226
+ # The firewall rule entry that caused the error.
227
+ # @return [Types::CreateFirewallRuleEntry]
228
+ #
229
+ # @!attribute [rw] code
230
+ # The error code for the failure.
231
+ # @return [String]
232
+ #
233
+ # @!attribute [rw] message
234
+ # A message that provides details about the error.
235
+ # @return [String]
236
+ #
237
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/BatchCreateFirewallRuleError AWS API Documentation
238
+ #
239
+ class BatchCreateFirewallRuleError < Struct.new(
240
+ :firewall_rule,
241
+ :code,
242
+ :message)
243
+ SENSITIVE = []
244
+ include Aws::Structure
245
+ end
246
+
247
+ # @!attribute [rw] create_firewall_rule_entries
248
+ # The list of firewall rules to create.
249
+ # @return [Array<Types::CreateFirewallRuleEntry>]
250
+ #
251
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/BatchCreateFirewallRuleRequest AWS API Documentation
252
+ #
253
+ class BatchCreateFirewallRuleRequest < Struct.new(
254
+ :create_firewall_rule_entries)
255
+ SENSITIVE = []
256
+ include Aws::Structure
257
+ end
258
+
259
+ # @!attribute [rw] created_firewall_rules
260
+ # The firewall rules that were successfully created by the request.
261
+ # @return [Array<Types::FirewallRule>]
262
+ #
263
+ # @!attribute [rw] create_errors
264
+ # A list of errors that occurred while creating the firewall rules.
265
+ # @return [Array<Types::BatchCreateFirewallRuleError>]
266
+ #
267
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/BatchCreateFirewallRuleResponse AWS API Documentation
268
+ #
269
+ class BatchCreateFirewallRuleResponse < Struct.new(
270
+ :created_firewall_rules,
271
+ :create_errors)
272
+ SENSITIVE = []
273
+ include Aws::Structure
274
+ end
275
+
276
+ # An error that occurred while deleting a firewall rule in a batch
277
+ # operation.
278
+ #
279
+ # @!attribute [rw] firewall_rule
280
+ # The firewall rule entry that caused the error.
281
+ # @return [Types::DeleteFirewallRuleEntry]
282
+ #
283
+ # @!attribute [rw] code
284
+ # The error code for the failure.
285
+ # @return [String]
286
+ #
287
+ # @!attribute [rw] message
288
+ # A message that provides details about the error.
289
+ # @return [String]
290
+ #
291
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/BatchDeleteFirewallRuleError AWS API Documentation
292
+ #
293
+ class BatchDeleteFirewallRuleError < Struct.new(
294
+ :firewall_rule,
295
+ :code,
296
+ :message)
297
+ SENSITIVE = []
298
+ include Aws::Structure
299
+ end
300
+
301
+ # @!attribute [rw] delete_firewall_rule_entries
302
+ # The list of firewall rules to delete.
303
+ # @return [Array<Types::DeleteFirewallRuleEntry>]
304
+ #
305
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/BatchDeleteFirewallRuleRequest AWS API Documentation
306
+ #
307
+ class BatchDeleteFirewallRuleRequest < Struct.new(
308
+ :delete_firewall_rule_entries)
309
+ SENSITIVE = []
310
+ include Aws::Structure
311
+ end
312
+
313
+ # @!attribute [rw] deleted_firewall_rules
314
+ # The firewall rules that were successfully deleted by the request.
315
+ # @return [Array<Types::FirewallRule>]
316
+ #
317
+ # @!attribute [rw] delete_errors
318
+ # A list of errors that occurred while deleting the firewall rules.
319
+ # @return [Array<Types::BatchDeleteFirewallRuleError>]
320
+ #
321
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/BatchDeleteFirewallRuleResponse AWS API Documentation
322
+ #
323
+ class BatchDeleteFirewallRuleResponse < Struct.new(
324
+ :deleted_firewall_rules,
325
+ :delete_errors)
326
+ SENSITIVE = []
327
+ include Aws::Structure
328
+ end
329
+
330
+ # An error that occurred while updating a firewall rule in a batch
331
+ # operation.
332
+ #
333
+ # @!attribute [rw] firewall_rule
334
+ # The firewall rule entry that caused the error.
335
+ # @return [Types::UpdateFirewallRuleEntry]
336
+ #
337
+ # @!attribute [rw] code
338
+ # The error code for the failure.
339
+ # @return [String]
340
+ #
341
+ # @!attribute [rw] message
342
+ # A message that provides details about the error.
343
+ # @return [String]
344
+ #
345
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/BatchUpdateFirewallRuleError AWS API Documentation
346
+ #
347
+ class BatchUpdateFirewallRuleError < Struct.new(
348
+ :firewall_rule,
349
+ :code,
350
+ :message)
351
+ SENSITIVE = []
352
+ include Aws::Structure
353
+ end
354
+
355
+ # @!attribute [rw] update_firewall_rule_entries
356
+ # The list of firewall rules to update.
357
+ # @return [Array<Types::UpdateFirewallRuleEntry>]
358
+ #
359
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/BatchUpdateFirewallRuleRequest AWS API Documentation
360
+ #
361
+ class BatchUpdateFirewallRuleRequest < Struct.new(
362
+ :update_firewall_rule_entries)
363
+ SENSITIVE = []
364
+ include Aws::Structure
365
+ end
366
+
367
+ # @!attribute [rw] updated_firewall_rules
368
+ # The firewall rules that were successfully updated by the request.
369
+ # @return [Array<Types::FirewallRule>]
370
+ #
371
+ # @!attribute [rw] update_errors
372
+ # A list of errors that occurred while updating the firewall rules.
373
+ # @return [Array<Types::BatchUpdateFirewallRuleError>]
374
+ #
375
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/BatchUpdateFirewallRuleResponse AWS API Documentation
376
+ #
377
+ class BatchUpdateFirewallRuleResponse < Struct.new(
378
+ :updated_firewall_rules,
379
+ :update_errors)
380
+ SENSITIVE = []
381
+ include Aws::Structure
382
+ end
383
+
222
384
  # The requested state transition isn't valid. For example, you can't
223
385
  # delete a firewall domain list if it is in the process of being
224
386
  # deleted, or you can't import domains into a domain list that is in
@@ -276,6 +438,204 @@ module Aws::Route53Resolver
276
438
  include Aws::Structure
277
439
  end
278
440
 
441
+ # The details for creating a single firewall rule in a batch operation.
442
+ #
443
+ # @!attribute [rw] creator_request_id
444
+ # A unique string that identifies the request and that allows you to
445
+ # retry failed requests without the risk of running the operation
446
+ # twice. `CreatorRequestId` can be any unique string, for example, a
447
+ # date/time stamp.
448
+ # @return [String]
449
+ #
450
+ # @!attribute [rw] firewall_rule_group_id
451
+ # The unique identifier of the firewall rule group where you want to
452
+ # create the rule.
453
+ # @return [String]
454
+ #
455
+ # @!attribute [rw] firewall_domain_list_id
456
+ # The ID of the domain list that you want to use in the rule. This
457
+ # setting is mutually exclusive with `DnsThreatProtection` and
458
+ # `FirewallRuleType`.
459
+ # @return [String]
460
+ #
461
+ # @!attribute [rw] priority
462
+ # The setting that determines the processing order of the rule in the
463
+ # rule group. DNS Firewall processes the rules in a rule group by
464
+ # order of priority, starting from the lowest setting.
465
+ # @return [Integer]
466
+ #
467
+ # @!attribute [rw] action
468
+ # The action that DNS Firewall should take on a DNS query when it
469
+ # matches one of the domains in the rule's domain list, or a threat
470
+ # in a DNS Firewall Advanced rule:
471
+ #
472
+ # * `ALLOW` - Permit the request to go through. Not available for DNS
473
+ # Firewall Advanced rules.
474
+ #
475
+ # * `ALERT` - Permit the request and send metrics and logs to
476
+ # CloudWatch.
477
+ #
478
+ # * `BLOCK` - Disallow the request. This option requires additional
479
+ # details in the rule's `BlockResponse`.
480
+ # @return [String]
481
+ #
482
+ # @!attribute [rw] block_response
483
+ # The way that you want DNS Firewall to block the request, used with
484
+ # the rule action setting `BLOCK`.
485
+ #
486
+ # * `NODATA` - Respond indicating that the query was successful, but
487
+ # no response is available for it.
488
+ #
489
+ # * `NXDOMAIN` - Respond indicating that the domain name that's in
490
+ # the query doesn't exist.
491
+ #
492
+ # * `OVERRIDE` - Provide a custom override in the response. This
493
+ # option requires custom handling details in the rule's
494
+ # `BlockOverride*` settings.
495
+ # @return [String]
496
+ #
497
+ # @!attribute [rw] block_override_domain
498
+ # The custom DNS record to send back in response to the query. Used
499
+ # for the rule action `BLOCK` with a `BlockResponse` setting of
500
+ # `OVERRIDE`.
501
+ # @return [String]
502
+ #
503
+ # @!attribute [rw] block_override_dns_type
504
+ # The DNS record's type. This determines the format of the record
505
+ # value that you provided in `BlockOverrideDomain`. Used for the rule
506
+ # action `BLOCK` with a `BlockResponse` setting of `OVERRIDE`.
507
+ # @return [String]
508
+ #
509
+ # @!attribute [rw] block_override_ttl
510
+ # The recommended amount of time, in seconds, for the DNS resolver or
511
+ # web browser to cache the provided override record. Used for the rule
512
+ # action `BLOCK` with a `BlockResponse` setting of `OVERRIDE`.
513
+ #
514
+ # This setting is required if the `BlockResponse` setting is
515
+ # `OVERRIDE`.
516
+ # @return [Integer]
517
+ #
518
+ # @!attribute [rw] name
519
+ # A name that lets you identify the rule in the rule group.
520
+ # @return [String]
521
+ #
522
+ # @!attribute [rw] firewall_domain_redirection_action
523
+ # How you want the rule to evaluate DNS redirection in the DNS
524
+ # redirection chain, such as CNAME or DNAME.
525
+ #
526
+ # `INSPECT_REDIRECTION_DOMAIN`: (Default) inspects all domains in the
527
+ # redirection chain. The individual domains in the redirection chain
528
+ # must be added to the domain list.
529
+ #
530
+ # `TRUST_REDIRECTION_DOMAIN`: Inspects only the first domain in the
531
+ # redirection chain. You don't need to add the subsequent domains in
532
+ # the redirection list to the domain list.
533
+ # @return [String]
534
+ #
535
+ # @!attribute [rw] qtype
536
+ # The DNS query type you want the rule to evaluate. Allowed values
537
+ # are:
538
+ #
539
+ # * A: Returns an IPv4 address.
540
+ #
541
+ # * AAAA: Returns an IPv6 address.
542
+ #
543
+ # * CAA: Restricts CAs that can create SSL/TLS certifications for the
544
+ # domain.
545
+ #
546
+ # * CNAME: Returns another domain name.
547
+ #
548
+ # * DS: Record that identifies the DNSSEC signing key of a delegated
549
+ # zone.
550
+ #
551
+ # * MX: Specifies mail servers.
552
+ #
553
+ # * NAPTR: Regular-expression-based rewriting of domain names.
554
+ #
555
+ # * NS: Authoritative name servers.
556
+ #
557
+ # * PTR: Maps an IP address to a domain name.
558
+ #
559
+ # * SOA: Start of authority record for the zone.
560
+ #
561
+ # * SPF: Lists the servers authorized to send emails from a domain.
562
+ #
563
+ # * SRV: Application specific values that identify servers.
564
+ #
565
+ # * TXT: Verifies email senders and application-specific values.
566
+ #
567
+ # * A query type you define by using the DNS type ID, for example 28
568
+ # for AAAA. The values must be defined as TYPENUMBER, where the
569
+ # NUMBER can be 1-65534, for example, TYPE28. For more information,
570
+ # see [List of DNS record types][1].
571
+ #
572
+ #
573
+ #
574
+ # [1]: https://en.wikipedia.org/wiki/List_of_DNS_record_types
575
+ # @return [String]
576
+ #
577
+ # @!attribute [rw] dns_threat_protection
578
+ # The type of the DNS Firewall Advanced rule. This setting is mutually
579
+ # exclusive with `FirewallDomainListId` and `FirewallRuleType`. Valid
580
+ # values are:
581
+ #
582
+ # * `DGA`: Domain generation algorithms detection. DGAs are used by
583
+ # attackers to generate a large number of domains to launch malware
584
+ # attacks.
585
+ #
586
+ # * `DNS_TUNNELING`: DNS tunneling detection. DNS tunneling is used by
587
+ # attackers to exfiltrate data from the client by using the DNS
588
+ # tunnel without making a network connection to the client.
589
+ #
590
+ # * `DICT_DGA`: Dictionary-based domain generation algorithms
591
+ # detection. Dictionary DGAs use wordlists to generate domains that
592
+ # appear more legitimate, making them harder to detect than
593
+ # traditional DGAs.
594
+ # @return [String]
595
+ #
596
+ # @!attribute [rw] confidence_threshold
597
+ # The confidence threshold for DNS Firewall Advanced. You must provide
598
+ # this value when you create or update a DNS Firewall Advanced rule.
599
+ # The confidence level values mean:
600
+ #
601
+ # * `LOW`: Provides the highest detection rate for threats, but also
602
+ # increases false positives.
603
+ #
604
+ # * `MEDIUM`: Provides a balance between detecting threats and false
605
+ # positives.
606
+ #
607
+ # * `HIGH`: Detects only the most well corroborated threats with a low
608
+ # rate of false positives.
609
+ # @return [String]
610
+ #
611
+ # @!attribute [rw] firewall_rule_type
612
+ # The rule type configuration for the firewall rule. This setting is
613
+ # mutually exclusive with the top-level `FirewallDomainListId` and
614
+ # `DnsThreatProtection` fields.
615
+ # @return [Types::FirewallRuleType]
616
+ #
617
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/CreateFirewallRuleEntry AWS API Documentation
618
+ #
619
+ class CreateFirewallRuleEntry < Struct.new(
620
+ :creator_request_id,
621
+ :firewall_rule_group_id,
622
+ :firewall_domain_list_id,
623
+ :priority,
624
+ :action,
625
+ :block_response,
626
+ :block_override_domain,
627
+ :block_override_dns_type,
628
+ :block_override_ttl,
629
+ :name,
630
+ :firewall_domain_redirection_action,
631
+ :qtype,
632
+ :dns_threat_protection,
633
+ :confidence_threshold,
634
+ :firewall_rule_type)
635
+ SENSITIVE = []
636
+ include Aws::Structure
637
+ end
638
+
279
639
  # @!attribute [rw] creator_request_id
280
640
  # A unique string defined by you to identify the request. This allows
281
641
  # you to retry failed requests without the risk of running the
@@ -458,7 +818,7 @@ module Aws::Route53Resolver
458
818
  #
459
819
  # * A query type you define by using the DNS type ID, for example 28
460
820
  # for AAAA. The values must be defined as TYPENUMBER, where the
461
- # NUMBER can be 1-65334, for example, TYPE28. For more information,
821
+ # NUMBER can be 1-65534, for example, TYPE28. For more information,
462
822
  # see [List of DNS record types][1].
463
823
  #
464
824
  #
@@ -485,6 +845,12 @@ module Aws::Route53Resolver
485
845
  # rate of false positives.
486
846
  # @return [String]
487
847
  #
848
+ # @!attribute [rw] firewall_rule_type
849
+ # The rule type configuration for the firewall rule. This setting is
850
+ # mutually exclusive with the top-level `FirewallDomainListId` and
851
+ # `DnsThreatProtection` fields.
852
+ # @return [Types::FirewallRuleType]
853
+ #
488
854
  # @see http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/CreateFirewallRuleRequest AWS API Documentation
489
855
  #
490
856
  class CreateFirewallRuleRequest < Struct.new(
@@ -501,7 +867,8 @@ module Aws::Route53Resolver
501
867
  :firewall_domain_redirection_action,
502
868
  :qtype,
503
869
  :dns_threat_protection,
504
- :confidence_threshold)
870
+ :confidence_threshold,
871
+ :firewall_rule_type)
505
872
  SENSITIVE = []
506
873
  include Aws::Structure
507
874
  end
@@ -982,6 +1349,35 @@ module Aws::Route53Resolver
982
1349
  include Aws::Structure
983
1350
  end
984
1351
 
1352
+ # The details for deleting a single firewall rule in a batch operation.
1353
+ #
1354
+ # @!attribute [rw] firewall_rule_group_id
1355
+ # The unique identifier of the firewall rule group for the rule.
1356
+ # @return [String]
1357
+ #
1358
+ # @!attribute [rw] firewall_domain_list_id
1359
+ # The ID of the domain list that's used in the rule.
1360
+ # @return [String]
1361
+ #
1362
+ # @!attribute [rw] firewall_threat_protection_id
1363
+ # The ID of the DNS Firewall Advanced rule.
1364
+ # @return [String]
1365
+ #
1366
+ # @!attribute [rw] qtype
1367
+ # The DNS query type that the rule evaluates.
1368
+ # @return [String]
1369
+ #
1370
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DeleteFirewallRuleEntry AWS API Documentation
1371
+ #
1372
+ class DeleteFirewallRuleEntry < Struct.new(
1373
+ :firewall_rule_group_id,
1374
+ :firewall_domain_list_id,
1375
+ :firewall_threat_protection_id,
1376
+ :qtype)
1377
+ SENSITIVE = []
1378
+ include Aws::Structure
1379
+ end
1380
+
985
1381
  # @!attribute [rw] firewall_rule_group_id
986
1382
  # The unique identifier of the firewall rule group that you want to
987
1383
  # delete.
@@ -1054,7 +1450,7 @@ module Aws::Route53Resolver
1054
1450
  #
1055
1451
  # * A query type you define by using the DNS type ID, for example 28
1056
1452
  # for AAAA. The values must be defined as TYPENUMBER, where the
1057
- # NUMBER can be 1-65334, for example, TYPE28. For more information,
1453
+ # NUMBER can be 1-65534, for example, TYPE28. For more information,
1058
1454
  # see [List of DNS record types][1].
1059
1455
  #
1060
1456
  #
@@ -1303,6 +1699,50 @@ module Aws::Route53Resolver
1303
1699
  include Aws::Structure
1304
1700
  end
1305
1701
 
1702
+ # The configuration for a DNS threat protection rule type within the
1703
+ # rule type framework.
1704
+ #
1705
+ # @!attribute [rw] value
1706
+ # The type of DNS threat protection. Valid values are:
1707
+ #
1708
+ # * `DGA`: Domain generation algorithms detection. DGAs are used by
1709
+ # attackers to generate a large number of domains to launch malware
1710
+ # attacks.
1711
+ #
1712
+ # * `DNS_TUNNELING`: DNS tunneling detection. DNS tunneling is used by
1713
+ # attackers to exfiltrate data from the client by using the DNS
1714
+ # tunnel without making a network connection to the client.
1715
+ #
1716
+ # * `DICT_DGA`: Dictionary-based domain generation algorithms
1717
+ # detection. Dictionary DGAs use wordlists to generate domains that
1718
+ # appear more legitimate, making them harder to detect than
1719
+ # traditional DGAs.
1720
+ # @return [String]
1721
+ #
1722
+ # @!attribute [rw] confidence_threshold
1723
+ # The confidence threshold for DNS Firewall Advanced. You must provide
1724
+ # this value when you create or update a DNS Firewall Advanced rule.
1725
+ # The confidence level values mean:
1726
+ #
1727
+ # * `LOW`: Provides the highest detection rate for threats, but also
1728
+ # increases false positives.
1729
+ #
1730
+ # * `MEDIUM`: Provides a balance between detecting threats and false
1731
+ # positives.
1732
+ #
1733
+ # * `HIGH`: Detects only the most well corroborated threats with a low
1734
+ # rate of false positives.
1735
+ # @return [String]
1736
+ #
1737
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DnsThreatProtectionRuleTypeConfig AWS API Documentation
1738
+ #
1739
+ class DnsThreatProtectionRuleTypeConfig < Struct.new(
1740
+ :value,
1741
+ :confidence_threshold)
1742
+ SENSITIVE = []
1743
+ include Aws::Structure
1744
+ end
1745
+
1306
1746
  # For Resolver list operations ([ListResolverEndpoints][1],
1307
1747
  # [ListResolverRules][2], [ListResolverRuleAssociations][3],
1308
1748
  # [ListResolverQueryLogConfigs][4],
@@ -1524,6 +1964,40 @@ module Aws::Route53Resolver
1524
1964
  include Aws::Structure
1525
1965
  end
1526
1966
 
1967
+ # The configuration for a content category-based filtering rule. This
1968
+ # specifies which content category to use for DNS query evaluation.
1969
+ #
1970
+ # @!attribute [rw] category
1971
+ # The content category identifier. To retrieve the list of available
1972
+ # content categories, call ListFirewallRuleTypes with `RuleType` set
1973
+ # to `FirewallAdvancedContentCategory`.
1974
+ # @return [String]
1975
+ #
1976
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/FirewallAdvancedContentCategoryConfig AWS API Documentation
1977
+ #
1978
+ class FirewallAdvancedContentCategoryConfig < Struct.new(
1979
+ :category)
1980
+ SENSITIVE = []
1981
+ include Aws::Structure
1982
+ end
1983
+
1984
+ # The configuration for a threat category-based filtering rule. This
1985
+ # specifies which threat category to use for DNS query evaluation.
1986
+ #
1987
+ # @!attribute [rw] category
1988
+ # The threat category identifier. To retrieve the list of available
1989
+ # threat categories, call ListFirewallRuleTypes with `RuleType` set to
1990
+ # `FirewallAdvancedThreatCategory`.
1991
+ # @return [String]
1992
+ #
1993
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/FirewallAdvancedThreatCategoryConfig AWS API Documentation
1994
+ #
1995
+ class FirewallAdvancedThreatCategoryConfig < Struct.new(
1996
+ :category)
1997
+ SENSITIVE = []
1998
+ include Aws::Structure
1999
+ end
2000
+
1527
2001
  # Configuration of the firewall behavior provided by DNS Firewall for a
1528
2002
  # single VPC from Amazon Virtual Private Cloud (Amazon VPC).
1529
2003
  #
@@ -1623,6 +2097,14 @@ module Aws::Route53Resolver
1623
2097
  # time format and Coordinated Universal Time (UTC).
1624
2098
  # @return [String]
1625
2099
  #
2100
+ # @!attribute [rw] category
2101
+ # The category of the domain list.
2102
+ # @return [String]
2103
+ #
2104
+ # @!attribute [rw] managed_list_type
2105
+ # The type of the managed domain list, for example `THREAT`.
2106
+ # @return [String]
2107
+ #
1626
2108
  # @see http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/FirewallDomainList AWS API Documentation
1627
2109
  #
1628
2110
  class FirewallDomainList < Struct.new(
@@ -1635,7 +2117,9 @@ module Aws::Route53Resolver
1635
2117
  :managed_owner_name,
1636
2118
  :creator_request_id,
1637
2119
  :creation_time,
1638
- :modification_time)
2120
+ :modification_time,
2121
+ :category,
2122
+ :managed_list_type)
1639
2123
  SENSITIVE = []
1640
2124
  include Aws::Structure
1641
2125
  end
@@ -1672,6 +2156,14 @@ module Aws::Route53Resolver
1672
2156
  # `Route 53 Resolver DNS Firewall`.
1673
2157
  # @return [String]
1674
2158
  #
2159
+ # @!attribute [rw] managed_list_type
2160
+ # The type of the managed domain list, for example `THREAT`.
2161
+ # @return [String]
2162
+ #
2163
+ # @!attribute [rw] category
2164
+ # The category of the domain list.
2165
+ # @return [String]
2166
+ #
1675
2167
  # @see http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/FirewallDomainListMetadata AWS API Documentation
1676
2168
  #
1677
2169
  class FirewallDomainListMetadata < Struct.new(
@@ -1679,7 +2171,9 @@ module Aws::Route53Resolver
1679
2171
  :arn,
1680
2172
  :name,
1681
2173
  :creator_request_id,
1682
- :managed_owner_name)
2174
+ :managed_owner_name,
2175
+ :managed_list_type,
2176
+ :category)
1683
2177
  SENSITIVE = []
1684
2178
  include Aws::Structure
1685
2179
  end
@@ -1821,7 +2315,7 @@ module Aws::Route53Resolver
1821
2315
  #
1822
2316
  # * A query type you define by using the DNS type ID, for example 28
1823
2317
  # for AAAA. The values must be defined as TYPENUMBER, where the
1824
- # NUMBER can be 1-65334, for example, TYPE28. For more information,
2318
+ # NUMBER can be 1-65534, for example, TYPE28. For more information,
1825
2319
  # see [List of DNS record types][1].
1826
2320
  #
1827
2321
  #
@@ -1856,6 +2350,11 @@ module Aws::Route53Resolver
1856
2350
  # rate of false positives.
1857
2351
  # @return [String]
1858
2352
  #
2353
+ # @!attribute [rw] firewall_rule_type
2354
+ # The rule type configuration for the firewall rule. Exactly one
2355
+ # member of this union should be set.
2356
+ # @return [Types::FirewallRuleType]
2357
+ #
1859
2358
  # @see http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/FirewallRule AWS API Documentation
1860
2359
  #
1861
2360
  class FirewallRule < Struct.new(
@@ -1875,7 +2374,8 @@ module Aws::Route53Resolver
1875
2374
  :firewall_domain_redirection_action,
1876
2375
  :qtype,
1877
2376
  :dns_threat_protection,
1878
- :confidence_threshold)
2377
+ :confidence_threshold,
2378
+ :firewall_rule_type)
1879
2379
  SENSITIVE = []
1880
2380
  include Aws::Structure
1881
2381
  end
@@ -2099,6 +2599,65 @@ module Aws::Route53Resolver
2099
2599
  include Aws::Structure
2100
2600
  end
2101
2601
 
2602
+ # The configuration for a rule type in a DNS Firewall rule. This is a
2603
+ # union type — exactly one member should be set.
2604
+ #
2605
+ # @!attribute [rw] firewall_advanced_content_category
2606
+ # The configuration for a content category-based filtering rule.
2607
+ # @return [Types::FirewallAdvancedContentCategoryConfig]
2608
+ #
2609
+ # @!attribute [rw] firewall_advanced_threat_category
2610
+ # The configuration for a threat category-based filtering rule.
2611
+ # @return [Types::FirewallAdvancedThreatCategoryConfig]
2612
+ #
2613
+ # @!attribute [rw] dns_threat_protection
2614
+ # The configuration for a DNS threat protection rule type, such as DGA
2615
+ # or DNS tunneling detection.
2616
+ # @return [Types::DnsThreatProtectionRuleTypeConfig]
2617
+ #
2618
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/FirewallRuleType AWS API Documentation
2619
+ #
2620
+ class FirewallRuleType < Struct.new(
2621
+ :firewall_advanced_content_category,
2622
+ :firewall_advanced_threat_category,
2623
+ :dns_threat_protection)
2624
+ SENSITIVE = []
2625
+ include Aws::Structure
2626
+ end
2627
+
2628
+ # The definition of an available rule type that can be used in DNS
2629
+ # Firewall rules. This is returned by ListFirewallRuleTypes.
2630
+ #
2631
+ # @!attribute [rw] rule_type
2632
+ # The category or class of the rule type, such as
2633
+ # `FirewallAdvancedContentCategory` or
2634
+ # `FirewallAdvancedThreatCategory`.
2635
+ # @return [String]
2636
+ #
2637
+ # @!attribute [rw] value
2638
+ # The specific identifier within the rule type category, such as
2639
+ # `VIOLENCE_AND_HATE_SPEECH` or `PHISHING`.
2640
+ # @return [String]
2641
+ #
2642
+ # @!attribute [rw] display_name
2643
+ # The display name of the rule type.
2644
+ # @return [String]
2645
+ #
2646
+ # @!attribute [rw] description
2647
+ # A description of the rule type.
2648
+ # @return [String]
2649
+ #
2650
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/FirewallRuleTypeDefinition AWS API Documentation
2651
+ #
2652
+ class FirewallRuleTypeDefinition < Struct.new(
2653
+ :rule_type,
2654
+ :value,
2655
+ :display_name,
2656
+ :description)
2657
+ SENSITIVE = []
2658
+ include Aws::Structure
2659
+ end
2660
+
2102
2661
  # @!attribute [rw] resource_id
2103
2662
  # The ID of the VPC from Amazon VPC that the configuration is for.
2104
2663
  # @return [String]
@@ -3065,6 +3624,56 @@ module Aws::Route53Resolver
3065
3624
  include Aws::Structure
3066
3625
  end
3067
3626
 
3627
+ # @!attribute [rw] rule_type
3628
+ # The rule type to filter by. If specified, only rule types matching
3629
+ # this value are returned.
3630
+ # @return [String]
3631
+ #
3632
+ # @!attribute [rw] max_results
3633
+ # The maximum number of objects that you want Resolver to return for
3634
+ # this request. If more objects are available, in the response,
3635
+ # Resolver provides a `NextToken` value that you can use in a
3636
+ # subsequent call to get the next batch of objects.
3637
+ # @return [Integer]
3638
+ #
3639
+ # @!attribute [rw] next_token
3640
+ # For the first call to this list request, omit this value. When you
3641
+ # request a list of objects, Resolver returns at most the number of
3642
+ # objects specified in `MaxResults`. If more objects are available for
3643
+ # retrieval, Resolver provides a `NextToken` value in the response. To
3644
+ # retrieve the next batch of objects, use the token that was returned
3645
+ # for the prior request in your next request.
3646
+ # @return [String]
3647
+ #
3648
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListFirewallRuleTypesRequest AWS API Documentation
3649
+ #
3650
+ class ListFirewallRuleTypesRequest < Struct.new(
3651
+ :rule_type,
3652
+ :max_results,
3653
+ :next_token)
3654
+ SENSITIVE = []
3655
+ include Aws::Structure
3656
+ end
3657
+
3658
+ # @!attribute [rw] firewall_rule_types
3659
+ # A list of the available rule type definitions.
3660
+ # @return [Array<Types::FirewallRuleTypeDefinition>]
3661
+ #
3662
+ # @!attribute [rw] next_token
3663
+ # If objects are still available for retrieval, Resolver returns this
3664
+ # token in the response. To retrieve the next batch of objects,
3665
+ # provide this token in your next request.
3666
+ # @return [String]
3667
+ #
3668
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListFirewallRuleTypesResponse AWS API Documentation
3669
+ #
3670
+ class ListFirewallRuleTypesResponse < Struct.new(
3671
+ :firewall_rule_types,
3672
+ :next_token)
3673
+ SENSITIVE = []
3674
+ include Aws::Structure
3675
+ end
3676
+
3068
3677
  # @!attribute [rw] firewall_rule_group_id
3069
3678
  # The unique identifier of the firewall rule group that you want to
3070
3679
  # retrieve the rules for.
@@ -5230,6 +5839,200 @@ module Aws::Route53Resolver
5230
5839
  include Aws::Structure
5231
5840
  end
5232
5841
 
5842
+ # The details for updating a single firewall rule in a batch operation.
5843
+ #
5844
+ # @!attribute [rw] firewall_rule_group_id
5845
+ # The unique identifier of the firewall rule group for the rule.
5846
+ # @return [String]
5847
+ #
5848
+ # @!attribute [rw] firewall_domain_list_id
5849
+ # The ID of the domain list to use in the rule. This setting is
5850
+ # mutually exclusive with `DnsThreatProtection` and
5851
+ # `FirewallRuleType`.
5852
+ # @return [String]
5853
+ #
5854
+ # @!attribute [rw] firewall_threat_protection_id
5855
+ # The ID of the DNS Firewall Advanced rule.
5856
+ # @return [String]
5857
+ #
5858
+ # @!attribute [rw] priority
5859
+ # The setting that determines the processing order of the rule in the
5860
+ # rule group. DNS Firewall processes the rules in a rule group by
5861
+ # order of priority, starting from the lowest setting.
5862
+ # @return [Integer]
5863
+ #
5864
+ # @!attribute [rw] action
5865
+ # The action that DNS Firewall should take on a DNS query when it
5866
+ # matches one of the domains in the rule's domain list, or a threat
5867
+ # in a DNS Firewall Advanced rule:
5868
+ #
5869
+ # * `ALLOW` - Permit the request to go through. Not available for DNS
5870
+ # Firewall Advanced rules.
5871
+ #
5872
+ # * `ALERT` - Permit the request and send metrics and logs to
5873
+ # CloudWatch.
5874
+ #
5875
+ # * `BLOCK` - Disallow the request. This option requires additional
5876
+ # details in the rule's `BlockResponse`.
5877
+ # @return [String]
5878
+ #
5879
+ # @!attribute [rw] block_response
5880
+ # The way that you want DNS Firewall to block the request, used with
5881
+ # the rule action setting `BLOCK`.
5882
+ #
5883
+ # * `NODATA` - Respond indicating that the query was successful, but
5884
+ # no response is available for it.
5885
+ #
5886
+ # * `NXDOMAIN` - Respond indicating that the domain name that's in
5887
+ # the query doesn't exist.
5888
+ #
5889
+ # * `OVERRIDE` - Provide a custom override in the response. This
5890
+ # option requires custom handling details in the rule's
5891
+ # `BlockOverride*` settings.
5892
+ # @return [String]
5893
+ #
5894
+ # @!attribute [rw] block_override_domain
5895
+ # The custom DNS record to send back in response to the query. Used
5896
+ # for the rule action `BLOCK` with a `BlockResponse` setting of
5897
+ # `OVERRIDE`.
5898
+ # @return [String]
5899
+ #
5900
+ # @!attribute [rw] block_override_dns_type
5901
+ # The DNS record's type. This determines the format of the record
5902
+ # value that you provided in `BlockOverrideDomain`. Used for the rule
5903
+ # action `BLOCK` with a `BlockResponse` setting of `OVERRIDE`.
5904
+ # @return [String]
5905
+ #
5906
+ # @!attribute [rw] block_override_ttl
5907
+ # The recommended amount of time, in seconds, for the DNS resolver or
5908
+ # web browser to cache the provided override record. Used for the rule
5909
+ # action `BLOCK` with a `BlockResponse` setting of `OVERRIDE`.
5910
+ #
5911
+ # This setting is required if the `BlockResponse` setting is
5912
+ # `OVERRIDE`.
5913
+ # @return [Integer]
5914
+ #
5915
+ # @!attribute [rw] name
5916
+ # The name of the rule.
5917
+ # @return [String]
5918
+ #
5919
+ # @!attribute [rw] firewall_domain_redirection_action
5920
+ # How you want the rule to evaluate DNS redirection in the DNS
5921
+ # redirection chain, such as CNAME or DNAME.
5922
+ #
5923
+ # `INSPECT_REDIRECTION_DOMAIN`: (Default) inspects all domains in the
5924
+ # redirection chain. The individual domains in the redirection chain
5925
+ # must be added to the domain list.
5926
+ #
5927
+ # `TRUST_REDIRECTION_DOMAIN`: Inspects only the first domain in the
5928
+ # redirection chain. You don't need to add the subsequent domains in
5929
+ # the redirection list to the domain list.
5930
+ # @return [String]
5931
+ #
5932
+ # @!attribute [rw] qtype
5933
+ # The DNS query type you want the rule to evaluate. Allowed values
5934
+ # are:
5935
+ #
5936
+ # * A: Returns an IPv4 address.
5937
+ #
5938
+ # * AAAA: Returns an IPv6 address.
5939
+ #
5940
+ # * CAA: Restricts CAs that can create SSL/TLS certifications for the
5941
+ # domain.
5942
+ #
5943
+ # * CNAME: Returns another domain name.
5944
+ #
5945
+ # * DS: Record that identifies the DNSSEC signing key of a delegated
5946
+ # zone.
5947
+ #
5948
+ # * MX: Specifies mail servers.
5949
+ #
5950
+ # * NAPTR: Regular-expression-based rewriting of domain names.
5951
+ #
5952
+ # * NS: Authoritative name servers.
5953
+ #
5954
+ # * PTR: Maps an IP address to a domain name.
5955
+ #
5956
+ # * SOA: Start of authority record for the zone.
5957
+ #
5958
+ # * SPF: Lists the servers authorized to send emails from a domain.
5959
+ #
5960
+ # * SRV: Application specific values that identify servers.
5961
+ #
5962
+ # * TXT: Verifies email senders and application-specific values.
5963
+ #
5964
+ # * A query type you define by using the DNS type ID, for example 28
5965
+ # for AAAA. The values must be defined as TYPENUMBER, where the
5966
+ # NUMBER can be 1-65534, for example, TYPE28. For more information,
5967
+ # see [List of DNS record types][1].
5968
+ #
5969
+ #
5970
+ #
5971
+ # [1]: https://en.wikipedia.org/wiki/List_of_DNS_record_types
5972
+ # @return [String]
5973
+ #
5974
+ # @!attribute [rw] dns_threat_protection
5975
+ # The type of the DNS Firewall Advanced rule. This setting is mutually
5976
+ # exclusive with `FirewallDomainListId` and `FirewallRuleType`. Valid
5977
+ # values are:
5978
+ #
5979
+ # * `DGA`: Domain generation algorithms detection. DGAs are used by
5980
+ # attackers to generate a large number of domains to launch malware
5981
+ # attacks.
5982
+ #
5983
+ # * `DNS_TUNNELING`: DNS tunneling detection. DNS tunneling is used by
5984
+ # attackers to exfiltrate data from the client by using the DNS
5985
+ # tunnel without making a network connection to the client.
5986
+ #
5987
+ # * `DICT_DGA`: Dictionary-based domain generation algorithms
5988
+ # detection. Dictionary DGAs use wordlists to generate domains that
5989
+ # appear more legitimate, making them harder to detect than
5990
+ # traditional DGAs.
5991
+ # @return [String]
5992
+ #
5993
+ # @!attribute [rw] confidence_threshold
5994
+ # The confidence threshold for DNS Firewall Advanced. You must provide
5995
+ # this value when you create or update a DNS Firewall Advanced rule.
5996
+ # The confidence level values mean:
5997
+ #
5998
+ # * `LOW`: Provides the highest detection rate for threats, but also
5999
+ # increases false positives.
6000
+ #
6001
+ # * `MEDIUM`: Provides a balance between detecting threats and false
6002
+ # positives.
6003
+ #
6004
+ # * `HIGH`: Detects only the most well corroborated threats with a low
6005
+ # rate of false positives.
6006
+ # @return [String]
6007
+ #
6008
+ # @!attribute [rw] firewall_rule_type
6009
+ # The rule type configuration for the firewall rule. This setting is
6010
+ # mutually exclusive with the top-level `FirewallDomainListId` and
6011
+ # `DnsThreatProtection` fields.
6012
+ # @return [Types::FirewallRuleType]
6013
+ #
6014
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UpdateFirewallRuleEntry AWS API Documentation
6015
+ #
6016
+ class UpdateFirewallRuleEntry < Struct.new(
6017
+ :firewall_rule_group_id,
6018
+ :firewall_domain_list_id,
6019
+ :firewall_threat_protection_id,
6020
+ :priority,
6021
+ :action,
6022
+ :block_response,
6023
+ :block_override_domain,
6024
+ :block_override_dns_type,
6025
+ :block_override_ttl,
6026
+ :name,
6027
+ :firewall_domain_redirection_action,
6028
+ :qtype,
6029
+ :dns_threat_protection,
6030
+ :confidence_threshold,
6031
+ :firewall_rule_type)
6032
+ SENSITIVE = []
6033
+ include Aws::Structure
6034
+ end
6035
+
5233
6036
  # @!attribute [rw] firewall_rule_group_association_id
5234
6037
  # The identifier of the FirewallRuleGroupAssociation.
5235
6038
  # @return [String]
@@ -5402,7 +6205,7 @@ module Aws::Route53Resolver
5402
6205
  #
5403
6206
  # * A query type you define by using the DNS type ID, for example 28
5404
6207
  # for AAAA. The values must be defined as TYPENUMBER, where the
5405
- # NUMBER can be 1-65334, for example, TYPE28. For more information,
6208
+ # NUMBER can be 1-65534, for example, TYPE28. For more information,
5406
6209
  # see [List of DNS record types][1].
5407
6210
  #
5408
6211
  # <note markdown="1"> If you set up a firewall BLOCK rule with action NXDOMAIN on query
@@ -5443,6 +6246,12 @@ module Aws::Route53Resolver
5443
6246
  # rate of false positives.
5444
6247
  # @return [String]
5445
6248
  #
6249
+ # @!attribute [rw] firewall_rule_type
6250
+ # The rule type configuration for the firewall rule. This setting is
6251
+ # mutually exclusive with the top-level `FirewallDomainListId` and
6252
+ # `DnsThreatProtection` fields.
6253
+ # @return [Types::FirewallRuleType]
6254
+ #
5446
6255
  # @see http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UpdateFirewallRuleRequest AWS API Documentation
5447
6256
  #
5448
6257
  class UpdateFirewallRuleRequest < Struct.new(
@@ -5459,7 +6268,8 @@ module Aws::Route53Resolver
5459
6268
  :firewall_domain_redirection_action,
5460
6269
  :qtype,
5461
6270
  :dns_threat_protection,
5462
- :confidence_threshold)
6271
+ :confidence_threshold,
6272
+ :firewall_rule_type)
5463
6273
  SENSITIVE = []
5464
6274
  include Aws::Structure
5465
6275
  end