aws-sdk-route53resolver 1.24.0 → 1.28.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7c7ab15f200166ec0058aeef68883431ae265414363d5659ce103b0719aca6a9
4
- data.tar.gz: d53e916cc9b1bbfe4a51cdf2d3f40a8269f1e6b325a30bf8b4a79faf7ce1f18a
3
+ metadata.gz: 9c327fba42aa50a434ecda0f1856efc471f0110412da9cbe445e62576907495c
4
+ data.tar.gz: 8e36abf5f8e62da2b4c2dfbccbe822e37b56eb43eaf4eec48d56f9b14f828e6a
5
5
  SHA512:
6
- metadata.gz: 4f717a87c6167cb9c5b608d7591a8a4f42a180291556b7f6c56e9ee0747a3d46a7af0e59f3ba801649ad743f7782c859f5623340f908cb6d8461eb045d532bcf
7
- data.tar.gz: 92ea7bf7a26b01d40348cb17ee8257921b9c3a01dd9c1100738244718edb0a95e3f6d4ad059b2c04faa56e811292187f7554ea6b82e0ff57402f0f1f6e0654f1
6
+ metadata.gz: 3c069c5e508cde6293268f3143704ac1d811f31e8123bcc1d65676302b631b848889acb555e21c9c558c0cd2e1cd18b62dac318ab2c221109100a92af323babc
7
+ data.tar.gz: 8d2ac9b7c0859c8954a935fd59c825590baac1bb1d3300572e496b7b9e095e0d01e88c4982fb6ddbfcff60ed710a3226e1d673d926dc0569f317e0202f3b9d6d
data/CHANGELOG.md CHANGED
@@ -1,6 +1,26 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.28.0 (2021-07-30)
5
+ ------------------
6
+
7
+ * Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
8
+
9
+ 1.27.0 (2021-07-28)
10
+ ------------------
11
+
12
+ * Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
13
+
14
+ 1.26.0 (2021-06-03)
15
+ ------------------
16
+
17
+ * Feature - Documentation updates for Route 53 Resolver
18
+
19
+ 1.25.0 (2021-04-01)
20
+ ------------------
21
+
22
+ * Feature - Route 53 Resolver DNS Firewall is a firewall service that allows you to filter and regulate outbound DNS traffic for your VPCs.
23
+
4
24
  1.24.0 (2021-03-10)
5
25
  ------------------
6
26
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.24.0
1
+ 1.28.0
@@ -28,7 +28,7 @@ require_relative 'aws-sdk-route53resolver/customizations'
28
28
  # structure.
29
29
  #
30
30
  # route_53_resolver = Aws::Route53Resolver::Client.new
31
- # resp = route_53_resolver.associate_resolver_endpoint_ip_address(params)
31
+ # resp = route_53_resolver.associate_firewall_rule_group(params)
32
32
  #
33
33
  # See {Client} for more information.
34
34
  #
@@ -48,6 +48,6 @@ require_relative 'aws-sdk-route53resolver/customizations'
48
48
  # @!group service
49
49
  module Aws::Route53Resolver
50
50
 
51
- GEM_VERSION = '1.24.0'
51
+ GEM_VERSION = '1.28.0'
52
52
 
53
53
  end
@@ -337,6 +337,98 @@ module Aws::Route53Resolver
337
337
 
338
338
  # @!group API Operations
339
339
 
340
+ # Associates a FirewallRuleGroup with a VPC, to provide DNS filtering
341
+ # for the VPC.
342
+ #
343
+ # @option params [required, String] :creator_request_id
344
+ # A unique string that identifies the request and that allows failed
345
+ # requests to be retried without the risk of running the operation
346
+ # twice. `CreatorRequestId` can be any unique string, for example, a
347
+ # date/time stamp.
348
+ #
349
+ # **A suitable default value is auto-generated.** You should normally
350
+ # not need to pass this option.**
351
+ #
352
+ # @option params [required, String] :firewall_rule_group_id
353
+ # The unique identifier of the firewall rule group.
354
+ #
355
+ # @option params [required, String] :vpc_id
356
+ # The unique identifier of the VPC that you want to associate with the
357
+ # rule group.
358
+ #
359
+ # @option params [required, Integer] :priority
360
+ # The setting that determines the processing order of the rule group
361
+ # among the rule groups that you associate with the specified VPC. DNS
362
+ # Firewall filters VPC traffic starting from the rule group with the
363
+ # lowest numeric priority setting.
364
+ #
365
+ # You must specify a unique priority for each rule group that you
366
+ # associate with a single VPC. To make it easier to insert rule groups
367
+ # later, leave space between the numbers, for example, use 101, 200, and
368
+ # so on. You can change the priority setting for a rule group
369
+ # association after you create it.
370
+ #
371
+ # The allowed values for `Priority` are between 100 and 9900.
372
+ #
373
+ # @option params [required, String] :name
374
+ # A name that lets you identify the association, to manage and use it.
375
+ #
376
+ # @option params [String] :mutation_protection
377
+ # If enabled, this setting disallows modification or removal of the
378
+ # association, to help prevent against accidentally altering DNS
379
+ # firewall protections. When you create the association, the default
380
+ # setting is `DISABLED`.
381
+ #
382
+ # @option params [Array<Types::Tag>] :tags
383
+ # A list of the tag keys and values that you want to associate with the
384
+ # rule group association.
385
+ #
386
+ # @return [Types::AssociateFirewallRuleGroupResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
387
+ #
388
+ # * {Types::AssociateFirewallRuleGroupResponse#firewall_rule_group_association #firewall_rule_group_association} => Types::FirewallRuleGroupAssociation
389
+ #
390
+ # @example Request syntax with placeholder values
391
+ #
392
+ # resp = client.associate_firewall_rule_group({
393
+ # creator_request_id: "CreatorRequestId", # required
394
+ # firewall_rule_group_id: "ResourceId", # required
395
+ # vpc_id: "ResourceId", # required
396
+ # priority: 1, # required
397
+ # name: "Name", # required
398
+ # mutation_protection: "ENABLED", # accepts ENABLED, DISABLED
399
+ # tags: [
400
+ # {
401
+ # key: "TagKey", # required
402
+ # value: "TagValue", # required
403
+ # },
404
+ # ],
405
+ # })
406
+ #
407
+ # @example Response structure
408
+ #
409
+ # resp.firewall_rule_group_association.id #=> String
410
+ # resp.firewall_rule_group_association.arn #=> String
411
+ # resp.firewall_rule_group_association.firewall_rule_group_id #=> String
412
+ # resp.firewall_rule_group_association.vpc_id #=> String
413
+ # resp.firewall_rule_group_association.name #=> String
414
+ # resp.firewall_rule_group_association.priority #=> Integer
415
+ # resp.firewall_rule_group_association.mutation_protection #=> String, one of "ENABLED", "DISABLED"
416
+ # resp.firewall_rule_group_association.managed_owner_name #=> String
417
+ # resp.firewall_rule_group_association.status #=> String, one of "COMPLETE", "DELETING", "UPDATING"
418
+ # resp.firewall_rule_group_association.status_message #=> String
419
+ # resp.firewall_rule_group_association.creator_request_id #=> String
420
+ # resp.firewall_rule_group_association.creation_time #=> String
421
+ # resp.firewall_rule_group_association.modification_time #=> String
422
+ #
423
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/AssociateFirewallRuleGroup AWS API Documentation
424
+ #
425
+ # @overload associate_firewall_rule_group(params = {})
426
+ # @param [Hash] params ({})
427
+ def associate_firewall_rule_group(params = {}, options = {})
428
+ req = build_request(:associate_firewall_rule_group, params)
429
+ req.send_request(options)
430
+ end
431
+
340
432
  # Adds IP addresses to an inbound or an outbound Resolver endpoint. If
341
433
  # you want to add more than one IP address, submit one
342
434
  # `AssociateResolverEndpointIpAddress` request for each IP address.
@@ -514,6 +606,248 @@ module Aws::Route53Resolver
514
606
  req.send_request(options)
515
607
  end
516
608
 
