aws-sdk-route53resolver 1.24.0 → 1.25.0

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