@aws-sdk/client-route53resolver 3.1056.0 → 3.1057.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.
Files changed (46) hide show
  1. package/README.md +28 -0
  2. package/dist-cjs/index.js +72 -7
  3. package/dist-cjs/schemas/schemas_0.js +204 -31
  4. package/dist-es/Route53Resolver.js +10 -0
  5. package/dist-es/commands/BatchCreateFirewallRuleCommand.js +16 -0
  6. package/dist-es/commands/BatchDeleteFirewallRuleCommand.js +16 -0
  7. package/dist-es/commands/BatchUpdateFirewallRuleCommand.js +16 -0
  8. package/dist-es/commands/ListFirewallRuleTypesCommand.js +16 -0
  9. package/dist-es/commands/index.js +4 -0
  10. package/dist-es/models/enums.js +11 -7
  11. package/dist-es/pagination/ListFirewallRuleTypesPaginator.js +4 -0
  12. package/dist-es/pagination/index.js +1 -0
  13. package/dist-es/schemas/schemas_0.js +198 -26
  14. package/dist-types/Route53Resolver.d.ts +36 -0
  15. package/dist-types/Route53ResolverClient.d.ts +6 -2
  16. package/dist-types/commands/BatchCreateFirewallRuleCommand.d.ts +189 -0
  17. package/dist-types/commands/BatchDeleteFirewallRuleCommand.d.ts +145 -0
  18. package/dist-types/commands/BatchUpdateFirewallRuleCommand.d.ts +189 -0
  19. package/dist-types/commands/CreateFirewallDomainListCommand.d.ts +2 -0
  20. package/dist-types/commands/CreateFirewallRuleCommand.d.ts +24 -0
  21. package/dist-types/commands/DeleteFirewallDomainListCommand.d.ts +2 -0
  22. package/dist-types/commands/DeleteFirewallRuleCommand.d.ts +12 -0
  23. package/dist-types/commands/GetFirewallDomainListCommand.d.ts +2 -0
  24. package/dist-types/commands/ListFirewallDomainListsCommand.d.ts +2 -0
  25. package/dist-types/commands/ListFirewallRuleTypesCommand.d.ts +101 -0
  26. package/dist-types/commands/ListFirewallRulesCommand.d.ts +12 -0
  27. package/dist-types/commands/UpdateFirewallRuleCommand.d.ts +24 -0
  28. package/dist-types/commands/index.d.ts +4 -0
  29. package/dist-types/models/enums.d.ts +27 -15
  30. package/dist-types/models/models_0.d.ts +923 -204
  31. package/dist-types/pagination/ListFirewallRuleTypesPaginator.d.ts +7 -0
  32. package/dist-types/pagination/index.d.ts +1 -0
  33. package/dist-types/schemas/schemas_0.d.ts +23 -0
  34. package/dist-types/ts3.4/Route53Resolver.d.ts +76 -0
  35. package/dist-types/ts3.4/Route53ResolverClient.d.ts +24 -0
  36. package/dist-types/ts3.4/commands/BatchCreateFirewallRuleCommand.d.ts +53 -0
  37. package/dist-types/ts3.4/commands/BatchDeleteFirewallRuleCommand.d.ts +53 -0
  38. package/dist-types/ts3.4/commands/BatchUpdateFirewallRuleCommand.d.ts +53 -0
  39. package/dist-types/ts3.4/commands/ListFirewallRuleTypesCommand.d.ts +53 -0
  40. package/dist-types/ts3.4/commands/index.d.ts +4 -0
  41. package/dist-types/ts3.4/models/enums.d.ts +15 -9
  42. package/dist-types/ts3.4/models/models_0.d.ts +137 -19
  43. package/dist-types/ts3.4/pagination/ListFirewallRuleTypesPaginator.d.ts +11 -0
  44. package/dist-types/ts3.4/pagination/index.d.ts +1 -0
  45. package/dist-types/ts3.4/schemas/schemas_0.d.ts +23 -0
  46. package/package.json +2 -2
@@ -1,4 +1,4 @@
1
- import type { Action, AutodefinedReverseFlag, BlockOverrideDnsType, BlockResponse, ConfidenceThreshold, DnsThreatProtection, FirewallDomainImportOperation, FirewallDomainListStatus, FirewallDomainRedirectionAction, FirewallDomainUpdateOperation, FirewallFailOpenStatus, FirewallRuleGroupAssociationStatus, FirewallRuleGroupStatus, IpAddressStatus, MutationProtectionStatus, OutpostResolverStatus, Protocol, ResolverAutodefinedReverseStatus, ResolverDNSSECValidationStatus, ResolverEndpointDirection, ResolverEndpointStatus, ResolverEndpointType, ResolverQueryLogConfigAssociationError, ResolverQueryLogConfigAssociationStatus, ResolverQueryLogConfigStatus, ResolverRuleAssociationStatus, ResolverRuleStatus, RuleTypeOption, ShareStatus, SortOrder, Validation } from "./enums";
1
+ import type { Action, AutodefinedReverseFlag, BlockOverrideDnsType, BlockResponse, ConfidenceThreshold, DnsThreatProtection, DomainListType, FirewallDomainImportOperation, FirewallDomainListStatus, FirewallDomainRedirectionAction, FirewallDomainUpdateOperation, FirewallFailOpenStatus, FirewallRuleGroupAssociationStatus, FirewallRuleGroupStatus, IpAddressStatus, MutationProtectionStatus, OutpostResolverStatus, Protocol, ResolverAutodefinedReverseStatus, ResolverDNSSECValidationStatus, ResolverEndpointDirection, ResolverEndpointStatus, ResolverEndpointType, ResolverQueryLogConfigAssociationError, ResolverQueryLogConfigAssociationStatus, ResolverQueryLogConfigStatus, ResolverRuleAssociationStatus, ResolverRuleStatus, RuleTypeOption, ShareStatus, SortOrder, Validation } from "./enums";
2
2
  /**
3
3
  * <p>One tag that you want to add to the specified resource. A tag consists of a <code>Key</code> (a name for the tag) and a <code>Value</code>.</p>
4
4
  * @public
@@ -621,126 +621,320 @@ export interface AssociateResolverRuleResponse {
621
621
  ResolverRuleAssociation?: ResolverRuleAssociation | undefined;
622
622
  }
623
623
  /**
624
+ * <p>The configuration for a DNS threat protection rule type within the rule type framework.</p>
624
625
  * @public
625
626
  */