609
+ # Creates an empty firewall domain list for use in DNS Firewall rules.
610
+ # You can populate the domains for the new list with a file, using
611
+ # ImportFirewallDomains, or with domain strings, using
612
+ # UpdateFirewallDomains.
613
+ #
614
+ # @option params [required, String] :creator_request_id
615
+ # A unique string that identifies the request and that allows you to
616
+ # retry failed requests without the risk of running the operation twice.
617
+ # `CreatorRequestId` can be any unique string, for example, a date/time
618
+ # stamp.
619
+ #
620
+ # **A suitable default value is auto-generated.** You should normally
621
+ # not need to pass this option.**
622
+ #
623
+ # @option params [required, String] :name
624
+ # A name that lets you identify the domain list to manage and use it.
625
+ #
626
+ # @option params [Array<Types::Tag>] :tags
627
+ # A list of the tag keys and values that you want to associate with the
628
+ # domain list.
629
+ #
630
+ # @return [Types::CreateFirewallDomainListResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
631
+ #
632
+ # * {Types::CreateFirewallDomainListResponse#firewall_domain_list #firewall_domain_list} => Types::FirewallDomainList
633
+ #
634
+ # @example Request syntax with placeholder values
635
+ #
636
+ # resp = client.create_firewall_domain_list({
637
+ # creator_request_id: "CreatorRequestId", # required
638
+ # name: "Name", # required
639
+ # tags: [
640
+ # {
641
+ # key: "TagKey", # required
642
+ # value: "TagValue", # required
643
+ # },
644
+ # ],
645
+ # })
646
+ #
647
+ # @example Response structure
648
+ #
649
+ # resp.firewall_domain_list.id #=> String
650
+ # resp.firewall_domain_list.arn #=> String
651
+ # resp.firewall_domain_list.name #=> String
652
+ # resp.firewall_domain_list.domain_count #=> Integer
653
+ # resp.firewall_domain_list.status #=> String, one of "COMPLETE", "COMPLETE_IMPORT_FAILED", "IMPORTING", "DELETING", "UPDATING"
654
+ # resp.firewall_domain_list.status_message #=> String
655
+ # resp.firewall_domain_list.managed_owner_name #=> String
656
+ # resp.firewall_domain_list.creator_request_id #=> String
657
+ # resp.firewall_domain_list.creation_time #=> String
658
+ # resp.firewall_domain_list.modification_time #=> String
659
+ #
660
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/CreateFirewallDomainList AWS API Documentation
661
+ #
662
+ # @overload create_firewall_domain_list(params = {})
663
+ # @param [Hash] params ({})
664
+ def create_firewall_domain_list(params = {}, options = {})
665
+ req = build_request(:create_firewall_domain_list, params)
666
+ req.send_request(options)
667
+ end
668
+
669
+ # Creates a single DNS Firewall rule in the specified rule group, using
670
+ # the specified domain list.
671
+ #
672
+ # @option params [required, String] :creator_request_id
673
+ # A unique string that identifies the request and that allows you to
674
+ # retry failed requests without the risk of running the operation twice.
675
+ # `CreatorRequestId` can be any unique string, for example, a date/time
676
+ # stamp.
677
+ #
678
+ # **A suitable default value is auto-generated.** You should normally
679
+ # not need to pass this option.**
680
+ #
681
+ # @option params [required, String] :firewall_rule_group_id
682
+ # The unique identifier of the firewall rule group where you want to
683
+ # create the rule.
684
+ #
685
+ # @option params [required, String] :firewall_domain_list_id
686
+ # The ID of the domain list that you want to use in the rule.
687
+ #
688
+ # @option params [required, Integer] :priority
689
+ # The setting that determines the processing order of the rule in the
690
+ # rule group. DNS Firewall processes the rules in a rule group by order
691
+ # of priority, starting from the lowest setting.
692
+ #
693
+ # You must specify a unique priority for each rule in a rule group. To
694
+ # make it easier to insert rules later, leave space between the numbers,
695
+ # for example, use 100, 200, and so on. You can change the priority
696
+ # setting for the rules in a rule group at any time.
697
+ #
698
+ # @option params [required, String] :action
699
+ # The action that DNS Firewall should take on a DNS query when it
700
+ # matches one of the domains in the rule's domain list:
701
+ #
702
+ # * `ALLOW` - Permit the request to go through.
703
+ #
704
+ # * `ALERT` - Permit the request and send metrics and logs to Cloud
705
+ # Watch.
706
+ #
707
+ # * `BLOCK` - Disallow the request. This option requires additional
708
+ # details in the rule's `BlockResponse`.
709
+ #
710
+ # @option params [String] :block_response
711
+ # The way that you want DNS Firewall to block the request, used with the
712
+ # rule action setting `BLOCK`.
713
+ #
714
+ # * `NODATA` - Respond indicating that the query was successful, but no
715
+ # response is available for it.
716
+ #
717
+ # * `NXDOMAIN` - Respond indicating that the domain name that's in the
718
+ # query doesn't exist.
719
+ #
720
+ # * `OVERRIDE` - Provide a custom override in the response. This option
721
+ # requires custom handling details in the rule's `BlockOverride*`
722
+ # settings.
723
+ #
724
+ # This setting is required if the rule action setting is `BLOCK`.
725
+ #
726
+ # @option params [String] :block_override_domain
727
+ # The custom DNS record to send back in response to the query. Used for
728
+ # the rule action `BLOCK` with a `BlockResponse` setting of `OVERRIDE`.
729
+ #
730
+ # This setting is required if the `BlockResponse` setting is `OVERRIDE`.
731
+ #
732
+ # @option params [String] :block_override_dns_type
733
+ # The DNS record's type. This determines the format of the record value
734
+ # that you provided in `BlockOverrideDomain`. Used for the rule action
735
+ # `BLOCK` with a `BlockResponse` setting of `OVERRIDE`.
736
+ #
737
+ # This setting is required if the `BlockResponse` setting is `OVERRIDE`.
738
+ #
739
+ # @option params [Integer] :block_override_ttl
740
+ # The recommended amount of time, in seconds, for the DNS resolver or
741
+ # web browser to cache the provided override record. Used for the rule
742
+ # action `BLOCK` with a `BlockResponse` setting of `OVERRIDE`.
743
+ #
744
+ # This setting is required if the `BlockResponse` setting is `OVERRIDE`.
745
+ #
746
+ # @option params [required, String] :name
747
+ # A name that lets you identify the rule in the rule group.
748
+ #
749
+ # @return [Types::CreateFirewallRuleResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
750
+ #
751
+ # * {Types::CreateFirewallRuleResponse#firewall_rule #firewall_rule} => Types::FirewallRule
752
+ #
753
+ # @example Request syntax with placeholder values
754
+ #
755
+ # resp = client.create_firewall_rule({
756
+ # creator_request_id: "CreatorRequestId", # required
757
+ # firewall_rule_group_id: "ResourceId", # required
758
+ # firewall_domain_list_id: "ResourceId", # required
759
+ # priority: 1, # required
760
+ # action: "ALLOW", # required, accepts ALLOW, BLOCK, ALERT
761
+ # block_response: "NODATA", # accepts NODATA, NXDOMAIN, OVERRIDE
762
+ # block_override_domain: "BlockOverrideDomain",
763
+ # block_override_dns_type: "CNAME", # accepts CNAME
764
+ # block_override_ttl: 1,
765
+ # name: "Name", # required
766
+ # })
767
+ #
768
+ # @example Response structure
769
+ #
770
+ # resp.firewall_rule.firewall_rule_group_id #=> String
771
+ # resp.firewall_rule.firewall_domain_list_id #=> String
772
+ # resp.firewall_rule.name #=> String
773
+ # resp.firewall_rule.priority #=> Integer
774
+ # resp.firewall_rule.action #=> String, one of "ALLOW", "BLOCK", "ALERT"
775
+ # resp.firewall_rule.block_response #=> String, one of "NODATA", "NXDOMAIN", "OVERRIDE"
776
+ # resp.firewall_rule.block_override_domain #=> String
777
+ # resp.firewall_rule.block_override_dns_type #=> String, one of "CNAME"
778
+ # resp.firewall_rule.block_override_ttl #=> Integer
779
+ # resp.firewall_rule.creator_request_id #=> String
780
+ # resp.firewall_rule.creation_time #=> String
781
+ # resp.firewall_rule.modification_time #=> String
782
+ #
783
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/CreateFirewallRule AWS API Documentation
784
+ #
785
+ # @overload create_firewall_rule(params = {})
786
+ # @param [Hash] params ({})
787
+ def create_firewall_rule(params = {}, options = {})
788
+ req = build_request(:create_firewall_rule, params)
789
+ req.send_request(options)
790
+ end
791
+
792
+ # Creates an empty DNS Firewall rule group for filtering DNS network
793
+ # traffic in a VPC. You can add rules to the new rule group by calling
794
+ # CreateFirewallRule.
795
+ #
796
+ # @option params [required, String] :creator_request_id
797
+ # A unique string defined by you to identify the request. This allows
798
+ # you to retry failed requests without the risk of running the operation
799
+ # twice. This can be any unique string, for example, a timestamp.
800
+ #
801
+ # **A suitable default value is auto-generated.** You should normally
802
+ # not need to pass this option.**
803
+ #
804
+ # @option params [required, String] :name
805
+ # A name that lets you identify the rule group, to manage and use it.
806
+ #
807
+ # @option params [Array<Types::Tag>] :tags
808
+ # A list of the tag keys and values that you want to associate with the
809
+ # rule group.
810
+ #
811
+ # @return [Types::CreateFirewallRuleGroupResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
812
+ #
813
+ # * {Types::CreateFirewallRuleGroupResponse#firewall_rule_group #firewall_rule_group} => Types::FirewallRuleGroup
814
+ #
815
+ # @example Request syntax with placeholder values
816
+ #
817
+ # resp = client.create_firewall_rule_group({
818
+ # creator_request_id: "CreatorRequestId", # required
819
+ # name: "Name", # required
820
+ # tags: [
821
+ # {
822
+ # key: "TagKey", # required
823
+ # value: "TagValue", # required
824
+ # },
825
+ # ],
826
+ # })
827
+ #
828
+ # @example Response structure
829
+ #
830
+ # resp.firewall_rule_group.id #=> String
831
+ # resp.firewall_rule_group.arn #=> String
832
+ # resp.firewall_rule_group.name #=> String
833
+ # resp.firewall_rule_group.rule_count #=> Integer
834
+ # resp.firewall_rule_group.status #=> String, one of "COMPLETE", "DELETING", "UPDATING"
835
+ # resp.firewall_rule_group.status_message #=> String
836
+ # resp.firewall_rule_group.owner_id #=> String
837
+ # resp.firewall_rule_group.creator_request_id #=> String
838
+ # resp.firewall_rule_group.share_status #=> String, one of "NOT_SHARED", "SHARED_WITH_ME", "SHARED_BY_ME"
839
+ # resp.firewall_rule_group.creation_time #=> String
840
+ # resp.firewall_rule_group.modification_time #=> String
841
+ #
842
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/CreateFirewallRuleGroup AWS API Documentation
843
+ #
844
+ # @overload create_firewall_rule_group(params = {})
845
+ # @param [Hash] params ({})
846
+ def create_firewall_rule_group(params = {}, options = {})
847
+ req = build_request(:create_firewall_rule_group, params)
848
+ req.send_request(options)
849
+ end
850
+
517
851
  # Creates a Resolver endpoint. There are two types of Resolver
518
852
  # endpoints, inbound and outbound:
519
853
  #
@@ -525,7 +859,7 @@ module Aws::Route53Resolver
525
859
  #
526
860
  # @option params [required, String] :creator_request_id
527
861
  # A unique string that identifies the request and that allows failed
528
- # requests to be retried without the risk of executing the operation
862
+ # requests to be retried without the risk of running the operation
529
863
  # twice. `CreatorRequestId` can be any unique string, for example, a
530
864
  # date/time stamp.
531
865
  #
@@ -630,7 +964,7 @@ module Aws::Route53Resolver
630
964
  # [1]: https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_AssociateResolverQueryLogConfig.html
631
965
  #
632
966
  # @option params [required, String] :name
633
- # The name that you want to give the query logging configuration
967
+ # The name that you want to give the query logging configuration.
634
968
  #
635
969
  # @option params [required, String] :destination_arn
636
970
  # The ARN of the resource that you want Resolver to send query logs. You
@@ -656,7 +990,7 @@ module Aws::Route53Resolver
656
990
  #
657
991
  # @option params [required, String] :creator_request_id
658
992
  # A unique string that identifies the request and that allows failed
659
- # requests to be retried without the risk of executing the operation
993
+ # requests to be retried without the risk of running the operation
660
994
  # twice. `CreatorRequestId` can be any unique string, for example, a
661
995
  # date/time stamp.
662
996
  #
@@ -714,7 +1048,7 @@ module Aws::Route53Resolver
714
1048
  #
715
1049
  # @option params [required, String] :creator_request_id
716
1050
  # A unique string that identifies the request and that allows failed
717
- # requests to be retried without the risk of executing the operation
1051
+ # requests to be retried without the risk of running the operation
718
1052
  # twice. `CreatorRequestId` can be any unique string, for example, a
719
1053
  # date/time stamp.
720
1054
  #
@@ -747,7 +1081,7 @@ module Aws::Route53Resolver
747
1081
  #
748
1082
  # @option params [Array<Types::TargetAddress>] :target_ips
749
1083
  # The IPs that you want Resolver to forward DNS queries to. You can
750
- # specify only IPv4 addresses. Separate IP addresses with a comma.
1084
+ # specify only IPv4 addresses. Separate IP addresses with a space.
751
1085
  #
752
1086
  # `TargetIps` is available only when the value of `Rule type` is
753
1087
  # `FORWARD`.
@@ -814,6 +1148,126 @@ module Aws::Route53Resolver
814
1148
  req.send_request(options)
815
1149
  end
816
1150
 
1151
+ # Deletes the specified domain list.
1152
+ #
1153
+ # @option params [required, String] :firewall_domain_list_id
1154
+ # The ID of the domain list that you want to delete.
1155
+ #
1156
+ # @return [Types::DeleteFirewallDomainListResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1157
+ #
1158
+ # * {Types::DeleteFirewallDomainListResponse#firewall_domain_list #firewall_domain_list} => Types::FirewallDomainList
1159
+ #
1160
+ # @example Request syntax with placeholder values
1161
+ #
1162
+ # resp = client.delete_firewall_domain_list({
1163
+ # firewall_domain_list_id: "ResourceId", # required
1164
+ # })
1165
+ #
1166
+ # @example Response structure
1167
+ #
1168
+ # resp.firewall_domain_list.id #=> String
1169
+ # resp.firewall_domain_list.arn #=> String
1170
+ # resp.firewall_domain_list.name #=> String
1171
+ # resp.firewall_domain_list.domain_count #=> Integer
1172
+ # resp.firewall_domain_list.status #=> String, one of "COMPLETE", "COMPLETE_IMPORT_FAILED", "IMPORTING", "DELETING", "UPDATING"
1173
+ # resp.firewall_domain_list.status_message #=> String
1174
+ # resp.firewall_domain_list.managed_owner_name #=> String
1175
+ # resp.firewall_domain_list.creator_request_id #=> String
1176
+ # resp.firewall_domain_list.creation_time #=> String
1177
+ # resp.firewall_domain_list.modification_time #=> String
1178
+ #
1179
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DeleteFirewallDomainList AWS API Documentation
1180
+ #
1181
+ # @overload delete_firewall_domain_list(params = {})
1182
+ # @param [Hash] params ({})
1183
+ def delete_firewall_domain_list(params = {}, options = {})
1184
+ req = build_request(:delete_firewall_domain_list, params)
1185
+ req.send_request(options)
1186
+ end
1187
+
1188
+ # Deletes the specified firewall rule.
1189
+ #
1190
+ # @option params [required, String] :firewall_rule_group_id
1191
+ # The unique identifier of the firewall rule group that you want to
1192
+ # delete the rule from.
1193
+ #
1194
+ # @option params [required, String] :firewall_domain_list_id
1195
+ # The ID of the domain list that's used in the rule.
1196
+ #
1197
+ # @return [Types::DeleteFirewallRuleResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1198
+ #
1199
+ # * {Types::DeleteFirewallRuleResponse#firewall_rule #firewall_rule} => Types::FirewallRule
1200
+ #
1201
+ # @example Request syntax with placeholder values
1202
+ #
1203
+ # resp = client.delete_firewall_rule({
1204
+ # firewall_rule_group_id: "ResourceId", # required
1205
+ # firewall_domain_list_id: "ResourceId", # required
1206
+ # })
1207
+ #
1208
+ # @example Response structure
1209
+ #
1210
+ # resp.firewall_rule.firewall_rule_group_id #=> String
1211
+ # resp.firewall_rule.firewall_domain_list_id #=> String
1212
+ # resp.firewall_rule.name #=> String
1213
+ # resp.firewall_rule.priority #=> Integer
1214
+ # resp.firewall_rule.action #=> String, one of "ALLOW", "BLOCK", "ALERT"
1215
+ # resp.firewall_rule.block_response #=> String, one of "NODATA", "NXDOMAIN", "OVERRIDE"
1216
+ # resp.firewall_rule.block_override_domain #=> String
1217
+ # resp.firewall_rule.block_override_dns_type #=> String, one of "CNAME"
1218
+ # resp.firewall_rule.block_override_ttl #=> Integer
1219
+ # resp.firewall_rule.creator_request_id #=> String
1220
+ # resp.firewall_rule.creation_time #=> String
1221
+ # resp.firewall_rule.modification_time #=> String
1222
+ #
1223
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DeleteFirewallRule AWS API Documentation
1224
+ #
1225
+ # @overload delete_firewall_rule(params = {})
1226
+ # @param [Hash] params ({})
1227
+ def delete_firewall_rule(params = {}, options = {})
1228
+ req = build_request(:delete_firewall_rule, params)
1229
+ req.send_request(options)
1230
+ end
1231
+
1232
+ # Deletes the specified firewall rule group.
1233
+ #
1234
+ # @option params [required, String] :firewall_rule_group_id
1235
+ # The unique identifier of the firewall rule group that you want to
1236
+ # delete.
1237
+ #
1238
+ # @return [Types::DeleteFirewallRuleGroupResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1239
+ #
1240
+ # * {Types::DeleteFirewallRuleGroupResponse#firewall_rule_group #firewall_rule_group} => Types::FirewallRuleGroup
1241
+ #
1242
+ # @example Request syntax with placeholder values
1243
+ #
1244
+ # resp = client.delete_firewall_rule_group({
1245
+ # firewall_rule_group_id: "ResourceId", # required
1246
+ # })
1247
+ #
1248
+ # @example Response structure
1249
+ #
1250
+ # resp.firewall_rule_group.id #=> String
1251
+ # resp.firewall_rule_group.arn #=> String
1252
+ # resp.firewall_rule_group.name #=> String
1253
+ # resp.firewall_rule_group.rule_count #=> Integer
1254
+ # resp.firewall_rule_group.status #=> String, one of "COMPLETE", "DELETING", "UPDATING"
1255
+ # resp.firewall_rule_group.status_message #=> String
1256
+ # resp.firewall_rule_group.owner_id #=> String
1257
+ # resp.firewall_rule_group.creator_request_id #=> String
1258
+ # resp.firewall_rule_group.share_status #=> String, one of "NOT_SHARED", "SHARED_WITH_ME", "SHARED_BY_ME"
1259
+ # resp.firewall_rule_group.creation_time #=> String
1260
+ # resp.firewall_rule_group.modification_time #=> String
1261
+ #
1262
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DeleteFirewallRuleGroup AWS API Documentation
1263
+ #
1264
+ # @overload delete_firewall_rule_group(params = {})
1265
+ # @param [Hash] params ({})
1266
+ def delete_firewall_rule_group(params = {}, options = {})
1267
+ req = build_request(:delete_firewall_rule_group, params)
1268
+ req.send_request(options)
1269
+ end
1270
+
817
1271
  # Deletes a Resolver endpoint. The effect of deleting a Resolver
