-
Notifications
You must be signed in to change notification settings - Fork 2.8k
/
Copy pathAmazonRoute53Resolver.java
2214 lines (2138 loc) · 115 KB
/
AmazonRoute53Resolver.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
/*
* Copyright 2020-2025 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
* the License. A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
* CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
* and limitations under the License.
*/
package com.amazonaws.services.route53resolver;
import javax.annotation.Generated;
import com.amazonaws.*;
import com.amazonaws.regions.*;
import com.amazonaws.services.route53resolver.model.*;
/**
* Interface for accessing Route53Resolver.
* <p>
* <b>Note:</b> Do not directly implement this interface, new methods are added to it regularly. Extend from
* {@link com.amazonaws.services.route53resolver.AbstractAmazonRoute53Resolver} instead.
* </p>
* <p>
* <p>
* When you create a VPC using Amazon VPC, you automatically get DNS resolution within the VPC from Route 53 Resolver.
* By default, Resolver answers DNS queries for VPC domain names such as domain names for EC2 instances or Elastic Load
* Balancing load balancers. Resolver performs recursive lookups against public name servers for all other domain names.
* </p>
* <p>
* You can also configure DNS resolution between your VPC and your network over a Direct Connect or VPN connection:
* </p>
* <p>
* <b>Forward DNS queries from resolvers on your network to Route 53 Resolver</b>
* </p>
* <p>
* DNS resolvers on your network can forward DNS queries to Resolver in a specified VPC. This allows your DNS resolvers
* to easily resolve domain names for Amazon Web Services resources such as EC2 instances or records in a Route 53
* private hosted zone. For more information, see <a href=
* "https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver.html#resolver-overview-forward-network-to-vpc"
* >How DNS Resolvers on Your Network Forward DNS Queries to Route 53 Resolver</a> in the <i>Amazon Route 53 Developer
* Guide</i>.
* </p>
* <p>
* <b>Conditionally forward queries from a VPC to resolvers on your network</b>
* </p>
* <p>
* You can configure Resolver to forward queries that it receives from EC2 instances in your VPCs to DNS resolvers on
* your network. To forward selected queries, you create Resolver rules that specify the domain names for the DNS
* queries that you want to forward (such as example.com), and the IP addresses of the DNS resolvers on your network
* that you want to forward the queries to. If a query matches multiple rules (example.com, acme.example.com), Resolver
* chooses the rule with the most specific match (acme.example.com) and forwards the query to the IP addresses that you
* specified in that rule. For more information, see <a href=
* "https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver.html#resolver-overview-forward-vpc-to-network"
* >How Route 53 Resolver Forwards DNS Queries from Your VPCs to Your Network</a> in the <i>Amazon Route 53 Developer
* Guide</i>.
* </p>
* <p>
* Like Amazon VPC, Resolver is Regional. In each Region where you have VPCs, you can choose whether to forward queries
* from your VPCs to your network (outbound queries), from your network to your VPCs (inbound queries), or both.
* </p>
*/
@Generated("com.amazonaws:aws-java-sdk-code-generator")
public interface AmazonRoute53Resolver {
/**
* The region metadata service name for computing region endpoints. You can use this value to retrieve metadata
* (such as supported regions) of the service.
*
* @see RegionUtils#getRegionsForService(String)
*/
String ENDPOINT_PREFIX = "route53resolver";
/**
* <p>
* Associates a <a>FirewallRuleGroup</a> with a VPC, to provide DNS filtering for the VPC.
* </p>
*
* @param associateFirewallRuleGroupRequest
* @return Result of the AssociateFirewallRuleGroup operation returned by the service.
* @throws ResourceNotFoundException
* The specified resource doesn't exist.
* @throws ValidationException
* You have provided an invalid command. If you ran the <code>UpdateFirewallDomains</code> request.
* supported values are <code>ADD</code>, <code>REMOVE</code>, or <code>REPLACE</code> a domain.
* @throws LimitExceededException
* The request caused one or more limits to be exceeded.
* @throws ConflictException
* The requested state transition isn't valid. For example, you can't delete a firewall domain list if it is
* in the process of being deleted, or you can't import domains into a domain list that is in the process of
* being deleted.
* @throws AccessDeniedException
* The current account doesn't have the IAM permissions required to perform the specified Resolver
* operation.</p>
* <p>
* This error can also be thrown when a customer has reached the 5120 character limit for a resource policy
* for CloudWatch Logs.
* @throws InternalServiceErrorException
* We encountered an unknown error. Try again in a few minutes.
* @throws ThrottlingException
* The request was throttled. Try again in a few minutes.
* @sample AmazonRoute53Resolver.AssociateFirewallRuleGroup
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/AssociateFirewallRuleGroup"
* target="_top">AWS API Documentation</a>
*/
AssociateFirewallRuleGroupResult associateFirewallRuleGroup(AssociateFirewallRuleGroupRequest associateFirewallRuleGroupRequest);
/**
* <p>
* Adds IP addresses to an inbound or an outbound Resolver endpoint. If you want to add more than one IP address,
* submit one <code>AssociateResolverEndpointIpAddress</code> request for each IP address.
* </p>
* <p>
* To remove an IP address from an endpoint, see <a href=
* "https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_DisassociateResolverEndpointIpAddress.html"
* >DisassociateResolverEndpointIpAddress</a>.
* </p>
*
* @param associateResolverEndpointIpAddressRequest
* @return Result of the AssociateResolverEndpointIpAddress operation returned by the service.
* @throws ResourceNotFoundException
* The specified resource doesn't exist.
* @throws InvalidParameterException
* One or more parameters in this request are not valid.
* @throws InvalidRequestException
* The request is invalid.
* @throws ResourceExistsException
* The resource that you tried to create already exists.
* @throws InternalServiceErrorException
* We encountered an unknown error. Try again in a few minutes.
* @throws LimitExceededException
* The request caused one or more limits to be exceeded.
* @throws ThrottlingException
* The request was throttled. Try again in a few minutes.
* @sample AmazonRoute53Resolver.AssociateResolverEndpointIpAddress
* @see <a
* href="http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/AssociateResolverEndpointIpAddress"
* target="_top">AWS API Documentation</a>
*/
AssociateResolverEndpointIpAddressResult associateResolverEndpointIpAddress(
AssociateResolverEndpointIpAddressRequest associateResolverEndpointIpAddressRequest);
/**
* <p>
* Associates an Amazon VPC with a specified query logging configuration. Route 53 Resolver logs DNS queries that
* originate in all of the Amazon VPCs that are associated with a specified query logging configuration. To
* associate more than one VPC with a configuration, submit one <code>AssociateResolverQueryLogConfig</code> request
* for each VPC.
* </p>
* <note>
* <p>
* The VPCs that you associate with a query logging configuration must be in the same Region as the configuration.
* </p>
* </note>
* <p>
* To remove a VPC from a query logging configuration, see <a href=
* "https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_DisassociateResolverQueryLogConfig.html"
* >DisassociateResolverQueryLogConfig</a>.
* </p>
*
* @param associateResolverQueryLogConfigRequest
* @return Result of the AssociateResolverQueryLogConfig operation returned by the service.
* @throws InvalidParameterException
* One or more parameters in this request are not valid.
* @throws ResourceNotFoundException
* The specified resource doesn't exist.
* @throws InvalidRequestException
* The request is invalid.
* @throws ResourceExistsException
* The resource that you tried to create already exists.
* @throws LimitExceededException
* The request caused one or more limits to be exceeded.
* @throws InternalServiceErrorException
* We encountered an unknown error. Try again in a few minutes.
* @throws ThrottlingException
* The request was throttled. Try again in a few minutes.
* @throws AccessDeniedException
* The current account doesn't have the IAM permissions required to perform the specified Resolver
* operation.</p>
* <p>
* This error can also be thrown when a customer has reached the 5120 character limit for a resource policy
* for CloudWatch Logs.
* @sample AmazonRoute53Resolver.AssociateResolverQueryLogConfig
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/AssociateResolverQueryLogConfig"
* target="_top">AWS API Documentation</a>
*/
AssociateResolverQueryLogConfigResult associateResolverQueryLogConfig(AssociateResolverQueryLogConfigRequest associateResolverQueryLogConfigRequest);
/**
* <p>
* Associates a Resolver rule with a VPC. When you associate a rule with a VPC, Resolver forwards all DNS queries
* for the domain name that is specified in the rule and that originate in the VPC. The queries are forwarded to the
* IP addresses for the DNS resolvers that are specified in the rule. For more information about rules, see <a
* href="https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_CreateResolverRule.html"
* >CreateResolverRule</a>.
* </p>
*
* @param associateResolverRuleRequest
* @return Result of the AssociateResolverRule operation returned by the service.
* @throws ResourceNotFoundException
* The specified resource doesn't exist.
* @throws InvalidRequestException
* The request is invalid.
* @throws LimitExceededException
* The request caused one or more limits to be exceeded.
* @throws InvalidParameterException
* One or more parameters in this request are not valid.
* @throws ResourceUnavailableException
* The specified resource isn't available.
* @throws ResourceExistsException
* The resource that you tried to create already exists.
* @throws InternalServiceErrorException
* We encountered an unknown error. Try again in a few minutes.
* @throws ThrottlingException
* The request was throttled. Try again in a few minutes.
* @sample AmazonRoute53Resolver.AssociateResolverRule
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/AssociateResolverRule"
* target="_top">AWS API Documentation</a>
*/
AssociateResolverRuleResult associateResolverRule(AssociateResolverRuleRequest associateResolverRuleRequest);
/**
* <p>
* Creates an empty firewall domain list for use in DNS Firewall rules. You can populate the domains for the new
* list with a file, using <a>ImportFirewallDomains</a>, or with domain strings, using <a>UpdateFirewallDomains</a>.
* </p>
*
* @param createFirewallDomainListRequest
* @return Result of the CreateFirewallDomainList operation returned by the service.
* @throws LimitExceededException
* The request caused one or more limits to be exceeded.
* @throws ValidationException
* You have provided an invalid command. If you ran the <code>UpdateFirewallDomains</code> request.
* supported values are <code>ADD</code>, <code>REMOVE</code>, or <code>REPLACE</code> a domain.
* @throws AccessDeniedException
* The current account doesn't have the IAM permissions required to perform the specified Resolver
* operation.</p>
* <p>
* This error can also be thrown when a customer has reached the 5120 character limit for a resource policy
* for CloudWatch Logs.
* @throws InternalServiceErrorException
* We encountered an unknown error. Try again in a few minutes.
* @throws ThrottlingException
* The request was throttled. Try again in a few minutes.
* @sample AmazonRoute53Resolver.CreateFirewallDomainList
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/CreateFirewallDomainList"
* target="_top">AWS API Documentation</a>
*/
CreateFirewallDomainListResult createFirewallDomainList(CreateFirewallDomainListRequest createFirewallDomainListRequest);
/**
* <p>
* Creates a single DNS Firewall rule in the specified rule group, using the specified domain list.
* </p>
*
* @param createFirewallRuleRequest
* @return Result of the CreateFirewallRule operation returned by the service.
* @throws ResourceNotFoundException
* The specified resource doesn't exist.
* @throws ValidationException
* You have provided an invalid command. If you ran the <code>UpdateFirewallDomains</code> request.
* supported values are <code>ADD</code>, <code>REMOVE</code>, or <code>REPLACE</code> a domain.
* @throws LimitExceededException
* The request caused one or more limits to be exceeded.
* @throws AccessDeniedException
* The current account doesn't have the IAM permissions required to perform the specified Resolver
* operation.</p>
* <p>
* This error can also be thrown when a customer has reached the 5120 character limit for a resource policy
* for CloudWatch Logs.
* @throws InternalServiceErrorException
* We encountered an unknown error. Try again in a few minutes.
* @throws ThrottlingException
* The request was throttled. Try again in a few minutes.
* @sample AmazonRoute53Resolver.CreateFirewallRule
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/CreateFirewallRule"
* target="_top">AWS API Documentation</a>
*/
CreateFirewallRuleResult createFirewallRule(CreateFirewallRuleRequest createFirewallRuleRequest);
/**
* <p>
* Creates an empty DNS Firewall rule group for filtering DNS network traffic in a VPC. You can add rules to the new
* rule group by calling <a>CreateFirewallRule</a>.
* </p>
*
* @param createFirewallRuleGroupRequest
* @return Result of the CreateFirewallRuleGroup operation returned by the service.
* @throws LimitExceededException
* The request caused one or more limits to be exceeded.
* @throws ValidationException
* You have provided an invalid command. If you ran the <code>UpdateFirewallDomains</code> request.
* supported values are <code>ADD</code>, <code>REMOVE</code>, or <code>REPLACE</code> a domain.
* @throws AccessDeniedException
* The current account doesn't have the IAM permissions required to perform the specified Resolver
* operation.</p>
* <p>
* This error can also be thrown when a customer has reached the 5120 character limit for a resource policy
* for CloudWatch Logs.
* @throws InternalServiceErrorException
* We encountered an unknown error. Try again in a few minutes.
* @throws ThrottlingException
* The request was throttled. Try again in a few minutes.
* @sample AmazonRoute53Resolver.CreateFirewallRuleGroup
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/CreateFirewallRuleGroup"
* target="_top">AWS API Documentation</a>
*/
CreateFirewallRuleGroupResult createFirewallRuleGroup(CreateFirewallRuleGroupRequest createFirewallRuleGroupRequest);
/**
* <p>
* Creates a Route 53 Resolver on an Outpost.
* </p>
*
* @param createOutpostResolverRequest
* @return Result of the CreateOutpostResolver operation returned by the service.
* @throws AccessDeniedException
* The current account doesn't have the IAM permissions required to perform the specified Resolver
* operation.</p>
* <p>
* This error can also be thrown when a customer has reached the 5120 character limit for a resource policy
* for CloudWatch Logs.
* @throws InternalServiceErrorException
* We encountered an unknown error. Try again in a few minutes.
* @throws ResourceNotFoundException
* The specified resource doesn't exist.
* @throws ServiceQuotaExceededException
* Fulfilling the request would cause one or more quotas to be exceeded.
* @throws ThrottlingException
* The request was throttled. Try again in a few minutes.
* @throws ValidationException
* You have provided an invalid command. If you ran the <code>UpdateFirewallDomains</code> request.
* supported values are <code>ADD</code>, <code>REMOVE</code>, or <code>REPLACE</code> a domain.
* @sample AmazonRoute53Resolver.CreateOutpostResolver
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/CreateOutpostResolver"
* target="_top">AWS API Documentation</a>
*/
CreateOutpostResolverResult createOutpostResolver(CreateOutpostResolverRequest createOutpostResolverRequest);
/**
* <p>
* Creates a Resolver endpoint. There are two types of Resolver endpoints, inbound and outbound:
* </p>
* <ul>
* <li>
* <p>
* An <i>inbound Resolver endpoint</i> forwards DNS queries to the DNS service for a VPC from your network.
* </p>
* </li>
* <li>
* <p>
* An <i>outbound Resolver endpoint</i> forwards DNS queries from the DNS service for a VPC to your network.
* </p>
* </li>
* </ul>
*
* @param createResolverEndpointRequest
* @return Result of the CreateResolverEndpoint operation returned by the service.
* @throws InvalidParameterException
* One or more parameters in this request are not valid.
* @throws ResourceNotFoundException
* The specified resource doesn't exist.
* @throws InvalidRequestException
* The request is invalid.
* @throws ResourceExistsException
* The resource that you tried to create already exists.
* @throws AccessDeniedException
* The current account doesn't have the IAM permissions required to perform the specified Resolver
* operation.</p>
* <p>
* This error can also be thrown when a customer has reached the 5120 character limit for a resource policy
* for CloudWatch Logs.
* @throws LimitExceededException
* The request caused one or more limits to be exceeded.
* @throws InternalServiceErrorException
* We encountered an unknown error. Try again in a few minutes.
* @throws ThrottlingException
* The request was throttled. Try again in a few minutes.
* @sample AmazonRoute53Resolver.CreateResolverEndpoint
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/CreateResolverEndpoint"
* target="_top">AWS API Documentation</a>
*/
CreateResolverEndpointResult createResolverEndpoint(CreateResolverEndpointRequest createResolverEndpointRequest);
/**
* <p>
* Creates a Resolver query logging configuration, which defines where you want Resolver to save DNS query logs that
* originate in your VPCs. Resolver can log queries only for VPCs that are in the same Region as the query logging
* configuration.
* </p>
* <p>
* To specify which VPCs you want to log queries for, you use <code>AssociateResolverQueryLogConfig</code>. For more
* information, see <a href=
* "https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_AssociateResolverQueryLogConfig.html"
* >AssociateResolverQueryLogConfig</a>.
* </p>
* <p>
* You can optionally use Resource Access Manager (RAM) to share a query logging configuration with other Amazon Web
* Services accounts. The other accounts can then associate VPCs with the configuration. The query logs that
* Resolver creates for a configuration include all DNS queries that originate in all VPCs that are associated with
* the configuration.
* </p>
*
* @param createResolverQueryLogConfigRequest
* @return Result of the CreateResolverQueryLogConfig operation returned by the service.
* @throws InvalidParameterException
* One or more parameters in this request are not valid.
* @throws ResourceNotFoundException
* The specified resource doesn't exist.
* @throws InvalidRequestException
* The request is invalid.
* @throws ResourceExistsException
* The resource that you tried to create already exists.
* @throws LimitExceededException
* The request caused one or more limits to be exceeded.
* @throws InternalServiceErrorException
* We encountered an unknown error. Try again in a few minutes.
* @throws ThrottlingException
* The request was throttled. Try again in a few minutes.
* @throws AccessDeniedException
* The current account doesn't have the IAM permissions required to perform the specified Resolver
* operation.</p>
* <p>
* This error can also be thrown when a customer has reached the 5120 character limit for a resource policy
* for CloudWatch Logs.
* @sample AmazonRoute53Resolver.CreateResolverQueryLogConfig
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/CreateResolverQueryLogConfig"
* target="_top">AWS API Documentation</a>
*/
CreateResolverQueryLogConfigResult createResolverQueryLogConfig(CreateResolverQueryLogConfigRequest createResolverQueryLogConfigRequest);
/**
* <p>
* For DNS queries that originate in your VPCs, specifies which Resolver endpoint the queries pass through, one
* domain name that you want to forward to your network, and the IP addresses of the DNS resolvers in your network.
* </p>
*
* @param createResolverRuleRequest
* @return Result of the CreateResolverRule operation returned by the service.
* @throws InvalidParameterException
* One or more parameters in this request are not valid.
* @throws InvalidRequestException
* The request is invalid.
* @throws LimitExceededException
* The request caused one or more limits to be exceeded.
* @throws ResourceNotFoundException
* The specified resource doesn't exist.
* @throws ResourceExistsException
* The resource that you tried to create already exists.
* @throws ResourceUnavailableException
* The specified resource isn't available.
* @throws InternalServiceErrorException
* We encountered an unknown error. Try again in a few minutes.
* @throws AccessDeniedException
* The current account doesn't have the IAM permissions required to perform the specified Resolver
* operation.</p>
* <p>
* This error can also be thrown when a customer has reached the 5120 character limit for a resource policy
* for CloudWatch Logs.
* @throws ThrottlingException
* The request was throttled. Try again in a few minutes.
* @sample AmazonRoute53Resolver.CreateResolverRule
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/CreateResolverRule"
* target="_top">AWS API Documentation</a>
*/
CreateResolverRuleResult createResolverRule(CreateResolverRuleRequest createResolverRuleRequest);
/**
* <p>
* Deletes the specified domain list.
* </p>
*
* @param deleteFirewallDomainListRequest
* @return Result of the DeleteFirewallDomainList operation returned by the service.
* @throws ResourceNotFoundException
* The specified resource doesn't exist.
* @throws ConflictException
* The requested state transition isn't valid. For example, you can't delete a firewall domain list if it is
* in the process of being deleted, or you can't import domains into a domain list that is in the process of
* being deleted.
* @throws AccessDeniedException
* The current account doesn't have the IAM permissions required to perform the specified Resolver
* operation.</p>
* <p>
* This error can also be thrown when a customer has reached the 5120 character limit for a resource policy
* for CloudWatch Logs.
* @throws InternalServiceErrorException
* We encountered an unknown error. Try again in a few minutes.
* @throws ThrottlingException
* The request was throttled. Try again in a few minutes.
* @sample AmazonRoute53Resolver.DeleteFirewallDomainList
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DeleteFirewallDomainList"
* target="_top">AWS API Documentation</a>
*/
DeleteFirewallDomainListResult deleteFirewallDomainList(DeleteFirewallDomainListRequest deleteFirewallDomainListRequest);
/**
* <p>
* Deletes the specified firewall rule.
* </p>
*
* @param deleteFirewallRuleRequest
* @return Result of the DeleteFirewallRule operation returned by the service.
* @throws ResourceNotFoundException
* The specified resource doesn't exist.
* @throws AccessDeniedException
* The current account doesn't have the IAM permissions required to perform the specified Resolver
* operation.</p>
* <p>
* This error can also be thrown when a customer has reached the 5120 character limit for a resource policy
* for CloudWatch Logs.
* @throws InternalServiceErrorException
* We encountered an unknown error. Try again in a few minutes.
* @throws ThrottlingException
* The request was throttled. Try again in a few minutes.
* @sample AmazonRoute53Resolver.DeleteFirewallRule
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DeleteFirewallRule"
* target="_top">AWS API Documentation</a>
*/
DeleteFirewallRuleResult deleteFirewallRule(DeleteFirewallRuleRequest deleteFirewallRuleRequest);
/**
* <p>
* Deletes the specified firewall rule group.
* </p>
*
* @param deleteFirewallRuleGroupRequest
* @return Result of the DeleteFirewallRuleGroup operation returned by the service.
* @throws ResourceNotFoundException
* The specified resource doesn't exist.
* @throws ConflictException
* The requested state transition isn't valid. For example, you can't delete a firewall domain list if it is
* in the process of being deleted, or you can't import domains into a domain list that is in the process of
* being deleted.
* @throws ValidationException
* You have provided an invalid command. If you ran the <code>UpdateFirewallDomains</code> request.
* supported values are <code>ADD</code>, <code>REMOVE</code>, or <code>REPLACE</code> a domain.
* @throws AccessDeniedException
* The current account doesn't have the IAM permissions required to perform the specified Resolver
* operation.</p>
* <p>
* This error can also be thrown when a customer has reached the 5120 character limit for a resource policy
* for CloudWatch Logs.
* @throws InternalServiceErrorException
* We encountered an unknown error. Try again in a few minutes.
* @throws ThrottlingException
* The request was throttled. Try again in a few minutes.
* @sample AmazonRoute53Resolver.DeleteFirewallRuleGroup
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DeleteFirewallRuleGroup"
* target="_top">AWS API Documentation</a>
*/
DeleteFirewallRuleGroupResult deleteFirewallRuleGroup(DeleteFirewallRuleGroupRequest deleteFirewallRuleGroupRequest);
/**
* <p>
* Deletes a Resolver on the Outpost.
* </p>
*
* @param deleteOutpostResolverRequest
* @return Result of the DeleteOutpostResolver operation returned by the service.
* @throws AccessDeniedException
* The current account doesn't have the IAM permissions required to perform the specified Resolver
* operation.</p>
* <p>
* This error can also be thrown when a customer has reached the 5120 character limit for a resource policy
* for CloudWatch Logs.
* @throws ConflictException
* The requested state transition isn't valid. For example, you can't delete a firewall domain list if it is
* in the process of being deleted, or you can't import domains into a domain list that is in the process of
* being deleted.
* @throws InternalServiceErrorException
* We encountered an unknown error. Try again in a few minutes.
* @throws ResourceNotFoundException
* The specified resource doesn't exist.
* @throws ThrottlingException
* The request was throttled. Try again in a few minutes.
* @throws ValidationException
* You have provided an invalid command. If you ran the <code>UpdateFirewallDomains</code> request.
* supported values are <code>ADD</code>, <code>REMOVE</code>, or <code>REPLACE</code> a domain.
* @sample AmazonRoute53Resolver.DeleteOutpostResolver
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DeleteOutpostResolver"
* target="_top">AWS API Documentation</a>
*/
DeleteOutpostResolverResult deleteOutpostResolver(DeleteOutpostResolverRequest deleteOutpostResolverRequest);
/**
* <p>
* Deletes a Resolver endpoint. The effect of deleting a Resolver endpoint depends on whether it's an inbound or an
* outbound Resolver endpoint:
* </p>
* <ul>
* <li>
* <p>
* <b>Inbound</b>: DNS queries from your network are no longer routed to the DNS service for the specified VPC.
* </p>
* </li>
* <li>
* <p>
* <b>Outbound</b>: DNS queries from a VPC are no longer routed to your network.
* </p>
* </li>
* </ul>
*
* @param deleteResolverEndpointRequest
* @return Result of the DeleteResolverEndpoint operation returned by the service.
* @throws ResourceNotFoundException
* The specified resource doesn't exist.
* @throws InvalidParameterException
* One or more parameters in this request are not valid.
* @throws InvalidRequestException
* The request is invalid.
* @throws InternalServiceErrorException
* We encountered an unknown error. Try again in a few minutes.
* @throws ThrottlingException
* The request was throttled. Try again in a few minutes.
* @sample AmazonRoute53Resolver.DeleteResolverEndpoint
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DeleteResolverEndpoint"
* target="_top">AWS API Documentation</a>
*/
DeleteResolverEndpointResult deleteResolverEndpoint(DeleteResolverEndpointRequest deleteResolverEndpointRequest);
/**
* <p>
* Deletes a query logging configuration. When you delete a configuration, Resolver stops logging DNS queries for
* all of the Amazon VPCs that are associated with the configuration. This also applies if the query logging
* configuration is shared with other Amazon Web Services accounts, and the other accounts have associated VPCs with
* the shared configuration.
* </p>
* <p>
* Before you can delete a query logging configuration, you must first disassociate all VPCs from the configuration.
* See <a href=
* "https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_DisassociateResolverQueryLogConfig.html"
* >DisassociateResolverQueryLogConfig</a>.
* </p>
* <p>
* If you used Resource Access Manager (RAM) to share a query logging configuration with other accounts, you must
* stop sharing the configuration before you can delete a configuration. The accounts that you shared the
* configuration with can first disassociate VPCs that they associated with the configuration, but that's not
* necessary. If you stop sharing the configuration, those VPCs are automatically disassociated from the
* configuration.
* </p>
*
* @param deleteResolverQueryLogConfigRequest
* @return Result of the DeleteResolverQueryLogConfig operation returned by the service.
* @throws ResourceNotFoundException
* The specified resource doesn't exist.
* @throws InvalidParameterException
* One or more parameters in this request are not valid.
* @throws InvalidRequestException
* The request is invalid.
* @throws InternalServiceErrorException
* We encountered an unknown error. Try again in a few minutes.
* @throws ThrottlingException
* The request was throttled. Try again in a few minutes.
* @throws AccessDeniedException
* The current account doesn't have the IAM permissions required to perform the specified Resolver
* operation.</p>
* <p>
* This error can also be thrown when a customer has reached the 5120 character limit for a resource policy
* for CloudWatch Logs.
* @sample AmazonRoute53Resolver.DeleteResolverQueryLogConfig
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DeleteResolverQueryLogConfig"
* target="_top">AWS API Documentation</a>
*/
DeleteResolverQueryLogConfigResult deleteResolverQueryLogConfig(DeleteResolverQueryLogConfigRequest deleteResolverQueryLogConfigRequest);
/**
* <p>
* Deletes a Resolver rule. Before you can delete a Resolver rule, you must disassociate it from all the VPCs that
* you associated the Resolver rule with. For more information, see <a href=
* "https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_DisassociateResolverRule.html"
* >DisassociateResolverRule</a>.
* </p>
*
* @param deleteResolverRuleRequest
* @return Result of the DeleteResolverRule operation returned by the service.
* @throws InvalidParameterException
* One or more parameters in this request are not valid.
* @throws ResourceNotFoundException
* The specified resource doesn't exist.
* @throws ResourceInUseException
* The resource that you tried to update or delete is currently in use.
* @throws InternalServiceErrorException
* We encountered an unknown error. Try again in a few minutes.
* @throws ThrottlingException
* The request was throttled. Try again in a few minutes.
* @sample AmazonRoute53Resolver.DeleteResolverRule
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DeleteResolverRule"
* target="_top">AWS API Documentation</a>
*/
DeleteResolverRuleResult deleteResolverRule(DeleteResolverRuleRequest deleteResolverRuleRequest);
/**
* <p>
* Disassociates a <a>FirewallRuleGroup</a> from a VPC, to remove DNS filtering from the VPC.
* </p>
*
* @param disassociateFirewallRuleGroupRequest
* @return Result of the DisassociateFirewallRuleGroup operation returned by the service.
* @throws ResourceNotFoundException
* The specified resource doesn't exist.
* @throws ValidationException
* You have provided an invalid command. If you ran the <code>UpdateFirewallDomains</code> request.
* supported values are <code>ADD</code>, <code>REMOVE</code>, or <code>REPLACE</code> a domain.
* @throws AccessDeniedException
* The current account doesn't have the IAM permissions required to perform the specified Resolver
* operation.</p>
* <p>
* This error can also be thrown when a customer has reached the 5120 character limit for a resource policy
* for CloudWatch Logs.
* @throws ConflictException
* The requested state transition isn't valid. For example, you can't delete a firewall domain list if it is
* in the process of being deleted, or you can't import domains into a domain list that is in the process of
* being deleted.
* @throws InternalServiceErrorException
* We encountered an unknown error. Try again in a few minutes.
* @throws ThrottlingException
* The request was throttled. Try again in a few minutes.
* @sample AmazonRoute53Resolver.DisassociateFirewallRuleGroup
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DisassociateFirewallRuleGroup"
* target="_top">AWS API Documentation</a>
*/
DisassociateFirewallRuleGroupResult disassociateFirewallRuleGroup(DisassociateFirewallRuleGroupRequest disassociateFirewallRuleGroupRequest);
/**
* <p>
* Removes IP addresses from an inbound or an outbound Resolver endpoint. If you want to remove more than one IP
* address, submit one <code>DisassociateResolverEndpointIpAddress</code> request for each IP address.
* </p>
* <p>
* To add an IP address to an endpoint, see <a href=
* "https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_AssociateResolverEndpointIpAddress.html"
* >AssociateResolverEndpointIpAddress</a>.
* </p>
*
* @param disassociateResolverEndpointIpAddressRequest
* @return Result of the DisassociateResolverEndpointIpAddress operation returned by the service.
* @throws ResourceNotFoundException
* The specified resource doesn't exist.
* @throws InvalidParameterException
* One or more parameters in this request are not valid.
* @throws InvalidRequestException
* The request is invalid.
* @throws ResourceExistsException
* The resource that you tried to create already exists.
* @throws InternalServiceErrorException
* We encountered an unknown error. Try again in a few minutes.
* @throws ThrottlingException
* The request was throttled. Try again in a few minutes.
* @sample AmazonRoute53Resolver.DisassociateResolverEndpointIpAddress
* @see <a
* href="http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DisassociateResolverEndpointIpAddress"
* target="_top">AWS API Documentation</a>
*/
DisassociateResolverEndpointIpAddressResult disassociateResolverEndpointIpAddress(
DisassociateResolverEndpointIpAddressRequest disassociateResolverEndpointIpAddressRequest);
/**
* <p>
* Disassociates a VPC from a query logging configuration.
* </p>
* <note>
* <p>
* Before you can delete a query logging configuration, you must first disassociate all VPCs from the configuration.
* If you used Resource Access Manager (RAM) to share a query logging configuration with other accounts, VPCs can be
* disassociated from the configuration in the following ways:
* </p>
* <ul>
* <li>
* <p>
* The accounts that you shared the configuration with can disassociate VPCs from the configuration.
* </p>
* </li>
* <li>
* <p>
* You can stop sharing the configuration.
* </p>
* </li>
* </ul>
* </note>
*
* @param disassociateResolverQueryLogConfigRequest
* @return Result of the DisassociateResolverQueryLogConfig operation returned by the service.
* @throws ResourceNotFoundException
* The specified resource doesn't exist.
* @throws InvalidParameterException
* One or more parameters in this request are not valid.
* @throws InvalidRequestException
* The request is invalid.
* @throws InternalServiceErrorException
* We encountered an unknown error. Try again in a few minutes.
* @throws ThrottlingException
* The request was throttled. Try again in a few minutes.
* @throws AccessDeniedException
* The current account doesn't have the IAM permissions required to perform the specified Resolver
* operation.</p>
* <p>
* This error can also be thrown when a customer has reached the 5120 character limit for a resource policy
* for CloudWatch Logs.
* @sample AmazonRoute53Resolver.DisassociateResolverQueryLogConfig
* @see <a
* href="http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DisassociateResolverQueryLogConfig"
* target="_top">AWS API Documentation</a>
*/
DisassociateResolverQueryLogConfigResult disassociateResolverQueryLogConfig(
DisassociateResolverQueryLogConfigRequest disassociateResolverQueryLogConfigRequest);
/**
* <p>
* Removes the association between a specified Resolver rule and a specified VPC.
* </p>
* <important>
* <p>
* If you disassociate a Resolver rule from a VPC, Resolver stops forwarding DNS queries for the domain name that
* you specified in the Resolver rule.
* </p>
* </important>
*
* @param disassociateResolverRuleRequest
* @return Result of the DisassociateResolverRule operation returned by the service.
* @throws ResourceNotFoundException
* The specified resource doesn't exist.
* @throws InvalidParameterException
* One or more parameters in this request are not valid.
* @throws InternalServiceErrorException
* We encountered an unknown error. Try again in a few minutes.
* @throws ThrottlingException
* The request was throttled. Try again in a few minutes.
* @sample AmazonRoute53Resolver.DisassociateResolverRule
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DisassociateResolverRule"
* target="_top">AWS API Documentation</a>
*/
DisassociateResolverRuleResult disassociateResolverRule(DisassociateResolverRuleRequest disassociateResolverRuleRequest);
/**
* <p>
* Retrieves the configuration of the firewall behavior provided by DNS Firewall for a single VPC from Amazon
* Virtual Private Cloud (Amazon VPC).
* </p>
*
* @param getFirewallConfigRequest
* @return Result of the GetFirewallConfig operation returned by the service.
* @throws ResourceNotFoundException
* The specified resource doesn't exist.
* @throws AccessDeniedException
* The current account doesn't have the IAM permissions required to perform the specified Resolver
* operation.</p>
* <p>
* This error can also be thrown when a customer has reached the 5120 character limit for a resource policy
* for CloudWatch Logs.
* @throws InternalServiceErrorException
* We encountered an unknown error. Try again in a few minutes.
* @throws ThrottlingException
* The request was throttled. Try again in a few minutes.
* @throws ValidationException
* You have provided an invalid command. If you ran the <code>UpdateFirewallDomains</code> request.
* supported values are <code>ADD</code>, <code>REMOVE</code>, or <code>REPLACE</code> a domain.
* @sample AmazonRoute53Resolver.GetFirewallConfig
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetFirewallConfig"
* target="_top">AWS API Documentation</a>
*/
GetFirewallConfigResult getFirewallConfig(GetFirewallConfigRequest getFirewallConfigRequest);
/**
* <p>
* Retrieves the specified firewall domain list.
* </p>
*
* @param getFirewallDomainListRequest
* @return Result of the GetFirewallDomainList operation returned by the service.
* @throws ResourceNotFoundException
* The specified resource doesn't exist.
* @throws AccessDeniedException
* The current account doesn't have the IAM permissions required to perform the specified Resolver
* operation.</p>
* <p>
* This error can also be thrown when a customer has reached the 5120 character limit for a resource policy
* for CloudWatch Logs.
* @throws InternalServiceErrorException
* We encountered an unknown error. Try again in a few minutes.
* @throws ThrottlingException
* The request was throttled. Try again in a few minutes.
* @sample AmazonRoute53Resolver.GetFirewallDomainList
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetFirewallDomainList"
* target="_top">AWS API Documentation</a>
*/
GetFirewallDomainListResult getFirewallDomainList(GetFirewallDomainListRequest getFirewallDomainListRequest);
/**
* <p>
* Retrieves the specified firewall rule group.
* </p>
*
* @param getFirewallRuleGroupRequest
* @return Result of the GetFirewallRuleGroup operation returned by the service.
* @throws ResourceNotFoundException
* The specified resource doesn't exist.
* @throws AccessDeniedException
* The current account doesn't have the IAM permissions required to perform the specified Resolver
* operation.</p>
* <p>
* This error can also be thrown when a customer has reached the 5120 character limit for a resource policy
* for CloudWatch Logs.
* @throws InternalServiceErrorException
* We encountered an unknown error. Try again in a few minutes.
* @throws ThrottlingException
* The request was throttled. Try again in a few minutes.
* @sample AmazonRoute53Resolver.GetFirewallRuleGroup
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetFirewallRuleGroup"
* target="_top">AWS API Documentation</a>
*/
GetFirewallRuleGroupResult getFirewallRuleGroup(GetFirewallRuleGroupRequest getFirewallRuleGroupRequest);
/**
* <p>
* Retrieves a firewall rule group association, which enables DNS filtering for a VPC with one rule group. A VPC can
* have more than one firewall rule group association, and a rule group can be associated with more than one VPC.
* </p>
*
* @param getFirewallRuleGroupAssociationRequest
* @return Result of the GetFirewallRuleGroupAssociation operation returned by the service.
* @throws ResourceNotFoundException
* The specified resource doesn't exist.
* @throws AccessDeniedException
* The current account doesn't have the IAM permissions required to perform the specified Resolver
* operation.</p>
* <p>
* This error can also be thrown when a customer has reached the 5120 character limit for a resource policy
* for CloudWatch Logs.
* @throws InternalServiceErrorException
* We encountered an unknown error. Try again in a few minutes.
* @throws ThrottlingException
* The request was throttled. Try again in a few minutes.
* @sample AmazonRoute53Resolver.GetFirewallRuleGroupAssociation
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetFirewallRuleGroupAssociation"
* target="_top">AWS API Documentation</a>
*/
GetFirewallRuleGroupAssociationResult getFirewallRuleGroupAssociation(GetFirewallRuleGroupAssociationRequest getFirewallRuleGroupAssociationRequest);
/**
* <p>
* Returns the Identity and Access Management (Amazon Web Services IAM) policy for sharing the specified rule group.
* You can use the policy to share the rule group using Resource Access Manager (RAM).
* </p>
*
* @param getFirewallRuleGroupPolicyRequest
* @return Result of the GetFirewallRuleGroupPolicy operation returned by the service.
* @throws ValidationException
* You have provided an invalid command. If you ran the <code>UpdateFirewallDomains</code> request.
* supported values are <code>ADD</code>, <code>REMOVE</code>, or <code>REPLACE</code> a domain.
* @throws ResourceNotFoundException
* The specified resource doesn't exist.
* @throws AccessDeniedException
* The current account doesn't have the IAM permissions required to perform the specified Resolver
* operation.</p>
* <p>
* This error can also be thrown when a customer has reached the 5120 character limit for a resource policy
* for CloudWatch Logs.
* @throws InternalServiceErrorException
* We encountered an unknown error. Try again in a few minutes.
* @throws ThrottlingException
* The request was throttled. Try again in a few minutes.
* @sample AmazonRoute53Resolver.GetFirewallRuleGroupPolicy
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetFirewallRuleGroupPolicy"
* target="_top">AWS API Documentation</a>
*/
GetFirewallRuleGroupPolicyResult getFirewallRuleGroupPolicy(GetFirewallRuleGroupPolicyRequest getFirewallRuleGroupPolicyRequest);
/**
* <p>
* Gets information about a specified Resolver on the Outpost, such as its instance count and type, name, and the
* current status of the Resolver.
* </p>
*
* @param getOutpostResolverRequest
* @return Result of the GetOutpostResolver operation returned by the service.
* @throws AccessDeniedException
* The current account doesn't have the IAM permissions required to perform the specified Resolver
* operation.</p>
* <p>
* This error can also be thrown when a customer has reached the 5120 character limit for a resource policy
* for CloudWatch Logs.
* @throws InternalServiceErrorException
* We encountered an unknown error. Try again in a few minutes.
* @throws ResourceNotFoundException
* The specified resource doesn't exist.
* @throws ThrottlingException
* The request was throttled. Try again in a few minutes.
* @throws ValidationException
* You have provided an invalid command. If you ran the <code>UpdateFirewallDomains</code> request.
* supported values are <code>ADD</code>, <code>REMOVE</code>, or <code>REPLACE</code> a domain.
* @sample AmazonRoute53Resolver.GetOutpostResolver
* @see <a href="http://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetOutpostResolver"
* target="_top">AWS API Documentation</a>
*/
GetOutpostResolverResult getOutpostResolver(GetOutpostResolverRequest getOutpostResolverRequest);