aws-sdk-route53resolver 1.24.0 → 1.28.0

Sign up to get free protection for your applications and to get access to all the features.
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