818
1272
  # endpoint depends on whether it's an inbound or an outbound Resolver
819
1273
  # endpoint:
@@ -970,6 +1424,47 @@ module Aws::Route53Resolver
970
1424
  req.send_request(options)
971
1425
  end
972
1426
 
1427
+ # Disassociates a FirewallRuleGroup from a VPC, to remove DNS filtering
1428
+ # from the VPC.
1429
+ #
1430
+ # @option params [required, String] :firewall_rule_group_association_id
1431
+ # The identifier of the FirewallRuleGroupAssociation.
1432
+ #
1433
+ # @return [Types::DisassociateFirewallRuleGroupResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1434
+ #
1435
+ # * {Types::DisassociateFirewallRuleGroupResponse#firewall_rule_group_association #firewall_rule_group_association} => Types::FirewallRuleGroupAssociation
1436
+ #
1437
+ # @example Request syntax with placeholder values
1438
+ #
1439
+ # resp = client.disassociate_firewall_rule_group({
1440
+ # firewall_rule_group_association_id: "ResourceId", # required
1441
+ # })
1442
+ #
1443
+ # @example Response structure
1444
+ #
1445
+ # resp.firewall_rule_group_association.id #=> String
1446
+ # resp.firewall_rule_group_association.arn #=> String
1447
+ # resp.firewall_rule_group_association.firewall_rule_group_id #=> String
1448
+ # resp.firewall_rule_group_association.vpc_id #=> String
1449
+ # resp.firewall_rule_group_association.name #=> String
1450
+ # resp.firewall_rule_group_association.priority #=> Integer
1451
+ # resp.firewall_rule_group_association.mutation_protection #=> String, one of "ENABLED", "DISABLED"
1452
+ # resp.firewall_rule_group_association.managed_owner_name #=> String
1453
+ # resp.firewall_rule_group_association.status #=> String, one of "COMPLETE", "DELETING", "UPDATING"
1454
+ # resp.firewall_rule_group_association.status_message #=> String
1455
+ # resp.firewall_rule_group_association.creator_request_id #=> String
1456
+ # resp.firewall_rule_group_association.creation_time #=> String
1457
+ # resp.firewall_rule_group_association.modification_time #=> String
1458
+ #
1459
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DisassociateFirewallRuleGroup AWS API Documentation
1460
+ #
1461
+ # @overload disassociate_firewall_rule_group(params = {})
1462
+ # @param [Hash] params ({})
1463
+ def disassociate_firewall_rule_group(params = {}, options = {})
1464
+ req = build_request(:disassociate_firewall_rule_group, params)
1465
+ req.send_request(options)
1466
+ end
1467
+
973
1468
  # Removes IP addresses from an inbound or an outbound Resolver endpoint.
974
1469
  # If you want to remove more than one IP address, submit one
975
1470
  # `DisassociateResolverEndpointIpAddress` request for each IP address.
@@ -1031,10 +1526,10 @@ module Aws::Route53Resolver
1031
1526
  # Disassociates a VPC from a query logging configuration.
1032
1527
  #
1033
1528
  # <note markdown="1"> Before you can delete a query logging configuration, you must first
1034
- # disassociate all VPCs from the configuration. If you used Resource
1035
- # Access Manager (RAM) to share a query logging configuration with other
1036
- # accounts, VPCs can be disassociated from the configuration in the
1037
- # following ways:
1529
+ # disassociate all VPCs from the configuration. If you used AWS Resource
1530
+ # Access Manager (AWS RAM) to share a query logging configuration with
1531
+ # other accounts, VPCs can be disassociated from the configuration in
1532
+ # the following ways:
1038
1533
  #
1039
1534
  # * The accounts that you shared the configuration with can disassociate
1040
1535
  # VPCs from the configuration.
@@ -1125,104 +1620,285 @@ module Aws::Route53Resolver
1125
1620
  req.send_request(options)
1126
1621
  end
1127
1622
 
1128
- # Gets DNSSEC validation information for a specified resource.
1623
+ # Retrieves the configuration of the firewall behavior provided by DNS
1624
+ # Firewall for a single VPC from Amazon Virtual Private Cloud (Amazon
1625
+ # VPC).
1129
1626
  #
1130
1627
  # @option params [required, String] :resource_id
1131
- # The ID of the virtual private cloud (VPC) for the DNSSEC validation
1132
- # status.
1628
+ # The ID of the VPC from Amazon VPC that the configuration is for.
1133
1629
  #
1134
- # @return [Types::GetResolverDnssecConfigResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1630
+ # @return [Types::GetFirewallConfigResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1135
1631
  #
1136
- # * {Types::GetResolverDnssecConfigResponse#resolver_dnssec_config #resolver_dnssec_config} => Types::ResolverDnssecConfig
1632
+ # * {Types::GetFirewallConfigResponse#firewall_config #firewall_config} => Types::FirewallConfig
1137
1633
  #
1138
1634
  # @example Request syntax with placeholder values
1139
1635
  #
1140
- # resp = client.get_resolver_dnssec_config({
1636
+ # resp = client.get_firewall_config({
1141
1637
  # resource_id: "ResourceId", # required
1142
1638
  # })
1143
1639
  #
1144
1640
  # @example Response structure
1145
1641
  #
1146
- # resp.resolver_dnssec_config.id #=> String
1147
- # resp.resolver_dnssec_config.owner_id #=> String
1148
- # resp.resolver_dnssec_config.resource_id #=> String
1149
- # resp.resolver_dnssec_config.validation_status #=> String, one of "ENABLING", "ENABLED", "DISABLING", "DISABLED"
1642
+ # resp.firewall_config.id #=> String
1643
+ # resp.firewall_config.resource_id #=> String
1644
+ # resp.firewall_config.owner_id #=> String
1645
+ # resp.firewall_config.firewall_fail_open #=> String, one of "ENABLED", "DISABLED"
1150
1646
  #
1151
- # @see http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverDnssecConfig AWS API Documentation
1647
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetFirewallConfig AWS API Documentation
1152
1648
  #
1153
- # @overload get_resolver_dnssec_config(params = {})
1649
+ # @overload get_firewall_config(params = {})
1154
1650
  # @param [Hash] params ({})
1155
- def get_resolver_dnssec_config(params = {}, options = {})
1156
- req = build_request(:get_resolver_dnssec_config, params)
1651
+ def get_firewall_config(params = {}, options = {})
1652
+ req = build_request(:get_firewall_config, params)
1157
1653
  req.send_request(options)
1158
1654
  end
1159
1655
 
1160
- # Gets information about a specified Resolver endpoint, such as whether
1161
- # it's an inbound or an outbound Resolver endpoint, and the current
1162
- # status of the endpoint.
1656
+ # Retrieves the specified firewall domain list.
1163
1657
  #
1164
- # @option params [required, String] :resolver_endpoint_id
1165
- # The ID of the Resolver endpoint that you want to get information
1166
- # about.
1658
+ # @option params [required, String] :firewall_domain_list_id
1659
+ # The ID of the domain list.
1167
1660
  #
1168
- # @return [Types::GetResolverEndpointResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1661
+ # @return [Types::GetFirewallDomainListResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1169
1662
  #
1170
- # * {Types::GetResolverEndpointResponse#resolver_endpoint #resolver_endpoint} => Types::ResolverEndpoint
1663
+ # * {Types::GetFirewallDomainListResponse#firewall_domain_list #firewall_domain_list} => Types::FirewallDomainList
1171
1664
  #
1172
1665
  # @example Request syntax with placeholder values
1173
1666
  #
1174
- # resp = client.get_resolver_endpoint({
1175
- # resolver_endpoint_id: "ResourceId", # required
1667
+ # resp = client.get_firewall_domain_list({
1668
+ # firewall_domain_list_id: "ResourceId", # required
1176
1669
  # })
1177
1670
  #
1178
1671
  # @example Response structure
1179
1672
  #
1180
- # resp.resolver_endpoint.id #=> String
1181
- # resp.resolver_endpoint.creator_request_id #=> String
1182
- # resp.resolver_endpoint.arn #=> String
1183
- # resp.resolver_endpoint.name #=> String
1184
- # resp.resolver_endpoint.security_group_ids #=> Array
1185
- # resp.resolver_endpoint.security_group_ids[0] #=> String
1186
- # resp.resolver_endpoint.direction #=> String, one of "INBOUND", "OUTBOUND"
1187
- # resp.resolver_endpoint.ip_address_count #=> Integer
1188
- # resp.resolver_endpoint.host_vpc_id #=> String
1189
- # resp.resolver_endpoint.status #=> String, one of "CREATING", "OPERATIONAL", "UPDATING", "AUTO_RECOVERING", "ACTION_NEEDED", "DELETING"
1190
- # resp.resolver_endpoint.status_message #=> String
1191
- # resp.resolver_endpoint.creation_time #=> String
1192
- # resp.resolver_endpoint.modification_time #=> String
1673
+ # resp.firewall_domain_list.id #=> String
1674
+ # resp.firewall_domain_list.arn #=> String
1675
+ # resp.firewall_domain_list.name #=> String
1676
+ # resp.firewall_domain_list.domain_count #=> Integer
1677
+ # resp.firewall_domain_list.status #=> String, one of "COMPLETE", "COMPLETE_IMPORT_FAILED", "IMPORTING", "DELETING", "UPDATING"
1678
+ # resp.firewall_domain_list.status_message #=> String
1679
+ # resp.firewall_domain_list.managed_owner_name #=> String
1680
+ # resp.firewall_domain_list.creator_request_id #=> String
1681
+ # resp.firewall_domain_list.creation_time #=> String
1682
+ # resp.firewall_domain_list.modification_time #=> String
1193
1683
  #
1194
- # @see http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverEndpoint AWS API Documentation
1684
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetFirewallDomainList AWS API Documentation
1195
1685
  #
1196
- # @overload get_resolver_endpoint(params = {})
1686
+ # @overload get_firewall_domain_list(params = {})
1197
1687
  # @param [Hash] params ({})
1198
- def get_resolver_endpoint(params = {}, options = {})
1199
- req = build_request(:get_resolver_endpoint, params)
1688
+ def get_firewall_domain_list(params = {}, options = {})
1689
+ req = build_request(:get_firewall_domain_list, params)
1200
1690
  req.send_request(options)
1201
1691
  end
1202
1692
 
1203
- # Gets information about a specified Resolver query logging
1204
- # configuration, such as the number of VPCs that the configuration is
1205
- # logging queries for and the location that logs are sent to.
1693
+ # Retrieves the specified firewall rule group.
1206
1694
  #
1207
- # @option params [required, String] :resolver_query_log_config_id
1208
- # The ID of the Resolver query logging configuration that you want to
1209
- # get information about.
1695
+ # @option params [required, String] :firewall_rule_group_id
1696
+ # The unique identifier of the firewall rule group.
1210
1697
  #
1211
- # @return [Types::GetResolverQueryLogConfigResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1698
+ # @return [Types::GetFirewallRuleGroupResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1212
1699
  #
1213
- # * {Types::GetResolverQueryLogConfigResponse#resolver_query_log_config #resolver_query_log_config} => Types::ResolverQueryLogConfig
1700
+ # * {Types::GetFirewallRuleGroupResponse#firewall_rule_group #firewall_rule_group} => Types::FirewallRuleGroup
1214
1701
  #