626
- export interface CreateFirewallDomainListRequest {
627
+ export interface DnsThreatProtectionRuleTypeConfig {
627
628
  /**
628
- * <p>A unique string that identifies the request and that allows you to retry failed requests
629
- * without the risk of running the operation twice. <code>CreatorRequestId</code> can be
630
- * any unique string, for example, a date/time stamp. </p>
629
+ * <p>The type of DNS threat protection. Valid values are:</p>
630
+ * <ul>
631
+ * <li>
632
+ * <p>
633
+ * <code>DGA</code>: Domain generation algorithms detection. DGAs are used by attackers to generate a large number of domains to launch malware attacks.</p>
634
+ * </li>
635
+ * <li>
636
+ * <p>
637
+ * <code>DNS_TUNNELING</code>: DNS tunneling detection. DNS tunneling is used by attackers to exfiltrate data from the client by using the DNS tunnel without making a network connection to the client.</p>
638
+ * </li>
639
+ * <li>
640
+ * <p>
641
+ * <code>DICT_DGA</code>: Dictionary-based domain generation algorithms detection. Dictionary DGAs use wordlists to generate domains that appear more legitimate, making them harder to detect than traditional DGAs.</p>
642
+ * </li>
643
+ * </ul>
631
644
  * @public
632
645
  */
633
- CreatorRequestId?: string | undefined;
646
+ Value: string | undefined;
634
647
  /**
635
- * <p>A name that lets you identify the domain list to manage and use it.</p>
648
+ * <p>The confidence threshold for DNS Firewall Advanced. You must provide this value when you create or update a DNS Firewall Advanced rule. The confidence level values mean:</p>
649
+ * <ul>
650
+ * <li>
651
+ * <p>
652
+ * <code>LOW</code>: Provides the highest detection rate for threats, but also increases false positives.</p>
653
+ * </li>
654
+ * <li>
655
+ * <p>
656
+ * <code>MEDIUM</code>: Provides a balance between detecting threats and false positives.</p>
657
+ * </li>
658
+ * <li>
659
+ * <p>
660
+ * <code>HIGH</code>: Detects only the most well corroborated threats with a low rate of false positives.</p>
661
+ * </li>
662
+ * </ul>
636
663
  * @public
637
664
  */
638
- Name: string | undefined;
665
+ ConfidenceThreshold: ConfidenceThreshold | undefined;
666
+ }
667
+ /**
668
+ * <p>The configuration for a content category-based filtering rule. This specifies which content category to use for DNS query evaluation.</p>
669
+ * @public
670
+ */
671
+ export interface FirewallAdvancedContentCategoryConfig {
639
672
  /**
640
- * <p>A list of the tag keys and values that you want to associate with the domain list. </p>
673
+ * <p>The content category identifier. To retrieve the list of available content categories, call <a>ListFirewallRuleTypes</a> with <code>RuleType</code> set to <code>FirewallAdvancedContentCategory</code>.</p>
641
674
  * @public
642
675
  */
643
- Tags?: Tag[] | undefined;
676
+ Category: string | undefined;
644
677
  }
645
678
  /**
646
- * <p>High-level information about a list of firewall domains for use in a <a>FirewallRule</a>. This is returned by <a>GetFirewallDomainList</a>.</p>
647
- * <p>To retrieve the domains that are defined for this domain list, call <a>ListFirewallDomains</a>.</p>
679
+ * <p>The configuration for a threat category-based filtering rule. This specifies which threat category to use for DNS query evaluation.</p>
648
680
  * @public
649
681
  */
650
- export interface FirewallDomainList {
682
+ export interface FirewallAdvancedThreatCategoryConfig {
651
683
  /**
652
- * <p>The ID of the domain list. </p>
684
+ * <p>The threat category identifier. To retrieve the list of available threat categories, call <a>ListFirewallRuleTypes</a> with <code>RuleType</code> set to <code>FirewallAdvancedThreatCategory</code>.</p>
653
685
  * @public
654
686
  */
655
- Id?: string | undefined;
687
+ Category: string | undefined;
688
+ }
689
+ /**
690
+ * <p>The configuration for a rule type in a DNS Firewall rule. This is a union type — exactly one member should be set.</p>
691
+ * @public
692
+ */
693
+ export interface FirewallRuleType {
656
694
  /**
657
- * <p>The Amazon Resource Name (ARN) of the firewall domain list.</p>
695
+ * <p>The configuration for a content category-based filtering rule.</p>
658
696
  * @public
659
697
  */
660
- Arn?: string | undefined;
698
+ FirewallAdvancedContentCategory?: FirewallAdvancedContentCategoryConfig | undefined;
661
699
  /**
662
- * <p>The name of the domain list. </p>
700
+ * <p>The configuration for a threat category-based filtering rule.</p>
663
701
  * @public
664
702
  */
665
- Name?: string | undefined;
703
+ FirewallAdvancedThreatCategory?: FirewallAdvancedThreatCategoryConfig | undefined;
666
704
  /**
667
- * <p>The number of domain names that are specified in the domain list.</p>
705
+ * <p>The configuration for a DNS threat protection rule type, such as DGA or DNS tunneling detection.</p>
668
706
  * @public
669
707
  */
670
- DomainCount?: number | undefined;
708
+ DnsThreatProtection?: DnsThreatProtectionRuleTypeConfig | undefined;
709
+ }
710
+ /**
711
+ * <p>The details for creating a single firewall rule in a batch operation.</p>
712
+ * @public
713
+ */
714
+ export interface CreateFirewallRuleEntry {
671
715
  /**
672
- * <p>The status of the domain list. </p>
716
+ * <p>A unique string that identifies the request and that allows you to retry failed requests without the risk of running the operation twice. <code>CreatorRequestId</code> can be any unique string, for example, a date/time stamp.</p>
673
717
  * @public
674
718
  */
675
- Status?: FirewallDomainListStatus | undefined;
719
+ CreatorRequestId: string | undefined;
676
720
  /**
677
- * <p>Additional information about the status of the list, if available.</p>
721
+ * <p>The unique identifier of the firewall rule group where you want to create the rule.</p>
678
722
  * @public
679
723
  */
680
- StatusMessage?: string | undefined;
724
+ FirewallRuleGroupId: string | undefined;
681
725
  /**
682
- * <p>The owner of the list, used only for lists that are not managed by you. For example, the managed domain list <code>AWSManagedDomainsMalwareDomainList</code> has the managed owner name <code>Route 53 Resolver DNS Firewall</code>.</p>
726
+ * <p>The ID of the domain list that you want to use in the rule. This setting is mutually exclusive with <code>DnsThreatProtection</code> and <code>FirewallRuleType</code>.</p>
683
727
  * @public
684
728
  */
685
- ManagedOwnerName?: string | undefined;
729
+ FirewallDomainListId?: string | undefined;
686
730
  /**
687
- * <p>A unique string defined by you to identify the request. This allows you to retry failed
688
- * requests without the risk of running the operation twice. This can be any unique string,
689
- * for example, a timestamp. </p>
731
+ * <p>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.</p>
690
732
  * @public
691
733
  */
692
- CreatorRequestId?: string | undefined;
734
+ Priority: number | undefined;
693
735
  /**
694
- * <p>The date and time that the domain list was created, in Unix time format and Coordinated Universal Time (UTC). </p>
736
+ * <p>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:</p>
737
+ * <ul>
738
+ * <li>
739
+ * <p>
740
+ * <code>ALLOW</code> - Permit the request to go through. Not available for DNS Firewall Advanced rules.</p>
741
+ * </li>
742
+ * <li>
743
+ * <p>
744
+ * <code>ALERT</code> - Permit the request and send metrics and logs to CloudWatch.</p>
745
+ * </li>
746
+ * <li>
747
+ * <p>
748
+ * <code>BLOCK</code> - Disallow the request. This option requires additional details in the rule's <code>BlockResponse</code>.</p>
749
+ * </li>
750
+ * </ul>
695
751
  * @public
696
752
  */
697
- CreationTime?: string | undefined;
753
+ Action: Action | undefined;
698
754
  /**
699
- * <p>The date and time that the domain list was last modified, in Unix time format and Coordinated Universal Time (UTC). </p>
755
+ * <p>The way that you want DNS Firewall to block the request, used with the rule action setting <code>BLOCK</code>.</p>
756
+ * <ul>
757
+ * <li>
758
+ * <p>
759
+ * <code>NODATA</code> - Respond indicating that the query was successful, but no response is available for it.</p>
760
+ * </li>
761
+ * <li>
762
+ * <p>
763
+ * <code>NXDOMAIN</code> - Respond indicating that the domain name that's in the query doesn't exist.</p>
764
+ * </li>
765
+ * <li>
766
+ * <p>
767
+ * <code>OVERRIDE</code> - Provide a custom override in the response. This option requires custom handling details in the rule's <code>BlockOverride*</code> settings.</p>
768
+ * </li>
769
+ * </ul>
700
770
  * @public
701
771
  */
702
- ModificationTime?: string | undefined;
772
+ BlockResponse?: BlockResponse | undefined;
773
+ /**
774
+ * <p>The custom DNS record to send back in response to the query. Used for the rule action <code>BLOCK</code> with a <code>BlockResponse</code> setting of <code>OVERRIDE</code>.</p>
775
+ * @public
776
+ */
777
+ BlockOverrideDomain?: string | undefined;
778
+ /**
779
+ * <p>The DNS record's type. This determines the format of the record value that you provided in <code>BlockOverrideDomain</code>. Used for the rule action <code>BLOCK</code> with a <code>BlockResponse</code> setting of <code>OVERRIDE</code>.</p>
780
+ * @public
781
+ */
782
+ BlockOverrideDnsType?: BlockOverrideDnsType | undefined;
783
+ /**
784
+ * <p>The recommended amount of time, in seconds, for the DNS resolver or web browser to cache the provided override record. Used for the rule action <code>BLOCK</code> with a <code>BlockResponse</code> setting of <code>OVERRIDE</code>.</p>
785
+ * <p>This setting is required if the <code>BlockResponse</code> setting is <code>OVERRIDE</code>.</p>
786
+ * @public
787
+ */
788
+ BlockOverrideTtl?: number | undefined;
789
+ /**
790
+ * <p>A name that lets you identify the rule in the rule group.</p>
791
+ * @public
792
+ */
793
+ Name: string | undefined;
794
+ /**
795
+ * <p>How you want the rule to evaluate DNS redirection in the DNS redirection chain, such as CNAME or DNAME.</p>
796
+ * <p>
797
+ * <code>INSPECT_REDIRECTION_DOMAIN</code>: (Default) inspects all domains in the redirection chain. The individual domains in the redirection chain must be added to the domain list.</p>
798
+ * <p>
799
+ * <code>TRUST_REDIRECTION_DOMAIN</code>: Inspects only the first domain in the redirection chain. You don't need to add the subsequent domains in the redirection list to the domain list.</p>
800
+ * @public
801
+ */
802
+ FirewallDomainRedirectionAction?: FirewallDomainRedirectionAction | undefined;
803
+ /**
804
+ * <p>The DNS query type you want the rule to evaluate. Allowed values are:</p>
805
+ * <ul>
806
+ * <li>
807
+ * <p>A: Returns an IPv4 address.</p>
808
+ * </li>
809
+ * <li>
810
+ * <p>AAAA: Returns an IPv6 address.</p>
811
+ * </li>
812
+ * <li>
813
+ * <p>CAA: Restricts CAs that can create SSL/TLS certifications for the domain.</p>
814
+ * </li>
815
+ * <li>
816
+ * <p>CNAME: Returns another domain name.</p>
817
+ * </li>
818
+ * <li>
819
+ * <p>DS: Record that identifies the DNSSEC signing key of a delegated zone.</p>
820
+ * </li>
821
+ * <li>
822
+ * <p>MX: Specifies mail servers.</p>
823
+ * </li>
824
+ * <li>
825
+ * <p>NAPTR: Regular-expression-based rewriting of domain names.</p>
826
+ * </li>
827
+ * <li>
828
+ * <p>NS: Authoritative name servers.</p>
829
+ * </li>
830
+ * <li>
831
+ * <p>PTR: Maps an IP address to a domain name.</p>
832
+ * </li>
833
+ * <li>
834
+ * <p>SOA: Start of authority record for the zone.</p>
835
+ * </li>
836
+ * <li>
837
+ * <p>SPF: Lists the servers authorized to send emails from a domain.</p>
838
+ * </li>
839
+ * <li>
840
+ * <p>SRV: Application specific values that identify servers.</p>
841
+ * </li>
842
+ * <li>
843
+ * <p>TXT: Verifies email senders and application-specific values.</p>
844
+ * </li>
845
+ * <li>
846
+ * <p>A query type you define by using the DNS type ID, for example 28 for AAAA. The values must be defined as TYPENUMBER, where the NUMBER can be 1-65534, for example, TYPE28. For more information, see <a href="https://en.wikipedia.org/wiki/List_of_DNS_record_types">List of DNS record types</a>.</p>
847
+ * </li>
848
+ * </ul>
849
+ * @public
850
+ */
851
+ Qtype?: string | undefined;
852
+ /**
853
+ * <p>The type of the DNS Firewall Advanced rule. This setting is mutually exclusive with <code>FirewallDomainListId</code> and <code>FirewallRuleType</code>. Valid values are:</p>
854
+ * <ul>
855
+ * <li>
856
+ * <p>
857
+ * <code>DGA</code>: Domain generation algorithms detection. DGAs are used by attackers to generate a large number of domains to launch malware attacks.</p>
858
+ * </li>
859
+ * <li>
860
+ * <p>
861
+ * <code>DNS_TUNNELING</code>: DNS tunneling detection. DNS tunneling is used by attackers to exfiltrate data from the client by using the DNS tunnel without making a network connection to the client.</p>
862
+ * </li>
863
+ * <li>
864
+ * <p>
865
+ * <code>DICT_DGA</code>: Dictionary-based domain generation algorithms detection. Dictionary DGAs use wordlists to generate domains that appear more legitimate, making them harder to detect than traditional DGAs.</p>
866
+ * </li>
867
+ * </ul>
868
+ * @public
869
+ */
870
+ DnsThreatProtection?: DnsThreatProtection | undefined;
871
+ /**
872
+ * <p>The confidence threshold for DNS Firewall Advanced. You must provide this value when you create or update a DNS Firewall Advanced rule. The confidence level values mean:</p>
873
+ * <ul>
874
+ * <li>
875
+ * <p>
876
+ * <code>LOW</code>: Provides the highest detection rate for threats, but also increases false positives.</p>
877
+ * </li>
878
+ * <li>
879
+ * <p>
880
+ * <code>MEDIUM</code>: Provides a balance between detecting threats and false positives.</p>
881
+ * </li>
882
+ * <li>
883
+ * <p>
884
+ * <code>HIGH</code>: Detects only the most well corroborated threats with a low rate of false positives.</p>
885
+ * </li>
886
+ * </ul>
887
+ * @public
888
+ */
889
+ ConfidenceThreshold?: ConfidenceThreshold | undefined;
890
+ /**
891
+ * <p>The rule type configuration for the firewall rule. This setting is mutually exclusive with the top-level <code>FirewallDomainListId</code> and <code>DnsThreatProtection</code> fields.</p>
892
+ * @public
893
+ */
894
+ FirewallRuleType?: FirewallRuleType | undefined;
703
895
  }
704
896
  /**
705
897
  * @public
706
898
  */
707
- export interface CreateFirewallDomainListResponse {
899
+ export interface BatchCreateFirewallRuleRequest {
708
900
  /**
709
- * <p>The domain list that you just created.</p>
901
+ * <p>The list of firewall rules to create.</p>
710
902
  * @public
711
903
  */
712
- FirewallDomainList?: FirewallDomainList | undefined;
904
+ CreateFirewallRuleEntries: CreateFirewallRuleEntry[] | undefined;
713
905
  }
714
906
  /**
907
+ * <p>A single firewall rule in a rule group.</p>
715
908
  * @public
716
909
  */
717
- export interface CreateFirewallRuleRequest {
910
+ export interface FirewallRule {
718
911
  /**
719
- * <p>A unique string that identifies the request and that allows you to retry failed requests
720
- * without the risk of running the operation twice. <code>CreatorRequestId</code> can be
721
- * any unique string, for example, a date/time stamp. </p>
912
+ * <p>The unique identifier of the Firewall rule group of the rule. </p>
722
913
  * @public
723
914
  */
724
- CreatorRequestId?: string | undefined;
915
+ FirewallRuleGroupId?: string | undefined;
725
916
  /**
726
- * <p>The unique identifier of the firewall rule group where you want to create the rule. </p>
917
+ * <p>The ID of the domain list that's used in the rule. </p>
727
918
  * @public
728
919
  */
729
- FirewallRuleGroupId: string | undefined;
920
+ FirewallDomainListId?: string | undefined;
730
921
  /**
731
- * <p>The ID of the domain list that you want to use in the rule. Can't be used together with <code>DnsThreatProtecton</code>.</p>
922
+ * <p>
923
+ * ID of the DNS Firewall Advanced rule.
924
+ * </p>
732
925
  * @public
733
926
  */
734
- FirewallDomainListId?: string | undefined;
927
+ FirewallThreatProtectionId?: string | undefined;
735
928
  /**
736
- * <p>The setting that determines the processing order of the rule in the rule group. DNS Firewall
737
- * processes the rules in a rule group by order of priority, starting from the lowest setting.</p>
738
- * <p>You must specify a unique priority for each rule in a rule group.
739
- * To make it easier to insert rules later, leave space between the numbers, for example, use 100, 200, and so on. You
740
- * can change the priority setting for the rules in a rule group at any time.</p>
929
+ * <p>The name of the rule. </p>
741
930
  * @public
742
931
  */
743
- Priority: number | undefined;
932
+ Name?: string | undefined;
933
+ /**
934
+ * <p>The priority of the rule in the rule group. This value must be unique within the rule group. DNS Firewall processes the rules in a rule group by order of priority, starting from the lowest setting.</p>
935
+ * @public
936
+ */
937
+ Priority?: number | undefined;
744
938
  /**
745
939
  * <p>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:</p>
746
940
  * <ul>
@@ -750,19 +944,18 @@ export interface CreateFirewallRuleRequest {
750
944
  * </li>
751
945
  * <li>
752
946
  * <p>
753
- * <code>ALERT</code> - Permit the request and send metrics and logs to Cloud Watch.</p>
947
+ * <code>ALERT</code> - Permit the request to go through but send an alert to the logs.</p>
754
948
  * </li>
755
949
  * <li>
756
950
  * <p>
757
- * <code>BLOCK</code> - Disallow the request. This option requires additional details in the rule's <code>BlockResponse</code>. </p>
951
+ * <code>BLOCK</code> - Disallow the request. If this is specified, additional handling details are provided in the rule's <code>BlockResponse</code> setting. </p>
758
952
  * </li>
759
953
  * </ul>
760
954
  * @public
761
955
  */
762
- Action: Action | undefined;
956
+ Action?: Action | undefined;
763
957
  /**
764
- * <p>The way that you want DNS Firewall to block the request, used with the rule action
765
- * setting <code>BLOCK</code>. </p>
958
+ * <p>The way that you want DNS Firewall to block the request. Used for the rule action setting <code>BLOCK</code>.</p>
766
959
  * <ul>
767
960
  * <li>
768
961
  * <p>
@@ -777,164 +970,627 @@ export interface CreateFirewallRuleRequest {
777
970
  * <code>OVERRIDE</code> - Provide a custom override in the response. This option requires custom handling details in the rule's <code>BlockOverride*</code> settings. </p>
778
971
  * </li>
779
972
  * </ul>
780
- * <p>This setting is required if the rule action setting is <code>BLOCK</code>.</p>
781
973
  * @public
782
974
  */
783
- BlockResponse?: BlockResponse | undefined;
975
+ BlockResponse?: BlockResponse | undefined;
976
+ /**
977
+ * <p>The custom DNS record to send back in response to the query. Used for the rule action <code>BLOCK</code> with a <code>BlockResponse</code> setting of <code>OVERRIDE</code>.</p>
978
+ * @public
979
+ */
980
+ BlockOverrideDomain?: string | undefined;
981
+ /**
982
+ * <p>The DNS record's type. This determines the format of the record value that you provided in <code>BlockOverrideDomain</code>. Used for the rule action <code>BLOCK</code> with a <code>BlockResponse</code> setting of <code>OVERRIDE</code>.</p>
983
+ * @public
984
+ */
985
+ BlockOverrideDnsType?: BlockOverrideDnsType | undefined;
986
+ /**
987
+ * <p>The recommended amount of time, in seconds, for the DNS resolver or web browser to cache the provided override record. Used for the rule action <code>BLOCK</code> with a <code>BlockResponse</code> setting of <code>OVERRIDE</code>.</p>
988
+ * @public
989
+ */
990
+ BlockOverrideTtl?: number | undefined;
991
+ /**
992
+ * <p>A unique string defined by you to identify the request. This allows you to retry failed requests
993
+ * without the risk of executing the operation twice. This can be any unique string, for example, a timestamp. </p>
994
+ * @public
995
+ */
996
+ CreatorRequestId?: string | undefined;
997
+ /**
998
+ * <p>The date and time that the rule was created, in Unix time format and Coordinated Universal Time (UTC). </p>
999
+ * @public
1000
+ */
1001
+ CreationTime?: string | undefined;
1002
+ /**
1003
+ * <p>The date and time that the rule was last modified, in Unix time format and Coordinated Universal Time (UTC).</p>
1004
+ * @public
1005
+ */
1006
+ ModificationTime?: string | undefined;
1007
+ /**
1008
+ * <p>
1009
+ * How you want the the rule to evaluate DNS redirection in the DNS redirection chain, such as CNAME or DNAME.
1010
+ * </p>
1011
+ * <p>
1012
+ * <code>INSPECT_REDIRECTION_DOMAIN</code>: (Default) inspects all domains in the redirection chain. The individual domains in the redirection chain must be
1013
+ * added to the domain list.</p>
1014
+ * <p>
1015
+ * <code>TRUST_REDIRECTION_DOMAIN</code>: Inspects only the first domain in the redirection chain. You don't need to add the subsequent domains in the domain in the redirection list to
1016
+ * the domain list.</p>
1017
+ * @public
1018
+ */
1019
+ FirewallDomainRedirectionAction?: FirewallDomainRedirectionAction | undefined;
1020
+ /**
1021
+ * <p>
1022
+ * The DNS query type you want the rule to evaluate. Allowed values are;
1023
+ * </p>
1024
+ * <ul>
1025
+ * <li>
1026
+ * <p>
1027
+ * A: Returns an IPv4 address.</p>
1028
+ * </li>
1029
+ * <li>
1030
+ * <p>AAAA: Returns an Ipv6 address.</p>
1031
+ * </li>
1032
+ * <li>
1033
+ * <p>CAA: Restricts CAs that can create SSL/TLS certifications for the domain.</p>
1034
+ * </li>
1035
+ * <li>
1036
+ * <p>CNAME: Returns another domain name.</p>
1037
+ * </li>
1038
+ * <li>
1039
+ * <p>DS: Record that identifies the DNSSEC signing key of a delegated zone.</p>
1040
+ * </li>
1041
+ * <li>
1042
+ * <p>MX: Specifies mail servers.</p>
1043
+ * </li>
1044
+ * <li>
1045
+ * <p>NAPTR: Regular-expression-based rewriting of domain names.</p>
1046
+ * </li>
1047
+ * <li>
1048
+ * <p>NS: Authoritative name servers.</p>
1049
+ * </li>
1050
+ * <li>
1051
+ * <p>PTR: Maps an IP address to a domain name.</p>
1052
+ * </li>
1053
+ * <li>
1054
+ * <p>SOA: Start of authority record for the zone.</p>
1055
+ * </li>
1056
+ * <li>
1057
+ * <p>SPF: Lists the servers authorized to send emails from a domain.</p>
1058
+ * </li>
1059
+ * <li>
1060
+ * <p>SRV: Application specific values that identify servers.</p>
1061
+ * </li>
1062
+ * <li>
1063
+ * <p>TXT: Verifies email senders and application-specific values.</p>
1064
+ * </li>
1065
+ * <li>
1066
+ * <p>A query type you define by using the DNS type ID, for example 28 for AAAA. The values must be
1067
+ * defined as TYPENUMBER, where the
1068
+ * NUMBER can be 1-65534, for
1069
+ * example, TYPE28. For more information, see
1070
+ * <a href="https://en.wikipedia.org/wiki/List_of_DNS_record_types">List of DNS record types</a>.</p>
1071
+ * </li>
1072
+ * </ul>
1073
+ * @public
1074
+ */
1075
+ Qtype?: string | undefined;
1076
+ /**
1077
+ * <p>
1078
+ * The type of the DNS Firewall Advanced rule. Valid values are:
1079
+ * </p>
1080
+ * <ul>
1081
+ * <li>
1082
+ * <p>
1083
+ * <code>DGA</code>: Domain generation algorithms detection. DGAs are used by attackers to generate a large number of domains
1084
+ * to to launch malware attacks.</p>
1085
+ * </li>
1086
+ * <li>
1087
+ * <p>
1088
+ * <code>DNS_TUNNELING</code>: DNS tunneling detection. DNS tunneling is used by attackers to exfiltrate data from the client by using the DNS tunnel without
1089
+ * making a network connection to the client.</p>
1090
+ * </li>
1091
+ * </ul>
1092
+ * @public
1093
+ */
1094
+ DnsThreatProtection?: DnsThreatProtection | undefined;
1095
+ /**
1096
+ * <p>
1097
+ * The confidence threshold for DNS Firewall Advanced. You must provide this value when you create a DNS Firewall Advanced rule. The confidence
1098
+ * level values mean:
1099
+ * </p>
1100
+ * <ul>
1101
+ * <li>
1102
+ * <p>
1103
+ * <code>LOW</code>: Provides the highest detection rate for threats, but also increases false positives.</p>
1104
+ * </li>
1105
+ * <li>
1106
+ * <p>
1107
+ * <code>MEDIUM</code>: Provides a balance between detecting threats and false positives.</p>
1108
+ * </li>
1109
+ * <li>
1110
+ * <p>
1111
+ * <code>HIGH</code>: Detects only the most well corroborated threats with a low rate of false positives. </p>
1112
+ * </li>
1113
+ * </ul>
1114
+ * @public
1115
+ */
1116
+ ConfidenceThreshold?: ConfidenceThreshold | undefined;
1117
+ /**
1118
+ * <p>The rule type configuration for the firewall rule. Exactly one member of this union should be set.</p>
1119
+ * @public
1120
+ */
1121
+ FirewallRuleType?: FirewallRuleType | undefined;
1122
+ }
1123
+ /**
1124
+ * <p>An error that occurred while creating a firewall rule in a batch operation.</p>
1125
+ * @public
1126
+ */
1127
+ export interface BatchCreateFirewallRuleError {
1128
+ /**
1129
+ * <p>The firewall rule entry that caused the error.</p>
1130
+ * @public
1131
+ */
1132
+ FirewallRule?: CreateFirewallRuleEntry | undefined;
1133
+ /**
1134
+ * <p>The error code for the failure.</p>
1135
+ * @public
1136
+ */
1137
+ Code?: string | undefined;
1138
+ /**
1139
+ * <p>A message that provides details about the error.</p>
1140
+ * @public
1141
+ */
1142
+ Message?: string | undefined;
1143
+ }
1144
+ /**
1145
+ * @public
1146
+ */
1147
+ export interface BatchCreateFirewallRuleResponse {
1148
+ /**
1149
+ * <p>The firewall rules that were successfully created by the request.</p>
1150
+ * @public
1151
+ */
1152
+ CreatedFirewallRules?: FirewallRule[] | undefined;
1153
+ /**
1154
+ * <p>A list of errors that occurred while creating the firewall rules.</p>
1155
+ * @public
1156
+ */
1157
+ CreateErrors?: BatchCreateFirewallRuleError[] | undefined;
1158
+ }
1159
+ /**
1160
+ * <p>The details for deleting a single firewall rule in a batch operation.</p>
1161
+ * @public
1162
+ */
1163
+ export interface DeleteFirewallRuleEntry {
1164
+ /**
1165
+ * <p>The unique identifier of the firewall rule group for the rule.</p>
1166
+ * @public
1167
+ */
1168
+ FirewallRuleGroupId: string | undefined;
1169
+ /**
1170
+ * <p>The ID of the domain list that's used in the rule.</p>
1171
+ * @public
1172
+ */
1173
+ FirewallDomainListId?: string | undefined;
1174
+ /**
1175
+ * <p>The ID of the DNS Firewall Advanced rule.</p>
1176
+ * @public
1177
+ */
1178
+ FirewallThreatProtectionId?: string | undefined;
1179
+ /**
1180
+ * <p>The DNS query type that the rule evaluates.</p>
1181
+ * @public
1182
+ */
1183
+ Qtype?: string | undefined;
1184
+ }
1185
+ /**
1186
+ * @public
1187
+ */
1188
+ export interface BatchDeleteFirewallRuleRequest {
1189
+ /**
1190
+ * <p>The list of firewall rules to delete.</p>
1191
+ * @public
1192
+ */
1193
+ DeleteFirewallRuleEntries: DeleteFirewallRuleEntry[] | undefined;
1194
+ }
1195
+ /**
1196
+ * <p>An error that occurred while deleting a firewall rule in a batch operation.</p>
1197
+ * @public
1198
+ */
1199
+ export interface BatchDeleteFirewallRuleError {
1200
+ /**
1201
+ * <p>The firewall rule entry that caused the error.</p>
1202
+ * @public
1203
+ */
1204
+ FirewallRule?: DeleteFirewallRuleEntry | undefined;
1205
+ /**
1206
+ * <p>The error code for the failure.</p>
1207
+ * @public
1208
+ */
1209
+ Code?: string | undefined;
1210
+ /**
1211
+ * <p>A message that provides details about the error.</p>
1212
+ * @public
1213
+ */
1214
+ Message?: string | undefined;
1215
+ }
1216
+ /**
1217
+ * @public
1218
+ */
1219
+ export interface BatchDeleteFirewallRuleResponse {
1220
+ /**
1221
+ * <p>The firewall rules that were successfully deleted by the request.</p>
1222
+ * @public
1223
+ */
1224
+ DeletedFirewallRules?: FirewallRule[] | undefined;
1225
+ /**
1226
+ * <p>A list of errors that occurred while deleting the firewall rules.</p>
1227
+ * @public
1228
+ */
1229
+ DeleteErrors?: BatchDeleteFirewallRuleError[] | undefined;
1230
+ }
1231
+ /**
1232
+ * <p>The details for updating a single firewall rule in a batch operation.</p>
1233
+ * @public
1234
+ */
1235
+ export interface UpdateFirewallRuleEntry {
1236
+ /**
1237
+ * <p>The unique identifier of the firewall rule group for the rule.</p>
1238
+ * @public
1239
+ */
1240
+ FirewallRuleGroupId: string | undefined;
1241
+ /**
1242
+ * <p>The ID of the domain list to use in the rule. This setting is mutually exclusive with <code>DnsThreatProtection</code> and <code>FirewallRuleType</code>.</p>
1243
+ * @public
1244
+ */
1245
+ FirewallDomainListId?: string | undefined;
1246
+ /**
1247
+ * <p>The ID of the DNS Firewall Advanced rule.</p>
1248
+ * @public
1249
+ */
1250
+ FirewallThreatProtectionId?: string | undefined;
1251
+ /**
1252
+ * <p>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.</p>
1253
+ * @public
1254
+ */
1255
+ Priority?: number | undefined;
1256
+ /**
1257
+ * <p>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:</p>
1258
+ * <ul>
1259
+ * <li>
1260
+ * <p>
1261
+ * <code>ALLOW</code> - Permit the request to go through. Not available for DNS Firewall Advanced rules.</p>
1262
+ * </li>
1263
+ * <li>
1264
+ * <p>
1265
+ * <code>ALERT</code> - Permit the request and send metrics and logs to CloudWatch.</p>
1266
+ * </li>
1267
+ * <li>
1268
+ * <p>
1269
+ * <code>BLOCK</code> - Disallow the request. This option requires additional details in the rule's <code>BlockResponse</code>.</p>
1270
+ * </li>
1271
+ * </ul>
1272
+ * @public
1273
+ */
1274
+ Action?: Action | undefined;
1275
+ /**
1276
+ * <p>The way that you want DNS Firewall to block the request, used with the rule action setting <code>BLOCK</code>.</p>
1277
+ * <ul>
1278
+ * <li>
1279
+ * <p>
1280
+ * <code>NODATA</code> - Respond indicating that the query was successful, but no response is available for it.</p>
1281
+ * </li>
1282
+ * <li>
1283
+ * <p>
1284
+ * <code>NXDOMAIN</code> - Respond indicating that the domain name that's in the query doesn't exist.</p>
1285
+ * </li>
1286
+ * <li>
1287
+ * <p>
1288
+ * <code>OVERRIDE</code> - Provide a custom override in the response. This option requires custom handling details in the rule's <code>BlockOverride*</code> settings.</p>
1289
+ * </li>
1290
+ * </ul>
1291
+ * @public
1292
+ */
1293
+ BlockResponse?: BlockResponse | undefined;
1294
+ /**
1295
+ * <p>The custom DNS record to send back in response to the query. Used for the rule action <code>BLOCK</code> with a <code>BlockResponse</code> setting of <code>OVERRIDE</code>.</p>
1296
+ * @public
1297
+ */
1298
+ BlockOverrideDomain?: string | undefined;
1299
+ /**
1300
+ * <p>The DNS record's type. This determines the format of the record value that you provided in <code>BlockOverrideDomain</code>. Used for the rule action <code>BLOCK</code> with a <code>BlockResponse</code> setting of <code>OVERRIDE</code>.</p>
1301
+ * @public
1302
+ */
1303
+ BlockOverrideDnsType?: BlockOverrideDnsType | undefined;
1304
+ /**
1305
+ * <p>The recommended amount of time, in seconds, for the DNS resolver or web browser to cache the provided override record. Used for the rule action <code>BLOCK</code> with a <code>BlockResponse</code> setting of <code>OVERRIDE</code>.</p>
1306
+ * <p>This setting is required if the <code>BlockResponse</code> setting is <code>OVERRIDE</code>.</p>
1307
+ * @public
1308
+ */
1309
+ BlockOverrideTtl?: number | undefined;
1310
+ /**
1311
+ * <p>The name of the rule.</p>
1312
+ * @public
1313
+ */
1314
+ Name?: string | undefined;
1315
+ /**
1316
+ * <p>How you want the rule to evaluate DNS redirection in the DNS redirection chain, such as CNAME or DNAME.</p>
1317
+ * <p>
1318
+ * <code>INSPECT_REDIRECTION_DOMAIN</code>: (Default) inspects all domains in the redirection chain. The individual domains in the redirection chain must be added to the domain list.</p>
1319
+ * <p>
1320
+ * <code>TRUST_REDIRECTION_DOMAIN</code>: Inspects only the first domain in the redirection chain. You don't need to add the subsequent domains in the redirection list to the domain list.</p>
1321
+ * @public
1322
+ */
1323
+ FirewallDomainRedirectionAction?: FirewallDomainRedirectionAction | undefined;
1324
+ /**
1325
+ * <p>The DNS query type you want the rule to evaluate. Allowed values are:</p>
1326
+ * <ul>
1327
+ * <li>
1328
+ * <p>A: Returns an IPv4 address.</p>
1329
+ * </li>
1330
+ * <li>
1331
+ * <p>AAAA: Returns an IPv6 address.</p>
1332
+ * </li>
1333
+ * <li>
1334
+ * <p>CAA: Restricts CAs that can create SSL/TLS certifications for the domain.</p>
1335
+ * </li>
1336
+ * <li>
1337
+ * <p>CNAME: Returns another domain name.</p>
1338
+ * </li>
1339
+ * <li>
1340
+ * <p>DS: Record that identifies the DNSSEC signing key of a delegated zone.</p>
1341
+ * </li>
1342
+ * <li>
1343
+ * <p>MX: Specifies mail servers.</p>
1344
+ * </li>
1345
+ * <li>
1346
+ * <p>NAPTR: Regular-expression-based rewriting of domain names.</p>
1347
+ * </li>
1348
+ * <li>
1349
+ * <p>NS: Authoritative name servers.</p>
1350
+ * </li>
1351
+ * <li>
1352
+ * <p>PTR: Maps an IP address to a domain name.</p>
1353
+ * </li>
1354
+ * <li>
1355
+ * <p>SOA: Start of authority record for the zone.</p>
1356
+ * </li>
1357
+ * <li>
1358
+ * <p>SPF: Lists the servers authorized to send emails from a domain.</p>
1359
+ * </li>
1360
+ * <li>
1361
+ * <p>SRV: Application specific values that identify servers.</p>
1362
+ * </li>
1363
+ * <li>
1364
+ * <p>TXT: Verifies email senders and application-specific values.</p>
1365
+ * </li>
1366
+ * <li>
1367
+ * <p>A query type you define by using the DNS type ID, for example 28 for AAAA. The values must be defined as TYPENUMBER, where the NUMBER can be 1-65534, for example, TYPE28. For more information, see <a href="https://en.wikipedia.org/wiki/List_of_DNS_record_types">List of DNS record types</a>.</p>
1368
+ * </li>
1369
+ * </ul>
1370
+ * @public
1371
+ */
1372
+ Qtype?: string | undefined;
1373
+ /**
1374
+ * <p>The type of the DNS Firewall Advanced rule. This setting is mutually exclusive with <code>FirewallDomainListId</code> and <code>FirewallRuleType</code>. Valid values are:</p>
1375
+ * <ul>
1376
+ * <li>
1377
+ * <p>
1378
+ * <code>DGA</code>: Domain generation algorithms detection. DGAs are used by attackers to generate a large number of domains to launch malware attacks.</p>
1379
+ * </li>
1380
+ * <li>
1381
+ * <p>
1382
+ * <code>DNS_TUNNELING</code>: DNS tunneling detection. DNS tunneling is used by attackers to exfiltrate data from the client by using the DNS tunnel without making a network connection to the client.</p>
1383
+ * </li>
1384
+ * <li>
1385
+ * <p>
1386
+ * <code>DICT_DGA</code>: Dictionary-based domain generation algorithms detection. Dictionary DGAs use wordlists to generate domains that appear more legitimate, making them harder to detect than traditional DGAs.</p>
1387
+ * </li>
1388
+ * </ul>
1389
+ * @public
1390
+ */
1391
+ DnsThreatProtection?: DnsThreatProtection | undefined;
1392
+ /**
1393
+ * <p>The confidence threshold for DNS Firewall Advanced. You must provide this value when you create or update a DNS Firewall Advanced rule. The confidence level values mean:</p>
1394
+ * <ul>
1395
+ * <li>
1396
+ * <p>
1397
+ * <code>LOW</code>: Provides the highest detection rate for threats, but also increases false positives.</p>
1398
+ * </li>
1399
+ * <li>
1400
+ * <p>
1401
+ * <code>MEDIUM</code>: Provides a balance between detecting threats and false positives.</p>
1402
+ * </li>
1403
+ * <li>
1404
+ * <p>
1405
+ * <code>HIGH</code>: Detects only the most well corroborated threats with a low rate of false positives.</p>
1406
+ * </li>
1407
+ * </ul>
1408
+ * @public
1409
+ */
1410
+ ConfidenceThreshold?: ConfidenceThreshold | undefined;
1411
+ /**
1412
+ * <p>The rule type configuration for the firewall rule. This setting is mutually exclusive with the top-level <code>FirewallDomainListId</code> and <code>DnsThreatProtection</code> fields.</p>
1413
+ * @public
1414
+ */
1415
+ FirewallRuleType?: FirewallRuleType | undefined;
1416
+ }
1417
+ /**
1418
+ * @public
1419
+ */
1420
+ export interface BatchUpdateFirewallRuleRequest {
1421
+ /**
1422
+ * <p>The list of firewall rules to update.</p>
1423
+ * @public
1424
+ */
1425
+ UpdateFirewallRuleEntries: UpdateFirewallRuleEntry[] | undefined;
1426
+ }
1427
+ /**
1428
+ * <p>An error that occurred while updating a firewall rule in a batch operation.</p>
1429
+ * @public
1430
+ */
1431
+ export interface BatchUpdateFirewallRuleError {
1432
+ /**
1433
+ * <p>The firewall rule entry that caused the error.</p>
1434
+ * @public
1435
+ */
1436
+ FirewallRule?: UpdateFirewallRuleEntry | undefined;
1437
+ /**
1438
+ * <p>The error code for the failure.</p>
1439
+ * @public
1440
+ */
1441
+ Code?: string | undefined;
1442
+ /**
1443
+ * <p>A message that provides details about the error.</p>
1444
+ * @public
1445
+ */
1446
+ Message?: string | undefined;
1447
+ }
1448
+ /**
1449
+ * @public
1450
+ */
1451
+ export interface BatchUpdateFirewallRuleResponse {
1452
+ /**
1453
+ * <p>The firewall rules that were successfully updated by the request.</p>
1454
+ * @public
1455
+ */
1456
+ UpdatedFirewallRules?: FirewallRule[] | undefined;
1457
+ /**
1458
+ * <p>A list of errors that occurred while updating the firewall rules.</p>
1459
+ * @public
1460
+ */
1461
+ UpdateErrors?: BatchUpdateFirewallRuleError[] | undefined;
1462
+ }
1463
+ /**
1464
+ * @public
1465
+ */
1466
+ export interface CreateFirewallDomainListRequest {
1467
+ /**
1468
+ * <p>A unique string that identifies the request and that allows you to retry failed requests
1469
+ * without the risk of running the operation twice. <code>CreatorRequestId</code> can be
1470
+ * any unique string, for example, a date/time stamp. </p>
1471
+ * @public
1472
+ */
1473
+ CreatorRequestId?: string | undefined;
1474
+ /**
1475
+ * <p>A name that lets you identify the domain list to manage and use it.</p>
1476
+ * @public
1477
+ */
1478
+ Name: string | undefined;
1479
+ /**
1480
+ * <p>A list of the tag keys and values that you want to associate with the domain list. </p>
1481
+ * @public
1482
+ */
1483
+ Tags?: Tag[] | undefined;
1484
+ }
1485
+ /**
1486
+ * <p>High-level information about a list of firewall domains for use in a <a>FirewallRule</a>. This is returned by <a>GetFirewallDomainList</a>.</p>
1487
+ * <p>To retrieve the domains that are defined for this domain list, call <a>ListFirewallDomains</a>.</p>
1488
+ * @public
1489
+ */
1490
+ export interface FirewallDomainList {
1491
+ /**
1492
+ * <p>The ID of the domain list. </p>
1493
+ * @public
1494
+ */
1495
+ Id?: string | undefined;
1496
+ /**
1497
+ * <p>The Amazon Resource Name (ARN) of the firewall domain list.</p>
1498
+ * @public
1499
+ */
1500
+ Arn?: string | undefined;
784
1501
  /**
785
- * <p>The custom DNS record to send back in response to the query. Used for the rule action <code>BLOCK</code> with a <code>BlockResponse</code> setting of <code>OVERRIDE</code>.</p>
786
- * <p>This setting is required if the <code>BlockResponse</code> setting is <code>OVERRIDE</code>.</p>
1502
+ * <p>The name of the domain list. </p>
787
1503
  * @public
788
1504
  */
789
- BlockOverrideDomain?: string | undefined;
1505
+ Name?: string | undefined;
790
1506
  /**
791
- * <p>The DNS record's type. This determines the format of the record value that you provided in <code>BlockOverrideDomain</code>. Used for the rule action <code>BLOCK</code> with a <code>BlockResponse</code> setting of <code>OVERRIDE</code>.</p>
792
- * <p>This setting is required if the <code>BlockResponse</code> setting is <code>OVERRIDE</code>.</p>
1507
+ * <p>The number of domain names that are specified in the domain list.</p>
793
1508
  * @public
794
1509
  */
795
- BlockOverrideDnsType?: BlockOverrideDnsType | undefined;
1510
+ DomainCount?: number | undefined;
796
1511
  /**
797
- * <p>The recommended amount of time, in seconds, for the DNS resolver or web browser to cache the provided override record. Used for the rule action <code>BLOCK</code> with a <code>BlockResponse</code> setting of <code>OVERRIDE</code>.</p>
798
- * <p>This setting is required if the <code>BlockResponse</code> setting is <code>OVERRIDE</code>.</p>
1512
+ * <p>The status of the domain list. </p>
799
1513
  * @public
800
1514
  */
801
- BlockOverrideTtl?: number | undefined;
1515
+ Status?: FirewallDomainListStatus | undefined;
802
1516
  /**
803
- * <p>A name that lets you identify the rule in the rule group.</p>
1517
+ * <p>Additional information about the status of the list, if available.</p>
804
1518
  * @public
805
1519
  */
806
- Name: string | undefined;
1520
+ StatusMessage?: string | undefined;
807
1521
  /**
808
- * <p>
809
- * How you want the the rule to evaluate DNS redirection in the DNS redirection chain, such as CNAME or DNAME.
810
- * </p>
811
- * <p>
812
- * <code>INSPECT_REDIRECTION_DOMAIN</code>: (Default) inspects all domains in the redirection chain. The individual domains in the redirection chain must be
813
- * added to the domain list.</p>
814
- * <p>
815
- * <code>TRUST_REDIRECTION_DOMAIN</code>: Inspects only the first domain in the redirection chain. You don't need to add the subsequent domains in the domain in the redirection list to
816
- * the domain list.</p>
1522
+ * <p>The owner of the list, used only for lists that are not managed by you. For example, the managed domain list <code>AWSManagedDomainsMalwareDomainList</code> has the managed owner name <code>Route 53 Resolver DNS Firewall</code>.</p>
817
1523
  * @public
818
1524
  */
819
- FirewallDomainRedirectionAction?: FirewallDomainRedirectionAction | undefined;
1525
+ ManagedOwnerName?: string | undefined;
820
1526
  /**
821
- * <p>
822
- * The DNS query type you want the rule to evaluate. Allowed values are;
823
- * </p>
824
- * <ul>
825
- * <li>
826
- * <p>
827
- * A: Returns an IPv4 address.</p>
828
- * </li>
829
- * <li>
830
- * <p>AAAA: Returns an Ipv6 address.</p>
831
- * </li>
832
- * <li>
833
- * <p>CAA: Restricts CAs that can create SSL/TLS certifications for the domain.</p>
834
- * </li>
835
- * <li>
836
- * <p>CNAME: Returns another domain name.</p>
837
- * </li>
838
- * <li>
839
- * <p>DS: Record that identifies the DNSSEC signing key of a delegated zone.</p>
840
- * </li>
841
- * <li>
842
- * <p>MX: Specifies mail servers.</p>
843
- * </li>
844
- * <li>
845
- * <p>NAPTR: Regular-expression-based rewriting of domain names.</p>
846
- * </li>
847
- * <li>
848
- * <p>NS: Authoritative name servers.</p>
849
- * </li>
850
- * <li>
851
- * <p>PTR: Maps an IP address to a domain name.</p>
852
- * </li>
853
- * <li>
854
- * <p>SOA: Start of authority record for the zone.</p>
855
- * </li>
856
- * <li>
857
- * <p>SPF: Lists the servers authorized to send emails from a domain.</p>
858
- * </li>
859
- * <li>
860
- * <p>SRV: Application specific values that identify servers.</p>
861
- * </li>
862
- * <li>
863
- * <p>TXT: Verifies email senders and application-specific values.</p>
864
- * </li>
865
- * <li>
866
- * <p>A query type you define by using the DNS type ID, for example 28 for AAAA. The values must be
867
- * defined as TYPENUMBER, where the
868
- * NUMBER can be 1-65334, for
869
- * example, TYPE28. For more information, see
870
- * <a href="https://en.wikipedia.org/wiki/List_of_DNS_record_types">List of DNS record types</a>.</p>
871
- * </li>
872
- * </ul>
1527
+ * <p>A unique string defined by you to identify the request. This allows you to retry failed
1528
+ * requests without the risk of running the operation twice. This can be any unique string,
1529
+ * for example, a timestamp. </p>
873
1530
  * @public
874
1531
  */
875
- Qtype?: string | undefined;
1532
+ CreatorRequestId?: string | undefined;
876
1533
  /**
877
- * <p>
878
- * Use to create a DNS Firewall Advanced rule.
879
- * </p>
1534
+ * <p>The date and time that the domain list was created, in Unix time format and Coordinated Universal Time (UTC). </p>
880
1535
  * @public
881
1536
  */
882
- DnsThreatProtection?: DnsThreatProtection | undefined;
1537
+ CreationTime?: string | undefined;
883
1538
  /**
884
- * <p>
885
- * The confidence threshold for DNS Firewall Advanced. You must provide this value when you create a DNS Firewall Advanced rule. The confidence
886
- * level values mean:
887
- * </p>
888
- * <ul>
889
- * <li>
890
- * <p>
891
- * <code>LOW</code>: Provides the highest detection rate for threats, but also increases false positives.</p>
892
- * </li>
893
- * <li>
894
- * <p>
895
- * <code>MEDIUM</code>: Provides a balance between detecting threats and false positives.</p>
896
- * </li>
897
- * <li>
898
- * <p>
899
- * <code>HIGH</code>: Detects only the most well corroborated threats with a low rate of false positives. </p>
900
- * </li>
901
- * </ul>
1539
+ * <p>The date and time that the domain list was last modified, in Unix time format and Coordinated Universal Time (UTC). </p>
902
1540
  * @public
903
1541
  */
904
- ConfidenceThreshold?: ConfidenceThreshold | undefined;
1542
+ ModificationTime?: string | undefined;
1543
+ /**
1544
+ * <p>The category of the domain list.</p>
1545
+ * @public
1546
+ */
1547
+ Category?: string | undefined;
1548
+ /**
1549
+ * <p>The type of the managed domain list, for example <code>THREAT</code>.</p>
1550
+ * @public
1551
+ */
1552
+ ManagedListType?: DomainListType | undefined;
905
1553
  }
906
1554
  /**
907
- * <p>A single firewall rule in a rule group.</p>
908
1555
  * @public
909
1556
  */
910
- export interface FirewallRule {
1557
+ export interface CreateFirewallDomainListResponse {
911
1558
  /**
912
- * <p>The unique identifier of the Firewall rule group of the rule. </p>
1559
+ * <p>The domain list that you just created.</p>
913
1560
  * @public
914
1561
  */
915
- FirewallRuleGroupId?: string | undefined;
1562
+ FirewallDomainList?: FirewallDomainList | undefined;
1563
+ }
1564
+ /**
1565
+ * @public
1566
+ */
1567
+ export interface CreateFirewallRuleRequest {
916
1568
  /**
917
- * <p>The ID of the domain list that's used in the rule. </p>
1569
+ * <p>A unique string that identifies the request and that allows you to retry failed requests
1570
+ * without the risk of running the operation twice. <code>CreatorRequestId</code> can be
1571
+ * any unique string, for example, a date/time stamp. </p>
918
1572
  * @public
919
1573
  */
920
- FirewallDomainListId?: string | undefined;
1574
+ CreatorRequestId?: string | undefined;
921
1575
  /**
922
- * <p>
923
- * ID of the DNS Firewall Advanced rule.
924
- * </p>
1576
+ * <p>The unique identifier of the firewall rule group where you want to create the rule. </p>
925
1577
  * @public
926
1578
  */
927
- FirewallThreatProtectionId?: string | undefined;
1579
+ FirewallRuleGroupId: string | undefined;
928
1580
  /**
929
- * <p>The name of the rule. </p>
1581
+ * <p>The ID of the domain list that you want to use in the rule. Can't be used together with <code>DnsThreatProtecton</code>.</p>
930
1582
  * @public
931
1583
  */
932
- Name?: string | undefined;
1584
+ FirewallDomainListId?: string | undefined;
933
1585
  /**
934
- * <p>The priority of the rule in the rule group. This value must be unique within the rule group. DNS Firewall processes the rules in a rule group by order of priority, starting from the lowest setting.</p>
1586
+ * <p>The setting that determines the processing order of the rule in the rule group. DNS Firewall
1587
+ * processes the rules in a rule group by order of priority, starting from the lowest setting.</p>
1588
+ * <p>You must specify a unique priority for each rule in a rule group.
1589
+ * To make it easier to insert rules later, leave space between the numbers, for example, use 100, 200, and so on. You
1590
+ * can change the priority setting for the rules in a rule group at any time.</p>
935
1591
  * @public
936
1592
  */
937
- Priority?: number | undefined;
1593
+ Priority: number | undefined;
938
1594
  /**
939
1595
  * <p>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:</p>
940
1596
  * <ul>
@@ -944,18 +1600,19 @@ export interface FirewallRule {
944
1600
  * </li>
945
1601
  * <li>
946
1602
  * <p>
947
- * <code>ALERT</code> - Permit the request to go through but send an alert to the logs.</p>
1603
+ * <code>ALERT</code> - Permit the request and send metrics and logs to Cloud Watch.</p>
948
1604
  * </li>
949
1605
  * <li>
950
1606
  * <p>
951
- * <code>BLOCK</code> - Disallow the request. If this is specified, additional handling details are provided in the rule's <code>BlockResponse</code> setting. </p>
1607
+ * <code>BLOCK</code> - Disallow the request. This option requires additional details in the rule's <code>BlockResponse</code>. </p>
952
1608
  * </li>
953
1609
  * </ul>
954
1610
  * @public
955
1611
  */
956
- Action?: Action | undefined;
1612
+ Action: Action | undefined;
957
1613
  /**
958
- * <p>The way that you want DNS Firewall to block the request. Used for the rule action setting <code>BLOCK</code>.</p>
1614
+ * <p>The way that you want DNS Firewall to block the request, used with the rule action
1615
+ * setting <code>BLOCK</code>. </p>
959
1616
  * <ul>
960
1617
  * <li>
961
1618
  * <p>
@@ -970,40 +1627,33 @@ export interface FirewallRule {
970
1627
  * <code>OVERRIDE</code> - Provide a custom override in the response. This option requires custom handling details in the rule's <code>BlockOverride*</code> settings. </p>
971
1628
  * </li>
972
1629
  * </ul>
1630
+ * <p>This setting is required if the rule action setting is <code>BLOCK</code>.</p>
973
1631
  * @public
974
1632
  */
975
1633
  BlockResponse?: BlockResponse | undefined;
976
1634
  /**
977
1635
  * <p>The custom DNS record to send back in response to the query. Used for the rule action <code>BLOCK</code> with a <code>BlockResponse</code> setting of <code>OVERRIDE</code>.</p>
1636
+ * <p>This setting is required if the <code>BlockResponse</code> setting is <code>OVERRIDE</code>.</p>
978
1637
  * @public
979
1638
  */
980
1639
  BlockOverrideDomain?: string | undefined;
981
1640
  /**
982
1641
  * <p>The DNS record's type. This determines the format of the record value that you provided in <code>BlockOverrideDomain</code>. Used for the rule action <code>BLOCK</code> with a <code>BlockResponse</code> setting of <code>OVERRIDE</code>.</p>
1642
+ * <p>This setting is required if the <code>BlockResponse</code> setting is <code>OVERRIDE</code>.</p>
983
1643
  * @public
984
1644
  */
985
1645
  BlockOverrideDnsType?: BlockOverrideDnsType | undefined;
986
1646
  /**
987
1647
  * <p>The recommended amount of time, in seconds, for the DNS resolver or web browser to cache the provided override record. Used for the rule action <code>BLOCK</code> with a <code>BlockResponse</code> setting of <code>OVERRIDE</code>.</p>
1648
+ * <p>This setting is required if the <code>BlockResponse</code> setting is <code>OVERRIDE</code>.</p>
988
1649
  * @public
989
1650
  */
990
1651
  BlockOverrideTtl?: number | undefined;
991
1652
  /**
992
- * <p>A unique string defined by you to identify the request. This allows you to retry failed requests
993
- * without the risk of executing the operation twice. This can be any unique string, for example, a timestamp. </p>
994
- * @public
995
- */
996
- CreatorRequestId?: string | undefined;
997
- /**
998
- * <p>The date and time that the rule was created, in Unix time format and Coordinated Universal Time (UTC). </p>
999
- * @public
1000
- */
1001
- CreationTime?: string | undefined;
1002
- /**
1003
- * <p>The date and time that the rule was last modified, in Unix time format and Coordinated Universal Time (UTC).</p>
1653
+ * <p>A name that lets you identify the rule in the rule group.</p>
1004
1654
  * @public
1005
1655
  */
1006
- ModificationTime?: string | undefined;
1656
+ Name: string | undefined;
1007
1657
  /**
1008
1658
  * <p>
1009
1659
  * How you want the the rule to evaluate DNS redirection in the DNS redirection chain, such as CNAME or DNAME.
@@ -1065,7 +1715,7 @@ export interface FirewallRule {
1065
1715
  * <li>
1066
1716
  * <p>A query type you define by using the DNS type ID, for example 28 for AAAA. The values must be
1067
1717
  * defined as TYPENUMBER, where the
1068
- * NUMBER can be 1-65334, for
1718
+ * NUMBER can be 1-65534, for
1069
1719
  * example, TYPE28. For more information, see
1070
1720
  * <a href="https://en.wikipedia.org/wiki/List_of_DNS_record_types">List of DNS record types</a>.</p>
1071
1721
  * </li>
@@ -1075,20 +1725,8 @@ export interface FirewallRule {
1075
1725
  Qtype?: string | undefined;
1076
1726
  /**
1077
1727
  * <p>
1078
- * The type of the DNS Firewall Advanced rule. Valid values are:
1728
+ * Use to create a DNS Firewall Advanced rule.
1079
1729
  * </p>
1080
- * <ul>
1081
- * <li>
1082
- * <p>
1083
- * <code>DGA</code>: Domain generation algorithms detection. DGAs are used by attackers to generate a large number of domains
1084
- * to to launch malware attacks.</p>
1085
- * </li>
1086
- * <li>
1087
- * <p>
1088
- * <code>DNS_TUNNELING</code>: DNS tunneling detection. DNS tunneling is used by attackers to exfiltrate data from the client by using the DNS tunnel without
1089
- * making a network connection to the client.</p>
1090
- * </li>
1091
- * </ul>
1092
1730
  * @public
1093
1731
  */
1094
1732
  DnsThreatProtection?: DnsThreatProtection | undefined;
@@ -1114,6 +1752,11 @@ export interface FirewallRule {
1114
1752
  * @public
1115
1753
  */
1116
1754
  ConfidenceThreshold?: ConfidenceThreshold | undefined;
1755
+ /**
1756
+ * <p>The rule type configuration for the firewall rule. This setting is mutually exclusive with the top-level <code>FirewallDomainListId</code> and <code>DnsThreatProtection</code> fields.</p>
1757
+ * @public
1758
+ */
1759
+ FirewallRuleType?: FirewallRuleType | undefined;
1117
1760
  }
1118
1761
  /**
1119
1762
  * @public
@@ -2018,7 +2661,7 @@ export interface DeleteFirewallRuleRequest {
2018
2661
  * <li>
2019
2662
  * <p>A query type you define by using the DNS type ID, for example 28 for AAAA. The values must be
2020
2663
  * defined as TYPENUMBER, where the
2021
- * NUMBER can be 1-65334, for
2664
+ * NUMBER can be 1-65534, for
2022
2665
  * example, TYPE28. For more information, see
2023
2666
  * <a href="https://en.wikipedia.org/wiki/List_of_DNS_record_types">List of DNS record types</a>.</p>
2024
2667
  * </li>
@@ -2565,6 +3208,16 @@ export interface FirewallDomainListMetadata {
2565
3208
  * @public
2566
3209
  */
2567
3210
  ManagedOwnerName?: string | undefined;
3211
+ /**
3212
+ * <p>The type of the managed domain list, for example <code>THREAT</code>.</p>
3213
+ * @public
3214
+ */
3215
+ ManagedListType?: DomainListType | undefined;
3216
+ /**
3217
+ * <p>The category of the domain list.</p>
3218
+ * @public
3219
+ */
3220
+ Category?: string | undefined;
2568
3221
  }
2569
3222
  /**
2570
3223
  * <p>Minimal high-level information for a firewall rule group. The action <a>ListFirewallRuleGroups</a> returns an array of these objects. </p>
@@ -2607,6 +3260,32 @@ export interface FirewallRuleGroupMetadata {
2607
3260
  */
2608
3261
  ShareStatus?: ShareStatus | undefined;
2609
3262
  }
3263
+ /**
3264
+ * <p>The definition of an available rule type that can be used in DNS Firewall rules. This is returned by <a>ListFirewallRuleTypes</a>.</p>
3265
+ * @public
3266
+ */
3267
+ export interface FirewallRuleTypeDefinition {
3268
+ /**
3269
+ * <p>The category or class of the rule type, such as <code>FirewallAdvancedContentCategory</code> or <code>FirewallAdvancedThreatCategory</code>.</p>
3270
+ * @public
3271
+ */
3272
+ RuleType?: string | undefined;
3273
+ /**
3274
+ * <p>The specific identifier within the rule type category, such as <code>VIOLENCE_AND_HATE_SPEECH</code> or <code>PHISHING</code>.</p>
3275
+ * @public
3276
+ */
3277
+ Value?: string | undefined;
3278
+ /**
3279
+ * <p>The display name of the rule type.</p>
3280
+ * @public
3281
+ */
3282
+ DisplayName?: string | undefined;
3283
+ /**
3284
+ * <p>A description of the rule type.</p>
3285
+ * @public
3286
+ */
3287
+ Description?: string | undefined;
3288
+ }
2610
3289
  /**
2611
3290
  * @public
2612
3291
  */
@@ -3402,6 +4081,41 @@ export interface ListFirewallRulesResponse {
3402
4081
  */
3403
4082
  FirewallRules?: FirewallRule[] | undefined;
3404
4083
  }
4084
+ /**
4085
+ * @public
4086
+ */
4087
+ export interface ListFirewallRuleTypesRequest {
4088
+ /**
4089
+ * <p>The rule type to filter by. If specified, only rule types matching this value are returned.</p>
4090
+ * @public
4091
+ */
4092
+ RuleType?: string | undefined;
4093
+ /**
4094
+ * <p>The maximum number of objects that you want Resolver to return for this request. If more objects are available, in the response, Resolver provides a <code>NextToken</code> value that you can use in a subsequent call to get the next batch of objects.</p>
4095
+ * @public
4096
+ */
4097
+ MaxResults?: number | undefined;
4098
+ /**
4099
+ * <p>For the first call to this list request, omit this value. When you request a list of objects, Resolver returns at most the number of objects specified in <code>MaxResults</code>. If more objects are available for retrieval, Resolver provides a <code>NextToken</code> value in the response. To retrieve the next batch of objects, use the token that was returned for the prior request in your next request.</p>
4100
+ * @public
4101
+ */
4102
+ NextToken?: string | undefined;
4103
+ }
4104
+ /**
4105
+ * @public
4106
+ */
4107
+ export interface ListFirewallRuleTypesResponse {
4108
+ /**
4109
+ * <p>A list of the available rule type definitions.</p>
4110
+ * @public
4111
+ */
4112
+ FirewallRuleTypes?: FirewallRuleTypeDefinition[] | undefined;
4113
+ /**
4114
+ * <p>If objects are still available for retrieval, Resolver returns this token in the response. To retrieve the next batch of objects, provide this token in your next request.</p>
4115
+ * @public
4116
+ */
4117
+ NextToken?: string | undefined;
4118
+ }
3405
4119
  /**
3406
4120
  * @public
3407
4121
  */
@@ -4583,7 +5297,7 @@ export interface UpdateFirewallRuleRequest {
4583
5297
  * <li>
4584
5298
  * <p>A query type you define by using the DNS type ID, for example 28 for AAAA. The values must be
4585
5299
  * defined as TYPENUMBER, where the
4586
- * NUMBER can be 1-65334, for
5300
+ * NUMBER can be 1-65534, for
4587
5301
  * example, TYPE28. For more information, see
4588
5302
  * <a href="https://en.wikipedia.org/wiki/List_of_DNS_record_types">List of DNS record types</a>.</p>
4589
5303
  * <note>
@@ -4636,6 +5350,11 @@ export interface UpdateFirewallRuleRequest {
4636
5350
  * @public
4637
5351
  */
4638
5352
  ConfidenceThreshold?: ConfidenceThreshold | undefined;
5353
+ /**
5354
+ * <p>The rule type configuration for the firewall rule. This setting is mutually exclusive with the top-level <code>FirewallDomainListId</code> and <code>DnsThreatProtection</code> fields.</p>
5355
+ * @public
5356
+ */
5357
+ FirewallRuleType?: FirewallRuleType | undefined;
4639
5358
  }
4640
5359
  /**
4641
5360
  * @public