1215
1702
  # @example Request syntax with placeholder values
1216
1703
  #
1217
- # resp = client.get_resolver_query_log_config({
1218
- # resolver_query_log_config_id: "ResourceId", # required
1704
+ # resp = client.get_firewall_rule_group({
1705
+ # firewall_rule_group_id: "ResourceId", # required
1219
1706
  # })
1220
1707
  #
1221
1708
  # @example Response structure
1222
1709
  #
1223
- # resp.resolver_query_log_config.id #=> String
1224
- # resp.resolver_query_log_config.owner_id #=> String
1225
- # resp.resolver_query_log_config.status #=> String, one of "CREATING", "CREATED", "DELETING", "FAILED"
1710
+ # resp.firewall_rule_group.id #=> String
1711
+ # resp.firewall_rule_group.arn #=> String
1712
+ # resp.firewall_rule_group.name #=> String
1713
+ # resp.firewall_rule_group.rule_count #=> Integer
1714
+ # resp.firewall_rule_group.status #=> String, one of "COMPLETE", "DELETING", "UPDATING"
1715
+ # resp.firewall_rule_group.status_message #=> String
1716
+ # resp.firewall_rule_group.owner_id #=> String
1717
+ # resp.firewall_rule_group.creator_request_id #=> String
1718
+ # resp.firewall_rule_group.share_status #=> String, one of "NOT_SHARED", "SHARED_WITH_ME", "SHARED_BY_ME"
1719
+ # resp.firewall_rule_group.creation_time #=> String
1720
+ # resp.firewall_rule_group.modification_time #=> String
1721
+ #
1722
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetFirewallRuleGroup AWS API Documentation
1723
+ #
1724
+ # @overload get_firewall_rule_group(params = {})
1725
+ # @param [Hash] params ({})
1726
+ def get_firewall_rule_group(params = {}, options = {})
1727
+ req = build_request(:get_firewall_rule_group, params)
1728
+ req.send_request(options)
1729
+ end
1730
+
1731
+ # Retrieves a firewall rule group association, which enables DNS
1732
+ # filtering for a VPC with one rule group. A VPC can have more than one
1733
+ # firewall rule group association, and a rule group can be associated
1734
+ # with more than one VPC.
1735
+ #
1736
+ # @option params [required, String] :firewall_rule_group_association_id
1737
+ # The identifier of the FirewallRuleGroupAssociation.
1738
+ #
1739
+ # @return [Types::GetFirewallRuleGroupAssociationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1740
+ #
1741
+ # * {Types::GetFirewallRuleGroupAssociationResponse#firewall_rule_group_association #firewall_rule_group_association} => Types::FirewallRuleGroupAssociation
1742
+ #
1743
+ # @example Request syntax with placeholder values
1744
+ #
1745
+ # resp = client.get_firewall_rule_group_association({
1746
+ # firewall_rule_group_association_id: "ResourceId", # required
1747
+ # })
1748
+ #
1749
+ # @example Response structure
1750
+ #
1751
+ # resp.firewall_rule_group_association.id #=> String
1752
+ # resp.firewall_rule_group_association.arn #=> String
1753
+ # resp.firewall_rule_group_association.firewall_rule_group_id #=> String
1754
+ # resp.firewall_rule_group_association.vpc_id #=> String
1755
+ # resp.firewall_rule_group_association.name #=> String
1756
+ # resp.firewall_rule_group_association.priority #=> Integer
1757
+ # resp.firewall_rule_group_association.mutation_protection #=> String, one of "ENABLED", "DISABLED"
1758
+ # resp.firewall_rule_group_association.managed_owner_name #=> String
1759
+ # resp.firewall_rule_group_association.status #=> String, one of "COMPLETE", "DELETING", "UPDATING"
1760
+ # resp.firewall_rule_group_association.status_message #=> String
1761
+ # resp.firewall_rule_group_association.creator_request_id #=> String
1762
+ # resp.firewall_rule_group_association.creation_time #=> String
1763
+ # resp.firewall_rule_group_association.modification_time #=> String
1764
+ #
1765
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetFirewallRuleGroupAssociation AWS API Documentation
1766
+ #
1767
+ # @overload get_firewall_rule_group_association(params = {})
1768
+ # @param [Hash] params ({})
1769
+ def get_firewall_rule_group_association(params = {}, options = {})
1770
+ req = build_request(:get_firewall_rule_group_association, params)
1771
+ req.send_request(options)
1772
+ end
1773
+
1774
+ # Returns the AWS Identity and Access Management (AWS IAM) policy for
1775
+ # sharing the specified rule group. You can use the policy to share the
1776
+ # rule group using AWS Resource Access Manager (AWS RAM).
1777
+ #
1778
+ # @option params [required, String] :arn
1779
+ # The ARN (Amazon Resource Name) for the rule group.
1780
+ #
1781
+ # @return [Types::GetFirewallRuleGroupPolicyResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1782
+ #
1783
+ # * {Types::GetFirewallRuleGroupPolicyResponse#firewall_rule_group_policy #firewall_rule_group_policy} => String
1784
+ #
1785
+ # @example Request syntax with placeholder values
1786
+ #
1787
+ # resp = client.get_firewall_rule_group_policy({
1788
+ # arn: "Arn", # required
1789
+ # })
1790
+ #
1791
+ # @example Response structure
1792
+ #
1793
+ # resp.firewall_rule_group_policy #=> String
1794
+ #
1795
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetFirewallRuleGroupPolicy AWS API Documentation
1796
+ #
1797
+ # @overload get_firewall_rule_group_policy(params = {})
1798
+ # @param [Hash] params ({})
1799
+ def get_firewall_rule_group_policy(params = {}, options = {})
1800
+ req = build_request(:get_firewall_rule_group_policy, params)
1801
+ req.send_request(options)
1802
+ end
1803
+
1804
+ # Gets DNSSEC validation information for a specified resource.
1805
+ #
1806
+ # @option params [required, String] :resource_id
1807
+ # The ID of the virtual private cloud (VPC) for the DNSSEC validation
1808
+ # status.
1809
+ #
1810
+ # @return [Types::GetResolverDnssecConfigResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1811
+ #
1812
+ # * {Types::GetResolverDnssecConfigResponse#resolver_dnssec_config #resolver_dnssec_config} => Types::ResolverDnssecConfig
1813
+ #
1814
+ # @example Request syntax with placeholder values
1815
+ #
1816
+ # resp = client.get_resolver_dnssec_config({
1817
+ # resource_id: "ResourceId", # required
1818
+ # })
1819
+ #
1820
+ # @example Response structure
1821
+ #
1822
+ # resp.resolver_dnssec_config.id #=> String
1823
+ # resp.resolver_dnssec_config.owner_id #=> String
1824
+ # resp.resolver_dnssec_config.resource_id #=> String
1825
+ # resp.resolver_dnssec_config.validation_status #=> String, one of "ENABLING", "ENABLED", "DISABLING", "DISABLED"
1826
+ #
1827
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverDnssecConfig AWS API Documentation
1828
+ #
1829
+ # @overload get_resolver_dnssec_config(params = {})
1830
+ # @param [Hash] params ({})
1831
+ def get_resolver_dnssec_config(params = {}, options = {})
1832
+ req = build_request(:get_resolver_dnssec_config, params)
1833
+ req.send_request(options)
1834
+ end
1835
+
1836
+ # Gets information about a specified Resolver endpoint, such as whether
1837
+ # it's an inbound or an outbound Resolver endpoint, and the current
1838
+ # status of the endpoint.
1839
+ #
1840
+ # @option params [required, String] :resolver_endpoint_id
1841
+ # The ID of the Resolver endpoint that you want to get information
1842
+ # about.
1843
+ #
1844
+ # @return [Types::GetResolverEndpointResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1845
+ #
1846
+ # * {Types::GetResolverEndpointResponse#resolver_endpoint #resolver_endpoint} => Types::ResolverEndpoint
1847
+ #
1848
+ # @example Request syntax with placeholder values
1849
+ #
1850
+ # resp = client.get_resolver_endpoint({
1851
+ # resolver_endpoint_id: "ResourceId", # required
1852
+ # })
1853
+ #
1854
+ # @example Response structure
1855
+ #
1856
+ # resp.resolver_endpoint.id #=> String
1857
+ # resp.resolver_endpoint.creator_request_id #=> String
1858
+ # resp.resolver_endpoint.arn #=> String
1859
+ # resp.resolver_endpoint.name #=> String
1860
+ # resp.resolver_endpoint.security_group_ids #=> Array
1861
+ # resp.resolver_endpoint.security_group_ids[0] #=> String
1862
+ # resp.resolver_endpoint.direction #=> String, one of "INBOUND", "OUTBOUND"
1863
+ # resp.resolver_endpoint.ip_address_count #=> Integer
1864
+ # resp.resolver_endpoint.host_vpc_id #=> String
1865
+ # resp.resolver_endpoint.status #=> String, one of "CREATING", "OPERATIONAL", "UPDATING", "AUTO_RECOVERING", "ACTION_NEEDED", "DELETING"
1866
+ # resp.resolver_endpoint.status_message #=> String
1867
+ # resp.resolver_endpoint.creation_time #=> String
1868
+ # resp.resolver_endpoint.modification_time #=> String
1869
+ #
1870
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverEndpoint AWS API Documentation
1871
+ #
1872
+ # @overload get_resolver_endpoint(params = {})
1873
+ # @param [Hash] params ({})
1874
+ def get_resolver_endpoint(params = {}, options = {})
1875
+ req = build_request(:get_resolver_endpoint, params)
1876
+ req.send_request(options)
1877
+ end
1878
+
1879
+ # Gets information about a specified Resolver query logging
1880
+ # configuration, such as the number of VPCs that the configuration is
1881
+ # logging queries for and the location that logs are sent to.
1882
+ #
1883
+ # @option params [required, String] :resolver_query_log_config_id
1884
+ # The ID of the Resolver query logging configuration that you want to
1885
+ # get information about.
1886
+ #
1887
+ # @return [Types::GetResolverQueryLogConfigResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1888
+ #
1889
+ # * {Types::GetResolverQueryLogConfigResponse#resolver_query_log_config #resolver_query_log_config} => Types::ResolverQueryLogConfig
1890
+ #
1891
+ # @example Request syntax with placeholder values
1892
+ #
1893
+ # resp = client.get_resolver_query_log_config({
1894
+ # resolver_query_log_config_id: "ResourceId", # required
1895
+ # })
1896
+ #
1897
+ # @example Response structure
1898
+ #
1899
+ # resp.resolver_query_log_config.id #=> String
1900
+ # resp.resolver_query_log_config.owner_id #=> String
1901
+ # resp.resolver_query_log_config.status #=> String, one of "CREATING", "CREATED", "DELETING", "FAILED"
1226
1902
  # resp.resolver_query_log_config.share_status #=> String, one of "NOT_SHARED", "SHARED_WITH_ME", "SHARED_BY_ME"
1227
1903
  # resp.resolver_query_log_config.association_count #=> Integer
1228
1904
  # resp.resolver_query_log_config.arn #=> String
@@ -1261,168 +1937,644 @@ module Aws::Route53Resolver
1261
1937
  #
1262
1938
  # @example Response structure
1263
1939
  #
1264
- # resp.resolver_query_log_config_association.id #=> String
1265
- # resp.resolver_query_log_config_association.resolver_query_log_config_id #=> String
1266
- # resp.resolver_query_log_config_association.resource_id #=> String
1267
- # resp.resolver_query_log_config_association.status #=> String, one of "CREATING", "ACTIVE", "ACTION_NEEDED", "DELETING", "FAILED"
1268
- # resp.resolver_query_log_config_association.error #=> String, one of "NONE", "DESTINATION_NOT_FOUND", "ACCESS_DENIED", "INTERNAL_SERVICE_ERROR"
1269
- # resp.resolver_query_log_config_association.error_message #=> String
1270
- # resp.resolver_query_log_config_association.creation_time #=> String
1940
+ # resp.resolver_query_log_config_association.id #=> String
1941
+ # resp.resolver_query_log_config_association.resolver_query_log_config_id #=> String
1942
+ # resp.resolver_query_log_config_association.resource_id #=> String
1943
+ # resp.resolver_query_log_config_association.status #=> String, one of "CREATING", "ACTIVE", "ACTION_NEEDED", "DELETING", "FAILED"
1944
+ # resp.resolver_query_log_config_association.error #=> String, one of "NONE", "DESTINATION_NOT_FOUND", "ACCESS_DENIED", "INTERNAL_SERVICE_ERROR"
1945
+ # resp.resolver_query_log_config_association.error_message #=> String
1946
+ # resp.resolver_query_log_config_association.creation_time #=> String
1947
+ #
1948
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverQueryLogConfigAssociation AWS API Documentation
1949
+ #
1950
+ # @overload get_resolver_query_log_config_association(params = {})
1951
+ # @param [Hash] params ({})
1952
+ def get_resolver_query_log_config_association(params = {}, options = {})
1953
+ req = build_request(:get_resolver_query_log_config_association, params)
1954
+ req.send_request(options)
1955
+ end
1956
+
1957
+ # Gets information about a query logging policy. A query logging policy
1958
+ # specifies the Resolver query logging operations and resources that you
1959
+ # want to allow another AWS account to be able to use.
1960
+ #
1961
+ # @option params [required, String] :arn
1962
+ # The ARN of the query logging configuration that you want to get the
1963
+ # query logging policy for.
1964
+ #
1965
+ # @return [Types::GetResolverQueryLogConfigPolicyResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1966
+ #
1967
+ # * {Types::GetResolverQueryLogConfigPolicyResponse#resolver_query_log_config_policy #resolver_query_log_config_policy} => String
1968
+ #
1969
+ # @example Request syntax with placeholder values
1970
+ #
1971
+ # resp = client.get_resolver_query_log_config_policy({
1972
+ # arn: "Arn", # required
1973
+ # })
1974
+ #
1975
+ # @example Response structure
1976
+ #
1977
+ # resp.resolver_query_log_config_policy #=> String
1978
+ #
1979
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverQueryLogConfigPolicy AWS API Documentation
1980
+ #
1981
+ # @overload get_resolver_query_log_config_policy(params = {})
1982
+ # @param [Hash] params ({})
1983
+ def get_resolver_query_log_config_policy(params = {}, options = {})
1984
+ req = build_request(:get_resolver_query_log_config_policy, params)
1985
+ req.send_request(options)
1986
+ end
1987
+
1988
+ # Gets information about a specified Resolver rule, such as the domain
1989
+ # name that the rule forwards DNS queries for and the ID of the outbound
1990
+ # Resolver endpoint that the rule is associated with.
1991
+ #
1992
+ # @option params [required, String] :resolver_rule_id
1993
+ # The ID of the Resolver rule that you want to get information about.
1994
+ #
1995
+ # @return [Types::GetResolverRuleResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1996
+ #
1997
+ # * {Types::GetResolverRuleResponse#resolver_rule #resolver_rule} => Types::ResolverRule
1998
+ #
1999
+ # @example Request syntax with placeholder values
2000
+ #
2001
+ # resp = client.get_resolver_rule({
2002
+ # resolver_rule_id: "ResourceId", # required
2003
+ # })
2004
+ #
2005
+ # @example Response structure
2006
+ #
2007
+ # resp.resolver_rule.id #=> String
2008
+ # resp.resolver_rule.creator_request_id #=> String
2009
+ # resp.resolver_rule.arn #=> String
2010
+ # resp.resolver_rule.domain_name #=> String
2011
+ # resp.resolver_rule.status #=> String, one of "COMPLETE", "DELETING", "UPDATING", "FAILED"
2012
+ # resp.resolver_rule.status_message #=> String
2013
+ # resp.resolver_rule.rule_type #=> String, one of "FORWARD", "SYSTEM", "RECURSIVE"
2014
+ # resp.resolver_rule.name #=> String
2015
+ # resp.resolver_rule.target_ips #=> Array
2016
+ # resp.resolver_rule.target_ips[0].ip #=> String
2017
+ # resp.resolver_rule.target_ips[0].port #=> Integer
2018
+ # resp.resolver_rule.resolver_endpoint_id #=> String
2019
+ # resp.resolver_rule.owner_id #=> String
2020
+ # resp.resolver_rule.share_status #=> String, one of "NOT_SHARED", "SHARED_WITH_ME", "SHARED_BY_ME"
2021
+ # resp.resolver_rule.creation_time #=> String
2022
+ # resp.resolver_rule.modification_time #=> String
2023
+ #
2024
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverRule AWS API Documentation
2025
+ #
2026
+ # @overload get_resolver_rule(params = {})
2027
+ # @param [Hash] params ({})
2028
+ def get_resolver_rule(params = {}, options = {})
2029
+ req = build_request(:get_resolver_rule, params)
2030
+ req.send_request(options)
2031
+ end
2032
+
2033
+ # Gets information about an association between a specified Resolver
2034
+ # rule and a VPC. You associate a Resolver rule and a VPC using
2035
+ # [AssociateResolverRule][1].
2036
+ #
2037
+ #
2038
+ #
2039
+ # [1]: https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_AssociateResolverRule.html
2040
+ #
2041
+ # @option params [required, String] :resolver_rule_association_id
2042
+ # The ID of the Resolver rule association that you want to get
2043
+ # information about.
2044
+ #
2045
+ # @return [Types::GetResolverRuleAssociationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2046
+ #
2047
+ # * {Types::GetResolverRuleAssociationResponse#resolver_rule_association #resolver_rule_association} => Types::ResolverRuleAssociation
2048
+ #
2049
+ # @example Request syntax with placeholder values
2050
+ #
2051
+ # resp = client.get_resolver_rule_association({
2052
+ # resolver_rule_association_id: "ResourceId", # required
2053
+ # })
2054
+ #
2055
+ # @example Response structure
2056
+ #
2057
+ # resp.resolver_rule_association.id #=> String
2058
+ # resp.resolver_rule_association.resolver_rule_id #=> String
2059
+ # resp.resolver_rule_association.name #=> String
2060
+ # resp.resolver_rule_association.vpc_id #=> String
2061
+ # resp.resolver_rule_association.status #=> String, one of "CREATING", "COMPLETE", "DELETING", "FAILED", "OVERRIDDEN"
2062
+ # resp.resolver_rule_association.status_message #=> String
2063
+ #
2064
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverRuleAssociation AWS API Documentation
2065
+ #
2066
+ # @overload get_resolver_rule_association(params = {})
2067
+ # @param [Hash] params ({})
2068
+ def get_resolver_rule_association(params = {}, options = {})
2069
+ req = build_request(:get_resolver_rule_association, params)
2070
+ req.send_request(options)
2071
+ end
2072
+
2073
+ # Gets information about the Resolver rule policy for a specified rule.
2074
+ # A Resolver rule policy includes the rule that you want to share with
2075
+ # another account, the account that you want to share the rule with, and
2076
+ # the Resolver operations that you want to allow the account to use.
2077
+ #
2078
+ # @option params [required, String] :arn
2079
+ # The ID of the Resolver rule that you want to get the Resolver rule
2080
+ # policy for.
2081
+ #
2082
+ # @return [Types::GetResolverRulePolicyResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2083
+ #
2084
+ # * {Types::GetResolverRulePolicyResponse#resolver_rule_policy #resolver_rule_policy} => String
2085
+ #
2086
+ # @example Request syntax with placeholder values
2087
+ #
2088
+ # resp = client.get_resolver_rule_policy({
2089
+ # arn: "Arn", # required
2090
+ # })
2091
+ #
2092
+ # @example Response structure
2093
+ #
2094
+ # resp.resolver_rule_policy #=> String
2095
+ #
2096
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverRulePolicy AWS API Documentation
2097
+ #
2098
+ # @overload get_resolver_rule_policy(params = {})
2099
+ # @param [Hash] params ({})
2100
+ def get_resolver_rule_policy(params = {}, options = {})
2101
+ req = build_request(:get_resolver_rule_policy, params)
2102
+ req.send_request(options)
2103
+ end
2104
+
2105
+ # Imports domain names from a file into a domain list, for use in a DNS
2106
+ # firewall rule group.
2107
+ #
2108
+ # Each domain specification in your domain list must satisfy the
2109
+ # following requirements:
2110
+ #
2111
+ # * It can optionally start with `*` (asterisk).
2112
+ #
2113
+ # * With the exception of the optional starting asterisk, it must only
2114
+ # contain the following characters: `A-Z`, `a-z`, `0-9`, `-` (hyphen).
2115
+ #
2116
+ # * It must be from 1-255 characters in length.
2117
+ #
2118
+ # @option params [required, String] :firewall_domain_list_id
2119
+ # The ID of the domain list that you want to modify with the import
2120
+ # operation.
2121
+ #
2122
+ # @option params [required, String] :operation
2123
+ # What you want DNS Firewall to do with the domains that are listed in
2124
+ # the file. This must be set to `REPLACE`, which updates the domain list
2125
+ # to exactly match the list in the file.
2126
+ #
2127
+ # @option params [required, String] :domain_file_url
2128
+ # The fully qualified URL or URI of the file stored in Amazon Simple
2129
+ # Storage Service (Amazon S3) that contains the list of domains to
2130
+ # import.
2131
+ #
2132
+ # The file must be in an S3 bucket that's in the same Region as your
2133
+ # DNS Firewall. The file must be a text file and must contain a single
2134
+ # domain per line.
2135
+ #
2136
+ # @return [Types::ImportFirewallDomainsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2137
+ #
2138
+ # * {Types::ImportFirewallDomainsResponse#id #id} => String
2139
+ # * {Types::ImportFirewallDomainsResponse#name #name} => String
2140
+ # * {Types::ImportFirewallDomainsResponse#status #status} => String
2141
+ # * {Types::ImportFirewallDomainsResponse#status_message #status_message} => String
2142
+ #
2143
+ # @example Request syntax with placeholder values
2144
+ #
2145
+ # resp = client.import_firewall_domains({
2146
+ # firewall_domain_list_id: "ResourceId", # required
2147
+ # operation: "REPLACE", # required, accepts REPLACE
2148
+ # domain_file_url: "DomainListFileUrl", # required
2149
+ # })
2150
+ #
2151
+ # @example Response structure
2152
+ #
2153
+ # resp.id #=> String
2154
+ # resp.name #=> String
2155
+ # resp.status #=> String, one of "COMPLETE", "COMPLETE_IMPORT_FAILED", "IMPORTING", "DELETING", "UPDATING"
2156
+ # resp.status_message #=> String
2157
+ #
2158
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ImportFirewallDomains AWS API Documentation
2159
+ #
2160
+ # @overload import_firewall_domains(params = {})
2161
+ # @param [Hash] params ({})
2162
+ def import_firewall_domains(params = {}, options = {})
2163
+ req = build_request(:import_firewall_domains, params)
2164
+ req.send_request(options)
2165
+ end
2166
+
2167
+ # Retrieves the firewall configurations that you have defined. DNS
2168
+ # Firewall uses the configurations to manage firewall behavior for your
2169
+ # VPCs.
2170
+ #
2171
+ # A single call might return only a partial list of the configurations.
2172
+ # For information, see `MaxResults`.
2173
+ #
2174
+ # @option params [Integer] :max_results
2175
+ # The maximum number of objects that you want Resolver to return for
2176
+ # this request. If more objects are available, in the response, Resolver
2177
+ # provides a `NextToken` value that you can use in a subsequent call to
2178
+ # get the next batch of objects.
2179
+ #
2180
+ # If you don't specify a value for `MaxResults`, Resolver returns up to
2181
+ # 100 objects.
2182
+ #
2183
+ # @option params [String] :next_token
2184
+ # For the first call to this list request, omit this value.
2185
+ #
2186
+ # When you request a list of objects, Resolver returns at most the
2187
+ # number of objects specified in `MaxResults`. If more objects are
2188
+ # available for retrieval, Resolver returns a `NextToken` value in the
2189
+ # response. To retrieve the next batch of objects, use the token that
2190
+ # was returned for the prior request in your next request.
2191
+ #
2192
+ # @return [Types::ListFirewallConfigsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2193
+ #
2194
+ # * {Types::ListFirewallConfigsResponse#next_token #next_token} => String
2195
+ # * {Types::ListFirewallConfigsResponse#firewall_configs #firewall_configs} => Array&lt;Types::FirewallConfig&gt;
2196
+ #
2197
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
2198
+ #
2199
+ # @example Request syntax with placeholder values
2200
+ #
2201
+ # resp = client.list_firewall_configs({
2202
+ # max_results: 1,
2203
+ # next_token: "NextToken",
2204
+ # })
2205
+ #
2206
+ # @example Response structure
2207
+ #
2208
+ # resp.next_token #=> String
2209
+ # resp.firewall_configs #=> Array
2210
+ # resp.firewall_configs[0].id #=> String
2211
+ # resp.firewall_configs[0].resource_id #=> String
2212
+ # resp.firewall_configs[0].owner_id #=> String
2213
+ # resp.firewall_configs[0].firewall_fail_open #=> String, one of "ENABLED", "DISABLED"
2214
+ #
2215
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListFirewallConfigs AWS API Documentation
2216
+ #
2217
+ # @overload list_firewall_configs(params = {})
2218
+ # @param [Hash] params ({})
2219
+ def list_firewall_configs(params = {}, options = {})
2220
+ req = build_request(:list_firewall_configs, params)
2221
+ req.send_request(options)
2222
+ end
2223
+
2224
+ # Retrieves the firewall domain lists that you have defined. For each
2225
+ # firewall domain list, you can retrieve the domains that are defined
2226
+ # for a list by calling ListFirewallDomains.
2227
+ #
2228
+ # A single call to this list operation might return only a partial list
2229
+ # of the domain lists. For information, see `MaxResults`.
2230
+ #
2231
+ # @option params [Integer] :max_results
2232
+ # The maximum number of objects that you want Resolver to return for
2233
+ # this request. If more objects are available, in the response, Resolver
2234
+ # provides a `NextToken` value that you can use in a subsequent call to
2235
+ # get the next batch of objects.
2236
+ #
2237
+ # If you don't specify a value for `MaxResults`, Resolver returns up to
2238
+ # 100 objects.
2239
+ #
2240
+ # @option params [String] :next_token
2241
+ # For the first call to this list request, omit this value.
2242
+ #
2243
+ # When you request a list of objects, Resolver returns at most the
2244
+ # number of objects specified in `MaxResults`. If more objects are
2245
+ # available for retrieval, Resolver returns a `NextToken` value in the
2246
+ # response. To retrieve the next batch of objects, use the token that
2247
+ # was returned for the prior request in your next request.
2248
+ #
2249
+ # @return [Types::ListFirewallDomainListsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2250
+ #
2251
+ # * {Types::ListFirewallDomainListsResponse#next_token #next_token} => String
2252
+ # * {Types::ListFirewallDomainListsResponse#firewall_domain_lists #firewall_domain_lists} => Array&lt;Types::FirewallDomainListMetadata&gt;
2253
+ #
2254
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
2255
+ #
2256
+ # @example Request syntax with placeholder values
2257
+ #
2258
+ # resp = client.list_firewall_domain_lists({
2259
+ # max_results: 1,
2260
+ # next_token: "NextToken",
2261
+ # })
2262
+ #
2263
+ # @example Response structure
2264
+ #
2265
+ # resp.next_token #=> String
2266
+ # resp.firewall_domain_lists #=> Array
2267
+ # resp.firewall_domain_lists[0].id #=> String
2268
+ # resp.firewall_domain_lists[0].arn #=> String
2269
+ # resp.firewall_domain_lists[0].name #=> String
2270
+ # resp.firewall_domain_lists[0].creator_request_id #=> String
2271
+ # resp.firewall_domain_lists[0].managed_owner_name #=> String
2272
+ #
2273
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListFirewallDomainLists AWS API Documentation
2274
+ #
2275
+ # @overload list_firewall_domain_lists(params = {})
2276
+ # @param [Hash] params ({})
2277
+ def list_firewall_domain_lists(params = {}, options = {})
2278
+ req = build_request(:list_firewall_domain_lists, params)
2279
+ req.send_request(options)
2280
+ end
2281
+
2282
+ # Retrieves the domains that you have defined for the specified firewall
2283
+ # domain list.
2284
+ #
2285
+ # A single call might return only a partial list of the domains. For
2286
+ # information, see `MaxResults`.
2287
+ #
2288
+ # @option params [required, String] :firewall_domain_list_id
2289
+ # The ID of the domain list whose domains you want to retrieve.
2290
+ #
2291
+ # @option params [Integer] :max_results
2292
+ # The maximum number of objects that you want Resolver to return for
2293
+ # this request. If more objects are available, in the response, Resolver
2294
+ # provides a `NextToken` value that you can use in a subsequent call to
2295
+ # get the next batch of objects.
2296
+ #
2297
+ # If you don't specify a value for `MaxResults`, Resolver returns up to
2298
+ # 100 objects.
2299
+ #
2300
+ # @option params [String] :next_token
2301
+ # For the first call to this list request, omit this value.
2302
+ #
2303
+ # When you request a list of objects, Resolver returns at most the
2304
+ # number of objects specified in `MaxResults`. If more objects are
2305
+ # available for retrieval, Resolver returns a `NextToken` value in the
2306
+ # response. To retrieve the next batch of objects, use the token that
2307
+ # was returned for the prior request in your next request.
2308
+ #
2309
+ # @return [Types::ListFirewallDomainsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2310
+ #
2311
+ # * {Types::ListFirewallDomainsResponse#next_token #next_token} => String
2312
+ # * {Types::ListFirewallDomainsResponse#domains #domains} => Array&lt;String&gt;
2313
+ #
2314
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
2315
+ #
2316
+ # @example Request syntax with placeholder values
2317
+ #
2318
+ # resp = client.list_firewall_domains({
2319
+ # firewall_domain_list_id: "ResourceId", # required
2320
+ # max_results: 1,
2321
+ # next_token: "NextToken",
2322
+ # })
2323
+ #
2324
+ # @example Response structure
2325
+ #
2326
+ # resp.next_token #=> String
2327
+ # resp.domains #=> Array
2328
+ # resp.domains[0] #=> String
1271
2329
  #
1272
- # @see http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverQueryLogConfigAssociation AWS API Documentation
2330
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListFirewallDomains AWS API Documentation
1273
2331
  #
1274
- # @overload get_resolver_query_log_config_association(params = {})
2332
+ # @overload list_firewall_domains(params = {})
1275
2333
  # @param [Hash] params ({})
1276
- def get_resolver_query_log_config_association(params = {}, options = {})
1277
- req = build_request(:get_resolver_query_log_config_association, params)
2334
+ def list_firewall_domains(params = {}, options = {})
2335
+ req = build_request(:list_firewall_domains, params)
1278
2336
  req.send_request(options)
1279
2337
  end
1280
2338
 
1281
- # Gets information about a query logging policy. A query logging policy
1282
- # specifies the Resolver query logging operations and resources that you
1283
- # want to allow another AWS account to be able to use.
2339
+ # Retrieves the firewall rule group associations that you have defined.
2340
+ # Each association enables DNS filtering for a VPC with one rule group.
1284
2341
  #
1285
- # @option params [required, String] :arn
1286
- # The ARN of the query logging configuration that you want to get the
1287
- # query logging policy for.
2342
+ # A single call might return only a partial list of the associations.
2343
+ # For information, see `MaxResults`.
1288
2344
  #
1289
- # @return [Types::GetResolverQueryLogConfigPolicyResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2345
+ # @option params [String] :firewall_rule_group_id
2346
+ # The unique identifier of the firewall rule group that you want to
2347
+ # retrieve the associations for. Leave this blank to retrieve
2348
+ # associations for any rule group.
1290
2349
  #
1291
- # * {Types::GetResolverQueryLogConfigPolicyResponse#resolver_query_log_config_policy #resolver_query_log_config_policy} => String
2350
+ # @option params [String] :vpc_id
2351
+ # The unique identifier of the VPC that you want to retrieve the
2352
+ # associations for. Leave this blank to retrieve associations for any
2353
+ # VPC.
1292
2354
  #
1293
- # @example Request syntax with placeholder values
2355
+ # @option params [Integer] :priority
2356
+ # The setting that determines the processing order of the rule group
2357
+ # among the rule groups that are associated with a single VPC. DNS
2358
+ # Firewall filters VPC traffic starting from the rule group with the
2359
+ # lowest numeric priority setting.
1294
2360
  #
1295
- # resp = client.get_resolver_query_log_config_policy({
1296
- # arn: "Arn", # required
1297
- # })
2361
+ # @option params [String] :status
2362
+ # The association `Status` setting that you want DNS Firewall to filter
2363
+ # on for the list. If you don't specify this, then DNS Firewall returns
2364
+ # all associations, regardless of status.
1298
2365
  #
1299
- # @example Response structure
2366
+ # @option params [Integer] :max_results
2367
+ # The maximum number of objects that you want Resolver to return for
2368
+ # this request. If more objects are available, in the response, Resolver
2369
+ # provides a `NextToken` value that you can use in a subsequent call to
2370
+ # get the next batch of objects.
1300
2371
  #
1301
- # resp.resolver_query_log_config_policy #=> String
2372
+ # If you don't specify a value for `MaxResults`, Resolver returns up to
2373
+ # 100 objects.
1302
2374
  #
1303
- # @see http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverQueryLogConfigPolicy AWS API Documentation
2375
+ # @option params [String] :next_token
2376
+ # For the first call to this list request, omit this value.
1304
2377
  #
1305
- # @overload get_resolver_query_log_config_policy(params = {})
1306
- # @param [Hash] params ({})
1307
- def get_resolver_query_log_config_policy(params = {}, options = {})
1308
- req = build_request(:get_resolver_query_log_config_policy, params)
1309
- req.send_request(options)
1310
- end
1311
-
1312
- # Gets information about a specified Resolver rule, such as the domain
1313
- # name that the rule forwards DNS queries for and the ID of the outbound
1314
- # Resolver endpoint that the rule is associated with.
2378
+ # When you request a list of objects, Resolver returns at most the
2379
+ # number of objects specified in `MaxResults`. If more objects are
2380
+ # available for retrieval, Resolver returns a `NextToken` value in the
2381
+ # response. To retrieve the next batch of objects, use the token that
2382
+ # was returned for the prior request in your next request.
1315
2383
  #
1316
- # @option params [required, String] :resolver_rule_id
1317
- # The ID of the Resolver rule that you want to get information about.
2384
+ # @return [Types::ListFirewallRuleGroupAssociationsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1318
2385
  #
1319
- # @return [Types::GetResolverRuleResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2386
+ # * {Types::ListFirewallRuleGroupAssociationsResponse#next_token #next_token} => String
2387
+ # * {Types::ListFirewallRuleGroupAssociationsResponse#firewall_rule_group_associations #firewall_rule_group_associations} => Array&lt;Types::FirewallRuleGroupAssociation&gt;
1320
2388
  #
1321
- # * {Types::GetResolverRuleResponse#resolver_rule #resolver_rule} => Types::ResolverRule
2389
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1322
2390
  #
1323
2391
  # @example Request syntax with placeholder values
1324
2392
  #
1325
- # resp = client.get_resolver_rule({
1326
- # resolver_rule_id: "ResourceId", # required
2393
+ # resp = client.list_firewall_rule_group_associations({
2394
+ # firewall_rule_group_id: "ResourceId",
2395
+ # vpc_id: "ResourceId",
2396
+ # priority: 1,
2397
+ # status: "COMPLETE", # accepts COMPLETE, DELETING, UPDATING
2398
+ # max_results: 1,
2399
+ # next_token: "NextToken",
1327
2400
  # })
1328
2401
  #
1329
2402
  # @example Response structure
1330
2403
  #
1331
- # resp.resolver_rule.id #=> String
1332
- # resp.resolver_rule.creator_request_id #=> String
1333
- # resp.resolver_rule.arn #=> String
1334
- # resp.resolver_rule.domain_name #=> String
1335
- # resp.resolver_rule.status #=> String, one of "COMPLETE", "DELETING", "UPDATING", "FAILED"
1336
- # resp.resolver_rule.status_message #=> String
1337
- # resp.resolver_rule.rule_type #=> String, one of "FORWARD", "SYSTEM", "RECURSIVE"
1338
- # resp.resolver_rule.name #=> String
1339
- # resp.resolver_rule.target_ips #=> Array
1340
- # resp.resolver_rule.target_ips[0].ip #=> String
1341
- # resp.resolver_rule.target_ips[0].port #=> Integer
1342
- # resp.resolver_rule.resolver_endpoint_id #=> String
1343
- # resp.resolver_rule.owner_id #=> String
1344
- # resp.resolver_rule.share_status #=> String, one of "NOT_SHARED", "SHARED_WITH_ME", "SHARED_BY_ME"
1345
- # resp.resolver_rule.creation_time #=> String
1346
- # resp.resolver_rule.modification_time #=> String
1347
- #
1348
- # @see http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverRule AWS API Documentation
1349
- #
1350
- # @overload get_resolver_rule(params = {})
2404
+ # resp.next_token #=> String
2405
+ # resp.firewall_rule_group_associations #=> Array
2406
+ # resp.firewall_rule_group_associations[0].id #=> String
2407
+ # resp.firewall_rule_group_associations[0].arn #=> String
2408
+ # resp.firewall_rule_group_associations[0].firewall_rule_group_id #=> String
2409
+ # resp.firewall_rule_group_associations[0].vpc_id #=> String
2410
+ # resp.firewall_rule_group_associations[0].name #=> String
2411
+ # resp.firewall_rule_group_associations[0].priority #=> Integer
2412
+ # resp.firewall_rule_group_associations[0].mutation_protection #=> String, one of "ENABLED", "DISABLED"
2413
+ # resp.firewall_rule_group_associations[0].managed_owner_name #=> String
2414
+ # resp.firewall_rule_group_associations[0].status #=> String, one of "COMPLETE", "DELETING", "UPDATING"
2415
+ # resp.firewall_rule_group_associations[0].status_message #=> String
2416
+ # resp.firewall_rule_group_associations[0].creator_request_id #=> String
2417
+ # resp.firewall_rule_group_associations[0].creation_time #=> String
2418
+ # resp.firewall_rule_group_associations[0].modification_time #=> String
2419
+ #
2420
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListFirewallRuleGroupAssociations AWS API Documentation
2421
+ #
2422
+ # @overload list_firewall_rule_group_associations(params = {})
1351
2423
  # @param [Hash] params ({})
1352
- def get_resolver_rule(params = {}, options = {})
1353
- req = build_request(:get_resolver_rule, params)
2424
+ def list_firewall_rule_group_associations(params = {}, options = {})
2425
+ req = build_request(:list_firewall_rule_group_associations, params)
1354
2426
  req.send_request(options)
1355
2427
  end
1356
2428
 
1357
- # Gets information about an association between a specified Resolver
1358
- # rule and a VPC. You associate a Resolver rule and a VPC using
1359
- # [AssociateResolverRule][1].
2429
+ # Retrieves the minimal high-level information for the rule groups that
2430
+ # you have defined.
1360
2431
  #
2432
+ # A single call might return only a partial list of the rule groups. For
2433
+ # information, see `MaxResults`.
1361
2434
  #
2435
+ # @option params [Integer] :max_results
2436
+ # The maximum number of objects that you want Resolver to return for
2437
+ # this request. If more objects are available, in the response, Resolver
2438
+ # provides a `NextToken` value that you can use in a subsequent call to
2439
+ # get the next batch of objects.
1362
2440
  #
1363
- # [1]: https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_AssociateResolverRule.html
2441
+ # If you don't specify a value for `MaxResults`, Resolver returns up to
2442
+ # 100 objects.
1364
2443
  #
1365
- # @option params [required, String] :resolver_rule_association_id
1366
- # The ID of the Resolver rule association that you want to get
1367
- # information about.
2444
+ # @option params [String] :next_token
2445
+ # For the first call to this list request, omit this value.
1368
2446
  #
1369
- # @return [Types::GetResolverRuleAssociationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2447
+ # When you request a list of objects, Resolver returns at most the
2448
+ # number of objects specified in `MaxResults`. If more objects are
2449
+ # available for retrieval, Resolver returns a `NextToken` value in the
2450
+ # response. To retrieve the next batch of objects, use the token that
2451
+ # was returned for the prior request in your next request.
1370
2452
  #
1371
- # * {Types::GetResolverRuleAssociationResponse#resolver_rule_association #resolver_rule_association} => Types::ResolverRuleAssociation
2453
+ # @return [Types::ListFirewallRuleGroupsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2454
+ #
2455
+ # * {Types::ListFirewallRuleGroupsResponse#next_token #next_token} => String
2456
+ # * {Types::ListFirewallRuleGroupsResponse#firewall_rule_groups #firewall_rule_groups} => Array&lt;Types::FirewallRuleGroupMetadata&gt;
2457
+ #
2458
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1372
2459
  #
1373
2460
  # @example Request syntax with placeholder values
1374
2461
  #
1375
- # resp = client.get_resolver_rule_association({
1376
- # resolver_rule_association_id: "ResourceId", # required
2462
+ # resp = client.list_firewall_rule_groups({
2463
+ # max_results: 1,
2464
+ # next_token: "NextToken",
1377
2465
  # })
1378
2466
  #
1379
2467
  # @example Response structure
1380
2468
  #
1381
- # resp.resolver_rule_association.id #=> String
1382
- # resp.resolver_rule_association.resolver_rule_id #=> String
1383
- # resp.resolver_rule_association.name #=> String
1384
- # resp.resolver_rule_association.vpc_id #=> String
1385
- # resp.resolver_rule_association.status #=> String, one of "CREATING", "COMPLETE", "DELETING", "FAILED", "OVERRIDDEN"
1386
- # resp.resolver_rule_association.status_message #=> String
2469
+ # resp.next_token #=> String
2470
+ # resp.firewall_rule_groups #=> Array
2471
+ # resp.firewall_rule_groups[0].id #=> String
2472
+ # resp.firewall_rule_groups[0].arn #=> String
2473
+ # resp.firewall_rule_groups[0].name #=> String
2474
+ # resp.firewall_rule_groups[0].owner_id #=> String
2475
+ # resp.firewall_rule_groups[0].creator_request_id #=> String
2476
+ # resp.firewall_rule_groups[0].share_status #=> String, one of "NOT_SHARED", "SHARED_WITH_ME", "SHARED_BY_ME"
1387
2477
  #
1388
- # @see http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverRuleAssociation AWS API Documentation
2478
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListFirewallRuleGroups AWS API Documentation
1389
2479
  #
1390
- # @overload get_resolver_rule_association(params = {})
2480
+ # @overload list_firewall_rule_groups(params = {})
1391
2481
  # @param [Hash] params ({})
1392
- def get_resolver_rule_association(params = {}, options = {})
1393
- req = build_request(:get_resolver_rule_association, params)
2482
+ def list_firewall_rule_groups(params = {}, options = {})
2483
+ req = build_request(:list_firewall_rule_groups, params)
1394
2484
  req.send_request(options)
1395
2485
  end
1396
2486
 
1397
- # Gets information about the Resolver rule policy for a specified rule.
1398
- # A Resolver rule policy includes the rule that you want to share with
1399
- # another account, the account that you want to share the rule with, and
1400
- # the Resolver operations that you want to allow the account to use.
2487
+ # Retrieves the firewall rules that you have defined for the specified
2488
+ # firewall rule group. DNS Firewall uses the rules in a rule group to
2489
+ # filter DNS network traffic for a VPC.
1401
2490
  #
1402
- # @option params [required, String] :arn
1403
- # The ID of the Resolver rule that you want to get the Resolver rule
1404
- # policy for.
2491
+ # A single call might return only a partial list of the rules. For
2492
+ # information, see `MaxResults`.
1405
2493
  #
1406
- # @return [Types::GetResolverRulePolicyResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2494
+ # @option params [required, String] :firewall_rule_group_id
2495
+ # The unique identifier of the firewall rule group that you want to
2496
+ # retrieve the rules for.
1407
2497
  #
1408
- # * {Types::GetResolverRulePolicyResponse#resolver_rule_policy #resolver_rule_policy} => String
2498
+ # @option params [Integer] :priority
2499
+ # Optional additional filter for the rules to retrieve.
2500
+ #
2501
+ # The setting that determines the processing order of the rules in a
2502
+ # rule group. DNS Firewall processes the rules in a rule group by order
2503
+ # of priority, starting from the lowest setting.
2504
+ #
2505
+ # @option params [String] :action
2506
+ # Optional additional filter for the rules to retrieve.
2507
+ #
2508
+ # The action that DNS Firewall should take on a DNS query when it
2509
+ # matches one of the domains in the rule's domain list:
2510
+ #
2511
+ # * `ALLOW` - Permit the request to go through.
2512
+ #
2513
+ # * `ALERT` - Permit the request to go through but send an alert to the
2514
+ # logs.
2515
+ #
2516
+ # * `BLOCK` - Disallow the request. If this is specified, additional
2517
+ # handling details are provided in the rule's `BlockResponse`
2518
+ # setting.
2519
+ #
2520
+ # @option params [Integer] :max_results
2521
+ # The maximum number of objects that you want Resolver to return for
2522
+ # this request. If more objects are available, in the response, Resolver
2523
+ # provides a `NextToken` value that you can use in a subsequent call to
2524
+ # get the next batch of objects.
2525
+ #
2526
+ # If you don't specify a value for `MaxResults`, Resolver returns up to
2527
+ # 100 objects.
2528
+ #
2529
+ # @option params [String] :next_token
2530
+ # For the first call to this list request, omit this value.
2531
+ #
2532
+ # When you request a list of objects, Resolver returns at most the
2533
+ # number of objects specified in `MaxResults`. If more objects are
2534
+ # available for retrieval, Resolver returns a `NextToken` value in the
2535
+ # response. To retrieve the next batch of objects, use the token that
2536
+ # was returned for the prior request in your next request.
2537
+ #
2538
+ # @return [Types::ListFirewallRulesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2539
+ #
2540
+ # * {Types::ListFirewallRulesResponse#next_token #next_token} => String
2541
+ # * {Types::ListFirewallRulesResponse#firewall_rules #firewall_rules} => Array&lt;Types::FirewallRule&gt;
2542
+ #
2543
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1409
2544
  #
1410
2545
  # @example Request syntax with placeholder values
1411
2546
  #
1412
- # resp = client.get_resolver_rule_policy({
1413
- # arn: "Arn", # required
2547
+ # resp = client.list_firewall_rules({
2548
+ # firewall_rule_group_id: "ResourceId", # required
2549
+ # priority: 1,
2550
+ # action: "ALLOW", # accepts ALLOW, BLOCK, ALERT
2551
+ # max_results: 1,
2552
+ # next_token: "NextToken",
1414
2553
  # })
1415
2554
  #
1416
2555
  # @example Response structure
1417
2556
  #
1418
- # resp.resolver_rule_policy #=> String
1419
- #
1420
- # @see http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverRulePolicy AWS API Documentation
1421
- #
1422
- # @overload get_resolver_rule_policy(params = {})
2557
+ # resp.next_token #=> String
2558
+ # resp.firewall_rules #=> Array
2559
+ # resp.firewall_rules[0].firewall_rule_group_id #=> String
2560
+ # resp.firewall_rules[0].firewall_domain_list_id #=> String
2561
+ # resp.firewall_rules[0].name #=> String
2562
+ # resp.firewall_rules[0].priority #=> Integer
2563
+ # resp.firewall_rules[0].action #=> String, one of "ALLOW", "BLOCK", "ALERT"
2564
+ # resp.firewall_rules[0].block_response #=> String, one of "NODATA", "NXDOMAIN", "OVERRIDE"
2565
+ # resp.firewall_rules[0].block_override_domain #=> String
2566
+ # resp.firewall_rules[0].block_override_dns_type #=> String, one of "CNAME"
2567
+ # resp.firewall_rules[0].block_override_ttl #=> Integer
2568
+ # resp.firewall_rules[0].creator_request_id #=> String
2569
+ # resp.firewall_rules[0].creation_time #=> String
2570
+ # resp.firewall_rules[0].modification_time #=> String
2571
+ #
2572
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListFirewallRules AWS API Documentation
2573
+ #
2574
+ # @overload list_firewall_rules(params = {})
1423
2575
  # @param [Hash] params ({})
1424
- def get_resolver_rule_policy(params = {}, options = {})
1425
- req = build_request(:get_resolver_rule_policy, params)
2576
+ def list_firewall_rules(params = {}, options = {})
2577
+ req = build_request(:list_firewall_rules, params)
1426
2578
  req.send_request(options)
1427
2579
  end
1428
2580
 
@@ -2106,6 +3258,42 @@ module Aws::Route53Resolver
2106
3258
  req.send_request(options)
2107
3259
  end
2108
3260
 
3261
+ # Attaches an AWS Identity and Access Management (AWS IAM) policy for
3262
+ # sharing the rule group. You can use the policy to share the rule group
3263
+ # using AWS Resource Access Manager (AWS RAM).
3264
+ #
3265
+ # @option params [required, String] :arn
3266
+ # The ARN (Amazon Resource Name) for the rule group that you want to
3267
+ # share.
3268
+ #
3269
+ # @option params [required, String] :firewall_rule_group_policy
3270
+ # The AWS Identity and Access Management (AWS IAM) policy to attach to
3271
+ # the rule group.
3272
+ #
3273
+ # @return [Types::PutFirewallRuleGroupPolicyResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3274
+ #
3275
+ # * {Types::PutFirewallRuleGroupPolicyResponse#return_value #return_value} => Boolean
3276
+ #
3277
+ # @example Request syntax with placeholder values
3278
+ #
3279
+ # resp = client.put_firewall_rule_group_policy({
3280
+ # arn: "Arn", # required
3281
+ # firewall_rule_group_policy: "FirewallRuleGroupPolicy", # required
3282
+ # })
3283
+ #
3284
+ # @example Response structure
3285
+ #
3286
+ # resp.return_value #=> Boolean
3287
+ #
3288
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/PutFirewallRuleGroupPolicy AWS API Documentation
3289
+ #
3290
+ # @overload put_firewall_rule_group_policy(params = {})
3291
+ # @param [Hash] params ({})
3292
+ def put_firewall_rule_group_policy(params = {}, options = {})
3293
+ req = build_request(:put_firewall_rule_group_policy, params)
3294
+ req.send_request(options)
3295
+ end
3296
+
2109
3297
  # Specifies an AWS account that you want to share a query logging
2110
3298
  # configuration with, the query logging configuration that you want to
2111
3299
  # share, and the operations that you want the account to be able to
@@ -2314,6 +3502,286 @@ module Aws::Route53Resolver
2314
3502
  req.send_request(options)
2315
3503
  end
2316
3504
 
3505
+ # Updates the configuration of the firewall behavior provided by DNS
3506
+ # Firewall for a single VPC from Amazon Virtual Private Cloud (Amazon
3507
+ # VPC).
3508
+ #
3509
+ # @option params [required, String] :resource_id
3510
+ # The ID of the VPC that the configuration is for.
3511
+ #
3512
+ # @option params [required, String] :firewall_fail_open
3513
+ # Determines how Route 53 Resolver handles queries during failures, for
3514
+ # example when all traffic that is sent to DNS Firewall fails to receive
3515
+ # a reply.
3516
+ #
3517
+ # * By default, fail open is disabled, which means the failure mode is
3518
+ # closed. This approach favors security over availability. DNS
3519
+ # Firewall blocks queries that it is unable to evaluate properly.
3520
+ #
3521
+ # * If you enable this option, the failure mode is open. This approach
3522
+ # favors availability over security. DNS Firewall allows queries to
3523
+ # proceed if it is unable to properly evaluate them.
3524
+ #
3525
+ # This behavior is only enforced for VPCs that have at least one DNS
3526
+ # Firewall rule group association.
3527
+ #
3528
+ # @return [Types::UpdateFirewallConfigResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3529
+ #
3530
+ # * {Types::UpdateFirewallConfigResponse#firewall_config #firewall_config} => Types::FirewallConfig
3531
+ #
3532
+ # @example Request syntax with placeholder values
3533
+ #
3534
+ # resp = client.update_firewall_config({
3535
+ # resource_id: "ResourceId", # required
3536
+ # firewall_fail_open: "ENABLED", # required, accepts ENABLED, DISABLED
3537
+ # })
3538
+ #
3539
+ # @example Response structure
3540
+ #
3541
+ # resp.firewall_config.id #=> String
3542
+ # resp.firewall_config.resource_id #=> String
3543
+ # resp.firewall_config.owner_id #=> String
3544
+ # resp.firewall_config.firewall_fail_open #=> String, one of "ENABLED", "DISABLED"
3545
+ #
3546
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UpdateFirewallConfig AWS API Documentation
3547
+ #
3548
+ # @overload update_firewall_config(params = {})
3549
+ # @param [Hash] params ({})
3550
+ def update_firewall_config(params = {}, options = {})
3551
+ req = build_request(:update_firewall_config, params)
3552
+ req.send_request(options)
3553
+ end
3554
+
3555
+ # Updates the firewall domain list from an array of domain
3556
+ # specifications.
3557
+ #
3558
+ # @option params [required, String] :firewall_domain_list_id
3559
+ # The ID of the domain list whose domains you want to update.
3560
+ #
3561
+ # @option params [required, String] :operation
3562
+ # What you want DNS Firewall to do with the domains that you are
3563
+ # providing:
3564
+ #
3565
+ # * `ADD` - Add the domains to the ones that are already in the domain
3566
+ # list.
3567
+ #
3568
+ # * `REMOVE` - Search the domain list for the domains and remove them
3569
+ # from the list.
3570
+ #
3571
+ # * `REPLACE` - Update the domain list to exactly match the list that
3572
+ # you are providing.
3573
+ #
3574
+ # @option params [required, Array<String>] :domains
3575
+ # A list of domains to use in the update operation.
3576
+ #
3577
+ # Each domain specification in your domain list must satisfy the
3578
+ # following requirements:
3579
+ #
3580
+ # * It can optionally start with `*` (asterisk).
3581
+ #
3582
+ # * With the exception of the optional starting asterisk, it must only
3583
+ # contain the following characters: `A-Z`, `a-z`, `0-9`, `-` (hyphen).
3584
+ #
3585
+ # * It must be from 1-255 characters in length.
3586
+ #
3587
+ # @return [Types::UpdateFirewallDomainsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3588
+ #
3589
+ # * {Types::UpdateFirewallDomainsResponse#id #id} => String
3590
+ # * {Types::UpdateFirewallDomainsResponse#name #name} => String
3591
+ # * {Types::UpdateFirewallDomainsResponse#status #status} => String
3592
+ # * {Types::UpdateFirewallDomainsResponse#status_message #status_message} => String
3593
+ #
3594
+ # @example Request syntax with placeholder values
3595
+ #
3596
+ # resp = client.update_firewall_domains({
3597
+ # firewall_domain_list_id: "ResourceId", # required
3598
+ # operation: "ADD", # required, accepts ADD, REMOVE, REPLACE
3599
+ # domains: ["FirewallDomainName"], # required
3600
+ # })
3601
+ #
3602
+ # @example Response structure
3603
+ #
3604
+ # resp.id #=> String
3605
+ # resp.name #=> String
3606
+ # resp.status #=> String, one of "COMPLETE", "COMPLETE_IMPORT_FAILED", "IMPORTING", "DELETING", "UPDATING"
3607
+ # resp.status_message #=> String
3608
+ #
3609
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UpdateFirewallDomains AWS API Documentation
3610
+ #
3611
+ # @overload update_firewall_domains(params = {})
3612
+ # @param [Hash] params ({})
3613
+ def update_firewall_domains(params = {}, options = {})
3614
+ req = build_request(:update_firewall_domains, params)
3615
+ req.send_request(options)
3616
+ end
3617
+
3618
+ # Updates the specified firewall rule.
3619
+ #
3620
+ # @option params [required, String] :firewall_rule_group_id
3621
+ # The unique identifier of the firewall rule group for the rule.
3622
+ #
3623
+ # @option params [required, String] :firewall_domain_list_id
3624
+ # The ID of the domain list to use in the rule.
3625
+ #
3626
+ # @option params [Integer] :priority
3627
+ # The setting that determines the processing order of the rule in the
3628
+ # rule group. DNS Firewall processes the rules in a rule group by order
3629
+ # of priority, starting from the lowest setting.
3630
+ #
3631
+ # You must specify a unique priority for each rule in a rule group. To
3632
+ # make it easier to insert rules later, leave space between the numbers,
3633
+ # for example, use 100, 200, and so on. You can change the priority
3634
+ # setting for the rules in a rule group at any time.
3635
+ #
3636
+ # @option params [String] :action
3637
+ # The action that DNS Firewall should take on a DNS query when it
3638
+ # matches one of the domains in the rule's domain list:
3639
+ #
3640
+ # * `ALLOW` - Permit the request to go through.
3641
+ #
3642
+ # * `ALERT` - Permit the request to go through but send an alert to the
3643
+ # logs.
3644
+ #
3645
+ # * `BLOCK` - Disallow the request. This option requires additional
3646
+ # details in the rule's `BlockResponse`.
3647
+ #
3648
+ # @option params [String] :block_response
3649
+ # The way that you want DNS Firewall to block the request. Used for the
3650
+ # rule action setting `BLOCK`.
3651
+ #
3652
+ # * `NODATA` - Respond indicating that the query was successful, but no
3653
+ # response is available for it.
3654
+ #
3655
+ # * `NXDOMAIN` - Respond indicating that the domain name that's in the
3656
+ # query doesn't exist.
3657
+ #
3658
+ # * `OVERRIDE` - Provide a custom override in the response. This option
3659
+ # requires custom handling details in the rule's `BlockOverride*`
3660
+ # settings.
3661
+ #
3662
+ # @option params [String] :block_override_domain
3663
+ # The custom DNS record to send back in response to the query. Used for
3664
+ # the rule action `BLOCK` with a `BlockResponse` setting of `OVERRIDE`.
3665
+ #
3666
+ # @option params [String] :block_override_dns_type
3667
+ # The DNS record's type. This determines the format of the record value
3668
+ # that you provided in `BlockOverrideDomain`. Used for the rule action
3669
+ # `BLOCK` with a `BlockResponse` setting of `OVERRIDE`.
3670
+ #
3671
+ # @option params [Integer] :block_override_ttl
3672
+ # The recommended amount of time, in seconds, for the DNS resolver or
3673
+ # web browser to cache the provided override record. Used for the rule
3674
+ # action `BLOCK` with a `BlockResponse` setting of `OVERRIDE`.
3675
+ #
3676
+ # @option params [String] :name
3677
+ # The name of the rule.
3678
+ #
3679
+ # @return [Types::UpdateFirewallRuleResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3680
+ #
3681
+ # * {Types::UpdateFirewallRuleResponse#firewall_rule #firewall_rule} => Types::FirewallRule
3682
+ #
3683
+ # @example Request syntax with placeholder values
3684
+ #
3685
+ # resp = client.update_firewall_rule({
3686
+ # firewall_rule_group_id: "ResourceId", # required
3687
+ # firewall_domain_list_id: "ResourceId", # required
3688
+ # priority: 1,
3689
+ # action: "ALLOW", # accepts ALLOW, BLOCK, ALERT
3690
+ # block_response: "NODATA", # accepts NODATA, NXDOMAIN, OVERRIDE
3691
+ # block_override_domain: "BlockOverrideDomain",
3692
+ # block_override_dns_type: "CNAME", # accepts CNAME
3693
+ # block_override_ttl: 1,
3694
+ # name: "Name",
3695
+ # })
3696
+ #
3697
+ # @example Response structure
3698
+ #
3699
+ # resp.firewall_rule.firewall_rule_group_id #=> String
3700
+ # resp.firewall_rule.firewall_domain_list_id #=> String
3701
+ # resp.firewall_rule.name #=> String
3702
+ # resp.firewall_rule.priority #=> Integer
3703
+ # resp.firewall_rule.action #=> String, one of "ALLOW", "BLOCK", "ALERT"
3704
+ # resp.firewall_rule.block_response #=> String, one of "NODATA", "NXDOMAIN", "OVERRIDE"
3705
+ # resp.firewall_rule.block_override_domain #=> String
3706
+ # resp.firewall_rule.block_override_dns_type #=> String, one of "CNAME"
3707
+ # resp.firewall_rule.block_override_ttl #=> Integer
3708
+ # resp.firewall_rule.creator_request_id #=> String
3709
+ # resp.firewall_rule.creation_time #=> String
3710
+ # resp.firewall_rule.modification_time #=> String
3711
+ #
3712
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UpdateFirewallRule AWS API Documentation
3713
+ #
3714
+ # @overload update_firewall_rule(params = {})
3715
+ # @param [Hash] params ({})
3716
+ def update_firewall_rule(params = {}, options = {})
3717
+ req = build_request(:update_firewall_rule, params)
3718
+ req.send_request(options)
3719
+ end
3720
+
3721
+ # Changes the association of a FirewallRuleGroup with a VPC. The
3722
+ # association enables DNS filtering for the VPC.
3723
+ #
3724
+ # @option params [required, String] :firewall_rule_group_association_id
3725
+ # The identifier of the FirewallRuleGroupAssociation.
3726
+ #
3727
+ # @option params [Integer] :priority
3728
+ # The setting that determines the processing order of the rule group
3729
+ # among the rule groups that you associate with the specified VPC. DNS
3730
+ # Firewall filters VPC traffic starting from the rule group with the
3731
+ # lowest numeric priority setting.
3732
+ #
3733
+ # You must specify a unique priority for each rule group that you
3734
+ # associate with a single VPC. To make it easier to insert rule groups
3735
+ # later, leave space between the numbers, for example, use 100, 200, and
3736
+ # so on. You can change the priority setting for a rule group
3737
+ # association after you create it.
3738
+ #
3739
+ # @option params [String] :mutation_protection
3740
+ # If enabled, this setting disallows modification or removal of the
3741
+ # association, to help prevent against accidentally altering DNS
3742
+ # firewall protections.
3743
+ #
3744
+ # @option params [String] :name
3745
+ # The name of the rule group association.
3746
+ #
3747
+ # @return [Types::UpdateFirewallRuleGroupAssociationResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3748
+ #
3749
+ # * {Types::UpdateFirewallRuleGroupAssociationResponse#firewall_rule_group_association #firewall_rule_group_association} => Types::FirewallRuleGroupAssociation
3750
+ #
3751
+ # @example Request syntax with placeholder values
3752
+ #
3753
+ # resp = client.update_firewall_rule_group_association({
3754
+ # firewall_rule_group_association_id: "ResourceId", # required
3755
+ # priority: 1,
3756
+ # mutation_protection: "ENABLED", # accepts ENABLED, DISABLED
3757
+ # name: "Name",
3758
+ # })
3759
+ #
3760
+ # @example Response structure
3761
+ #
3762
+ # resp.firewall_rule_group_association.id #=> String
3763
+ # resp.firewall_rule_group_association.arn #=> String
3764
+ # resp.firewall_rule_group_association.firewall_rule_group_id #=> String
3765
+ # resp.firewall_rule_group_association.vpc_id #=> String
3766
+ # resp.firewall_rule_group_association.name #=> String
3767
+ # resp.firewall_rule_group_association.priority #=> Integer
3768
+ # resp.firewall_rule_group_association.mutation_protection #=> String, one of "ENABLED", "DISABLED"
3769
+ # resp.firewall_rule_group_association.managed_owner_name #=> String
3770
+ # resp.firewall_rule_group_association.status #=> String, one of "COMPLETE", "DELETING", "UPDATING"
3771
+ # resp.firewall_rule_group_association.status_message #=> String
3772
+ # resp.firewall_rule_group_association.creator_request_id #=> String
3773
+ # resp.firewall_rule_group_association.creation_time #=> String
3774
+ # resp.firewall_rule_group_association.modification_time #=> String
3775
+ #
3776
+ # @see http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UpdateFirewallRuleGroupAssociation AWS API Documentation
3777
+ #
3778
+ # @overload update_firewall_rule_group_association(params = {})
3779
+ # @param [Hash] params ({})
3780
+ def update_firewall_rule_group_association(params = {}, options = {})
3781
+ req = build_request(:update_firewall_rule_group_association, params)
3782
+ req.send_request(options)
3783
+ end
3784
+
2317
3785
  # Updates an existing DNSSEC validation configuration. If there is no
2318
3786
  # existing DNSSEC validation configuration, one is created.
2319
3787
  #
@@ -2468,7 +3936,7 @@ module Aws::Route53Resolver
2468
3936
  params: params,
2469
3937
  config: config)
2470
3938
  context[:gem_name] = 'aws-sdk-route53resolver'
2471
- context[:gem_version] = '1.24.0'
3939
+ context[:gem_version] = '1.28.0'
2472
3940
  Seahorse::Client::Request.new(handlers, context)
2473
3941
  end
2474
3942