1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package route53resolver
4
5import (
6	"fmt"
7
8	"github.com/aws/aws-sdk-go/aws"
9	"github.com/aws/aws-sdk-go/aws/awsutil"
10	"github.com/aws/aws-sdk-go/aws/request"
11	"github.com/aws/aws-sdk-go/private/protocol"
12	"github.com/aws/aws-sdk-go/private/protocol/jsonrpc"
13)
14
15const opAssociateFirewallRuleGroup = "AssociateFirewallRuleGroup"
16
17// AssociateFirewallRuleGroupRequest generates a "aws/request.Request" representing the
18// client's request for the AssociateFirewallRuleGroup operation. The "output" return
19// value will be populated with the request's response once the request completes
20// successfully.
21//
22// Use "Send" method on the returned Request to send the API call to the service.
23// the "output" return value is not valid until after Send returns without error.
24//
25// See AssociateFirewallRuleGroup for more information on using the AssociateFirewallRuleGroup
26// API call, and error handling.
27//
28// This method is useful when you want to inject custom logic or configuration
29// into the SDK's request lifecycle. Such as custom headers, or retry logic.
30//
31//
32//    // Example sending a request using the AssociateFirewallRuleGroupRequest method.
33//    req, resp := client.AssociateFirewallRuleGroupRequest(params)
34//
35//    err := req.Send()
36//    if err == nil { // resp is now filled
37//        fmt.Println(resp)
38//    }
39//
40// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/AssociateFirewallRuleGroup
41func (c *Route53Resolver) AssociateFirewallRuleGroupRequest(input *AssociateFirewallRuleGroupInput) (req *request.Request, output *AssociateFirewallRuleGroupOutput) {
42	op := &request.Operation{
43		Name:       opAssociateFirewallRuleGroup,
44		HTTPMethod: "POST",
45		HTTPPath:   "/",
46	}
47
48	if input == nil {
49		input = &AssociateFirewallRuleGroupInput{}
50	}
51
52	output = &AssociateFirewallRuleGroupOutput{}
53	req = c.newRequest(op, input, output)
54	return
55}
56
57// AssociateFirewallRuleGroup API operation for Amazon Route 53 Resolver.
58//
59// Associates a FirewallRuleGroup with a VPC, to provide DNS filtering for the
60// VPC.
61//
62// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
63// with awserr.Error's Code and Message methods to get detailed information about
64// the error.
65//
66// See the AWS API reference guide for Amazon Route 53 Resolver's
67// API operation AssociateFirewallRuleGroup for usage and error information.
68//
69// Returned Error Types:
70//   * ResourceNotFoundException
71//   The specified resource doesn't exist.
72//
73//   * ValidationException
74//
75//   * LimitExceededException
76//   The request caused one or more limits to be exceeded.
77//
78//   * ConflictException
79//
80//   * AccessDeniedException
81//   The current account doesn't have the IAM permissions required to perform
82//   the specified Resolver operation.
83//
84//   * InternalServiceErrorException
85//   We encountered an unknown error. Try again in a few minutes.
86//
87//   * ThrottlingException
88//   The request was throttled. Try again in a few minutes.
89//
90// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/AssociateFirewallRuleGroup
91func (c *Route53Resolver) AssociateFirewallRuleGroup(input *AssociateFirewallRuleGroupInput) (*AssociateFirewallRuleGroupOutput, error) {
92	req, out := c.AssociateFirewallRuleGroupRequest(input)
93	return out, req.Send()
94}
95
96// AssociateFirewallRuleGroupWithContext is the same as AssociateFirewallRuleGroup with the addition of
97// the ability to pass a context and additional request options.
98//
99// See AssociateFirewallRuleGroup for details on how to use this API operation.
100//
101// The context must be non-nil and will be used for request cancellation. If
102// the context is nil a panic will occur. In the future the SDK may create
103// sub-contexts for http.Requests. See https://golang.org/pkg/context/
104// for more information on using Contexts.
105func (c *Route53Resolver) AssociateFirewallRuleGroupWithContext(ctx aws.Context, input *AssociateFirewallRuleGroupInput, opts ...request.Option) (*AssociateFirewallRuleGroupOutput, error) {
106	req, out := c.AssociateFirewallRuleGroupRequest(input)
107	req.SetContext(ctx)
108	req.ApplyOptions(opts...)
109	return out, req.Send()
110}
111
112const opAssociateResolverEndpointIpAddress = "AssociateResolverEndpointIpAddress"
113
114// AssociateResolverEndpointIpAddressRequest generates a "aws/request.Request" representing the
115// client's request for the AssociateResolverEndpointIpAddress operation. The "output" return
116// value will be populated with the request's response once the request completes
117// successfully.
118//
119// Use "Send" method on the returned Request to send the API call to the service.
120// the "output" return value is not valid until after Send returns without error.
121//
122// See AssociateResolverEndpointIpAddress for more information on using the AssociateResolverEndpointIpAddress
123// API call, and error handling.
124//
125// This method is useful when you want to inject custom logic or configuration
126// into the SDK's request lifecycle. Such as custom headers, or retry logic.
127//
128//
129//    // Example sending a request using the AssociateResolverEndpointIpAddressRequest method.
130//    req, resp := client.AssociateResolverEndpointIpAddressRequest(params)
131//
132//    err := req.Send()
133//    if err == nil { // resp is now filled
134//        fmt.Println(resp)
135//    }
136//
137// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/AssociateResolverEndpointIpAddress
138func (c *Route53Resolver) AssociateResolverEndpointIpAddressRequest(input *AssociateResolverEndpointIpAddressInput) (req *request.Request, output *AssociateResolverEndpointIpAddressOutput) {
139	op := &request.Operation{
140		Name:       opAssociateResolverEndpointIpAddress,
141		HTTPMethod: "POST",
142		HTTPPath:   "/",
143	}
144
145	if input == nil {
146		input = &AssociateResolverEndpointIpAddressInput{}
147	}
148
149	output = &AssociateResolverEndpointIpAddressOutput{}
150	req = c.newRequest(op, input, output)
151	return
152}
153
154// AssociateResolverEndpointIpAddress API operation for Amazon Route 53 Resolver.
155//
156// Adds IP addresses to an inbound or an outbound Resolver endpoint. If you
157// want to add more than one IP address, submit one AssociateResolverEndpointIpAddress
158// request for each IP address.
159//
160// To remove an IP address from an endpoint, see DisassociateResolverEndpointIpAddress
161// (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_DisassociateResolverEndpointIpAddress.html).
162//
163// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
164// with awserr.Error's Code and Message methods to get detailed information about
165// the error.
166//
167// See the AWS API reference guide for Amazon Route 53 Resolver's
168// API operation AssociateResolverEndpointIpAddress for usage and error information.
169//
170// Returned Error Types:
171//   * ResourceNotFoundException
172//   The specified resource doesn't exist.
173//
174//   * InvalidParameterException
175//   One or more parameters in this request are not valid.
176//
177//   * InvalidRequestException
178//   The request is invalid.
179//
180//   * ResourceExistsException
181//   The resource that you tried to create already exists.
182//
183//   * InternalServiceErrorException
184//   We encountered an unknown error. Try again in a few minutes.
185//
186//   * LimitExceededException
187//   The request caused one or more limits to be exceeded.
188//
189//   * ThrottlingException
190//   The request was throttled. Try again in a few minutes.
191//
192// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/AssociateResolverEndpointIpAddress
193func (c *Route53Resolver) AssociateResolverEndpointIpAddress(input *AssociateResolverEndpointIpAddressInput) (*AssociateResolverEndpointIpAddressOutput, error) {
194	req, out := c.AssociateResolverEndpointIpAddressRequest(input)
195	return out, req.Send()
196}
197
198// AssociateResolverEndpointIpAddressWithContext is the same as AssociateResolverEndpointIpAddress with the addition of
199// the ability to pass a context and additional request options.
200//
201// See AssociateResolverEndpointIpAddress for details on how to use this API operation.
202//
203// The context must be non-nil and will be used for request cancellation. If
204// the context is nil a panic will occur. In the future the SDK may create
205// sub-contexts for http.Requests. See https://golang.org/pkg/context/
206// for more information on using Contexts.
207func (c *Route53Resolver) AssociateResolverEndpointIpAddressWithContext(ctx aws.Context, input *AssociateResolverEndpointIpAddressInput, opts ...request.Option) (*AssociateResolverEndpointIpAddressOutput, error) {
208	req, out := c.AssociateResolverEndpointIpAddressRequest(input)
209	req.SetContext(ctx)
210	req.ApplyOptions(opts...)
211	return out, req.Send()
212}
213
214const opAssociateResolverQueryLogConfig = "AssociateResolverQueryLogConfig"
215
216// AssociateResolverQueryLogConfigRequest generates a "aws/request.Request" representing the
217// client's request for the AssociateResolverQueryLogConfig operation. The "output" return
218// value will be populated with the request's response once the request completes
219// successfully.
220//
221// Use "Send" method on the returned Request to send the API call to the service.
222// the "output" return value is not valid until after Send returns without error.
223//
224// See AssociateResolverQueryLogConfig for more information on using the AssociateResolverQueryLogConfig
225// API call, and error handling.
226//
227// This method is useful when you want to inject custom logic or configuration
228// into the SDK's request lifecycle. Such as custom headers, or retry logic.
229//
230//
231//    // Example sending a request using the AssociateResolverQueryLogConfigRequest method.
232//    req, resp := client.AssociateResolverQueryLogConfigRequest(params)
233//
234//    err := req.Send()
235//    if err == nil { // resp is now filled
236//        fmt.Println(resp)
237//    }
238//
239// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/AssociateResolverQueryLogConfig
240func (c *Route53Resolver) AssociateResolverQueryLogConfigRequest(input *AssociateResolverQueryLogConfigInput) (req *request.Request, output *AssociateResolverQueryLogConfigOutput) {
241	op := &request.Operation{
242		Name:       opAssociateResolverQueryLogConfig,
243		HTTPMethod: "POST",
244		HTTPPath:   "/",
245	}
246
247	if input == nil {
248		input = &AssociateResolverQueryLogConfigInput{}
249	}
250
251	output = &AssociateResolverQueryLogConfigOutput{}
252	req = c.newRequest(op, input, output)
253	return
254}
255
256// AssociateResolverQueryLogConfig API operation for Amazon Route 53 Resolver.
257//
258// Associates an Amazon VPC with a specified query logging configuration. Route
259// 53 Resolver logs DNS queries that originate in all of the Amazon VPCs that
260// are associated with a specified query logging configuration. To associate
261// more than one VPC with a configuration, submit one AssociateResolverQueryLogConfig
262// request for each VPC.
263//
264// The VPCs that you associate with a query logging configuration must be in
265// the same Region as the configuration.
266//
267// To remove a VPC from a query logging configuration, see DisassociateResolverQueryLogConfig
268// (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_DisassociateResolverQueryLogConfig.html).
269//
270// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
271// with awserr.Error's Code and Message methods to get detailed information about
272// the error.
273//
274// See the AWS API reference guide for Amazon Route 53 Resolver's
275// API operation AssociateResolverQueryLogConfig for usage and error information.
276//
277// Returned Error Types:
278//   * InvalidParameterException
279//   One or more parameters in this request are not valid.
280//
281//   * ResourceNotFoundException
282//   The specified resource doesn't exist.
283//
284//   * InvalidRequestException
285//   The request is invalid.
286//
287//   * ResourceExistsException
288//   The resource that you tried to create already exists.
289//
290//   * LimitExceededException
291//   The request caused one or more limits to be exceeded.
292//
293//   * InternalServiceErrorException
294//   We encountered an unknown error. Try again in a few minutes.
295//
296//   * ThrottlingException
297//   The request was throttled. Try again in a few minutes.
298//
299//   * AccessDeniedException
300//   The current account doesn't have the IAM permissions required to perform
301//   the specified Resolver operation.
302//
303// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/AssociateResolverQueryLogConfig
304func (c *Route53Resolver) AssociateResolverQueryLogConfig(input *AssociateResolverQueryLogConfigInput) (*AssociateResolverQueryLogConfigOutput, error) {
305	req, out := c.AssociateResolverQueryLogConfigRequest(input)
306	return out, req.Send()
307}
308
309// AssociateResolverQueryLogConfigWithContext is the same as AssociateResolverQueryLogConfig with the addition of
310// the ability to pass a context and additional request options.
311//
312// See AssociateResolverQueryLogConfig for details on how to use this API operation.
313//
314// The context must be non-nil and will be used for request cancellation. If
315// the context is nil a panic will occur. In the future the SDK may create
316// sub-contexts for http.Requests. See https://golang.org/pkg/context/
317// for more information on using Contexts.
318func (c *Route53Resolver) AssociateResolverQueryLogConfigWithContext(ctx aws.Context, input *AssociateResolverQueryLogConfigInput, opts ...request.Option) (*AssociateResolverQueryLogConfigOutput, error) {
319	req, out := c.AssociateResolverQueryLogConfigRequest(input)
320	req.SetContext(ctx)
321	req.ApplyOptions(opts...)
322	return out, req.Send()
323}
324
325const opAssociateResolverRule = "AssociateResolverRule"
326
327// AssociateResolverRuleRequest generates a "aws/request.Request" representing the
328// client's request for the AssociateResolverRule operation. The "output" return
329// value will be populated with the request's response once the request completes
330// successfully.
331//
332// Use "Send" method on the returned Request to send the API call to the service.
333// the "output" return value is not valid until after Send returns without error.
334//
335// See AssociateResolverRule for more information on using the AssociateResolverRule
336// API call, and error handling.
337//
338// This method is useful when you want to inject custom logic or configuration
339// into the SDK's request lifecycle. Such as custom headers, or retry logic.
340//
341//
342//    // Example sending a request using the AssociateResolverRuleRequest method.
343//    req, resp := client.AssociateResolverRuleRequest(params)
344//
345//    err := req.Send()
346//    if err == nil { // resp is now filled
347//        fmt.Println(resp)
348//    }
349//
350// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/AssociateResolverRule
351func (c *Route53Resolver) AssociateResolverRuleRequest(input *AssociateResolverRuleInput) (req *request.Request, output *AssociateResolverRuleOutput) {
352	op := &request.Operation{
353		Name:       opAssociateResolverRule,
354		HTTPMethod: "POST",
355		HTTPPath:   "/",
356	}
357
358	if input == nil {
359		input = &AssociateResolverRuleInput{}
360	}
361
362	output = &AssociateResolverRuleOutput{}
363	req = c.newRequest(op, input, output)
364	return
365}
366
367// AssociateResolverRule API operation for Amazon Route 53 Resolver.
368//
369// Associates a Resolver rule with a VPC. When you associate a rule with a VPC,
370// Resolver forwards all DNS queries for the domain name that is specified in
371// the rule and that originate in the VPC. The queries are forwarded to the
372// IP addresses for the DNS resolvers that are specified in the rule. For more
373// information about rules, see CreateResolverRule (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_CreateResolverRule.html).
374//
375// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
376// with awserr.Error's Code and Message methods to get detailed information about
377// the error.
378//
379// See the AWS API reference guide for Amazon Route 53 Resolver's
380// API operation AssociateResolverRule for usage and error information.
381//
382// Returned Error Types:
383//   * ResourceNotFoundException
384//   The specified resource doesn't exist.
385//
386//   * InvalidRequestException
387//   The request is invalid.
388//
389//   * LimitExceededException
390//   The request caused one or more limits to be exceeded.
391//
392//   * InvalidParameterException
393//   One or more parameters in this request are not valid.
394//
395//   * ResourceUnavailableException
396//   The specified resource isn't available.
397//
398//   * ResourceExistsException
399//   The resource that you tried to create already exists.
400//
401//   * InternalServiceErrorException
402//   We encountered an unknown error. Try again in a few minutes.
403//
404//   * ThrottlingException
405//   The request was throttled. Try again in a few minutes.
406//
407// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/AssociateResolverRule
408func (c *Route53Resolver) AssociateResolverRule(input *AssociateResolverRuleInput) (*AssociateResolverRuleOutput, error) {
409	req, out := c.AssociateResolverRuleRequest(input)
410	return out, req.Send()
411}
412
413// AssociateResolverRuleWithContext is the same as AssociateResolverRule with the addition of
414// the ability to pass a context and additional request options.
415//
416// See AssociateResolverRule for details on how to use this API operation.
417//
418// The context must be non-nil and will be used for request cancellation. If
419// the context is nil a panic will occur. In the future the SDK may create
420// sub-contexts for http.Requests. See https://golang.org/pkg/context/
421// for more information on using Contexts.
422func (c *Route53Resolver) AssociateResolverRuleWithContext(ctx aws.Context, input *AssociateResolverRuleInput, opts ...request.Option) (*AssociateResolverRuleOutput, error) {
423	req, out := c.AssociateResolverRuleRequest(input)
424	req.SetContext(ctx)
425	req.ApplyOptions(opts...)
426	return out, req.Send()
427}
428
429const opCreateFirewallDomainList = "CreateFirewallDomainList"
430
431// CreateFirewallDomainListRequest generates a "aws/request.Request" representing the
432// client's request for the CreateFirewallDomainList operation. The "output" return
433// value will be populated with the request's response once the request completes
434// successfully.
435//
436// Use "Send" method on the returned Request to send the API call to the service.
437// the "output" return value is not valid until after Send returns without error.
438//
439// See CreateFirewallDomainList for more information on using the CreateFirewallDomainList
440// API call, and error handling.
441//
442// This method is useful when you want to inject custom logic or configuration
443// into the SDK's request lifecycle. Such as custom headers, or retry logic.
444//
445//
446//    // Example sending a request using the CreateFirewallDomainListRequest method.
447//    req, resp := client.CreateFirewallDomainListRequest(params)
448//
449//    err := req.Send()
450//    if err == nil { // resp is now filled
451//        fmt.Println(resp)
452//    }
453//
454// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/CreateFirewallDomainList
455func (c *Route53Resolver) CreateFirewallDomainListRequest(input *CreateFirewallDomainListInput) (req *request.Request, output *CreateFirewallDomainListOutput) {
456	op := &request.Operation{
457		Name:       opCreateFirewallDomainList,
458		HTTPMethod: "POST",
459		HTTPPath:   "/",
460	}
461
462	if input == nil {
463		input = &CreateFirewallDomainListInput{}
464	}
465
466	output = &CreateFirewallDomainListOutput{}
467	req = c.newRequest(op, input, output)
468	return
469}
470
471// CreateFirewallDomainList API operation for Amazon Route 53 Resolver.
472//
473// Creates an empty firewall domain list for use in DNS Firewall rules. You
474// can populate the domains for the new list with a file, using ImportFirewallDomains,
475// or with domain strings, using UpdateFirewallDomains.
476//
477// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
478// with awserr.Error's Code and Message methods to get detailed information about
479// the error.
480//
481// See the AWS API reference guide for Amazon Route 53 Resolver's
482// API operation CreateFirewallDomainList for usage and error information.
483//
484// Returned Error Types:
485//   * LimitExceededException
486//   The request caused one or more limits to be exceeded.
487//
488//   * ValidationException
489//
490//   * AccessDeniedException
491//   The current account doesn't have the IAM permissions required to perform
492//   the specified Resolver operation.
493//
494//   * InternalServiceErrorException
495//   We encountered an unknown error. Try again in a few minutes.
496//
497//   * ThrottlingException
498//   The request was throttled. Try again in a few minutes.
499//
500// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/CreateFirewallDomainList
501func (c *Route53Resolver) CreateFirewallDomainList(input *CreateFirewallDomainListInput) (*CreateFirewallDomainListOutput, error) {
502	req, out := c.CreateFirewallDomainListRequest(input)
503	return out, req.Send()
504}
505
506// CreateFirewallDomainListWithContext is the same as CreateFirewallDomainList with the addition of
507// the ability to pass a context and additional request options.
508//
509// See CreateFirewallDomainList for details on how to use this API operation.
510//
511// The context must be non-nil and will be used for request cancellation. If
512// the context is nil a panic will occur. In the future the SDK may create
513// sub-contexts for http.Requests. See https://golang.org/pkg/context/
514// for more information on using Contexts.
515func (c *Route53Resolver) CreateFirewallDomainListWithContext(ctx aws.Context, input *CreateFirewallDomainListInput, opts ...request.Option) (*CreateFirewallDomainListOutput, error) {
516	req, out := c.CreateFirewallDomainListRequest(input)
517	req.SetContext(ctx)
518	req.ApplyOptions(opts...)
519	return out, req.Send()
520}
521
522const opCreateFirewallRule = "CreateFirewallRule"
523
524// CreateFirewallRuleRequest generates a "aws/request.Request" representing the
525// client's request for the CreateFirewallRule operation. The "output" return
526// value will be populated with the request's response once the request completes
527// successfully.
528//
529// Use "Send" method on the returned Request to send the API call to the service.
530// the "output" return value is not valid until after Send returns without error.
531//
532// See CreateFirewallRule for more information on using the CreateFirewallRule
533// API call, and error handling.
534//
535// This method is useful when you want to inject custom logic or configuration
536// into the SDK's request lifecycle. Such as custom headers, or retry logic.
537//
538//
539//    // Example sending a request using the CreateFirewallRuleRequest method.
540//    req, resp := client.CreateFirewallRuleRequest(params)
541//
542//    err := req.Send()
543//    if err == nil { // resp is now filled
544//        fmt.Println(resp)
545//    }
546//
547// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/CreateFirewallRule
548func (c *Route53Resolver) CreateFirewallRuleRequest(input *CreateFirewallRuleInput) (req *request.Request, output *CreateFirewallRuleOutput) {
549	op := &request.Operation{
550		Name:       opCreateFirewallRule,
551		HTTPMethod: "POST",
552		HTTPPath:   "/",
553	}
554
555	if input == nil {
556		input = &CreateFirewallRuleInput{}
557	}
558
559	output = &CreateFirewallRuleOutput{}
560	req = c.newRequest(op, input, output)
561	return
562}
563
564// CreateFirewallRule API operation for Amazon Route 53 Resolver.
565//
566// Creates a single DNS Firewall rule in the specified rule group, using the
567// specified domain list.
568//
569// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
570// with awserr.Error's Code and Message methods to get detailed information about
571// the error.
572//
573// See the AWS API reference guide for Amazon Route 53 Resolver's
574// API operation CreateFirewallRule for usage and error information.
575//
576// Returned Error Types:
577//   * ResourceNotFoundException
578//   The specified resource doesn't exist.
579//
580//   * ValidationException
581//
582//   * LimitExceededException
583//   The request caused one or more limits to be exceeded.
584//
585//   * AccessDeniedException
586//   The current account doesn't have the IAM permissions required to perform
587//   the specified Resolver operation.
588//
589//   * InternalServiceErrorException
590//   We encountered an unknown error. Try again in a few minutes.
591//
592//   * ThrottlingException
593//   The request was throttled. Try again in a few minutes.
594//
595// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/CreateFirewallRule
596func (c *Route53Resolver) CreateFirewallRule(input *CreateFirewallRuleInput) (*CreateFirewallRuleOutput, error) {
597	req, out := c.CreateFirewallRuleRequest(input)
598	return out, req.Send()
599}
600
601// CreateFirewallRuleWithContext is the same as CreateFirewallRule with the addition of
602// the ability to pass a context and additional request options.
603//
604// See CreateFirewallRule for details on how to use this API operation.
605//
606// The context must be non-nil and will be used for request cancellation. If
607// the context is nil a panic will occur. In the future the SDK may create
608// sub-contexts for http.Requests. See https://golang.org/pkg/context/
609// for more information on using Contexts.
610func (c *Route53Resolver) CreateFirewallRuleWithContext(ctx aws.Context, input *CreateFirewallRuleInput, opts ...request.Option) (*CreateFirewallRuleOutput, error) {
611	req, out := c.CreateFirewallRuleRequest(input)
612	req.SetContext(ctx)
613	req.ApplyOptions(opts...)
614	return out, req.Send()
615}
616
617const opCreateFirewallRuleGroup = "CreateFirewallRuleGroup"
618
619// CreateFirewallRuleGroupRequest generates a "aws/request.Request" representing the
620// client's request for the CreateFirewallRuleGroup operation. The "output" return
621// value will be populated with the request's response once the request completes
622// successfully.
623//
624// Use "Send" method on the returned Request to send the API call to the service.
625// the "output" return value is not valid until after Send returns without error.
626//
627// See CreateFirewallRuleGroup for more information on using the CreateFirewallRuleGroup
628// API call, and error handling.
629//
630// This method is useful when you want to inject custom logic or configuration
631// into the SDK's request lifecycle. Such as custom headers, or retry logic.
632//
633//
634//    // Example sending a request using the CreateFirewallRuleGroupRequest method.
635//    req, resp := client.CreateFirewallRuleGroupRequest(params)
636//
637//    err := req.Send()
638//    if err == nil { // resp is now filled
639//        fmt.Println(resp)
640//    }
641//
642// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/CreateFirewallRuleGroup
643func (c *Route53Resolver) CreateFirewallRuleGroupRequest(input *CreateFirewallRuleGroupInput) (req *request.Request, output *CreateFirewallRuleGroupOutput) {
644	op := &request.Operation{
645		Name:       opCreateFirewallRuleGroup,
646		HTTPMethod: "POST",
647		HTTPPath:   "/",
648	}
649
650	if input == nil {
651		input = &CreateFirewallRuleGroupInput{}
652	}
653
654	output = &CreateFirewallRuleGroupOutput{}
655	req = c.newRequest(op, input, output)
656	return
657}
658
659// CreateFirewallRuleGroup API operation for Amazon Route 53 Resolver.
660//
661// Creates an empty DNS Firewall rule group for filtering DNS network traffic
662// in a VPC. You can add rules to the new rule group by calling CreateFirewallRule.
663//
664// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
665// with awserr.Error's Code and Message methods to get detailed information about
666// the error.
667//
668// See the AWS API reference guide for Amazon Route 53 Resolver's
669// API operation CreateFirewallRuleGroup for usage and error information.
670//
671// Returned Error Types:
672//   * LimitExceededException
673//   The request caused one or more limits to be exceeded.
674//
675//   * ValidationException
676//
677//   * AccessDeniedException
678//   The current account doesn't have the IAM permissions required to perform
679//   the specified Resolver operation.
680//
681//   * InternalServiceErrorException
682//   We encountered an unknown error. Try again in a few minutes.
683//
684//   * ThrottlingException
685//   The request was throttled. Try again in a few minutes.
686//
687// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/CreateFirewallRuleGroup
688func (c *Route53Resolver) CreateFirewallRuleGroup(input *CreateFirewallRuleGroupInput) (*CreateFirewallRuleGroupOutput, error) {
689	req, out := c.CreateFirewallRuleGroupRequest(input)
690	return out, req.Send()
691}
692
693// CreateFirewallRuleGroupWithContext is the same as CreateFirewallRuleGroup with the addition of
694// the ability to pass a context and additional request options.
695//
696// See CreateFirewallRuleGroup for details on how to use this API operation.
697//
698// The context must be non-nil and will be used for request cancellation. If
699// the context is nil a panic will occur. In the future the SDK may create
700// sub-contexts for http.Requests. See https://golang.org/pkg/context/
701// for more information on using Contexts.
702func (c *Route53Resolver) CreateFirewallRuleGroupWithContext(ctx aws.Context, input *CreateFirewallRuleGroupInput, opts ...request.Option) (*CreateFirewallRuleGroupOutput, error) {
703	req, out := c.CreateFirewallRuleGroupRequest(input)
704	req.SetContext(ctx)
705	req.ApplyOptions(opts...)
706	return out, req.Send()
707}
708
709const opCreateResolverEndpoint = "CreateResolverEndpoint"
710
711// CreateResolverEndpointRequest generates a "aws/request.Request" representing the
712// client's request for the CreateResolverEndpoint operation. The "output" return
713// value will be populated with the request's response once the request completes
714// successfully.
715//
716// Use "Send" method on the returned Request to send the API call to the service.
717// the "output" return value is not valid until after Send returns without error.
718//
719// See CreateResolverEndpoint for more information on using the CreateResolverEndpoint
720// API call, and error handling.
721//
722// This method is useful when you want to inject custom logic or configuration
723// into the SDK's request lifecycle. Such as custom headers, or retry logic.
724//
725//
726//    // Example sending a request using the CreateResolverEndpointRequest method.
727//    req, resp := client.CreateResolverEndpointRequest(params)
728//
729//    err := req.Send()
730//    if err == nil { // resp is now filled
731//        fmt.Println(resp)
732//    }
733//
734// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/CreateResolverEndpoint
735func (c *Route53Resolver) CreateResolverEndpointRequest(input *CreateResolverEndpointInput) (req *request.Request, output *CreateResolverEndpointOutput) {
736	op := &request.Operation{
737		Name:       opCreateResolverEndpoint,
738		HTTPMethod: "POST",
739		HTTPPath:   "/",
740	}
741
742	if input == nil {
743		input = &CreateResolverEndpointInput{}
744	}
745
746	output = &CreateResolverEndpointOutput{}
747	req = c.newRequest(op, input, output)
748	return
749}
750
751// CreateResolverEndpoint API operation for Amazon Route 53 Resolver.
752//
753// Creates a Resolver endpoint. There are two types of Resolver endpoints, inbound
754// and outbound:
755//
756//    * An inbound Resolver endpoint forwards DNS queries to the DNS service
757//    for a VPC from your network.
758//
759//    * An outbound Resolver endpoint forwards DNS queries from the DNS service
760//    for a VPC to your network.
761//
762// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
763// with awserr.Error's Code and Message methods to get detailed information about
764// the error.
765//
766// See the AWS API reference guide for Amazon Route 53 Resolver's
767// API operation CreateResolverEndpoint for usage and error information.
768//
769// Returned Error Types:
770//   * InvalidParameterException
771//   One or more parameters in this request are not valid.
772//
773//   * ResourceNotFoundException
774//   The specified resource doesn't exist.
775//
776//   * InvalidRequestException
777//   The request is invalid.
778//
779//   * ResourceExistsException
780//   The resource that you tried to create already exists.
781//
782//   * LimitExceededException
783//   The request caused one or more limits to be exceeded.
784//
785//   * InternalServiceErrorException
786//   We encountered an unknown error. Try again in a few minutes.
787//
788//   * ThrottlingException
789//   The request was throttled. Try again in a few minutes.
790//
791// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/CreateResolverEndpoint
792func (c *Route53Resolver) CreateResolverEndpoint(input *CreateResolverEndpointInput) (*CreateResolverEndpointOutput, error) {
793	req, out := c.CreateResolverEndpointRequest(input)
794	return out, req.Send()
795}
796
797// CreateResolverEndpointWithContext is the same as CreateResolverEndpoint with the addition of
798// the ability to pass a context and additional request options.
799//
800// See CreateResolverEndpoint for details on how to use this API operation.
801//
802// The context must be non-nil and will be used for request cancellation. If
803// the context is nil a panic will occur. In the future the SDK may create
804// sub-contexts for http.Requests. See https://golang.org/pkg/context/
805// for more information on using Contexts.
806func (c *Route53Resolver) CreateResolverEndpointWithContext(ctx aws.Context, input *CreateResolverEndpointInput, opts ...request.Option) (*CreateResolverEndpointOutput, error) {
807	req, out := c.CreateResolverEndpointRequest(input)
808	req.SetContext(ctx)
809	req.ApplyOptions(opts...)
810	return out, req.Send()
811}
812
813const opCreateResolverQueryLogConfig = "CreateResolverQueryLogConfig"
814
815// CreateResolverQueryLogConfigRequest generates a "aws/request.Request" representing the
816// client's request for the CreateResolverQueryLogConfig operation. The "output" return
817// value will be populated with the request's response once the request completes
818// successfully.
819//
820// Use "Send" method on the returned Request to send the API call to the service.
821// the "output" return value is not valid until after Send returns without error.
822//
823// See CreateResolverQueryLogConfig for more information on using the CreateResolverQueryLogConfig
824// API call, and error handling.
825//
826// This method is useful when you want to inject custom logic or configuration
827// into the SDK's request lifecycle. Such as custom headers, or retry logic.
828//
829//
830//    // Example sending a request using the CreateResolverQueryLogConfigRequest method.
831//    req, resp := client.CreateResolverQueryLogConfigRequest(params)
832//
833//    err := req.Send()
834//    if err == nil { // resp is now filled
835//        fmt.Println(resp)
836//    }
837//
838// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/CreateResolverQueryLogConfig
839func (c *Route53Resolver) CreateResolverQueryLogConfigRequest(input *CreateResolverQueryLogConfigInput) (req *request.Request, output *CreateResolverQueryLogConfigOutput) {
840	op := &request.Operation{
841		Name:       opCreateResolverQueryLogConfig,
842		HTTPMethod: "POST",
843		HTTPPath:   "/",
844	}
845
846	if input == nil {
847		input = &CreateResolverQueryLogConfigInput{}
848	}
849
850	output = &CreateResolverQueryLogConfigOutput{}
851	req = c.newRequest(op, input, output)
852	return
853}
854
855// CreateResolverQueryLogConfig API operation for Amazon Route 53 Resolver.
856//
857// Creates a Resolver query logging configuration, which defines where you want
858// Resolver to save DNS query logs that originate in your VPCs. Resolver can
859// log queries only for VPCs that are in the same Region as the query logging
860// configuration.
861//
862// To specify which VPCs you want to log queries for, you use AssociateResolverQueryLogConfig.
863// For more information, see AssociateResolverQueryLogConfig (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_AssociateResolverQueryLogConfig.html).
864//
865// You can optionally use Resource Access Manager (RAM) to share a query logging
866// configuration with other Amazon Web Services accounts. The other accounts
867// can then associate VPCs with the configuration. The query logs that Resolver
868// creates for a configuration include all DNS queries that originate in all
869// VPCs that are associated with the configuration.
870//
871// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
872// with awserr.Error's Code and Message methods to get detailed information about
873// the error.
874//
875// See the AWS API reference guide for Amazon Route 53 Resolver's
876// API operation CreateResolverQueryLogConfig for usage and error information.
877//
878// Returned Error Types:
879//   * InvalidParameterException
880//   One or more parameters in this request are not valid.
881//
882//   * ResourceNotFoundException
883//   The specified resource doesn't exist.
884//
885//   * InvalidRequestException
886//   The request is invalid.
887//
888//   * ResourceExistsException
889//   The resource that you tried to create already exists.
890//
891//   * LimitExceededException
892//   The request caused one or more limits to be exceeded.
893//
894//   * InternalServiceErrorException
895//   We encountered an unknown error. Try again in a few minutes.
896//
897//   * ThrottlingException
898//   The request was throttled. Try again in a few minutes.
899//
900//   * AccessDeniedException
901//   The current account doesn't have the IAM permissions required to perform
902//   the specified Resolver operation.
903//
904// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/CreateResolverQueryLogConfig
905func (c *Route53Resolver) CreateResolverQueryLogConfig(input *CreateResolverQueryLogConfigInput) (*CreateResolverQueryLogConfigOutput, error) {
906	req, out := c.CreateResolverQueryLogConfigRequest(input)
907	return out, req.Send()
908}
909
910// CreateResolverQueryLogConfigWithContext is the same as CreateResolverQueryLogConfig with the addition of
911// the ability to pass a context and additional request options.
912//
913// See CreateResolverQueryLogConfig for details on how to use this API operation.
914//
915// The context must be non-nil and will be used for request cancellation. If
916// the context is nil a panic will occur. In the future the SDK may create
917// sub-contexts for http.Requests. See https://golang.org/pkg/context/
918// for more information on using Contexts.
919func (c *Route53Resolver) CreateResolverQueryLogConfigWithContext(ctx aws.Context, input *CreateResolverQueryLogConfigInput, opts ...request.Option) (*CreateResolverQueryLogConfigOutput, error) {
920	req, out := c.CreateResolverQueryLogConfigRequest(input)
921	req.SetContext(ctx)
922	req.ApplyOptions(opts...)
923	return out, req.Send()
924}
925
926const opCreateResolverRule = "CreateResolverRule"
927
928// CreateResolverRuleRequest generates a "aws/request.Request" representing the
929// client's request for the CreateResolverRule operation. The "output" return
930// value will be populated with the request's response once the request completes
931// successfully.
932//
933// Use "Send" method on the returned Request to send the API call to the service.
934// the "output" return value is not valid until after Send returns without error.
935//
936// See CreateResolverRule for more information on using the CreateResolverRule
937// API call, and error handling.
938//
939// This method is useful when you want to inject custom logic or configuration
940// into the SDK's request lifecycle. Such as custom headers, or retry logic.
941//
942//
943//    // Example sending a request using the CreateResolverRuleRequest method.
944//    req, resp := client.CreateResolverRuleRequest(params)
945//
946//    err := req.Send()
947//    if err == nil { // resp is now filled
948//        fmt.Println(resp)
949//    }
950//
951// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/CreateResolverRule
952func (c *Route53Resolver) CreateResolverRuleRequest(input *CreateResolverRuleInput) (req *request.Request, output *CreateResolverRuleOutput) {
953	op := &request.Operation{
954		Name:       opCreateResolverRule,
955		HTTPMethod: "POST",
956		HTTPPath:   "/",
957	}
958
959	if input == nil {
960		input = &CreateResolverRuleInput{}
961	}
962
963	output = &CreateResolverRuleOutput{}
964	req = c.newRequest(op, input, output)
965	return
966}
967
968// CreateResolverRule API operation for Amazon Route 53 Resolver.
969//
970// For DNS queries that originate in your VPCs, specifies which Resolver endpoint
971// the queries pass through, one domain name that you want to forward to your
972// network, and the IP addresses of the DNS resolvers in your network.
973//
974// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
975// with awserr.Error's Code and Message methods to get detailed information about
976// the error.
977//
978// See the AWS API reference guide for Amazon Route 53 Resolver's
979// API operation CreateResolverRule for usage and error information.
980//
981// Returned Error Types:
982//   * InvalidParameterException
983//   One or more parameters in this request are not valid.
984//
985//   * InvalidRequestException
986//   The request is invalid.
987//
988//   * LimitExceededException
989//   The request caused one or more limits to be exceeded.
990//
991//   * ResourceNotFoundException
992//   The specified resource doesn't exist.
993//
994//   * ResourceExistsException
995//   The resource that you tried to create already exists.
996//
997//   * ResourceUnavailableException
998//   The specified resource isn't available.
999//
1000//   * InternalServiceErrorException
1001//   We encountered an unknown error. Try again in a few minutes.
1002//
1003//   * ThrottlingException
1004//   The request was throttled. Try again in a few minutes.
1005//
1006// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/CreateResolverRule
1007func (c *Route53Resolver) CreateResolverRule(input *CreateResolverRuleInput) (*CreateResolverRuleOutput, error) {
1008	req, out := c.CreateResolverRuleRequest(input)
1009	return out, req.Send()
1010}
1011
1012// CreateResolverRuleWithContext is the same as CreateResolverRule with the addition of
1013// the ability to pass a context and additional request options.
1014//
1015// See CreateResolverRule for details on how to use this API operation.
1016//
1017// The context must be non-nil and will be used for request cancellation. If
1018// the context is nil a panic will occur. In the future the SDK may create
1019// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1020// for more information on using Contexts.
1021func (c *Route53Resolver) CreateResolverRuleWithContext(ctx aws.Context, input *CreateResolverRuleInput, opts ...request.Option) (*CreateResolverRuleOutput, error) {
1022	req, out := c.CreateResolverRuleRequest(input)
1023	req.SetContext(ctx)
1024	req.ApplyOptions(opts...)
1025	return out, req.Send()
1026}
1027
1028const opDeleteFirewallDomainList = "DeleteFirewallDomainList"
1029
1030// DeleteFirewallDomainListRequest generates a "aws/request.Request" representing the
1031// client's request for the DeleteFirewallDomainList operation. The "output" return
1032// value will be populated with the request's response once the request completes
1033// successfully.
1034//
1035// Use "Send" method on the returned Request to send the API call to the service.
1036// the "output" return value is not valid until after Send returns without error.
1037//
1038// See DeleteFirewallDomainList for more information on using the DeleteFirewallDomainList
1039// API call, and error handling.
1040//
1041// This method is useful when you want to inject custom logic or configuration
1042// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1043//
1044//
1045//    // Example sending a request using the DeleteFirewallDomainListRequest method.
1046//    req, resp := client.DeleteFirewallDomainListRequest(params)
1047//
1048//    err := req.Send()
1049//    if err == nil { // resp is now filled
1050//        fmt.Println(resp)
1051//    }
1052//
1053// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DeleteFirewallDomainList
1054func (c *Route53Resolver) DeleteFirewallDomainListRequest(input *DeleteFirewallDomainListInput) (req *request.Request, output *DeleteFirewallDomainListOutput) {
1055	op := &request.Operation{
1056		Name:       opDeleteFirewallDomainList,
1057		HTTPMethod: "POST",
1058		HTTPPath:   "/",
1059	}
1060
1061	if input == nil {
1062		input = &DeleteFirewallDomainListInput{}
1063	}
1064
1065	output = &DeleteFirewallDomainListOutput{}
1066	req = c.newRequest(op, input, output)
1067	return
1068}
1069
1070// DeleteFirewallDomainList API operation for Amazon Route 53 Resolver.
1071//
1072// Deletes the specified domain list.
1073//
1074// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1075// with awserr.Error's Code and Message methods to get detailed information about
1076// the error.
1077//
1078// See the AWS API reference guide for Amazon Route 53 Resolver's
1079// API operation DeleteFirewallDomainList for usage and error information.
1080//
1081// Returned Error Types:
1082//   * ResourceNotFoundException
1083//   The specified resource doesn't exist.
1084//
1085//   * ConflictException
1086//
1087//   * AccessDeniedException
1088//   The current account doesn't have the IAM permissions required to perform
1089//   the specified Resolver operation.
1090//
1091//   * InternalServiceErrorException
1092//   We encountered an unknown error. Try again in a few minutes.
1093//
1094//   * ThrottlingException
1095//   The request was throttled. Try again in a few minutes.
1096//
1097// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DeleteFirewallDomainList
1098func (c *Route53Resolver) DeleteFirewallDomainList(input *DeleteFirewallDomainListInput) (*DeleteFirewallDomainListOutput, error) {
1099	req, out := c.DeleteFirewallDomainListRequest(input)
1100	return out, req.Send()
1101}
1102
1103// DeleteFirewallDomainListWithContext is the same as DeleteFirewallDomainList with the addition of
1104// the ability to pass a context and additional request options.
1105//
1106// See DeleteFirewallDomainList for details on how to use this API operation.
1107//
1108// The context must be non-nil and will be used for request cancellation. If
1109// the context is nil a panic will occur. In the future the SDK may create
1110// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1111// for more information on using Contexts.
1112func (c *Route53Resolver) DeleteFirewallDomainListWithContext(ctx aws.Context, input *DeleteFirewallDomainListInput, opts ...request.Option) (*DeleteFirewallDomainListOutput, error) {
1113	req, out := c.DeleteFirewallDomainListRequest(input)
1114	req.SetContext(ctx)
1115	req.ApplyOptions(opts...)
1116	return out, req.Send()
1117}
1118
1119const opDeleteFirewallRule = "DeleteFirewallRule"
1120
1121// DeleteFirewallRuleRequest generates a "aws/request.Request" representing the
1122// client's request for the DeleteFirewallRule operation. The "output" return
1123// value will be populated with the request's response once the request completes
1124// successfully.
1125//
1126// Use "Send" method on the returned Request to send the API call to the service.
1127// the "output" return value is not valid until after Send returns without error.
1128//
1129// See DeleteFirewallRule for more information on using the DeleteFirewallRule
1130// API call, and error handling.
1131//
1132// This method is useful when you want to inject custom logic or configuration
1133// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1134//
1135//
1136//    // Example sending a request using the DeleteFirewallRuleRequest method.
1137//    req, resp := client.DeleteFirewallRuleRequest(params)
1138//
1139//    err := req.Send()
1140//    if err == nil { // resp is now filled
1141//        fmt.Println(resp)
1142//    }
1143//
1144// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DeleteFirewallRule
1145func (c *Route53Resolver) DeleteFirewallRuleRequest(input *DeleteFirewallRuleInput) (req *request.Request, output *DeleteFirewallRuleOutput) {
1146	op := &request.Operation{
1147		Name:       opDeleteFirewallRule,
1148		HTTPMethod: "POST",
1149		HTTPPath:   "/",
1150	}
1151
1152	if input == nil {
1153		input = &DeleteFirewallRuleInput{}
1154	}
1155
1156	output = &DeleteFirewallRuleOutput{}
1157	req = c.newRequest(op, input, output)
1158	return
1159}
1160
1161// DeleteFirewallRule API operation for Amazon Route 53 Resolver.
1162//
1163// Deletes the specified firewall rule.
1164//
1165// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1166// with awserr.Error's Code and Message methods to get detailed information about
1167// the error.
1168//
1169// See the AWS API reference guide for Amazon Route 53 Resolver's
1170// API operation DeleteFirewallRule for usage and error information.
1171//
1172// Returned Error Types:
1173//   * ResourceNotFoundException
1174//   The specified resource doesn't exist.
1175//
1176//   * AccessDeniedException
1177//   The current account doesn't have the IAM permissions required to perform
1178//   the specified Resolver operation.
1179//
1180//   * InternalServiceErrorException
1181//   We encountered an unknown error. Try again in a few minutes.
1182//
1183//   * ThrottlingException
1184//   The request was throttled. Try again in a few minutes.
1185//
1186// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DeleteFirewallRule
1187func (c *Route53Resolver) DeleteFirewallRule(input *DeleteFirewallRuleInput) (*DeleteFirewallRuleOutput, error) {
1188	req, out := c.DeleteFirewallRuleRequest(input)
1189	return out, req.Send()
1190}
1191
1192// DeleteFirewallRuleWithContext is the same as DeleteFirewallRule with the addition of
1193// the ability to pass a context and additional request options.
1194//
1195// See DeleteFirewallRule for details on how to use this API operation.
1196//
1197// The context must be non-nil and will be used for request cancellation. If
1198// the context is nil a panic will occur. In the future the SDK may create
1199// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1200// for more information on using Contexts.
1201func (c *Route53Resolver) DeleteFirewallRuleWithContext(ctx aws.Context, input *DeleteFirewallRuleInput, opts ...request.Option) (*DeleteFirewallRuleOutput, error) {
1202	req, out := c.DeleteFirewallRuleRequest(input)
1203	req.SetContext(ctx)
1204	req.ApplyOptions(opts...)
1205	return out, req.Send()
1206}
1207
1208const opDeleteFirewallRuleGroup = "DeleteFirewallRuleGroup"
1209
1210// DeleteFirewallRuleGroupRequest generates a "aws/request.Request" representing the
1211// client's request for the DeleteFirewallRuleGroup operation. The "output" return
1212// value will be populated with the request's response once the request completes
1213// successfully.
1214//
1215// Use "Send" method on the returned Request to send the API call to the service.
1216// the "output" return value is not valid until after Send returns without error.
1217//
1218// See DeleteFirewallRuleGroup for more information on using the DeleteFirewallRuleGroup
1219// API call, and error handling.
1220//
1221// This method is useful when you want to inject custom logic or configuration
1222// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1223//
1224//
1225//    // Example sending a request using the DeleteFirewallRuleGroupRequest method.
1226//    req, resp := client.DeleteFirewallRuleGroupRequest(params)
1227//
1228//    err := req.Send()
1229//    if err == nil { // resp is now filled
1230//        fmt.Println(resp)
1231//    }
1232//
1233// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DeleteFirewallRuleGroup
1234func (c *Route53Resolver) DeleteFirewallRuleGroupRequest(input *DeleteFirewallRuleGroupInput) (req *request.Request, output *DeleteFirewallRuleGroupOutput) {
1235	op := &request.Operation{
1236		Name:       opDeleteFirewallRuleGroup,
1237		HTTPMethod: "POST",
1238		HTTPPath:   "/",
1239	}
1240
1241	if input == nil {
1242		input = &DeleteFirewallRuleGroupInput{}
1243	}
1244
1245	output = &DeleteFirewallRuleGroupOutput{}
1246	req = c.newRequest(op, input, output)
1247	return
1248}
1249
1250// DeleteFirewallRuleGroup API operation for Amazon Route 53 Resolver.
1251//
1252// Deletes the specified firewall rule group.
1253//
1254// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1255// with awserr.Error's Code and Message methods to get detailed information about
1256// the error.
1257//
1258// See the AWS API reference guide for Amazon Route 53 Resolver's
1259// API operation DeleteFirewallRuleGroup for usage and error information.
1260//
1261// Returned Error Types:
1262//   * ResourceNotFoundException
1263//   The specified resource doesn't exist.
1264//
1265//   * ConflictException
1266//
1267//   * ValidationException
1268//
1269//   * AccessDeniedException
1270//   The current account doesn't have the IAM permissions required to perform
1271//   the specified Resolver operation.
1272//
1273//   * InternalServiceErrorException
1274//   We encountered an unknown error. Try again in a few minutes.
1275//
1276//   * ThrottlingException
1277//   The request was throttled. Try again in a few minutes.
1278//
1279// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DeleteFirewallRuleGroup
1280func (c *Route53Resolver) DeleteFirewallRuleGroup(input *DeleteFirewallRuleGroupInput) (*DeleteFirewallRuleGroupOutput, error) {
1281	req, out := c.DeleteFirewallRuleGroupRequest(input)
1282	return out, req.Send()
1283}
1284
1285// DeleteFirewallRuleGroupWithContext is the same as DeleteFirewallRuleGroup with the addition of
1286// the ability to pass a context and additional request options.
1287//
1288// See DeleteFirewallRuleGroup for details on how to use this API operation.
1289//
1290// The context must be non-nil and will be used for request cancellation. If
1291// the context is nil a panic will occur. In the future the SDK may create
1292// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1293// for more information on using Contexts.
1294func (c *Route53Resolver) DeleteFirewallRuleGroupWithContext(ctx aws.Context, input *DeleteFirewallRuleGroupInput, opts ...request.Option) (*DeleteFirewallRuleGroupOutput, error) {
1295	req, out := c.DeleteFirewallRuleGroupRequest(input)
1296	req.SetContext(ctx)
1297	req.ApplyOptions(opts...)
1298	return out, req.Send()
1299}
1300
1301const opDeleteResolverEndpoint = "DeleteResolverEndpoint"
1302
1303// DeleteResolverEndpointRequest generates a "aws/request.Request" representing the
1304// client's request for the DeleteResolverEndpoint operation. The "output" return
1305// value will be populated with the request's response once the request completes
1306// successfully.
1307//
1308// Use "Send" method on the returned Request to send the API call to the service.
1309// the "output" return value is not valid until after Send returns without error.
1310//
1311// See DeleteResolverEndpoint for more information on using the DeleteResolverEndpoint
1312// API call, and error handling.
1313//
1314// This method is useful when you want to inject custom logic or configuration
1315// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1316//
1317//
1318//    // Example sending a request using the DeleteResolverEndpointRequest method.
1319//    req, resp := client.DeleteResolverEndpointRequest(params)
1320//
1321//    err := req.Send()
1322//    if err == nil { // resp is now filled
1323//        fmt.Println(resp)
1324//    }
1325//
1326// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DeleteResolverEndpoint
1327func (c *Route53Resolver) DeleteResolverEndpointRequest(input *DeleteResolverEndpointInput) (req *request.Request, output *DeleteResolverEndpointOutput) {
1328	op := &request.Operation{
1329		Name:       opDeleteResolverEndpoint,
1330		HTTPMethod: "POST",
1331		HTTPPath:   "/",
1332	}
1333
1334	if input == nil {
1335		input = &DeleteResolverEndpointInput{}
1336	}
1337
1338	output = &DeleteResolverEndpointOutput{}
1339	req = c.newRequest(op, input, output)
1340	return
1341}
1342
1343// DeleteResolverEndpoint API operation for Amazon Route 53 Resolver.
1344//
1345// Deletes a Resolver endpoint. The effect of deleting a Resolver endpoint depends
1346// on whether it's an inbound or an outbound Resolver endpoint:
1347//
1348//    * Inbound: DNS queries from your network are no longer routed to the DNS
1349//    service for the specified VPC.
1350//
1351//    * Outbound: DNS queries from a VPC are no longer routed to your network.
1352//
1353// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1354// with awserr.Error's Code and Message methods to get detailed information about
1355// the error.
1356//
1357// See the AWS API reference guide for Amazon Route 53 Resolver's
1358// API operation DeleteResolverEndpoint for usage and error information.
1359//
1360// Returned Error Types:
1361//   * ResourceNotFoundException
1362//   The specified resource doesn't exist.
1363//
1364//   * InvalidParameterException
1365//   One or more parameters in this request are not valid.
1366//
1367//   * InvalidRequestException
1368//   The request is invalid.
1369//
1370//   * InternalServiceErrorException
1371//   We encountered an unknown error. Try again in a few minutes.
1372//
1373//   * ThrottlingException
1374//   The request was throttled. Try again in a few minutes.
1375//
1376// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DeleteResolverEndpoint
1377func (c *Route53Resolver) DeleteResolverEndpoint(input *DeleteResolverEndpointInput) (*DeleteResolverEndpointOutput, error) {
1378	req, out := c.DeleteResolverEndpointRequest(input)
1379	return out, req.Send()
1380}
1381
1382// DeleteResolverEndpointWithContext is the same as DeleteResolverEndpoint with the addition of
1383// the ability to pass a context and additional request options.
1384//
1385// See DeleteResolverEndpoint for details on how to use this API operation.
1386//
1387// The context must be non-nil and will be used for request cancellation. If
1388// the context is nil a panic will occur. In the future the SDK may create
1389// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1390// for more information on using Contexts.
1391func (c *Route53Resolver) DeleteResolverEndpointWithContext(ctx aws.Context, input *DeleteResolverEndpointInput, opts ...request.Option) (*DeleteResolverEndpointOutput, error) {
1392	req, out := c.DeleteResolverEndpointRequest(input)
1393	req.SetContext(ctx)
1394	req.ApplyOptions(opts...)
1395	return out, req.Send()
1396}
1397
1398const opDeleteResolverQueryLogConfig = "DeleteResolverQueryLogConfig"
1399
1400// DeleteResolverQueryLogConfigRequest generates a "aws/request.Request" representing the
1401// client's request for the DeleteResolverQueryLogConfig operation. The "output" return
1402// value will be populated with the request's response once the request completes
1403// successfully.
1404//
1405// Use "Send" method on the returned Request to send the API call to the service.
1406// the "output" return value is not valid until after Send returns without error.
1407//
1408// See DeleteResolverQueryLogConfig for more information on using the DeleteResolverQueryLogConfig
1409// API call, and error handling.
1410//
1411// This method is useful when you want to inject custom logic or configuration
1412// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1413//
1414//
1415//    // Example sending a request using the DeleteResolverQueryLogConfigRequest method.
1416//    req, resp := client.DeleteResolverQueryLogConfigRequest(params)
1417//
1418//    err := req.Send()
1419//    if err == nil { // resp is now filled
1420//        fmt.Println(resp)
1421//    }
1422//
1423// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DeleteResolverQueryLogConfig
1424func (c *Route53Resolver) DeleteResolverQueryLogConfigRequest(input *DeleteResolverQueryLogConfigInput) (req *request.Request, output *DeleteResolverQueryLogConfigOutput) {
1425	op := &request.Operation{
1426		Name:       opDeleteResolverQueryLogConfig,
1427		HTTPMethod: "POST",
1428		HTTPPath:   "/",
1429	}
1430
1431	if input == nil {
1432		input = &DeleteResolverQueryLogConfigInput{}
1433	}
1434
1435	output = &DeleteResolverQueryLogConfigOutput{}
1436	req = c.newRequest(op, input, output)
1437	return
1438}
1439
1440// DeleteResolverQueryLogConfig API operation for Amazon Route 53 Resolver.
1441//
1442// Deletes a query logging configuration. When you delete a configuration, Resolver
1443// stops logging DNS queries for all of the Amazon VPCs that are associated
1444// with the configuration. This also applies if the query logging configuration
1445// is shared with other Amazon Web Services accounts, and the other accounts
1446// have associated VPCs with the shared configuration.
1447//
1448// Before you can delete a query logging configuration, you must first disassociate
1449// all VPCs from the configuration. See DisassociateResolverQueryLogConfig (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_DisassociateResolverQueryLogConfig.html).
1450//
1451// If you used Resource Access Manager (RAM) to share a query logging configuration
1452// with other accounts, you must stop sharing the configuration before you can
1453// delete a configuration. The accounts that you shared the configuration with
1454// can first disassociate VPCs that they associated with the configuration,
1455// but that's not necessary. If you stop sharing the configuration, those VPCs
1456// are automatically disassociated from the configuration.
1457//
1458// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1459// with awserr.Error's Code and Message methods to get detailed information about
1460// the error.
1461//
1462// See the AWS API reference guide for Amazon Route 53 Resolver's
1463// API operation DeleteResolverQueryLogConfig for usage and error information.
1464//
1465// Returned Error Types:
1466//   * ResourceNotFoundException
1467//   The specified resource doesn't exist.
1468//
1469//   * InvalidParameterException
1470//   One or more parameters in this request are not valid.
1471//
1472//   * InvalidRequestException
1473//   The request is invalid.
1474//
1475//   * InternalServiceErrorException
1476//   We encountered an unknown error. Try again in a few minutes.
1477//
1478//   * ThrottlingException
1479//   The request was throttled. Try again in a few minutes.
1480//
1481//   * AccessDeniedException
1482//   The current account doesn't have the IAM permissions required to perform
1483//   the specified Resolver operation.
1484//
1485// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DeleteResolverQueryLogConfig
1486func (c *Route53Resolver) DeleteResolverQueryLogConfig(input *DeleteResolverQueryLogConfigInput) (*DeleteResolverQueryLogConfigOutput, error) {
1487	req, out := c.DeleteResolverQueryLogConfigRequest(input)
1488	return out, req.Send()
1489}
1490
1491// DeleteResolverQueryLogConfigWithContext is the same as DeleteResolverQueryLogConfig with the addition of
1492// the ability to pass a context and additional request options.
1493//
1494// See DeleteResolverQueryLogConfig for details on how to use this API operation.
1495//
1496// The context must be non-nil and will be used for request cancellation. If
1497// the context is nil a panic will occur. In the future the SDK may create
1498// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1499// for more information on using Contexts.
1500func (c *Route53Resolver) DeleteResolverQueryLogConfigWithContext(ctx aws.Context, input *DeleteResolverQueryLogConfigInput, opts ...request.Option) (*DeleteResolverQueryLogConfigOutput, error) {
1501	req, out := c.DeleteResolverQueryLogConfigRequest(input)
1502	req.SetContext(ctx)
1503	req.ApplyOptions(opts...)
1504	return out, req.Send()
1505}
1506
1507const opDeleteResolverRule = "DeleteResolverRule"
1508
1509// DeleteResolverRuleRequest generates a "aws/request.Request" representing the
1510// client's request for the DeleteResolverRule operation. The "output" return
1511// value will be populated with the request's response once the request completes
1512// successfully.
1513//
1514// Use "Send" method on the returned Request to send the API call to the service.
1515// the "output" return value is not valid until after Send returns without error.
1516//
1517// See DeleteResolverRule for more information on using the DeleteResolverRule
1518// API call, and error handling.
1519//
1520// This method is useful when you want to inject custom logic or configuration
1521// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1522//
1523//
1524//    // Example sending a request using the DeleteResolverRuleRequest method.
1525//    req, resp := client.DeleteResolverRuleRequest(params)
1526//
1527//    err := req.Send()
1528//    if err == nil { // resp is now filled
1529//        fmt.Println(resp)
1530//    }
1531//
1532// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DeleteResolverRule
1533func (c *Route53Resolver) DeleteResolverRuleRequest(input *DeleteResolverRuleInput) (req *request.Request, output *DeleteResolverRuleOutput) {
1534	op := &request.Operation{
1535		Name:       opDeleteResolverRule,
1536		HTTPMethod: "POST",
1537		HTTPPath:   "/",
1538	}
1539
1540	if input == nil {
1541		input = &DeleteResolverRuleInput{}
1542	}
1543
1544	output = &DeleteResolverRuleOutput{}
1545	req = c.newRequest(op, input, output)
1546	return
1547}
1548
1549// DeleteResolverRule API operation for Amazon Route 53 Resolver.
1550//
1551// Deletes a Resolver rule. Before you can delete a Resolver rule, you must
1552// disassociate it from all the VPCs that you associated the Resolver rule with.
1553// For more information, see DisassociateResolverRule (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_DisassociateResolverRule.html).
1554//
1555// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1556// with awserr.Error's Code and Message methods to get detailed information about
1557// the error.
1558//
1559// See the AWS API reference guide for Amazon Route 53 Resolver's
1560// API operation DeleteResolverRule for usage and error information.
1561//
1562// Returned Error Types:
1563//   * InvalidParameterException
1564//   One or more parameters in this request are not valid.
1565//
1566//   * ResourceNotFoundException
1567//   The specified resource doesn't exist.
1568//
1569//   * ResourceInUseException
1570//   The resource that you tried to update or delete is currently in use.
1571//
1572//   * InternalServiceErrorException
1573//   We encountered an unknown error. Try again in a few minutes.
1574//
1575//   * ThrottlingException
1576//   The request was throttled. Try again in a few minutes.
1577//
1578// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DeleteResolverRule
1579func (c *Route53Resolver) DeleteResolverRule(input *DeleteResolverRuleInput) (*DeleteResolverRuleOutput, error) {
1580	req, out := c.DeleteResolverRuleRequest(input)
1581	return out, req.Send()
1582}
1583
1584// DeleteResolverRuleWithContext is the same as DeleteResolverRule with the addition of
1585// the ability to pass a context and additional request options.
1586//
1587// See DeleteResolverRule for details on how to use this API operation.
1588//
1589// The context must be non-nil and will be used for request cancellation. If
1590// the context is nil a panic will occur. In the future the SDK may create
1591// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1592// for more information on using Contexts.
1593func (c *Route53Resolver) DeleteResolverRuleWithContext(ctx aws.Context, input *DeleteResolverRuleInput, opts ...request.Option) (*DeleteResolverRuleOutput, error) {
1594	req, out := c.DeleteResolverRuleRequest(input)
1595	req.SetContext(ctx)
1596	req.ApplyOptions(opts...)
1597	return out, req.Send()
1598}
1599
1600const opDisassociateFirewallRuleGroup = "DisassociateFirewallRuleGroup"
1601
1602// DisassociateFirewallRuleGroupRequest generates a "aws/request.Request" representing the
1603// client's request for the DisassociateFirewallRuleGroup operation. The "output" return
1604// value will be populated with the request's response once the request completes
1605// successfully.
1606//
1607// Use "Send" method on the returned Request to send the API call to the service.
1608// the "output" return value is not valid until after Send returns without error.
1609//
1610// See DisassociateFirewallRuleGroup for more information on using the DisassociateFirewallRuleGroup
1611// API call, and error handling.
1612//
1613// This method is useful when you want to inject custom logic or configuration
1614// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1615//
1616//
1617//    // Example sending a request using the DisassociateFirewallRuleGroupRequest method.
1618//    req, resp := client.DisassociateFirewallRuleGroupRequest(params)
1619//
1620//    err := req.Send()
1621//    if err == nil { // resp is now filled
1622//        fmt.Println(resp)
1623//    }
1624//
1625// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DisassociateFirewallRuleGroup
1626func (c *Route53Resolver) DisassociateFirewallRuleGroupRequest(input *DisassociateFirewallRuleGroupInput) (req *request.Request, output *DisassociateFirewallRuleGroupOutput) {
1627	op := &request.Operation{
1628		Name:       opDisassociateFirewallRuleGroup,
1629		HTTPMethod: "POST",
1630		HTTPPath:   "/",
1631	}
1632
1633	if input == nil {
1634		input = &DisassociateFirewallRuleGroupInput{}
1635	}
1636
1637	output = &DisassociateFirewallRuleGroupOutput{}
1638	req = c.newRequest(op, input, output)
1639	return
1640}
1641
1642// DisassociateFirewallRuleGroup API operation for Amazon Route 53 Resolver.
1643//
1644// Disassociates a FirewallRuleGroup from a VPC, to remove DNS filtering from
1645// the VPC.
1646//
1647// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1648// with awserr.Error's Code and Message methods to get detailed information about
1649// the error.
1650//
1651// See the AWS API reference guide for Amazon Route 53 Resolver's
1652// API operation DisassociateFirewallRuleGroup for usage and error information.
1653//
1654// Returned Error Types:
1655//   * ResourceNotFoundException
1656//   The specified resource doesn't exist.
1657//
1658//   * ValidationException
1659//
1660//   * AccessDeniedException
1661//   The current account doesn't have the IAM permissions required to perform
1662//   the specified Resolver operation.
1663//
1664//   * ConflictException
1665//
1666//   * InternalServiceErrorException
1667//   We encountered an unknown error. Try again in a few minutes.
1668//
1669//   * ThrottlingException
1670//   The request was throttled. Try again in a few minutes.
1671//
1672// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DisassociateFirewallRuleGroup
1673func (c *Route53Resolver) DisassociateFirewallRuleGroup(input *DisassociateFirewallRuleGroupInput) (*DisassociateFirewallRuleGroupOutput, error) {
1674	req, out := c.DisassociateFirewallRuleGroupRequest(input)
1675	return out, req.Send()
1676}
1677
1678// DisassociateFirewallRuleGroupWithContext is the same as DisassociateFirewallRuleGroup with the addition of
1679// the ability to pass a context and additional request options.
1680//
1681// See DisassociateFirewallRuleGroup for details on how to use this API operation.
1682//
1683// The context must be non-nil and will be used for request cancellation. If
1684// the context is nil a panic will occur. In the future the SDK may create
1685// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1686// for more information on using Contexts.
1687func (c *Route53Resolver) DisassociateFirewallRuleGroupWithContext(ctx aws.Context, input *DisassociateFirewallRuleGroupInput, opts ...request.Option) (*DisassociateFirewallRuleGroupOutput, error) {
1688	req, out := c.DisassociateFirewallRuleGroupRequest(input)
1689	req.SetContext(ctx)
1690	req.ApplyOptions(opts...)
1691	return out, req.Send()
1692}
1693
1694const opDisassociateResolverEndpointIpAddress = "DisassociateResolverEndpointIpAddress"
1695
1696// DisassociateResolverEndpointIpAddressRequest generates a "aws/request.Request" representing the
1697// client's request for the DisassociateResolverEndpointIpAddress operation. The "output" return
1698// value will be populated with the request's response once the request completes
1699// successfully.
1700//
1701// Use "Send" method on the returned Request to send the API call to the service.
1702// the "output" return value is not valid until after Send returns without error.
1703//
1704// See DisassociateResolverEndpointIpAddress for more information on using the DisassociateResolverEndpointIpAddress
1705// API call, and error handling.
1706//
1707// This method is useful when you want to inject custom logic or configuration
1708// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1709//
1710//
1711//    // Example sending a request using the DisassociateResolverEndpointIpAddressRequest method.
1712//    req, resp := client.DisassociateResolverEndpointIpAddressRequest(params)
1713//
1714//    err := req.Send()
1715//    if err == nil { // resp is now filled
1716//        fmt.Println(resp)
1717//    }
1718//
1719// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DisassociateResolverEndpointIpAddress
1720func (c *Route53Resolver) DisassociateResolverEndpointIpAddressRequest(input *DisassociateResolverEndpointIpAddressInput) (req *request.Request, output *DisassociateResolverEndpointIpAddressOutput) {
1721	op := &request.Operation{
1722		Name:       opDisassociateResolverEndpointIpAddress,
1723		HTTPMethod: "POST",
1724		HTTPPath:   "/",
1725	}
1726
1727	if input == nil {
1728		input = &DisassociateResolverEndpointIpAddressInput{}
1729	}
1730
1731	output = &DisassociateResolverEndpointIpAddressOutput{}
1732	req = c.newRequest(op, input, output)
1733	return
1734}
1735
1736// DisassociateResolverEndpointIpAddress API operation for Amazon Route 53 Resolver.
1737//
1738// Removes IP addresses from an inbound or an outbound Resolver endpoint. If
1739// you want to remove more than one IP address, submit one DisassociateResolverEndpointIpAddress
1740// request for each IP address.
1741//
1742// To add an IP address to an endpoint, see AssociateResolverEndpointIpAddress
1743// (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_AssociateResolverEndpointIpAddress.html).
1744//
1745// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1746// with awserr.Error's Code and Message methods to get detailed information about
1747// the error.
1748//
1749// See the AWS API reference guide for Amazon Route 53 Resolver's
1750// API operation DisassociateResolverEndpointIpAddress for usage and error information.
1751//
1752// Returned Error Types:
1753//   * ResourceNotFoundException
1754//   The specified resource doesn't exist.
1755//
1756//   * InvalidParameterException
1757//   One or more parameters in this request are not valid.
1758//
1759//   * InvalidRequestException
1760//   The request is invalid.
1761//
1762//   * ResourceExistsException
1763//   The resource that you tried to create already exists.
1764//
1765//   * InternalServiceErrorException
1766//   We encountered an unknown error. Try again in a few minutes.
1767//
1768//   * ThrottlingException
1769//   The request was throttled. Try again in a few minutes.
1770//
1771// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DisassociateResolverEndpointIpAddress
1772func (c *Route53Resolver) DisassociateResolverEndpointIpAddress(input *DisassociateResolverEndpointIpAddressInput) (*DisassociateResolverEndpointIpAddressOutput, error) {
1773	req, out := c.DisassociateResolverEndpointIpAddressRequest(input)
1774	return out, req.Send()
1775}
1776
1777// DisassociateResolverEndpointIpAddressWithContext is the same as DisassociateResolverEndpointIpAddress with the addition of
1778// the ability to pass a context and additional request options.
1779//
1780// See DisassociateResolverEndpointIpAddress for details on how to use this API operation.
1781//
1782// The context must be non-nil and will be used for request cancellation. If
1783// the context is nil a panic will occur. In the future the SDK may create
1784// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1785// for more information on using Contexts.
1786func (c *Route53Resolver) DisassociateResolverEndpointIpAddressWithContext(ctx aws.Context, input *DisassociateResolverEndpointIpAddressInput, opts ...request.Option) (*DisassociateResolverEndpointIpAddressOutput, error) {
1787	req, out := c.DisassociateResolverEndpointIpAddressRequest(input)
1788	req.SetContext(ctx)
1789	req.ApplyOptions(opts...)
1790	return out, req.Send()
1791}
1792
1793const opDisassociateResolverQueryLogConfig = "DisassociateResolverQueryLogConfig"
1794
1795// DisassociateResolverQueryLogConfigRequest generates a "aws/request.Request" representing the
1796// client's request for the DisassociateResolverQueryLogConfig operation. The "output" return
1797// value will be populated with the request's response once the request completes
1798// successfully.
1799//
1800// Use "Send" method on the returned Request to send the API call to the service.
1801// the "output" return value is not valid until after Send returns without error.
1802//
1803// See DisassociateResolverQueryLogConfig for more information on using the DisassociateResolverQueryLogConfig
1804// API call, and error handling.
1805//
1806// This method is useful when you want to inject custom logic or configuration
1807// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1808//
1809//
1810//    // Example sending a request using the DisassociateResolverQueryLogConfigRequest method.
1811//    req, resp := client.DisassociateResolverQueryLogConfigRequest(params)
1812//
1813//    err := req.Send()
1814//    if err == nil { // resp is now filled
1815//        fmt.Println(resp)
1816//    }
1817//
1818// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DisassociateResolverQueryLogConfig
1819func (c *Route53Resolver) DisassociateResolverQueryLogConfigRequest(input *DisassociateResolverQueryLogConfigInput) (req *request.Request, output *DisassociateResolverQueryLogConfigOutput) {
1820	op := &request.Operation{
1821		Name:       opDisassociateResolverQueryLogConfig,
1822		HTTPMethod: "POST",
1823		HTTPPath:   "/",
1824	}
1825
1826	if input == nil {
1827		input = &DisassociateResolverQueryLogConfigInput{}
1828	}
1829
1830	output = &DisassociateResolverQueryLogConfigOutput{}
1831	req = c.newRequest(op, input, output)
1832	return
1833}
1834
1835// DisassociateResolverQueryLogConfig API operation for Amazon Route 53 Resolver.
1836//
1837// Disassociates a VPC from a query logging configuration.
1838//
1839// Before you can delete a query logging configuration, you must first disassociate
1840// all VPCs from the configuration. If you used Resource Access Manager (RAM)
1841// to share a query logging configuration with other accounts, VPCs can be disassociated
1842// from the configuration in the following ways:
1843//
1844//    * The accounts that you shared the configuration with can disassociate
1845//    VPCs from the configuration.
1846//
1847//    * You can stop sharing the configuration.
1848//
1849// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1850// with awserr.Error's Code and Message methods to get detailed information about
1851// the error.
1852//
1853// See the AWS API reference guide for Amazon Route 53 Resolver's
1854// API operation DisassociateResolverQueryLogConfig for usage and error information.
1855//
1856// Returned Error Types:
1857//   * ResourceNotFoundException
1858//   The specified resource doesn't exist.
1859//
1860//   * InvalidParameterException
1861//   One or more parameters in this request are not valid.
1862//
1863//   * InvalidRequestException
1864//   The request is invalid.
1865//
1866//   * InternalServiceErrorException
1867//   We encountered an unknown error. Try again in a few minutes.
1868//
1869//   * ThrottlingException
1870//   The request was throttled. Try again in a few minutes.
1871//
1872//   * AccessDeniedException
1873//   The current account doesn't have the IAM permissions required to perform
1874//   the specified Resolver operation.
1875//
1876// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DisassociateResolverQueryLogConfig
1877func (c *Route53Resolver) DisassociateResolverQueryLogConfig(input *DisassociateResolverQueryLogConfigInput) (*DisassociateResolverQueryLogConfigOutput, error) {
1878	req, out := c.DisassociateResolverQueryLogConfigRequest(input)
1879	return out, req.Send()
1880}
1881
1882// DisassociateResolverQueryLogConfigWithContext is the same as DisassociateResolverQueryLogConfig with the addition of
1883// the ability to pass a context and additional request options.
1884//
1885// See DisassociateResolverQueryLogConfig for details on how to use this API operation.
1886//
1887// The context must be non-nil and will be used for request cancellation. If
1888// the context is nil a panic will occur. In the future the SDK may create
1889// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1890// for more information on using Contexts.
1891func (c *Route53Resolver) DisassociateResolverQueryLogConfigWithContext(ctx aws.Context, input *DisassociateResolverQueryLogConfigInput, opts ...request.Option) (*DisassociateResolverQueryLogConfigOutput, error) {
1892	req, out := c.DisassociateResolverQueryLogConfigRequest(input)
1893	req.SetContext(ctx)
1894	req.ApplyOptions(opts...)
1895	return out, req.Send()
1896}
1897
1898const opDisassociateResolverRule = "DisassociateResolverRule"
1899
1900// DisassociateResolverRuleRequest generates a "aws/request.Request" representing the
1901// client's request for the DisassociateResolverRule operation. The "output" return
1902// value will be populated with the request's response once the request completes
1903// successfully.
1904//
1905// Use "Send" method on the returned Request to send the API call to the service.
1906// the "output" return value is not valid until after Send returns without error.
1907//
1908// See DisassociateResolverRule for more information on using the DisassociateResolverRule
1909// API call, and error handling.
1910//
1911// This method is useful when you want to inject custom logic or configuration
1912// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1913//
1914//
1915//    // Example sending a request using the DisassociateResolverRuleRequest method.
1916//    req, resp := client.DisassociateResolverRuleRequest(params)
1917//
1918//    err := req.Send()
1919//    if err == nil { // resp is now filled
1920//        fmt.Println(resp)
1921//    }
1922//
1923// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DisassociateResolverRule
1924func (c *Route53Resolver) DisassociateResolverRuleRequest(input *DisassociateResolverRuleInput) (req *request.Request, output *DisassociateResolverRuleOutput) {
1925	op := &request.Operation{
1926		Name:       opDisassociateResolverRule,
1927		HTTPMethod: "POST",
1928		HTTPPath:   "/",
1929	}
1930
1931	if input == nil {
1932		input = &DisassociateResolverRuleInput{}
1933	}
1934
1935	output = &DisassociateResolverRuleOutput{}
1936	req = c.newRequest(op, input, output)
1937	return
1938}
1939
1940// DisassociateResolverRule API operation for Amazon Route 53 Resolver.
1941//
1942// Removes the association between a specified Resolver rule and a specified
1943// VPC.
1944//
1945// If you disassociate a Resolver rule from a VPC, Resolver stops forwarding
1946// DNS queries for the domain name that you specified in the Resolver rule.
1947//
1948// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1949// with awserr.Error's Code and Message methods to get detailed information about
1950// the error.
1951//
1952// See the AWS API reference guide for Amazon Route 53 Resolver's
1953// API operation DisassociateResolverRule for usage and error information.
1954//
1955// Returned Error Types:
1956//   * ResourceNotFoundException
1957//   The specified resource doesn't exist.
1958//
1959//   * InvalidParameterException
1960//   One or more parameters in this request are not valid.
1961//
1962//   * InternalServiceErrorException
1963//   We encountered an unknown error. Try again in a few minutes.
1964//
1965//   * ThrottlingException
1966//   The request was throttled. Try again in a few minutes.
1967//
1968// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DisassociateResolverRule
1969func (c *Route53Resolver) DisassociateResolverRule(input *DisassociateResolverRuleInput) (*DisassociateResolverRuleOutput, error) {
1970	req, out := c.DisassociateResolverRuleRequest(input)
1971	return out, req.Send()
1972}
1973
1974// DisassociateResolverRuleWithContext is the same as DisassociateResolverRule with the addition of
1975// the ability to pass a context and additional request options.
1976//
1977// See DisassociateResolverRule for details on how to use this API operation.
1978//
1979// The context must be non-nil and will be used for request cancellation. If
1980// the context is nil a panic will occur. In the future the SDK may create
1981// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1982// for more information on using Contexts.
1983func (c *Route53Resolver) DisassociateResolverRuleWithContext(ctx aws.Context, input *DisassociateResolverRuleInput, opts ...request.Option) (*DisassociateResolverRuleOutput, error) {
1984	req, out := c.DisassociateResolverRuleRequest(input)
1985	req.SetContext(ctx)
1986	req.ApplyOptions(opts...)
1987	return out, req.Send()
1988}
1989
1990const opGetFirewallConfig = "GetFirewallConfig"
1991
1992// GetFirewallConfigRequest generates a "aws/request.Request" representing the
1993// client's request for the GetFirewallConfig operation. The "output" return
1994// value will be populated with the request's response once the request completes
1995// successfully.
1996//
1997// Use "Send" method on the returned Request to send the API call to the service.
1998// the "output" return value is not valid until after Send returns without error.
1999//
2000// See GetFirewallConfig for more information on using the GetFirewallConfig
2001// API call, and error handling.
2002//
2003// This method is useful when you want to inject custom logic or configuration
2004// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2005//
2006//
2007//    // Example sending a request using the GetFirewallConfigRequest method.
2008//    req, resp := client.GetFirewallConfigRequest(params)
2009//
2010//    err := req.Send()
2011//    if err == nil { // resp is now filled
2012//        fmt.Println(resp)
2013//    }
2014//
2015// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetFirewallConfig
2016func (c *Route53Resolver) GetFirewallConfigRequest(input *GetFirewallConfigInput) (req *request.Request, output *GetFirewallConfigOutput) {
2017	op := &request.Operation{
2018		Name:       opGetFirewallConfig,
2019		HTTPMethod: "POST",
2020		HTTPPath:   "/",
2021	}
2022
2023	if input == nil {
2024		input = &GetFirewallConfigInput{}
2025	}
2026
2027	output = &GetFirewallConfigOutput{}
2028	req = c.newRequest(op, input, output)
2029	return
2030}
2031
2032// GetFirewallConfig API operation for Amazon Route 53 Resolver.
2033//
2034// Retrieves the configuration of the firewall behavior provided by DNS Firewall
2035// for a single VPC from Amazon Virtual Private Cloud (Amazon VPC).
2036//
2037// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2038// with awserr.Error's Code and Message methods to get detailed information about
2039// the error.
2040//
2041// See the AWS API reference guide for Amazon Route 53 Resolver's
2042// API operation GetFirewallConfig for usage and error information.
2043//
2044// Returned Error Types:
2045//   * ResourceNotFoundException
2046//   The specified resource doesn't exist.
2047//
2048//   * AccessDeniedException
2049//   The current account doesn't have the IAM permissions required to perform
2050//   the specified Resolver operation.
2051//
2052//   * InternalServiceErrorException
2053//   We encountered an unknown error. Try again in a few minutes.
2054//
2055//   * ThrottlingException
2056//   The request was throttled. Try again in a few minutes.
2057//
2058//   * ValidationException
2059//
2060// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetFirewallConfig
2061func (c *Route53Resolver) GetFirewallConfig(input *GetFirewallConfigInput) (*GetFirewallConfigOutput, error) {
2062	req, out := c.GetFirewallConfigRequest(input)
2063	return out, req.Send()
2064}
2065
2066// GetFirewallConfigWithContext is the same as GetFirewallConfig with the addition of
2067// the ability to pass a context and additional request options.
2068//
2069// See GetFirewallConfig for details on how to use this API operation.
2070//
2071// The context must be non-nil and will be used for request cancellation. If
2072// the context is nil a panic will occur. In the future the SDK may create
2073// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2074// for more information on using Contexts.
2075func (c *Route53Resolver) GetFirewallConfigWithContext(ctx aws.Context, input *GetFirewallConfigInput, opts ...request.Option) (*GetFirewallConfigOutput, error) {
2076	req, out := c.GetFirewallConfigRequest(input)
2077	req.SetContext(ctx)
2078	req.ApplyOptions(opts...)
2079	return out, req.Send()
2080}
2081
2082const opGetFirewallDomainList = "GetFirewallDomainList"
2083
2084// GetFirewallDomainListRequest generates a "aws/request.Request" representing the
2085// client's request for the GetFirewallDomainList operation. The "output" return
2086// value will be populated with the request's response once the request completes
2087// successfully.
2088//
2089// Use "Send" method on the returned Request to send the API call to the service.
2090// the "output" return value is not valid until after Send returns without error.
2091//
2092// See GetFirewallDomainList for more information on using the GetFirewallDomainList
2093// API call, and error handling.
2094//
2095// This method is useful when you want to inject custom logic or configuration
2096// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2097//
2098//
2099//    // Example sending a request using the GetFirewallDomainListRequest method.
2100//    req, resp := client.GetFirewallDomainListRequest(params)
2101//
2102//    err := req.Send()
2103//    if err == nil { // resp is now filled
2104//        fmt.Println(resp)
2105//    }
2106//
2107// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetFirewallDomainList
2108func (c *Route53Resolver) GetFirewallDomainListRequest(input *GetFirewallDomainListInput) (req *request.Request, output *GetFirewallDomainListOutput) {
2109	op := &request.Operation{
2110		Name:       opGetFirewallDomainList,
2111		HTTPMethod: "POST",
2112		HTTPPath:   "/",
2113	}
2114
2115	if input == nil {
2116		input = &GetFirewallDomainListInput{}
2117	}
2118
2119	output = &GetFirewallDomainListOutput{}
2120	req = c.newRequest(op, input, output)
2121	return
2122}
2123
2124// GetFirewallDomainList API operation for Amazon Route 53 Resolver.
2125//
2126// Retrieves the specified firewall domain list.
2127//
2128// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2129// with awserr.Error's Code and Message methods to get detailed information about
2130// the error.
2131//
2132// See the AWS API reference guide for Amazon Route 53 Resolver's
2133// API operation GetFirewallDomainList for usage and error information.
2134//
2135// Returned Error Types:
2136//   * ResourceNotFoundException
2137//   The specified resource doesn't exist.
2138//
2139//   * AccessDeniedException
2140//   The current account doesn't have the IAM permissions required to perform
2141//   the specified Resolver operation.
2142//
2143//   * InternalServiceErrorException
2144//   We encountered an unknown error. Try again in a few minutes.
2145//
2146//   * ThrottlingException
2147//   The request was throttled. Try again in a few minutes.
2148//
2149// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetFirewallDomainList
2150func (c *Route53Resolver) GetFirewallDomainList(input *GetFirewallDomainListInput) (*GetFirewallDomainListOutput, error) {
2151	req, out := c.GetFirewallDomainListRequest(input)
2152	return out, req.Send()
2153}
2154
2155// GetFirewallDomainListWithContext is the same as GetFirewallDomainList with the addition of
2156// the ability to pass a context and additional request options.
2157//
2158// See GetFirewallDomainList for details on how to use this API operation.
2159//
2160// The context must be non-nil and will be used for request cancellation. If
2161// the context is nil a panic will occur. In the future the SDK may create
2162// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2163// for more information on using Contexts.
2164func (c *Route53Resolver) GetFirewallDomainListWithContext(ctx aws.Context, input *GetFirewallDomainListInput, opts ...request.Option) (*GetFirewallDomainListOutput, error) {
2165	req, out := c.GetFirewallDomainListRequest(input)
2166	req.SetContext(ctx)
2167	req.ApplyOptions(opts...)
2168	return out, req.Send()
2169}
2170
2171const opGetFirewallRuleGroup = "GetFirewallRuleGroup"
2172
2173// GetFirewallRuleGroupRequest generates a "aws/request.Request" representing the
2174// client's request for the GetFirewallRuleGroup operation. The "output" return
2175// value will be populated with the request's response once the request completes
2176// successfully.
2177//
2178// Use "Send" method on the returned Request to send the API call to the service.
2179// the "output" return value is not valid until after Send returns without error.
2180//
2181// See GetFirewallRuleGroup for more information on using the GetFirewallRuleGroup
2182// API call, and error handling.
2183//
2184// This method is useful when you want to inject custom logic or configuration
2185// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2186//
2187//
2188//    // Example sending a request using the GetFirewallRuleGroupRequest method.
2189//    req, resp := client.GetFirewallRuleGroupRequest(params)
2190//
2191//    err := req.Send()
2192//    if err == nil { // resp is now filled
2193//        fmt.Println(resp)
2194//    }
2195//
2196// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetFirewallRuleGroup
2197func (c *Route53Resolver) GetFirewallRuleGroupRequest(input *GetFirewallRuleGroupInput) (req *request.Request, output *GetFirewallRuleGroupOutput) {
2198	op := &request.Operation{
2199		Name:       opGetFirewallRuleGroup,
2200		HTTPMethod: "POST",
2201		HTTPPath:   "/",
2202	}
2203
2204	if input == nil {
2205		input = &GetFirewallRuleGroupInput{}
2206	}
2207
2208	output = &GetFirewallRuleGroupOutput{}
2209	req = c.newRequest(op, input, output)
2210	return
2211}
2212
2213// GetFirewallRuleGroup API operation for Amazon Route 53 Resolver.
2214//
2215// Retrieves the specified firewall rule group.
2216//
2217// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2218// with awserr.Error's Code and Message methods to get detailed information about
2219// the error.
2220//
2221// See the AWS API reference guide for Amazon Route 53 Resolver's
2222// API operation GetFirewallRuleGroup for usage and error information.
2223//
2224// Returned Error Types:
2225//   * ResourceNotFoundException
2226//   The specified resource doesn't exist.
2227//
2228//   * AccessDeniedException
2229//   The current account doesn't have the IAM permissions required to perform
2230//   the specified Resolver operation.
2231//
2232//   * InternalServiceErrorException
2233//   We encountered an unknown error. Try again in a few minutes.
2234//
2235//   * ThrottlingException
2236//   The request was throttled. Try again in a few minutes.
2237//
2238// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetFirewallRuleGroup
2239func (c *Route53Resolver) GetFirewallRuleGroup(input *GetFirewallRuleGroupInput) (*GetFirewallRuleGroupOutput, error) {
2240	req, out := c.GetFirewallRuleGroupRequest(input)
2241	return out, req.Send()
2242}
2243
2244// GetFirewallRuleGroupWithContext is the same as GetFirewallRuleGroup with the addition of
2245// the ability to pass a context and additional request options.
2246//
2247// See GetFirewallRuleGroup for details on how to use this API operation.
2248//
2249// The context must be non-nil and will be used for request cancellation. If
2250// the context is nil a panic will occur. In the future the SDK may create
2251// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2252// for more information on using Contexts.
2253func (c *Route53Resolver) GetFirewallRuleGroupWithContext(ctx aws.Context, input *GetFirewallRuleGroupInput, opts ...request.Option) (*GetFirewallRuleGroupOutput, error) {
2254	req, out := c.GetFirewallRuleGroupRequest(input)
2255	req.SetContext(ctx)
2256	req.ApplyOptions(opts...)
2257	return out, req.Send()
2258}
2259
2260const opGetFirewallRuleGroupAssociation = "GetFirewallRuleGroupAssociation"
2261
2262// GetFirewallRuleGroupAssociationRequest generates a "aws/request.Request" representing the
2263// client's request for the GetFirewallRuleGroupAssociation operation. The "output" return
2264// value will be populated with the request's response once the request completes
2265// successfully.
2266//
2267// Use "Send" method on the returned Request to send the API call to the service.
2268// the "output" return value is not valid until after Send returns without error.
2269//
2270// See GetFirewallRuleGroupAssociation for more information on using the GetFirewallRuleGroupAssociation
2271// API call, and error handling.
2272//
2273// This method is useful when you want to inject custom logic or configuration
2274// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2275//
2276//
2277//    // Example sending a request using the GetFirewallRuleGroupAssociationRequest method.
2278//    req, resp := client.GetFirewallRuleGroupAssociationRequest(params)
2279//
2280//    err := req.Send()
2281//    if err == nil { // resp is now filled
2282//        fmt.Println(resp)
2283//    }
2284//
2285// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetFirewallRuleGroupAssociation
2286func (c *Route53Resolver) GetFirewallRuleGroupAssociationRequest(input *GetFirewallRuleGroupAssociationInput) (req *request.Request, output *GetFirewallRuleGroupAssociationOutput) {
2287	op := &request.Operation{
2288		Name:       opGetFirewallRuleGroupAssociation,
2289		HTTPMethod: "POST",
2290		HTTPPath:   "/",
2291	}
2292
2293	if input == nil {
2294		input = &GetFirewallRuleGroupAssociationInput{}
2295	}
2296
2297	output = &GetFirewallRuleGroupAssociationOutput{}
2298	req = c.newRequest(op, input, output)
2299	return
2300}
2301
2302// GetFirewallRuleGroupAssociation API operation for Amazon Route 53 Resolver.
2303//
2304// Retrieves a firewall rule group association, which enables DNS filtering
2305// for a VPC with one rule group. A VPC can have more than one firewall rule
2306// group association, and a rule group can be associated with more than one
2307// VPC.
2308//
2309// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2310// with awserr.Error's Code and Message methods to get detailed information about
2311// the error.
2312//
2313// See the AWS API reference guide for Amazon Route 53 Resolver's
2314// API operation GetFirewallRuleGroupAssociation for usage and error information.
2315//
2316// Returned Error Types:
2317//   * ResourceNotFoundException
2318//   The specified resource doesn't exist.
2319//
2320//   * AccessDeniedException
2321//   The current account doesn't have the IAM permissions required to perform
2322//   the specified Resolver operation.
2323//
2324//   * InternalServiceErrorException
2325//   We encountered an unknown error. Try again in a few minutes.
2326//
2327//   * ThrottlingException
2328//   The request was throttled. Try again in a few minutes.
2329//
2330// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetFirewallRuleGroupAssociation
2331func (c *Route53Resolver) GetFirewallRuleGroupAssociation(input *GetFirewallRuleGroupAssociationInput) (*GetFirewallRuleGroupAssociationOutput, error) {
2332	req, out := c.GetFirewallRuleGroupAssociationRequest(input)
2333	return out, req.Send()
2334}
2335
2336// GetFirewallRuleGroupAssociationWithContext is the same as GetFirewallRuleGroupAssociation with the addition of
2337// the ability to pass a context and additional request options.
2338//
2339// See GetFirewallRuleGroupAssociation for details on how to use this API operation.
2340//
2341// The context must be non-nil and will be used for request cancellation. If
2342// the context is nil a panic will occur. In the future the SDK may create
2343// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2344// for more information on using Contexts.
2345func (c *Route53Resolver) GetFirewallRuleGroupAssociationWithContext(ctx aws.Context, input *GetFirewallRuleGroupAssociationInput, opts ...request.Option) (*GetFirewallRuleGroupAssociationOutput, error) {
2346	req, out := c.GetFirewallRuleGroupAssociationRequest(input)
2347	req.SetContext(ctx)
2348	req.ApplyOptions(opts...)
2349	return out, req.Send()
2350}
2351
2352const opGetFirewallRuleGroupPolicy = "GetFirewallRuleGroupPolicy"
2353
2354// GetFirewallRuleGroupPolicyRequest generates a "aws/request.Request" representing the
2355// client's request for the GetFirewallRuleGroupPolicy operation. The "output" return
2356// value will be populated with the request's response once the request completes
2357// successfully.
2358//
2359// Use "Send" method on the returned Request to send the API call to the service.
2360// the "output" return value is not valid until after Send returns without error.
2361//
2362// See GetFirewallRuleGroupPolicy for more information on using the GetFirewallRuleGroupPolicy
2363// API call, and error handling.
2364//
2365// This method is useful when you want to inject custom logic or configuration
2366// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2367//
2368//
2369//    // Example sending a request using the GetFirewallRuleGroupPolicyRequest method.
2370//    req, resp := client.GetFirewallRuleGroupPolicyRequest(params)
2371//
2372//    err := req.Send()
2373//    if err == nil { // resp is now filled
2374//        fmt.Println(resp)
2375//    }
2376//
2377// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetFirewallRuleGroupPolicy
2378func (c *Route53Resolver) GetFirewallRuleGroupPolicyRequest(input *GetFirewallRuleGroupPolicyInput) (req *request.Request, output *GetFirewallRuleGroupPolicyOutput) {
2379	op := &request.Operation{
2380		Name:       opGetFirewallRuleGroupPolicy,
2381		HTTPMethod: "POST",
2382		HTTPPath:   "/",
2383	}
2384
2385	if input == nil {
2386		input = &GetFirewallRuleGroupPolicyInput{}
2387	}
2388
2389	output = &GetFirewallRuleGroupPolicyOutput{}
2390	req = c.newRequest(op, input, output)
2391	return
2392}
2393
2394// GetFirewallRuleGroupPolicy API operation for Amazon Route 53 Resolver.
2395//
2396// Returns the Identity and Access Management (Amazon Web Services IAM) policy
2397// for sharing the specified rule group. You can use the policy to share the
2398// rule group using Resource Access Manager (RAM).
2399//
2400// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2401// with awserr.Error's Code and Message methods to get detailed information about
2402// the error.
2403//
2404// See the AWS API reference guide for Amazon Route 53 Resolver's
2405// API operation GetFirewallRuleGroupPolicy for usage and error information.
2406//
2407// Returned Error Types:
2408//   * ValidationException
2409//
2410//   * ResourceNotFoundException
2411//   The specified resource doesn't exist.
2412//
2413//   * AccessDeniedException
2414//   The current account doesn't have the IAM permissions required to perform
2415//   the specified Resolver operation.
2416//
2417//   * InternalServiceErrorException
2418//   We encountered an unknown error. Try again in a few minutes.
2419//
2420//   * ThrottlingException
2421//   The request was throttled. Try again in a few minutes.
2422//
2423// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetFirewallRuleGroupPolicy
2424func (c *Route53Resolver) GetFirewallRuleGroupPolicy(input *GetFirewallRuleGroupPolicyInput) (*GetFirewallRuleGroupPolicyOutput, error) {
2425	req, out := c.GetFirewallRuleGroupPolicyRequest(input)
2426	return out, req.Send()
2427}
2428
2429// GetFirewallRuleGroupPolicyWithContext is the same as GetFirewallRuleGroupPolicy with the addition of
2430// the ability to pass a context and additional request options.
2431//
2432// See GetFirewallRuleGroupPolicy for details on how to use this API operation.
2433//
2434// The context must be non-nil and will be used for request cancellation. If
2435// the context is nil a panic will occur. In the future the SDK may create
2436// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2437// for more information on using Contexts.
2438func (c *Route53Resolver) GetFirewallRuleGroupPolicyWithContext(ctx aws.Context, input *GetFirewallRuleGroupPolicyInput, opts ...request.Option) (*GetFirewallRuleGroupPolicyOutput, error) {
2439	req, out := c.GetFirewallRuleGroupPolicyRequest(input)
2440	req.SetContext(ctx)
2441	req.ApplyOptions(opts...)
2442	return out, req.Send()
2443}
2444
2445const opGetResolverDnssecConfig = "GetResolverDnssecConfig"
2446
2447// GetResolverDnssecConfigRequest generates a "aws/request.Request" representing the
2448// client's request for the GetResolverDnssecConfig operation. The "output" return
2449// value will be populated with the request's response once the request completes
2450// successfully.
2451//
2452// Use "Send" method on the returned Request to send the API call to the service.
2453// the "output" return value is not valid until after Send returns without error.
2454//
2455// See GetResolverDnssecConfig for more information on using the GetResolverDnssecConfig
2456// API call, and error handling.
2457//
2458// This method is useful when you want to inject custom logic or configuration
2459// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2460//
2461//
2462//    // Example sending a request using the GetResolverDnssecConfigRequest method.
2463//    req, resp := client.GetResolverDnssecConfigRequest(params)
2464//
2465//    err := req.Send()
2466//    if err == nil { // resp is now filled
2467//        fmt.Println(resp)
2468//    }
2469//
2470// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverDnssecConfig
2471func (c *Route53Resolver) GetResolverDnssecConfigRequest(input *GetResolverDnssecConfigInput) (req *request.Request, output *GetResolverDnssecConfigOutput) {
2472	op := &request.Operation{
2473		Name:       opGetResolverDnssecConfig,
2474		HTTPMethod: "POST",
2475		HTTPPath:   "/",
2476	}
2477
2478	if input == nil {
2479		input = &GetResolverDnssecConfigInput{}
2480	}
2481
2482	output = &GetResolverDnssecConfigOutput{}
2483	req = c.newRequest(op, input, output)
2484	return
2485}
2486
2487// GetResolverDnssecConfig API operation for Amazon Route 53 Resolver.
2488//
2489// Gets DNSSEC validation information for a specified resource.
2490//
2491// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2492// with awserr.Error's Code and Message methods to get detailed information about
2493// the error.
2494//
2495// See the AWS API reference guide for Amazon Route 53 Resolver's
2496// API operation GetResolverDnssecConfig for usage and error information.
2497//
2498// Returned Error Types:
2499//   * InvalidParameterException
2500//   One or more parameters in this request are not valid.
2501//
2502//   * ResourceNotFoundException
2503//   The specified resource doesn't exist.
2504//
2505//   * InvalidRequestException
2506//   The request is invalid.
2507//
2508//   * InternalServiceErrorException
2509//   We encountered an unknown error. Try again in a few minutes.
2510//
2511//   * ThrottlingException
2512//   The request was throttled. Try again in a few minutes.
2513//
2514//   * AccessDeniedException
2515//   The current account doesn't have the IAM permissions required to perform
2516//   the specified Resolver operation.
2517//
2518// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverDnssecConfig
2519func (c *Route53Resolver) GetResolverDnssecConfig(input *GetResolverDnssecConfigInput) (*GetResolverDnssecConfigOutput, error) {
2520	req, out := c.GetResolverDnssecConfigRequest(input)
2521	return out, req.Send()
2522}
2523
2524// GetResolverDnssecConfigWithContext is the same as GetResolverDnssecConfig with the addition of
2525// the ability to pass a context and additional request options.
2526//
2527// See GetResolverDnssecConfig for details on how to use this API operation.
2528//
2529// The context must be non-nil and will be used for request cancellation. If
2530// the context is nil a panic will occur. In the future the SDK may create
2531// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2532// for more information on using Contexts.
2533func (c *Route53Resolver) GetResolverDnssecConfigWithContext(ctx aws.Context, input *GetResolverDnssecConfigInput, opts ...request.Option) (*GetResolverDnssecConfigOutput, error) {
2534	req, out := c.GetResolverDnssecConfigRequest(input)
2535	req.SetContext(ctx)
2536	req.ApplyOptions(opts...)
2537	return out, req.Send()
2538}
2539
2540const opGetResolverEndpoint = "GetResolverEndpoint"
2541
2542// GetResolverEndpointRequest generates a "aws/request.Request" representing the
2543// client's request for the GetResolverEndpoint operation. The "output" return
2544// value will be populated with the request's response once the request completes
2545// successfully.
2546//
2547// Use "Send" method on the returned Request to send the API call to the service.
2548// the "output" return value is not valid until after Send returns without error.
2549//
2550// See GetResolverEndpoint for more information on using the GetResolverEndpoint
2551// API call, and error handling.
2552//
2553// This method is useful when you want to inject custom logic or configuration
2554// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2555//
2556//
2557//    // Example sending a request using the GetResolverEndpointRequest method.
2558//    req, resp := client.GetResolverEndpointRequest(params)
2559//
2560//    err := req.Send()
2561//    if err == nil { // resp is now filled
2562//        fmt.Println(resp)
2563//    }
2564//
2565// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverEndpoint
2566func (c *Route53Resolver) GetResolverEndpointRequest(input *GetResolverEndpointInput) (req *request.Request, output *GetResolverEndpointOutput) {
2567	op := &request.Operation{
2568		Name:       opGetResolverEndpoint,
2569		HTTPMethod: "POST",
2570		HTTPPath:   "/",
2571	}
2572
2573	if input == nil {
2574		input = &GetResolverEndpointInput{}
2575	}
2576
2577	output = &GetResolverEndpointOutput{}
2578	req = c.newRequest(op, input, output)
2579	return
2580}
2581
2582// GetResolverEndpoint API operation for Amazon Route 53 Resolver.
2583//
2584// Gets information about a specified Resolver endpoint, such as whether it's
2585// an inbound or an outbound Resolver endpoint, and the current status of the
2586// endpoint.
2587//
2588// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2589// with awserr.Error's Code and Message methods to get detailed information about
2590// the error.
2591//
2592// See the AWS API reference guide for Amazon Route 53 Resolver's
2593// API operation GetResolverEndpoint for usage and error information.
2594//
2595// Returned Error Types:
2596//   * ResourceNotFoundException
2597//   The specified resource doesn't exist.
2598//
2599//   * InvalidParameterException
2600//   One or more parameters in this request are not valid.
2601//
2602//   * InternalServiceErrorException
2603//   We encountered an unknown error. Try again in a few minutes.
2604//
2605//   * ThrottlingException
2606//   The request was throttled. Try again in a few minutes.
2607//
2608// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverEndpoint
2609func (c *Route53Resolver) GetResolverEndpoint(input *GetResolverEndpointInput) (*GetResolverEndpointOutput, error) {
2610	req, out := c.GetResolverEndpointRequest(input)
2611	return out, req.Send()
2612}
2613
2614// GetResolverEndpointWithContext is the same as GetResolverEndpoint with the addition of
2615// the ability to pass a context and additional request options.
2616//
2617// See GetResolverEndpoint for details on how to use this API operation.
2618//
2619// The context must be non-nil and will be used for request cancellation. If
2620// the context is nil a panic will occur. In the future the SDK may create
2621// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2622// for more information on using Contexts.
2623func (c *Route53Resolver) GetResolverEndpointWithContext(ctx aws.Context, input *GetResolverEndpointInput, opts ...request.Option) (*GetResolverEndpointOutput, error) {
2624	req, out := c.GetResolverEndpointRequest(input)
2625	req.SetContext(ctx)
2626	req.ApplyOptions(opts...)
2627	return out, req.Send()
2628}
2629
2630const opGetResolverQueryLogConfig = "GetResolverQueryLogConfig"
2631
2632// GetResolverQueryLogConfigRequest generates a "aws/request.Request" representing the
2633// client's request for the GetResolverQueryLogConfig operation. The "output" return
2634// value will be populated with the request's response once the request completes
2635// successfully.
2636//
2637// Use "Send" method on the returned Request to send the API call to the service.
2638// the "output" return value is not valid until after Send returns without error.
2639//
2640// See GetResolverQueryLogConfig for more information on using the GetResolverQueryLogConfig
2641// API call, and error handling.
2642//
2643// This method is useful when you want to inject custom logic or configuration
2644// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2645//
2646//
2647//    // Example sending a request using the GetResolverQueryLogConfigRequest method.
2648//    req, resp := client.GetResolverQueryLogConfigRequest(params)
2649//
2650//    err := req.Send()
2651//    if err == nil { // resp is now filled
2652//        fmt.Println(resp)
2653//    }
2654//
2655// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverQueryLogConfig
2656func (c *Route53Resolver) GetResolverQueryLogConfigRequest(input *GetResolverQueryLogConfigInput) (req *request.Request, output *GetResolverQueryLogConfigOutput) {
2657	op := &request.Operation{
2658		Name:       opGetResolverQueryLogConfig,
2659		HTTPMethod: "POST",
2660		HTTPPath:   "/",
2661	}
2662
2663	if input == nil {
2664		input = &GetResolverQueryLogConfigInput{}
2665	}
2666
2667	output = &GetResolverQueryLogConfigOutput{}
2668	req = c.newRequest(op, input, output)
2669	return
2670}
2671
2672// GetResolverQueryLogConfig API operation for Amazon Route 53 Resolver.
2673//
2674// Gets information about a specified Resolver query logging configuration,
2675// such as the number of VPCs that the configuration is logging queries for
2676// and the location that logs are sent to.
2677//
2678// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2679// with awserr.Error's Code and Message methods to get detailed information about
2680// the error.
2681//
2682// See the AWS API reference guide for Amazon Route 53 Resolver's
2683// API operation GetResolverQueryLogConfig for usage and error information.
2684//
2685// Returned Error Types:
2686//   * ResourceNotFoundException
2687//   The specified resource doesn't exist.
2688//
2689//   * InvalidRequestException
2690//   The request is invalid.
2691//
2692//   * InvalidParameterException
2693//   One or more parameters in this request are not valid.
2694//
2695//   * InternalServiceErrorException
2696//   We encountered an unknown error. Try again in a few minutes.
2697//
2698//   * ThrottlingException
2699//   The request was throttled. Try again in a few minutes.
2700//
2701//   * AccessDeniedException
2702//   The current account doesn't have the IAM permissions required to perform
2703//   the specified Resolver operation.
2704//
2705// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverQueryLogConfig
2706func (c *Route53Resolver) GetResolverQueryLogConfig(input *GetResolverQueryLogConfigInput) (*GetResolverQueryLogConfigOutput, error) {
2707	req, out := c.GetResolverQueryLogConfigRequest(input)
2708	return out, req.Send()
2709}
2710
2711// GetResolverQueryLogConfigWithContext is the same as GetResolverQueryLogConfig with the addition of
2712// the ability to pass a context and additional request options.
2713//
2714// See GetResolverQueryLogConfig for details on how to use this API operation.
2715//
2716// The context must be non-nil and will be used for request cancellation. If
2717// the context is nil a panic will occur. In the future the SDK may create
2718// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2719// for more information on using Contexts.
2720func (c *Route53Resolver) GetResolverQueryLogConfigWithContext(ctx aws.Context, input *GetResolverQueryLogConfigInput, opts ...request.Option) (*GetResolverQueryLogConfigOutput, error) {
2721	req, out := c.GetResolverQueryLogConfigRequest(input)
2722	req.SetContext(ctx)
2723	req.ApplyOptions(opts...)
2724	return out, req.Send()
2725}
2726
2727const opGetResolverQueryLogConfigAssociation = "GetResolverQueryLogConfigAssociation"
2728
2729// GetResolverQueryLogConfigAssociationRequest generates a "aws/request.Request" representing the
2730// client's request for the GetResolverQueryLogConfigAssociation operation. The "output" return
2731// value will be populated with the request's response once the request completes
2732// successfully.
2733//
2734// Use "Send" method on the returned Request to send the API call to the service.
2735// the "output" return value is not valid until after Send returns without error.
2736//
2737// See GetResolverQueryLogConfigAssociation for more information on using the GetResolverQueryLogConfigAssociation
2738// API call, and error handling.
2739//
2740// This method is useful when you want to inject custom logic or configuration
2741// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2742//
2743//
2744//    // Example sending a request using the GetResolverQueryLogConfigAssociationRequest method.
2745//    req, resp := client.GetResolverQueryLogConfigAssociationRequest(params)
2746//
2747//    err := req.Send()
2748//    if err == nil { // resp is now filled
2749//        fmt.Println(resp)
2750//    }
2751//
2752// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverQueryLogConfigAssociation
2753func (c *Route53Resolver) GetResolverQueryLogConfigAssociationRequest(input *GetResolverQueryLogConfigAssociationInput) (req *request.Request, output *GetResolverQueryLogConfigAssociationOutput) {
2754	op := &request.Operation{
2755		Name:       opGetResolverQueryLogConfigAssociation,
2756		HTTPMethod: "POST",
2757		HTTPPath:   "/",
2758	}
2759
2760	if input == nil {
2761		input = &GetResolverQueryLogConfigAssociationInput{}
2762	}
2763
2764	output = &GetResolverQueryLogConfigAssociationOutput{}
2765	req = c.newRequest(op, input, output)
2766	return
2767}
2768
2769// GetResolverQueryLogConfigAssociation API operation for Amazon Route 53 Resolver.
2770//
2771// Gets information about a specified association between a Resolver query logging
2772// configuration and an Amazon VPC. When you associate a VPC with a query logging
2773// configuration, Resolver logs DNS queries that originate in that VPC.
2774//
2775// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2776// with awserr.Error's Code and Message methods to get detailed information about
2777// the error.
2778//
2779// See the AWS API reference guide for Amazon Route 53 Resolver's
2780// API operation GetResolverQueryLogConfigAssociation for usage and error information.
2781//
2782// Returned Error Types:
2783//   * ResourceNotFoundException
2784//   The specified resource doesn't exist.
2785//
2786//   * InvalidRequestException
2787//   The request is invalid.
2788//
2789//   * InvalidParameterException
2790//   One or more parameters in this request are not valid.
2791//
2792//   * InternalServiceErrorException
2793//   We encountered an unknown error. Try again in a few minutes.
2794//
2795//   * ThrottlingException
2796//   The request was throttled. Try again in a few minutes.
2797//
2798//   * AccessDeniedException
2799//   The current account doesn't have the IAM permissions required to perform
2800//   the specified Resolver operation.
2801//
2802// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverQueryLogConfigAssociation
2803func (c *Route53Resolver) GetResolverQueryLogConfigAssociation(input *GetResolverQueryLogConfigAssociationInput) (*GetResolverQueryLogConfigAssociationOutput, error) {
2804	req, out := c.GetResolverQueryLogConfigAssociationRequest(input)
2805	return out, req.Send()
2806}
2807
2808// GetResolverQueryLogConfigAssociationWithContext is the same as GetResolverQueryLogConfigAssociation with the addition of
2809// the ability to pass a context and additional request options.
2810//
2811// See GetResolverQueryLogConfigAssociation for details on how to use this API operation.
2812//
2813// The context must be non-nil and will be used for request cancellation. If
2814// the context is nil a panic will occur. In the future the SDK may create
2815// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2816// for more information on using Contexts.
2817func (c *Route53Resolver) GetResolverQueryLogConfigAssociationWithContext(ctx aws.Context, input *GetResolverQueryLogConfigAssociationInput, opts ...request.Option) (*GetResolverQueryLogConfigAssociationOutput, error) {
2818	req, out := c.GetResolverQueryLogConfigAssociationRequest(input)
2819	req.SetContext(ctx)
2820	req.ApplyOptions(opts...)
2821	return out, req.Send()
2822}
2823
2824const opGetResolverQueryLogConfigPolicy = "GetResolverQueryLogConfigPolicy"
2825
2826// GetResolverQueryLogConfigPolicyRequest generates a "aws/request.Request" representing the
2827// client's request for the GetResolverQueryLogConfigPolicy operation. The "output" return
2828// value will be populated with the request's response once the request completes
2829// successfully.
2830//
2831// Use "Send" method on the returned Request to send the API call to the service.
2832// the "output" return value is not valid until after Send returns without error.
2833//
2834// See GetResolverQueryLogConfigPolicy for more information on using the GetResolverQueryLogConfigPolicy
2835// API call, and error handling.
2836//
2837// This method is useful when you want to inject custom logic or configuration
2838// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2839//
2840//
2841//    // Example sending a request using the GetResolverQueryLogConfigPolicyRequest method.
2842//    req, resp := client.GetResolverQueryLogConfigPolicyRequest(params)
2843//
2844//    err := req.Send()
2845//    if err == nil { // resp is now filled
2846//        fmt.Println(resp)
2847//    }
2848//
2849// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverQueryLogConfigPolicy
2850func (c *Route53Resolver) GetResolverQueryLogConfigPolicyRequest(input *GetResolverQueryLogConfigPolicyInput) (req *request.Request, output *GetResolverQueryLogConfigPolicyOutput) {
2851	op := &request.Operation{
2852		Name:       opGetResolverQueryLogConfigPolicy,
2853		HTTPMethod: "POST",
2854		HTTPPath:   "/",
2855	}
2856
2857	if input == nil {
2858		input = &GetResolverQueryLogConfigPolicyInput{}
2859	}
2860
2861	output = &GetResolverQueryLogConfigPolicyOutput{}
2862	req = c.newRequest(op, input, output)
2863	return
2864}
2865
2866// GetResolverQueryLogConfigPolicy API operation for Amazon Route 53 Resolver.
2867//
2868// Gets information about a query logging policy. A query logging policy specifies
2869// the Resolver query logging operations and resources that you want to allow
2870// another Amazon Web Services account to be able to use.
2871//
2872// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2873// with awserr.Error's Code and Message methods to get detailed information about
2874// the error.
2875//
2876// See the AWS API reference guide for Amazon Route 53 Resolver's
2877// API operation GetResolverQueryLogConfigPolicy for usage and error information.
2878//
2879// Returned Error Types:
2880//   * InvalidParameterException
2881//   One or more parameters in this request are not valid.
2882//
2883//   * InvalidRequestException
2884//   The request is invalid.
2885//
2886//   * UnknownResourceException
2887//   The specified resource doesn't exist.
2888//
2889//   * InternalServiceErrorException
2890//   We encountered an unknown error. Try again in a few minutes.
2891//
2892//   * AccessDeniedException
2893//   The current account doesn't have the IAM permissions required to perform
2894//   the specified Resolver operation.
2895//
2896// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverQueryLogConfigPolicy
2897func (c *Route53Resolver) GetResolverQueryLogConfigPolicy(input *GetResolverQueryLogConfigPolicyInput) (*GetResolverQueryLogConfigPolicyOutput, error) {
2898	req, out := c.GetResolverQueryLogConfigPolicyRequest(input)
2899	return out, req.Send()
2900}
2901
2902// GetResolverQueryLogConfigPolicyWithContext is the same as GetResolverQueryLogConfigPolicy with the addition of
2903// the ability to pass a context and additional request options.
2904//
2905// See GetResolverQueryLogConfigPolicy for details on how to use this API operation.
2906//
2907// The context must be non-nil and will be used for request cancellation. If
2908// the context is nil a panic will occur. In the future the SDK may create
2909// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2910// for more information on using Contexts.
2911func (c *Route53Resolver) GetResolverQueryLogConfigPolicyWithContext(ctx aws.Context, input *GetResolverQueryLogConfigPolicyInput, opts ...request.Option) (*GetResolverQueryLogConfigPolicyOutput, error) {
2912	req, out := c.GetResolverQueryLogConfigPolicyRequest(input)
2913	req.SetContext(ctx)
2914	req.ApplyOptions(opts...)
2915	return out, req.Send()
2916}
2917
2918const opGetResolverRule = "GetResolverRule"
2919
2920// GetResolverRuleRequest generates a "aws/request.Request" representing the
2921// client's request for the GetResolverRule operation. The "output" return
2922// value will be populated with the request's response once the request completes
2923// successfully.
2924//
2925// Use "Send" method on the returned Request to send the API call to the service.
2926// the "output" return value is not valid until after Send returns without error.
2927//
2928// See GetResolverRule for more information on using the GetResolverRule
2929// API call, and error handling.
2930//
2931// This method is useful when you want to inject custom logic or configuration
2932// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2933//
2934//
2935//    // Example sending a request using the GetResolverRuleRequest method.
2936//    req, resp := client.GetResolverRuleRequest(params)
2937//
2938//    err := req.Send()
2939//    if err == nil { // resp is now filled
2940//        fmt.Println(resp)
2941//    }
2942//
2943// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverRule
2944func (c *Route53Resolver) GetResolverRuleRequest(input *GetResolverRuleInput) (req *request.Request, output *GetResolverRuleOutput) {
2945	op := &request.Operation{
2946		Name:       opGetResolverRule,
2947		HTTPMethod: "POST",
2948		HTTPPath:   "/",
2949	}
2950
2951	if input == nil {
2952		input = &GetResolverRuleInput{}
2953	}
2954
2955	output = &GetResolverRuleOutput{}
2956	req = c.newRequest(op, input, output)
2957	return
2958}
2959
2960// GetResolverRule API operation for Amazon Route 53 Resolver.
2961//
2962// Gets information about a specified Resolver rule, such as the domain name
2963// that the rule forwards DNS queries for and the ID of the outbound Resolver
2964// endpoint that the rule is associated with.
2965//
2966// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2967// with awserr.Error's Code and Message methods to get detailed information about
2968// the error.
2969//
2970// See the AWS API reference guide for Amazon Route 53 Resolver's
2971// API operation GetResolverRule for usage and error information.
2972//
2973// Returned Error Types:
2974//   * ResourceNotFoundException
2975//   The specified resource doesn't exist.
2976//
2977//   * InvalidParameterException
2978//   One or more parameters in this request are not valid.
2979//
2980//   * InternalServiceErrorException
2981//   We encountered an unknown error. Try again in a few minutes.
2982//
2983//   * ThrottlingException
2984//   The request was throttled. Try again in a few minutes.
2985//
2986// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverRule
2987func (c *Route53Resolver) GetResolverRule(input *GetResolverRuleInput) (*GetResolverRuleOutput, error) {
2988	req, out := c.GetResolverRuleRequest(input)
2989	return out, req.Send()
2990}
2991
2992// GetResolverRuleWithContext is the same as GetResolverRule with the addition of
2993// the ability to pass a context and additional request options.
2994//
2995// See GetResolverRule for details on how to use this API operation.
2996//
2997// The context must be non-nil and will be used for request cancellation. If
2998// the context is nil a panic will occur. In the future the SDK may create
2999// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3000// for more information on using Contexts.
3001func (c *Route53Resolver) GetResolverRuleWithContext(ctx aws.Context, input *GetResolverRuleInput, opts ...request.Option) (*GetResolverRuleOutput, error) {
3002	req, out := c.GetResolverRuleRequest(input)
3003	req.SetContext(ctx)
3004	req.ApplyOptions(opts...)
3005	return out, req.Send()
3006}
3007
3008const opGetResolverRuleAssociation = "GetResolverRuleAssociation"
3009
3010// GetResolverRuleAssociationRequest generates a "aws/request.Request" representing the
3011// client's request for the GetResolverRuleAssociation operation. The "output" return
3012// value will be populated with the request's response once the request completes
3013// successfully.
3014//
3015// Use "Send" method on the returned Request to send the API call to the service.
3016// the "output" return value is not valid until after Send returns without error.
3017//
3018// See GetResolverRuleAssociation for more information on using the GetResolverRuleAssociation
3019// API call, and error handling.
3020//
3021// This method is useful when you want to inject custom logic or configuration
3022// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3023//
3024//
3025//    // Example sending a request using the GetResolverRuleAssociationRequest method.
3026//    req, resp := client.GetResolverRuleAssociationRequest(params)
3027//
3028//    err := req.Send()
3029//    if err == nil { // resp is now filled
3030//        fmt.Println(resp)
3031//    }
3032//
3033// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverRuleAssociation
3034func (c *Route53Resolver) GetResolverRuleAssociationRequest(input *GetResolverRuleAssociationInput) (req *request.Request, output *GetResolverRuleAssociationOutput) {
3035	op := &request.Operation{
3036		Name:       opGetResolverRuleAssociation,
3037		HTTPMethod: "POST",
3038		HTTPPath:   "/",
3039	}
3040
3041	if input == nil {
3042		input = &GetResolverRuleAssociationInput{}
3043	}
3044
3045	output = &GetResolverRuleAssociationOutput{}
3046	req = c.newRequest(op, input, output)
3047	return
3048}
3049
3050// GetResolverRuleAssociation API operation for Amazon Route 53 Resolver.
3051//
3052// Gets information about an association between a specified Resolver rule and
3053// a VPC. You associate a Resolver rule and a VPC using AssociateResolverRule
3054// (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_AssociateResolverRule.html).
3055//
3056// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3057// with awserr.Error's Code and Message methods to get detailed information about
3058// the error.
3059//
3060// See the AWS API reference guide for Amazon Route 53 Resolver's
3061// API operation GetResolverRuleAssociation for usage and error information.
3062//
3063// Returned Error Types:
3064//   * ResourceNotFoundException
3065//   The specified resource doesn't exist.
3066//
3067//   * InvalidParameterException
3068//   One or more parameters in this request are not valid.
3069//
3070//   * InternalServiceErrorException
3071//   We encountered an unknown error. Try again in a few minutes.
3072//
3073//   * ThrottlingException
3074//   The request was throttled. Try again in a few minutes.
3075//
3076// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverRuleAssociation
3077func (c *Route53Resolver) GetResolverRuleAssociation(input *GetResolverRuleAssociationInput) (*GetResolverRuleAssociationOutput, error) {
3078	req, out := c.GetResolverRuleAssociationRequest(input)
3079	return out, req.Send()
3080}
3081
3082// GetResolverRuleAssociationWithContext is the same as GetResolverRuleAssociation with the addition of
3083// the ability to pass a context and additional request options.
3084//
3085// See GetResolverRuleAssociation for details on how to use this API operation.
3086//
3087// The context must be non-nil and will be used for request cancellation. If
3088// the context is nil a panic will occur. In the future the SDK may create
3089// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3090// for more information on using Contexts.
3091func (c *Route53Resolver) GetResolverRuleAssociationWithContext(ctx aws.Context, input *GetResolverRuleAssociationInput, opts ...request.Option) (*GetResolverRuleAssociationOutput, error) {
3092	req, out := c.GetResolverRuleAssociationRequest(input)
3093	req.SetContext(ctx)
3094	req.ApplyOptions(opts...)
3095	return out, req.Send()
3096}
3097
3098const opGetResolverRulePolicy = "GetResolverRulePolicy"
3099
3100// GetResolverRulePolicyRequest generates a "aws/request.Request" representing the
3101// client's request for the GetResolverRulePolicy operation. The "output" return
3102// value will be populated with the request's response once the request completes
3103// successfully.
3104//
3105// Use "Send" method on the returned Request to send the API call to the service.
3106// the "output" return value is not valid until after Send returns without error.
3107//
3108// See GetResolverRulePolicy for more information on using the GetResolverRulePolicy
3109// API call, and error handling.
3110//
3111// This method is useful when you want to inject custom logic or configuration
3112// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3113//
3114//
3115//    // Example sending a request using the GetResolverRulePolicyRequest method.
3116//    req, resp := client.GetResolverRulePolicyRequest(params)
3117//
3118//    err := req.Send()
3119//    if err == nil { // resp is now filled
3120//        fmt.Println(resp)
3121//    }
3122//
3123// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverRulePolicy
3124func (c *Route53Resolver) GetResolverRulePolicyRequest(input *GetResolverRulePolicyInput) (req *request.Request, output *GetResolverRulePolicyOutput) {
3125	op := &request.Operation{
3126		Name:       opGetResolverRulePolicy,
3127		HTTPMethod: "POST",
3128		HTTPPath:   "/",
3129	}
3130
3131	if input == nil {
3132		input = &GetResolverRulePolicyInput{}
3133	}
3134
3135	output = &GetResolverRulePolicyOutput{}
3136	req = c.newRequest(op, input, output)
3137	return
3138}
3139
3140// GetResolverRulePolicy API operation for Amazon Route 53 Resolver.
3141//
3142// Gets information about the Resolver rule policy for a specified rule. A Resolver
3143// rule policy includes the rule that you want to share with another account,
3144// the account that you want to share the rule with, and the Resolver operations
3145// that you want to allow the account to use.
3146//
3147// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3148// with awserr.Error's Code and Message methods to get detailed information about
3149// the error.
3150//
3151// See the AWS API reference guide for Amazon Route 53 Resolver's
3152// API operation GetResolverRulePolicy for usage and error information.
3153//
3154// Returned Error Types:
3155//   * InvalidParameterException
3156//   One or more parameters in this request are not valid.
3157//
3158//   * UnknownResourceException
3159//   The specified resource doesn't exist.
3160//
3161//   * InternalServiceErrorException
3162//   We encountered an unknown error. Try again in a few minutes.
3163//
3164// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverRulePolicy
3165func (c *Route53Resolver) GetResolverRulePolicy(input *GetResolverRulePolicyInput) (*GetResolverRulePolicyOutput, error) {
3166	req, out := c.GetResolverRulePolicyRequest(input)
3167	return out, req.Send()
3168}
3169
3170// GetResolverRulePolicyWithContext is the same as GetResolverRulePolicy with the addition of
3171// the ability to pass a context and additional request options.
3172//
3173// See GetResolverRulePolicy for details on how to use this API operation.
3174//
3175// The context must be non-nil and will be used for request cancellation. If
3176// the context is nil a panic will occur. In the future the SDK may create
3177// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3178// for more information on using Contexts.
3179func (c *Route53Resolver) GetResolverRulePolicyWithContext(ctx aws.Context, input *GetResolverRulePolicyInput, opts ...request.Option) (*GetResolverRulePolicyOutput, error) {
3180	req, out := c.GetResolverRulePolicyRequest(input)
3181	req.SetContext(ctx)
3182	req.ApplyOptions(opts...)
3183	return out, req.Send()
3184}
3185
3186const opImportFirewallDomains = "ImportFirewallDomains"
3187
3188// ImportFirewallDomainsRequest generates a "aws/request.Request" representing the
3189// client's request for the ImportFirewallDomains operation. The "output" return
3190// value will be populated with the request's response once the request completes
3191// successfully.
3192//
3193// Use "Send" method on the returned Request to send the API call to the service.
3194// the "output" return value is not valid until after Send returns without error.
3195//
3196// See ImportFirewallDomains for more information on using the ImportFirewallDomains
3197// API call, and error handling.
3198//
3199// This method is useful when you want to inject custom logic or configuration
3200// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3201//
3202//
3203//    // Example sending a request using the ImportFirewallDomainsRequest method.
3204//    req, resp := client.ImportFirewallDomainsRequest(params)
3205//
3206//    err := req.Send()
3207//    if err == nil { // resp is now filled
3208//        fmt.Println(resp)
3209//    }
3210//
3211// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ImportFirewallDomains
3212func (c *Route53Resolver) ImportFirewallDomainsRequest(input *ImportFirewallDomainsInput) (req *request.Request, output *ImportFirewallDomainsOutput) {
3213	op := &request.Operation{
3214		Name:       opImportFirewallDomains,
3215		HTTPMethod: "POST",
3216		HTTPPath:   "/",
3217	}
3218
3219	if input == nil {
3220		input = &ImportFirewallDomainsInput{}
3221	}
3222
3223	output = &ImportFirewallDomainsOutput{}
3224	req = c.newRequest(op, input, output)
3225	return
3226}
3227
3228// ImportFirewallDomains API operation for Amazon Route 53 Resolver.
3229//
3230// Imports domain names from a file into a domain list, for use in a DNS firewall
3231// rule group.
3232//
3233// Each domain specification in your domain list must satisfy the following
3234// requirements:
3235//
3236//    * It can optionally start with * (asterisk).
3237//
3238//    * With the exception of the optional starting asterisk, it must only contain
3239//    the following characters: A-Z, a-z, 0-9, - (hyphen).
3240//
3241//    * It must be from 1-255 characters in length.
3242//
3243// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3244// with awserr.Error's Code and Message methods to get detailed information about
3245// the error.
3246//
3247// See the AWS API reference guide for Amazon Route 53 Resolver's
3248// API operation ImportFirewallDomains for usage and error information.
3249//
3250// Returned Error Types:
3251//   * ValidationException
3252//
3253//   * AccessDeniedException
3254//   The current account doesn't have the IAM permissions required to perform
3255//   the specified Resolver operation.
3256//
3257//   * ResourceNotFoundException
3258//   The specified resource doesn't exist.
3259//
3260//   * LimitExceededException
3261//   The request caused one or more limits to be exceeded.
3262//
3263//   * ConflictException
3264//
3265//   * InternalServiceErrorException
3266//   We encountered an unknown error. Try again in a few minutes.
3267//
3268//   * ThrottlingException
3269//   The request was throttled. Try again in a few minutes.
3270//
3271// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ImportFirewallDomains
3272func (c *Route53Resolver) ImportFirewallDomains(input *ImportFirewallDomainsInput) (*ImportFirewallDomainsOutput, error) {
3273	req, out := c.ImportFirewallDomainsRequest(input)
3274	return out, req.Send()
3275}
3276
3277// ImportFirewallDomainsWithContext is the same as ImportFirewallDomains with the addition of
3278// the ability to pass a context and additional request options.
3279//
3280// See ImportFirewallDomains for details on how to use this API operation.
3281//
3282// The context must be non-nil and will be used for request cancellation. If
3283// the context is nil a panic will occur. In the future the SDK may create
3284// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3285// for more information on using Contexts.
3286func (c *Route53Resolver) ImportFirewallDomainsWithContext(ctx aws.Context, input *ImportFirewallDomainsInput, opts ...request.Option) (*ImportFirewallDomainsOutput, error) {
3287	req, out := c.ImportFirewallDomainsRequest(input)
3288	req.SetContext(ctx)
3289	req.ApplyOptions(opts...)
3290	return out, req.Send()
3291}
3292
3293const opListFirewallConfigs = "ListFirewallConfigs"
3294
3295// ListFirewallConfigsRequest generates a "aws/request.Request" representing the
3296// client's request for the ListFirewallConfigs operation. The "output" return
3297// value will be populated with the request's response once the request completes
3298// successfully.
3299//
3300// Use "Send" method on the returned Request to send the API call to the service.
3301// the "output" return value is not valid until after Send returns without error.
3302//
3303// See ListFirewallConfigs for more information on using the ListFirewallConfigs
3304// API call, and error handling.
3305//
3306// This method is useful when you want to inject custom logic or configuration
3307// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3308//
3309//
3310//    // Example sending a request using the ListFirewallConfigsRequest method.
3311//    req, resp := client.ListFirewallConfigsRequest(params)
3312//
3313//    err := req.Send()
3314//    if err == nil { // resp is now filled
3315//        fmt.Println(resp)
3316//    }
3317//
3318// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListFirewallConfigs
3319func (c *Route53Resolver) ListFirewallConfigsRequest(input *ListFirewallConfigsInput) (req *request.Request, output *ListFirewallConfigsOutput) {
3320	op := &request.Operation{
3321		Name:       opListFirewallConfigs,
3322		HTTPMethod: "POST",
3323		HTTPPath:   "/",
3324		Paginator: &request.Paginator{
3325			InputTokens:     []string{"NextToken"},
3326			OutputTokens:    []string{"NextToken"},
3327			LimitToken:      "MaxResults",
3328			TruncationToken: "",
3329		},
3330	}
3331
3332	if input == nil {
3333		input = &ListFirewallConfigsInput{}
3334	}
3335
3336	output = &ListFirewallConfigsOutput{}
3337	req = c.newRequest(op, input, output)
3338	return
3339}
3340
3341// ListFirewallConfigs API operation for Amazon Route 53 Resolver.
3342//
3343// Retrieves the firewall configurations that you have defined. DNS Firewall
3344// uses the configurations to manage firewall behavior for your VPCs.
3345//
3346// A single call might return only a partial list of the configurations. For
3347// information, see MaxResults.
3348//
3349// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3350// with awserr.Error's Code and Message methods to get detailed information about
3351// the error.
3352//
3353// See the AWS API reference guide for Amazon Route 53 Resolver's
3354// API operation ListFirewallConfigs for usage and error information.
3355//
3356// Returned Error Types:
3357//   * ValidationException
3358//
3359//   * AccessDeniedException
3360//   The current account doesn't have the IAM permissions required to perform
3361//   the specified Resolver operation.
3362//
3363//   * InternalServiceErrorException
3364//   We encountered an unknown error. Try again in a few minutes.
3365//
3366//   * ThrottlingException
3367//   The request was throttled. Try again in a few minutes.
3368//
3369// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListFirewallConfigs
3370func (c *Route53Resolver) ListFirewallConfigs(input *ListFirewallConfigsInput) (*ListFirewallConfigsOutput, error) {
3371	req, out := c.ListFirewallConfigsRequest(input)
3372	return out, req.Send()
3373}
3374
3375// ListFirewallConfigsWithContext is the same as ListFirewallConfigs with the addition of
3376// the ability to pass a context and additional request options.
3377//
3378// See ListFirewallConfigs for details on how to use this API operation.
3379//
3380// The context must be non-nil and will be used for request cancellation. If
3381// the context is nil a panic will occur. In the future the SDK may create
3382// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3383// for more information on using Contexts.
3384func (c *Route53Resolver) ListFirewallConfigsWithContext(ctx aws.Context, input *ListFirewallConfigsInput, opts ...request.Option) (*ListFirewallConfigsOutput, error) {
3385	req, out := c.ListFirewallConfigsRequest(input)
3386	req.SetContext(ctx)
3387	req.ApplyOptions(opts...)
3388	return out, req.Send()
3389}
3390
3391// ListFirewallConfigsPages iterates over the pages of a ListFirewallConfigs operation,
3392// calling the "fn" function with the response data for each page. To stop
3393// iterating, return false from the fn function.
3394//
3395// See ListFirewallConfigs method for more information on how to use this operation.
3396//
3397// Note: This operation can generate multiple requests to a service.
3398//
3399//    // Example iterating over at most 3 pages of a ListFirewallConfigs operation.
3400//    pageNum := 0
3401//    err := client.ListFirewallConfigsPages(params,
3402//        func(page *route53resolver.ListFirewallConfigsOutput, lastPage bool) bool {
3403//            pageNum++
3404//            fmt.Println(page)
3405//            return pageNum <= 3
3406//        })
3407//
3408func (c *Route53Resolver) ListFirewallConfigsPages(input *ListFirewallConfigsInput, fn func(*ListFirewallConfigsOutput, bool) bool) error {
3409	return c.ListFirewallConfigsPagesWithContext(aws.BackgroundContext(), input, fn)
3410}
3411
3412// ListFirewallConfigsPagesWithContext same as ListFirewallConfigsPages except
3413// it takes a Context and allows setting request options on the pages.
3414//
3415// The context must be non-nil and will be used for request cancellation. If
3416// the context is nil a panic will occur. In the future the SDK may create
3417// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3418// for more information on using Contexts.
3419func (c *Route53Resolver) ListFirewallConfigsPagesWithContext(ctx aws.Context, input *ListFirewallConfigsInput, fn func(*ListFirewallConfigsOutput, bool) bool, opts ...request.Option) error {
3420	p := request.Pagination{
3421		NewRequest: func() (*request.Request, error) {
3422			var inCpy *ListFirewallConfigsInput
3423			if input != nil {
3424				tmp := *input
3425				inCpy = &tmp
3426			}
3427			req, _ := c.ListFirewallConfigsRequest(inCpy)
3428			req.SetContext(ctx)
3429			req.ApplyOptions(opts...)
3430			return req, nil
3431		},
3432	}
3433
3434	for p.Next() {
3435		if !fn(p.Page().(*ListFirewallConfigsOutput), !p.HasNextPage()) {
3436			break
3437		}
3438	}
3439
3440	return p.Err()
3441}
3442
3443const opListFirewallDomainLists = "ListFirewallDomainLists"
3444
3445// ListFirewallDomainListsRequest generates a "aws/request.Request" representing the
3446// client's request for the ListFirewallDomainLists operation. The "output" return
3447// value will be populated with the request's response once the request completes
3448// successfully.
3449//
3450// Use "Send" method on the returned Request to send the API call to the service.
3451// the "output" return value is not valid until after Send returns without error.
3452//
3453// See ListFirewallDomainLists for more information on using the ListFirewallDomainLists
3454// API call, and error handling.
3455//
3456// This method is useful when you want to inject custom logic or configuration
3457// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3458//
3459//
3460//    // Example sending a request using the ListFirewallDomainListsRequest method.
3461//    req, resp := client.ListFirewallDomainListsRequest(params)
3462//
3463//    err := req.Send()
3464//    if err == nil { // resp is now filled
3465//        fmt.Println(resp)
3466//    }
3467//
3468// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListFirewallDomainLists
3469func (c *Route53Resolver) ListFirewallDomainListsRequest(input *ListFirewallDomainListsInput) (req *request.Request, output *ListFirewallDomainListsOutput) {
3470	op := &request.Operation{
3471		Name:       opListFirewallDomainLists,
3472		HTTPMethod: "POST",
3473		HTTPPath:   "/",
3474		Paginator: &request.Paginator{
3475			InputTokens:     []string{"NextToken"},
3476			OutputTokens:    []string{"NextToken"},
3477			LimitToken:      "MaxResults",
3478			TruncationToken: "",
3479		},
3480	}
3481
3482	if input == nil {
3483		input = &ListFirewallDomainListsInput{}
3484	}
3485
3486	output = &ListFirewallDomainListsOutput{}
3487	req = c.newRequest(op, input, output)
3488	return
3489}
3490
3491// ListFirewallDomainLists API operation for Amazon Route 53 Resolver.
3492//
3493// Retrieves the firewall domain lists that you have defined. For each firewall
3494// domain list, you can retrieve the domains that are defined for a list by
3495// calling ListFirewallDomains.
3496//
3497// A single call to this list operation might return only a partial list of
3498// the domain lists. For information, see MaxResults.
3499//
3500// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3501// with awserr.Error's Code and Message methods to get detailed information about
3502// the error.
3503//
3504// See the AWS API reference guide for Amazon Route 53 Resolver's
3505// API operation ListFirewallDomainLists for usage and error information.
3506//
3507// Returned Error Types:
3508//   * ValidationException
3509//
3510//   * AccessDeniedException
3511//   The current account doesn't have the IAM permissions required to perform
3512//   the specified Resolver operation.
3513//
3514//   * InternalServiceErrorException
3515//   We encountered an unknown error. Try again in a few minutes.
3516//
3517//   * ThrottlingException
3518//   The request was throttled. Try again in a few minutes.
3519//
3520// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListFirewallDomainLists
3521func (c *Route53Resolver) ListFirewallDomainLists(input *ListFirewallDomainListsInput) (*ListFirewallDomainListsOutput, error) {
3522	req, out := c.ListFirewallDomainListsRequest(input)
3523	return out, req.Send()
3524}
3525
3526// ListFirewallDomainListsWithContext is the same as ListFirewallDomainLists with the addition of
3527// the ability to pass a context and additional request options.
3528//
3529// See ListFirewallDomainLists for details on how to use this API operation.
3530//
3531// The context must be non-nil and will be used for request cancellation. If
3532// the context is nil a panic will occur. In the future the SDK may create
3533// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3534// for more information on using Contexts.
3535func (c *Route53Resolver) ListFirewallDomainListsWithContext(ctx aws.Context, input *ListFirewallDomainListsInput, opts ...request.Option) (*ListFirewallDomainListsOutput, error) {
3536	req, out := c.ListFirewallDomainListsRequest(input)
3537	req.SetContext(ctx)
3538	req.ApplyOptions(opts...)
3539	return out, req.Send()
3540}
3541
3542// ListFirewallDomainListsPages iterates over the pages of a ListFirewallDomainLists operation,
3543// calling the "fn" function with the response data for each page. To stop
3544// iterating, return false from the fn function.
3545//
3546// See ListFirewallDomainLists method for more information on how to use this operation.
3547//
3548// Note: This operation can generate multiple requests to a service.
3549//
3550//    // Example iterating over at most 3 pages of a ListFirewallDomainLists operation.
3551//    pageNum := 0
3552//    err := client.ListFirewallDomainListsPages(params,
3553//        func(page *route53resolver.ListFirewallDomainListsOutput, lastPage bool) bool {
3554//            pageNum++
3555//            fmt.Println(page)
3556//            return pageNum <= 3
3557//        })
3558//
3559func (c *Route53Resolver) ListFirewallDomainListsPages(input *ListFirewallDomainListsInput, fn func(*ListFirewallDomainListsOutput, bool) bool) error {
3560	return c.ListFirewallDomainListsPagesWithContext(aws.BackgroundContext(), input, fn)
3561}
3562
3563// ListFirewallDomainListsPagesWithContext same as ListFirewallDomainListsPages except
3564// it takes a Context and allows setting request options on the pages.
3565//
3566// The context must be non-nil and will be used for request cancellation. If
3567// the context is nil a panic will occur. In the future the SDK may create
3568// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3569// for more information on using Contexts.
3570func (c *Route53Resolver) ListFirewallDomainListsPagesWithContext(ctx aws.Context, input *ListFirewallDomainListsInput, fn func(*ListFirewallDomainListsOutput, bool) bool, opts ...request.Option) error {
3571	p := request.Pagination{
3572		NewRequest: func() (*request.Request, error) {
3573			var inCpy *ListFirewallDomainListsInput
3574			if input != nil {
3575				tmp := *input
3576				inCpy = &tmp
3577			}
3578			req, _ := c.ListFirewallDomainListsRequest(inCpy)
3579			req.SetContext(ctx)
3580			req.ApplyOptions(opts...)
3581			return req, nil
3582		},
3583	}
3584
3585	for p.Next() {
3586		if !fn(p.Page().(*ListFirewallDomainListsOutput), !p.HasNextPage()) {
3587			break
3588		}
3589	}
3590
3591	return p.Err()
3592}
3593
3594const opListFirewallDomains = "ListFirewallDomains"
3595
3596// ListFirewallDomainsRequest generates a "aws/request.Request" representing the
3597// client's request for the ListFirewallDomains operation. The "output" return
3598// value will be populated with the request's response once the request completes
3599// successfully.
3600//
3601// Use "Send" method on the returned Request to send the API call to the service.
3602// the "output" return value is not valid until after Send returns without error.
3603//
3604// See ListFirewallDomains for more information on using the ListFirewallDomains
3605// API call, and error handling.
3606//
3607// This method is useful when you want to inject custom logic or configuration
3608// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3609//
3610//
3611//    // Example sending a request using the ListFirewallDomainsRequest method.
3612//    req, resp := client.ListFirewallDomainsRequest(params)
3613//
3614//    err := req.Send()
3615//    if err == nil { // resp is now filled
3616//        fmt.Println(resp)
3617//    }
3618//
3619// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListFirewallDomains
3620func (c *Route53Resolver) ListFirewallDomainsRequest(input *ListFirewallDomainsInput) (req *request.Request, output *ListFirewallDomainsOutput) {
3621	op := &request.Operation{
3622		Name:       opListFirewallDomains,
3623		HTTPMethod: "POST",
3624		HTTPPath:   "/",
3625		Paginator: &request.Paginator{
3626			InputTokens:     []string{"NextToken"},
3627			OutputTokens:    []string{"NextToken"},
3628			LimitToken:      "MaxResults",
3629			TruncationToken: "",
3630		},
3631	}
3632
3633	if input == nil {
3634		input = &ListFirewallDomainsInput{}
3635	}
3636
3637	output = &ListFirewallDomainsOutput{}
3638	req = c.newRequest(op, input, output)
3639	return
3640}
3641
3642// ListFirewallDomains API operation for Amazon Route 53 Resolver.
3643//
3644// Retrieves the domains that you have defined for the specified firewall domain
3645// list.
3646//
3647// A single call might return only a partial list of the domains. For information,
3648// see MaxResults.
3649//
3650// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3651// with awserr.Error's Code and Message methods to get detailed information about
3652// the error.
3653//
3654// See the AWS API reference guide for Amazon Route 53 Resolver's
3655// API operation ListFirewallDomains for usage and error information.
3656//
3657// Returned Error Types:
3658//   * ResourceNotFoundException
3659//   The specified resource doesn't exist.
3660//
3661//   * ValidationException
3662//
3663//   * AccessDeniedException
3664//   The current account doesn't have the IAM permissions required to perform
3665//   the specified Resolver operation.
3666//
3667//   * InternalServiceErrorException
3668//   We encountered an unknown error. Try again in a few minutes.
3669//
3670//   * ThrottlingException
3671//   The request was throttled. Try again in a few minutes.
3672//
3673// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListFirewallDomains
3674func (c *Route53Resolver) ListFirewallDomains(input *ListFirewallDomainsInput) (*ListFirewallDomainsOutput, error) {
3675	req, out := c.ListFirewallDomainsRequest(input)
3676	return out, req.Send()
3677}
3678
3679// ListFirewallDomainsWithContext is the same as ListFirewallDomains with the addition of
3680// the ability to pass a context and additional request options.
3681//
3682// See ListFirewallDomains for details on how to use this API operation.
3683//
3684// The context must be non-nil and will be used for request cancellation. If
3685// the context is nil a panic will occur. In the future the SDK may create
3686// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3687// for more information on using Contexts.
3688func (c *Route53Resolver) ListFirewallDomainsWithContext(ctx aws.Context, input *ListFirewallDomainsInput, opts ...request.Option) (*ListFirewallDomainsOutput, error) {
3689	req, out := c.ListFirewallDomainsRequest(input)
3690	req.SetContext(ctx)
3691	req.ApplyOptions(opts...)
3692	return out, req.Send()
3693}
3694
3695// ListFirewallDomainsPages iterates over the pages of a ListFirewallDomains operation,
3696// calling the "fn" function with the response data for each page. To stop
3697// iterating, return false from the fn function.
3698//
3699// See ListFirewallDomains method for more information on how to use this operation.
3700//
3701// Note: This operation can generate multiple requests to a service.
3702//
3703//    // Example iterating over at most 3 pages of a ListFirewallDomains operation.
3704//    pageNum := 0
3705//    err := client.ListFirewallDomainsPages(params,
3706//        func(page *route53resolver.ListFirewallDomainsOutput, lastPage bool) bool {
3707//            pageNum++
3708//            fmt.Println(page)
3709//            return pageNum <= 3
3710//        })
3711//
3712func (c *Route53Resolver) ListFirewallDomainsPages(input *ListFirewallDomainsInput, fn func(*ListFirewallDomainsOutput, bool) bool) error {
3713	return c.ListFirewallDomainsPagesWithContext(aws.BackgroundContext(), input, fn)
3714}
3715
3716// ListFirewallDomainsPagesWithContext same as ListFirewallDomainsPages except
3717// it takes a Context and allows setting request options on the pages.
3718//
3719// The context must be non-nil and will be used for request cancellation. If
3720// the context is nil a panic will occur. In the future the SDK may create
3721// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3722// for more information on using Contexts.
3723func (c *Route53Resolver) ListFirewallDomainsPagesWithContext(ctx aws.Context, input *ListFirewallDomainsInput, fn func(*ListFirewallDomainsOutput, bool) bool, opts ...request.Option) error {
3724	p := request.Pagination{
3725		NewRequest: func() (*request.Request, error) {
3726			var inCpy *ListFirewallDomainsInput
3727			if input != nil {
3728				tmp := *input
3729				inCpy = &tmp
3730			}
3731			req, _ := c.ListFirewallDomainsRequest(inCpy)
3732			req.SetContext(ctx)
3733			req.ApplyOptions(opts...)
3734			return req, nil
3735		},
3736	}
3737
3738	for p.Next() {
3739		if !fn(p.Page().(*ListFirewallDomainsOutput), !p.HasNextPage()) {
3740			break
3741		}
3742	}
3743
3744	return p.Err()
3745}
3746
3747const opListFirewallRuleGroupAssociations = "ListFirewallRuleGroupAssociations"
3748
3749// ListFirewallRuleGroupAssociationsRequest generates a "aws/request.Request" representing the
3750// client's request for the ListFirewallRuleGroupAssociations operation. The "output" return
3751// value will be populated with the request's response once the request completes
3752// successfully.
3753//
3754// Use "Send" method on the returned Request to send the API call to the service.
3755// the "output" return value is not valid until after Send returns without error.
3756//
3757// See ListFirewallRuleGroupAssociations for more information on using the ListFirewallRuleGroupAssociations
3758// API call, and error handling.
3759//
3760// This method is useful when you want to inject custom logic or configuration
3761// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3762//
3763//
3764//    // Example sending a request using the ListFirewallRuleGroupAssociationsRequest method.
3765//    req, resp := client.ListFirewallRuleGroupAssociationsRequest(params)
3766//
3767//    err := req.Send()
3768//    if err == nil { // resp is now filled
3769//        fmt.Println(resp)
3770//    }
3771//
3772// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListFirewallRuleGroupAssociations
3773func (c *Route53Resolver) ListFirewallRuleGroupAssociationsRequest(input *ListFirewallRuleGroupAssociationsInput) (req *request.Request, output *ListFirewallRuleGroupAssociationsOutput) {
3774	op := &request.Operation{
3775		Name:       opListFirewallRuleGroupAssociations,
3776		HTTPMethod: "POST",
3777		HTTPPath:   "/",
3778		Paginator: &request.Paginator{
3779			InputTokens:     []string{"NextToken"},
3780			OutputTokens:    []string{"NextToken"},
3781			LimitToken:      "MaxResults",
3782			TruncationToken: "",
3783		},
3784	}
3785
3786	if input == nil {
3787		input = &ListFirewallRuleGroupAssociationsInput{}
3788	}
3789
3790	output = &ListFirewallRuleGroupAssociationsOutput{}
3791	req = c.newRequest(op, input, output)
3792	return
3793}
3794
3795// ListFirewallRuleGroupAssociations API operation for Amazon Route 53 Resolver.
3796//
3797// Retrieves the firewall rule group associations that you have defined. Each
3798// association enables DNS filtering for a VPC with one rule group.
3799//
3800// A single call might return only a partial list of the associations. For information,
3801// see MaxResults.
3802//
3803// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3804// with awserr.Error's Code and Message methods to get detailed information about
3805// the error.
3806//
3807// See the AWS API reference guide for Amazon Route 53 Resolver's
3808// API operation ListFirewallRuleGroupAssociations for usage and error information.
3809//
3810// Returned Error Types:
3811//   * ValidationException
3812//
3813//   * AccessDeniedException
3814//   The current account doesn't have the IAM permissions required to perform
3815//   the specified Resolver operation.
3816//
3817//   * InternalServiceErrorException
3818//   We encountered an unknown error. Try again in a few minutes.
3819//
3820//   * ThrottlingException
3821//   The request was throttled. Try again in a few minutes.
3822//
3823// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListFirewallRuleGroupAssociations
3824func (c *Route53Resolver) ListFirewallRuleGroupAssociations(input *ListFirewallRuleGroupAssociationsInput) (*ListFirewallRuleGroupAssociationsOutput, error) {
3825	req, out := c.ListFirewallRuleGroupAssociationsRequest(input)
3826	return out, req.Send()
3827}
3828
3829// ListFirewallRuleGroupAssociationsWithContext is the same as ListFirewallRuleGroupAssociations with the addition of
3830// the ability to pass a context and additional request options.
3831//
3832// See ListFirewallRuleGroupAssociations for details on how to use this API operation.
3833//
3834// The context must be non-nil and will be used for request cancellation. If
3835// the context is nil a panic will occur. In the future the SDK may create
3836// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3837// for more information on using Contexts.
3838func (c *Route53Resolver) ListFirewallRuleGroupAssociationsWithContext(ctx aws.Context, input *ListFirewallRuleGroupAssociationsInput, opts ...request.Option) (*ListFirewallRuleGroupAssociationsOutput, error) {
3839	req, out := c.ListFirewallRuleGroupAssociationsRequest(input)
3840	req.SetContext(ctx)
3841	req.ApplyOptions(opts...)
3842	return out, req.Send()
3843}
3844
3845// ListFirewallRuleGroupAssociationsPages iterates over the pages of a ListFirewallRuleGroupAssociations operation,
3846// calling the "fn" function with the response data for each page. To stop
3847// iterating, return false from the fn function.
3848//
3849// See ListFirewallRuleGroupAssociations method for more information on how to use this operation.
3850//
3851// Note: This operation can generate multiple requests to a service.
3852//
3853//    // Example iterating over at most 3 pages of a ListFirewallRuleGroupAssociations operation.
3854//    pageNum := 0
3855//    err := client.ListFirewallRuleGroupAssociationsPages(params,
3856//        func(page *route53resolver.ListFirewallRuleGroupAssociationsOutput, lastPage bool) bool {
3857//            pageNum++
3858//            fmt.Println(page)
3859//            return pageNum <= 3
3860//        })
3861//
3862func (c *Route53Resolver) ListFirewallRuleGroupAssociationsPages(input *ListFirewallRuleGroupAssociationsInput, fn func(*ListFirewallRuleGroupAssociationsOutput, bool) bool) error {
3863	return c.ListFirewallRuleGroupAssociationsPagesWithContext(aws.BackgroundContext(), input, fn)
3864}
3865
3866// ListFirewallRuleGroupAssociationsPagesWithContext same as ListFirewallRuleGroupAssociationsPages except
3867// it takes a Context and allows setting request options on the pages.
3868//
3869// The context must be non-nil and will be used for request cancellation. If
3870// the context is nil a panic will occur. In the future the SDK may create
3871// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3872// for more information on using Contexts.
3873func (c *Route53Resolver) ListFirewallRuleGroupAssociationsPagesWithContext(ctx aws.Context, input *ListFirewallRuleGroupAssociationsInput, fn func(*ListFirewallRuleGroupAssociationsOutput, bool) bool, opts ...request.Option) error {
3874	p := request.Pagination{
3875		NewRequest: func() (*request.Request, error) {
3876			var inCpy *ListFirewallRuleGroupAssociationsInput
3877			if input != nil {
3878				tmp := *input
3879				inCpy = &tmp
3880			}
3881			req, _ := c.ListFirewallRuleGroupAssociationsRequest(inCpy)
3882			req.SetContext(ctx)
3883			req.ApplyOptions(opts...)
3884			return req, nil
3885		},
3886	}
3887
3888	for p.Next() {
3889		if !fn(p.Page().(*ListFirewallRuleGroupAssociationsOutput), !p.HasNextPage()) {
3890			break
3891		}
3892	}
3893
3894	return p.Err()
3895}
3896
3897const opListFirewallRuleGroups = "ListFirewallRuleGroups"
3898
3899// ListFirewallRuleGroupsRequest generates a "aws/request.Request" representing the
3900// client's request for the ListFirewallRuleGroups operation. The "output" return
3901// value will be populated with the request's response once the request completes
3902// successfully.
3903//
3904// Use "Send" method on the returned Request to send the API call to the service.
3905// the "output" return value is not valid until after Send returns without error.
3906//
3907// See ListFirewallRuleGroups for more information on using the ListFirewallRuleGroups
3908// API call, and error handling.
3909//
3910// This method is useful when you want to inject custom logic or configuration
3911// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3912//
3913//
3914//    // Example sending a request using the ListFirewallRuleGroupsRequest method.
3915//    req, resp := client.ListFirewallRuleGroupsRequest(params)
3916//
3917//    err := req.Send()
3918//    if err == nil { // resp is now filled
3919//        fmt.Println(resp)
3920//    }
3921//
3922// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListFirewallRuleGroups
3923func (c *Route53Resolver) ListFirewallRuleGroupsRequest(input *ListFirewallRuleGroupsInput) (req *request.Request, output *ListFirewallRuleGroupsOutput) {
3924	op := &request.Operation{
3925		Name:       opListFirewallRuleGroups,
3926		HTTPMethod: "POST",
3927		HTTPPath:   "/",
3928		Paginator: &request.Paginator{
3929			InputTokens:     []string{"NextToken"},
3930			OutputTokens:    []string{"NextToken"},
3931			LimitToken:      "MaxResults",
3932			TruncationToken: "",
3933		},
3934	}
3935
3936	if input == nil {
3937		input = &ListFirewallRuleGroupsInput{}
3938	}
3939
3940	output = &ListFirewallRuleGroupsOutput{}
3941	req = c.newRequest(op, input, output)
3942	return
3943}
3944
3945// ListFirewallRuleGroups API operation for Amazon Route 53 Resolver.
3946//
3947// Retrieves the minimal high-level information for the rule groups that you
3948// have defined.
3949//
3950// A single call might return only a partial list of the rule groups. For information,
3951// see MaxResults.
3952//
3953// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3954// with awserr.Error's Code and Message methods to get detailed information about
3955// the error.
3956//
3957// See the AWS API reference guide for Amazon Route 53 Resolver's
3958// API operation ListFirewallRuleGroups for usage and error information.
3959//
3960// Returned Error Types:
3961//   * ValidationException
3962//
3963//   * AccessDeniedException
3964//   The current account doesn't have the IAM permissions required to perform
3965//   the specified Resolver operation.
3966//
3967//   * InternalServiceErrorException
3968//   We encountered an unknown error. Try again in a few minutes.
3969//
3970//   * ThrottlingException
3971//   The request was throttled. Try again in a few minutes.
3972//
3973// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListFirewallRuleGroups
3974func (c *Route53Resolver) ListFirewallRuleGroups(input *ListFirewallRuleGroupsInput) (*ListFirewallRuleGroupsOutput, error) {
3975	req, out := c.ListFirewallRuleGroupsRequest(input)
3976	return out, req.Send()
3977}
3978
3979// ListFirewallRuleGroupsWithContext is the same as ListFirewallRuleGroups with the addition of
3980// the ability to pass a context and additional request options.
3981//
3982// See ListFirewallRuleGroups for details on how to use this API operation.
3983//
3984// The context must be non-nil and will be used for request cancellation. If
3985// the context is nil a panic will occur. In the future the SDK may create
3986// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3987// for more information on using Contexts.
3988func (c *Route53Resolver) ListFirewallRuleGroupsWithContext(ctx aws.Context, input *ListFirewallRuleGroupsInput, opts ...request.Option) (*ListFirewallRuleGroupsOutput, error) {
3989	req, out := c.ListFirewallRuleGroupsRequest(input)
3990	req.SetContext(ctx)
3991	req.ApplyOptions(opts...)
3992	return out, req.Send()
3993}
3994
3995// ListFirewallRuleGroupsPages iterates over the pages of a ListFirewallRuleGroups operation,
3996// calling the "fn" function with the response data for each page. To stop
3997// iterating, return false from the fn function.
3998//
3999// See ListFirewallRuleGroups method for more information on how to use this operation.
4000//
4001// Note: This operation can generate multiple requests to a service.
4002//
4003//    // Example iterating over at most 3 pages of a ListFirewallRuleGroups operation.
4004//    pageNum := 0
4005//    err := client.ListFirewallRuleGroupsPages(params,
4006//        func(page *route53resolver.ListFirewallRuleGroupsOutput, lastPage bool) bool {
4007//            pageNum++
4008//            fmt.Println(page)
4009//            return pageNum <= 3
4010//        })
4011//
4012func (c *Route53Resolver) ListFirewallRuleGroupsPages(input *ListFirewallRuleGroupsInput, fn func(*ListFirewallRuleGroupsOutput, bool) bool) error {
4013	return c.ListFirewallRuleGroupsPagesWithContext(aws.BackgroundContext(), input, fn)
4014}
4015
4016// ListFirewallRuleGroupsPagesWithContext same as ListFirewallRuleGroupsPages except
4017// it takes a Context and allows setting request options on the pages.
4018//
4019// The context must be non-nil and will be used for request cancellation. If
4020// the context is nil a panic will occur. In the future the SDK may create
4021// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4022// for more information on using Contexts.
4023func (c *Route53Resolver) ListFirewallRuleGroupsPagesWithContext(ctx aws.Context, input *ListFirewallRuleGroupsInput, fn func(*ListFirewallRuleGroupsOutput, bool) bool, opts ...request.Option) error {
4024	p := request.Pagination{
4025		NewRequest: func() (*request.Request, error) {
4026			var inCpy *ListFirewallRuleGroupsInput
4027			if input != nil {
4028				tmp := *input
4029				inCpy = &tmp
4030			}
4031			req, _ := c.ListFirewallRuleGroupsRequest(inCpy)
4032			req.SetContext(ctx)
4033			req.ApplyOptions(opts...)
4034			return req, nil
4035		},
4036	}
4037
4038	for p.Next() {
4039		if !fn(p.Page().(*ListFirewallRuleGroupsOutput), !p.HasNextPage()) {
4040			break
4041		}
4042	}
4043
4044	return p.Err()
4045}
4046
4047const opListFirewallRules = "ListFirewallRules"
4048
4049// ListFirewallRulesRequest generates a "aws/request.Request" representing the
4050// client's request for the ListFirewallRules operation. The "output" return
4051// value will be populated with the request's response once the request completes
4052// successfully.
4053//
4054// Use "Send" method on the returned Request to send the API call to the service.
4055// the "output" return value is not valid until after Send returns without error.
4056//
4057// See ListFirewallRules for more information on using the ListFirewallRules
4058// API call, and error handling.
4059//
4060// This method is useful when you want to inject custom logic or configuration
4061// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4062//
4063//
4064//    // Example sending a request using the ListFirewallRulesRequest method.
4065//    req, resp := client.ListFirewallRulesRequest(params)
4066//
4067//    err := req.Send()
4068//    if err == nil { // resp is now filled
4069//        fmt.Println(resp)
4070//    }
4071//
4072// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListFirewallRules
4073func (c *Route53Resolver) ListFirewallRulesRequest(input *ListFirewallRulesInput) (req *request.Request, output *ListFirewallRulesOutput) {
4074	op := &request.Operation{
4075		Name:       opListFirewallRules,
4076		HTTPMethod: "POST",
4077		HTTPPath:   "/",
4078		Paginator: &request.Paginator{
4079			InputTokens:     []string{"NextToken"},
4080			OutputTokens:    []string{"NextToken"},
4081			LimitToken:      "MaxResults",
4082			TruncationToken: "",
4083		},
4084	}
4085
4086	if input == nil {
4087		input = &ListFirewallRulesInput{}
4088	}
4089
4090	output = &ListFirewallRulesOutput{}
4091	req = c.newRequest(op, input, output)
4092	return
4093}
4094
4095// ListFirewallRules API operation for Amazon Route 53 Resolver.
4096//
4097// Retrieves the firewall rules that you have defined for the specified firewall
4098// rule group. DNS Firewall uses the rules in a rule group to filter DNS network
4099// traffic for a VPC.
4100//
4101// A single call might return only a partial list of the rules. For information,
4102// see MaxResults.
4103//
4104// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4105// with awserr.Error's Code and Message methods to get detailed information about
4106// the error.
4107//
4108// See the AWS API reference guide for Amazon Route 53 Resolver's
4109// API operation ListFirewallRules for usage and error information.
4110//
4111// Returned Error Types:
4112//   * ResourceNotFoundException
4113//   The specified resource doesn't exist.
4114//
4115//   * ValidationException
4116//
4117//   * AccessDeniedException
4118//   The current account doesn't have the IAM permissions required to perform
4119//   the specified Resolver operation.
4120//
4121//   * InternalServiceErrorException
4122//   We encountered an unknown error. Try again in a few minutes.
4123//
4124//   * ThrottlingException
4125//   The request was throttled. Try again in a few minutes.
4126//
4127// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListFirewallRules
4128func (c *Route53Resolver) ListFirewallRules(input *ListFirewallRulesInput) (*ListFirewallRulesOutput, error) {
4129	req, out := c.ListFirewallRulesRequest(input)
4130	return out, req.Send()
4131}
4132
4133// ListFirewallRulesWithContext is the same as ListFirewallRules with the addition of
4134// the ability to pass a context and additional request options.
4135//
4136// See ListFirewallRules for details on how to use this API operation.
4137//
4138// The context must be non-nil and will be used for request cancellation. If
4139// the context is nil a panic will occur. In the future the SDK may create
4140// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4141// for more information on using Contexts.
4142func (c *Route53Resolver) ListFirewallRulesWithContext(ctx aws.Context, input *ListFirewallRulesInput, opts ...request.Option) (*ListFirewallRulesOutput, error) {
4143	req, out := c.ListFirewallRulesRequest(input)
4144	req.SetContext(ctx)
4145	req.ApplyOptions(opts...)
4146	return out, req.Send()
4147}
4148
4149// ListFirewallRulesPages iterates over the pages of a ListFirewallRules operation,
4150// calling the "fn" function with the response data for each page. To stop
4151// iterating, return false from the fn function.
4152//
4153// See ListFirewallRules method for more information on how to use this operation.
4154//
4155// Note: This operation can generate multiple requests to a service.
4156//
4157//    // Example iterating over at most 3 pages of a ListFirewallRules operation.
4158//    pageNum := 0
4159//    err := client.ListFirewallRulesPages(params,
4160//        func(page *route53resolver.ListFirewallRulesOutput, lastPage bool) bool {
4161//            pageNum++
4162//            fmt.Println(page)
4163//            return pageNum <= 3
4164//        })
4165//
4166func (c *Route53Resolver) ListFirewallRulesPages(input *ListFirewallRulesInput, fn func(*ListFirewallRulesOutput, bool) bool) error {
4167	return c.ListFirewallRulesPagesWithContext(aws.BackgroundContext(), input, fn)
4168}
4169
4170// ListFirewallRulesPagesWithContext same as ListFirewallRulesPages except
4171// it takes a Context and allows setting request options on the pages.
4172//
4173// The context must be non-nil and will be used for request cancellation. If
4174// the context is nil a panic will occur. In the future the SDK may create
4175// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4176// for more information on using Contexts.
4177func (c *Route53Resolver) ListFirewallRulesPagesWithContext(ctx aws.Context, input *ListFirewallRulesInput, fn func(*ListFirewallRulesOutput, bool) bool, opts ...request.Option) error {
4178	p := request.Pagination{
4179		NewRequest: func() (*request.Request, error) {
4180			var inCpy *ListFirewallRulesInput
4181			if input != nil {
4182				tmp := *input
4183				inCpy = &tmp
4184			}
4185			req, _ := c.ListFirewallRulesRequest(inCpy)
4186			req.SetContext(ctx)
4187			req.ApplyOptions(opts...)
4188			return req, nil
4189		},
4190	}
4191
4192	for p.Next() {
4193		if !fn(p.Page().(*ListFirewallRulesOutput), !p.HasNextPage()) {
4194			break
4195		}
4196	}
4197
4198	return p.Err()
4199}
4200
4201const opListResolverDnssecConfigs = "ListResolverDnssecConfigs"
4202
4203// ListResolverDnssecConfigsRequest generates a "aws/request.Request" representing the
4204// client's request for the ListResolverDnssecConfigs operation. The "output" return
4205// value will be populated with the request's response once the request completes
4206// successfully.
4207//
4208// Use "Send" method on the returned Request to send the API call to the service.
4209// the "output" return value is not valid until after Send returns without error.
4210//
4211// See ListResolverDnssecConfigs for more information on using the ListResolverDnssecConfigs
4212// API call, and error handling.
4213//
4214// This method is useful when you want to inject custom logic or configuration
4215// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4216//
4217//
4218//    // Example sending a request using the ListResolverDnssecConfigsRequest method.
4219//    req, resp := client.ListResolverDnssecConfigsRequest(params)
4220//
4221//    err := req.Send()
4222//    if err == nil { // resp is now filled
4223//        fmt.Println(resp)
4224//    }
4225//
4226// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListResolverDnssecConfigs
4227func (c *Route53Resolver) ListResolverDnssecConfigsRequest(input *ListResolverDnssecConfigsInput) (req *request.Request, output *ListResolverDnssecConfigsOutput) {
4228	op := &request.Operation{
4229		Name:       opListResolverDnssecConfigs,
4230		HTTPMethod: "POST",
4231		HTTPPath:   "/",
4232		Paginator: &request.Paginator{
4233			InputTokens:     []string{"NextToken"},
4234			OutputTokens:    []string{"NextToken"},
4235			LimitToken:      "MaxResults",
4236			TruncationToken: "",
4237		},
4238	}
4239
4240	if input == nil {
4241		input = &ListResolverDnssecConfigsInput{}
4242	}
4243
4244	output = &ListResolverDnssecConfigsOutput{}
4245	req = c.newRequest(op, input, output)
4246	return
4247}
4248
4249// ListResolverDnssecConfigs API operation for Amazon Route 53 Resolver.
4250//
4251// Lists the configurations for DNSSEC validation that are associated with the
4252// current Amazon Web Services account.
4253//
4254// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4255// with awserr.Error's Code and Message methods to get detailed information about
4256// the error.
4257//
4258// See the AWS API reference guide for Amazon Route 53 Resolver's
4259// API operation ListResolverDnssecConfigs for usage and error information.
4260//
4261// Returned Error Types:
4262//   * InvalidNextTokenException
4263//   The value that you specified for NextToken in a List request isn't valid.
4264//
4265//   * InvalidParameterException
4266//   One or more parameters in this request are not valid.
4267//
4268//   * InvalidRequestException
4269//   The request is invalid.
4270//
4271//   * InternalServiceErrorException
4272//   We encountered an unknown error. Try again in a few minutes.
4273//
4274//   * ThrottlingException
4275//   The request was throttled. Try again in a few minutes.
4276//
4277//   * AccessDeniedException
4278//   The current account doesn't have the IAM permissions required to perform
4279//   the specified Resolver operation.
4280//
4281// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListResolverDnssecConfigs
4282func (c *Route53Resolver) ListResolverDnssecConfigs(input *ListResolverDnssecConfigsInput) (*ListResolverDnssecConfigsOutput, error) {
4283	req, out := c.ListResolverDnssecConfigsRequest(input)
4284	return out, req.Send()
4285}
4286
4287// ListResolverDnssecConfigsWithContext is the same as ListResolverDnssecConfigs with the addition of
4288// the ability to pass a context and additional request options.
4289//
4290// See ListResolverDnssecConfigs for details on how to use this API operation.
4291//
4292// The context must be non-nil and will be used for request cancellation. If
4293// the context is nil a panic will occur. In the future the SDK may create
4294// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4295// for more information on using Contexts.
4296func (c *Route53Resolver) ListResolverDnssecConfigsWithContext(ctx aws.Context, input *ListResolverDnssecConfigsInput, opts ...request.Option) (*ListResolverDnssecConfigsOutput, error) {
4297	req, out := c.ListResolverDnssecConfigsRequest(input)
4298	req.SetContext(ctx)
4299	req.ApplyOptions(opts...)
4300	return out, req.Send()
4301}
4302
4303// ListResolverDnssecConfigsPages iterates over the pages of a ListResolverDnssecConfigs operation,
4304// calling the "fn" function with the response data for each page. To stop
4305// iterating, return false from the fn function.
4306//
4307// See ListResolverDnssecConfigs method for more information on how to use this operation.
4308//
4309// Note: This operation can generate multiple requests to a service.
4310//
4311//    // Example iterating over at most 3 pages of a ListResolverDnssecConfigs operation.
4312//    pageNum := 0
4313//    err := client.ListResolverDnssecConfigsPages(params,
4314//        func(page *route53resolver.ListResolverDnssecConfigsOutput, lastPage bool) bool {
4315//            pageNum++
4316//            fmt.Println(page)
4317//            return pageNum <= 3
4318//        })
4319//
4320func (c *Route53Resolver) ListResolverDnssecConfigsPages(input *ListResolverDnssecConfigsInput, fn func(*ListResolverDnssecConfigsOutput, bool) bool) error {
4321	return c.ListResolverDnssecConfigsPagesWithContext(aws.BackgroundContext(), input, fn)
4322}
4323
4324// ListResolverDnssecConfigsPagesWithContext same as ListResolverDnssecConfigsPages except
4325// it takes a Context and allows setting request options on the pages.
4326//
4327// The context must be non-nil and will be used for request cancellation. If
4328// the context is nil a panic will occur. In the future the SDK may create
4329// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4330// for more information on using Contexts.
4331func (c *Route53Resolver) ListResolverDnssecConfigsPagesWithContext(ctx aws.Context, input *ListResolverDnssecConfigsInput, fn func(*ListResolverDnssecConfigsOutput, bool) bool, opts ...request.Option) error {
4332	p := request.Pagination{
4333		NewRequest: func() (*request.Request, error) {
4334			var inCpy *ListResolverDnssecConfigsInput
4335			if input != nil {
4336				tmp := *input
4337				inCpy = &tmp
4338			}
4339			req, _ := c.ListResolverDnssecConfigsRequest(inCpy)
4340			req.SetContext(ctx)
4341			req.ApplyOptions(opts...)
4342			return req, nil
4343		},
4344	}
4345
4346	for p.Next() {
4347		if !fn(p.Page().(*ListResolverDnssecConfigsOutput), !p.HasNextPage()) {
4348			break
4349		}
4350	}
4351
4352	return p.Err()
4353}
4354
4355const opListResolverEndpointIpAddresses = "ListResolverEndpointIpAddresses"
4356
4357// ListResolverEndpointIpAddressesRequest generates a "aws/request.Request" representing the
4358// client's request for the ListResolverEndpointIpAddresses operation. The "output" return
4359// value will be populated with the request's response once the request completes
4360// successfully.
4361//
4362// Use "Send" method on the returned Request to send the API call to the service.
4363// the "output" return value is not valid until after Send returns without error.
4364//
4365// See ListResolverEndpointIpAddresses for more information on using the ListResolverEndpointIpAddresses
4366// API call, and error handling.
4367//
4368// This method is useful when you want to inject custom logic or configuration
4369// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4370//
4371//
4372//    // Example sending a request using the ListResolverEndpointIpAddressesRequest method.
4373//    req, resp := client.ListResolverEndpointIpAddressesRequest(params)
4374//
4375//    err := req.Send()
4376//    if err == nil { // resp is now filled
4377//        fmt.Println(resp)
4378//    }
4379//
4380// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListResolverEndpointIpAddresses
4381func (c *Route53Resolver) ListResolverEndpointIpAddressesRequest(input *ListResolverEndpointIpAddressesInput) (req *request.Request, output *ListResolverEndpointIpAddressesOutput) {
4382	op := &request.Operation{
4383		Name:       opListResolverEndpointIpAddresses,
4384		HTTPMethod: "POST",
4385		HTTPPath:   "/",
4386		Paginator: &request.Paginator{
4387			InputTokens:     []string{"NextToken"},
4388			OutputTokens:    []string{"NextToken"},
4389			LimitToken:      "MaxResults",
4390			TruncationToken: "",
4391		},
4392	}
4393
4394	if input == nil {
4395		input = &ListResolverEndpointIpAddressesInput{}
4396	}
4397
4398	output = &ListResolverEndpointIpAddressesOutput{}
4399	req = c.newRequest(op, input, output)
4400	return
4401}
4402
4403// ListResolverEndpointIpAddresses API operation for Amazon Route 53 Resolver.
4404//
4405// Gets the IP addresses for a specified Resolver endpoint.
4406//
4407// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4408// with awserr.Error's Code and Message methods to get detailed information about
4409// the error.
4410//
4411// See the AWS API reference guide for Amazon Route 53 Resolver's
4412// API operation ListResolverEndpointIpAddresses for usage and error information.
4413//
4414// Returned Error Types:
4415//   * ResourceNotFoundException
4416//   The specified resource doesn't exist.
4417//
4418//   * InvalidParameterException
4419//   One or more parameters in this request are not valid.
4420//
4421//   * InternalServiceErrorException
4422//   We encountered an unknown error. Try again in a few minutes.
4423//
4424//   * InvalidNextTokenException
4425//   The value that you specified for NextToken in a List request isn't valid.
4426//
4427//   * ThrottlingException
4428//   The request was throttled. Try again in a few minutes.
4429//
4430// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListResolverEndpointIpAddresses
4431func (c *Route53Resolver) ListResolverEndpointIpAddresses(input *ListResolverEndpointIpAddressesInput) (*ListResolverEndpointIpAddressesOutput, error) {
4432	req, out := c.ListResolverEndpointIpAddressesRequest(input)
4433	return out, req.Send()
4434}
4435
4436// ListResolverEndpointIpAddressesWithContext is the same as ListResolverEndpointIpAddresses with the addition of
4437// the ability to pass a context and additional request options.
4438//
4439// See ListResolverEndpointIpAddresses for details on how to use this API operation.
4440//
4441// The context must be non-nil and will be used for request cancellation. If
4442// the context is nil a panic will occur. In the future the SDK may create
4443// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4444// for more information on using Contexts.
4445func (c *Route53Resolver) ListResolverEndpointIpAddressesWithContext(ctx aws.Context, input *ListResolverEndpointIpAddressesInput, opts ...request.Option) (*ListResolverEndpointIpAddressesOutput, error) {
4446	req, out := c.ListResolverEndpointIpAddressesRequest(input)
4447	req.SetContext(ctx)
4448	req.ApplyOptions(opts...)
4449	return out, req.Send()
4450}
4451
4452// ListResolverEndpointIpAddressesPages iterates over the pages of a ListResolverEndpointIpAddresses operation,
4453// calling the "fn" function with the response data for each page. To stop
4454// iterating, return false from the fn function.
4455//
4456// See ListResolverEndpointIpAddresses method for more information on how to use this operation.
4457//
4458// Note: This operation can generate multiple requests to a service.
4459//
4460//    // Example iterating over at most 3 pages of a ListResolverEndpointIpAddresses operation.
4461//    pageNum := 0
4462//    err := client.ListResolverEndpointIpAddressesPages(params,
4463//        func(page *route53resolver.ListResolverEndpointIpAddressesOutput, lastPage bool) bool {
4464//            pageNum++
4465//            fmt.Println(page)
4466//            return pageNum <= 3
4467//        })
4468//
4469func (c *Route53Resolver) ListResolverEndpointIpAddressesPages(input *ListResolverEndpointIpAddressesInput, fn func(*ListResolverEndpointIpAddressesOutput, bool) bool) error {
4470	return c.ListResolverEndpointIpAddressesPagesWithContext(aws.BackgroundContext(), input, fn)
4471}
4472
4473// ListResolverEndpointIpAddressesPagesWithContext same as ListResolverEndpointIpAddressesPages except
4474// it takes a Context and allows setting request options on the pages.
4475//
4476// The context must be non-nil and will be used for request cancellation. If
4477// the context is nil a panic will occur. In the future the SDK may create
4478// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4479// for more information on using Contexts.
4480func (c *Route53Resolver) ListResolverEndpointIpAddressesPagesWithContext(ctx aws.Context, input *ListResolverEndpointIpAddressesInput, fn func(*ListResolverEndpointIpAddressesOutput, bool) bool, opts ...request.Option) error {
4481	p := request.Pagination{
4482		NewRequest: func() (*request.Request, error) {
4483			var inCpy *ListResolverEndpointIpAddressesInput
4484			if input != nil {
4485				tmp := *input
4486				inCpy = &tmp
4487			}
4488			req, _ := c.ListResolverEndpointIpAddressesRequest(inCpy)
4489			req.SetContext(ctx)
4490			req.ApplyOptions(opts...)
4491			return req, nil
4492		},
4493	}
4494
4495	for p.Next() {
4496		if !fn(p.Page().(*ListResolverEndpointIpAddressesOutput), !p.HasNextPage()) {
4497			break
4498		}
4499	}
4500
4501	return p.Err()
4502}
4503
4504const opListResolverEndpoints = "ListResolverEndpoints"
4505
4506// ListResolverEndpointsRequest generates a "aws/request.Request" representing the
4507// client's request for the ListResolverEndpoints operation. The "output" return
4508// value will be populated with the request's response once the request completes
4509// successfully.
4510//
4511// Use "Send" method on the returned Request to send the API call to the service.
4512// the "output" return value is not valid until after Send returns without error.
4513//
4514// See ListResolverEndpoints for more information on using the ListResolverEndpoints
4515// API call, and error handling.
4516//
4517// This method is useful when you want to inject custom logic or configuration
4518// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4519//
4520//
4521//    // Example sending a request using the ListResolverEndpointsRequest method.
4522//    req, resp := client.ListResolverEndpointsRequest(params)
4523//
4524//    err := req.Send()
4525//    if err == nil { // resp is now filled
4526//        fmt.Println(resp)
4527//    }
4528//
4529// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListResolverEndpoints
4530func (c *Route53Resolver) ListResolverEndpointsRequest(input *ListResolverEndpointsInput) (req *request.Request, output *ListResolverEndpointsOutput) {
4531	op := &request.Operation{
4532		Name:       opListResolverEndpoints,
4533		HTTPMethod: "POST",
4534		HTTPPath:   "/",
4535		Paginator: &request.Paginator{
4536			InputTokens:     []string{"NextToken"},
4537			OutputTokens:    []string{"NextToken"},
4538			LimitToken:      "MaxResults",
4539			TruncationToken: "",
4540		},
4541	}
4542
4543	if input == nil {
4544		input = &ListResolverEndpointsInput{}
4545	}
4546
4547	output = &ListResolverEndpointsOutput{}
4548	req = c.newRequest(op, input, output)
4549	return
4550}
4551
4552// ListResolverEndpoints API operation for Amazon Route 53 Resolver.
4553//
4554// Lists all the Resolver endpoints that were created using the current Amazon
4555// Web Services account.
4556//
4557// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4558// with awserr.Error's Code and Message methods to get detailed information about
4559// the error.
4560//
4561// See the AWS API reference guide for Amazon Route 53 Resolver's
4562// API operation ListResolverEndpoints for usage and error information.
4563//
4564// Returned Error Types:
4565//   * InvalidNextTokenException
4566//   The value that you specified for NextToken in a List request isn't valid.
4567//
4568//   * InvalidRequestException
4569//   The request is invalid.
4570//
4571//   * InvalidParameterException
4572//   One or more parameters in this request are not valid.
4573//
4574//   * InternalServiceErrorException
4575//   We encountered an unknown error. Try again in a few minutes.
4576//
4577//   * ThrottlingException
4578//   The request was throttled. Try again in a few minutes.
4579//
4580// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListResolverEndpoints
4581func (c *Route53Resolver) ListResolverEndpoints(input *ListResolverEndpointsInput) (*ListResolverEndpointsOutput, error) {
4582	req, out := c.ListResolverEndpointsRequest(input)
4583	return out, req.Send()
4584}
4585
4586// ListResolverEndpointsWithContext is the same as ListResolverEndpoints with the addition of
4587// the ability to pass a context and additional request options.
4588//
4589// See ListResolverEndpoints for details on how to use this API operation.
4590//
4591// The context must be non-nil and will be used for request cancellation. If
4592// the context is nil a panic will occur. In the future the SDK may create
4593// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4594// for more information on using Contexts.
4595func (c *Route53Resolver) ListResolverEndpointsWithContext(ctx aws.Context, input *ListResolverEndpointsInput, opts ...request.Option) (*ListResolverEndpointsOutput, error) {
4596	req, out := c.ListResolverEndpointsRequest(input)
4597	req.SetContext(ctx)
4598	req.ApplyOptions(opts...)
4599	return out, req.Send()
4600}
4601
4602// ListResolverEndpointsPages iterates over the pages of a ListResolverEndpoints operation,
4603// calling the "fn" function with the response data for each page. To stop
4604// iterating, return false from the fn function.
4605//
4606// See ListResolverEndpoints method for more information on how to use this operation.
4607//
4608// Note: This operation can generate multiple requests to a service.
4609//
4610//    // Example iterating over at most 3 pages of a ListResolverEndpoints operation.
4611//    pageNum := 0
4612//    err := client.ListResolverEndpointsPages(params,
4613//        func(page *route53resolver.ListResolverEndpointsOutput, lastPage bool) bool {
4614//            pageNum++
4615//            fmt.Println(page)
4616//            return pageNum <= 3
4617//        })
4618//
4619func (c *Route53Resolver) ListResolverEndpointsPages(input *ListResolverEndpointsInput, fn func(*ListResolverEndpointsOutput, bool) bool) error {
4620	return c.ListResolverEndpointsPagesWithContext(aws.BackgroundContext(), input, fn)
4621}
4622
4623// ListResolverEndpointsPagesWithContext same as ListResolverEndpointsPages except
4624// it takes a Context and allows setting request options on the pages.
4625//
4626// The context must be non-nil and will be used for request cancellation. If
4627// the context is nil a panic will occur. In the future the SDK may create
4628// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4629// for more information on using Contexts.
4630func (c *Route53Resolver) ListResolverEndpointsPagesWithContext(ctx aws.Context, input *ListResolverEndpointsInput, fn func(*ListResolverEndpointsOutput, bool) bool, opts ...request.Option) error {
4631	p := request.Pagination{
4632		NewRequest: func() (*request.Request, error) {
4633			var inCpy *ListResolverEndpointsInput
4634			if input != nil {
4635				tmp := *input
4636				inCpy = &tmp
4637			}
4638			req, _ := c.ListResolverEndpointsRequest(inCpy)
4639			req.SetContext(ctx)
4640			req.ApplyOptions(opts...)
4641			return req, nil
4642		},
4643	}
4644
4645	for p.Next() {
4646		if !fn(p.Page().(*ListResolverEndpointsOutput), !p.HasNextPage()) {
4647			break
4648		}
4649	}
4650
4651	return p.Err()
4652}
4653
4654const opListResolverQueryLogConfigAssociations = "ListResolverQueryLogConfigAssociations"
4655
4656// ListResolverQueryLogConfigAssociationsRequest generates a "aws/request.Request" representing the
4657// client's request for the ListResolverQueryLogConfigAssociations operation. The "output" return
4658// value will be populated with the request's response once the request completes
4659// successfully.
4660//
4661// Use "Send" method on the returned Request to send the API call to the service.
4662// the "output" return value is not valid until after Send returns without error.
4663//
4664// See ListResolverQueryLogConfigAssociations for more information on using the ListResolverQueryLogConfigAssociations
4665// API call, and error handling.
4666//
4667// This method is useful when you want to inject custom logic or configuration
4668// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4669//
4670//
4671//    // Example sending a request using the ListResolverQueryLogConfigAssociationsRequest method.
4672//    req, resp := client.ListResolverQueryLogConfigAssociationsRequest(params)
4673//
4674//    err := req.Send()
4675//    if err == nil { // resp is now filled
4676//        fmt.Println(resp)
4677//    }
4678//
4679// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListResolverQueryLogConfigAssociations
4680func (c *Route53Resolver) ListResolverQueryLogConfigAssociationsRequest(input *ListResolverQueryLogConfigAssociationsInput) (req *request.Request, output *ListResolverQueryLogConfigAssociationsOutput) {
4681	op := &request.Operation{
4682		Name:       opListResolverQueryLogConfigAssociations,
4683		HTTPMethod: "POST",
4684		HTTPPath:   "/",
4685		Paginator: &request.Paginator{
4686			InputTokens:     []string{"NextToken"},
4687			OutputTokens:    []string{"NextToken"},
4688			LimitToken:      "MaxResults",
4689			TruncationToken: "",
4690		},
4691	}
4692
4693	if input == nil {
4694		input = &ListResolverQueryLogConfigAssociationsInput{}
4695	}
4696
4697	output = &ListResolverQueryLogConfigAssociationsOutput{}
4698	req = c.newRequest(op, input, output)
4699	return
4700}
4701
4702// ListResolverQueryLogConfigAssociations API operation for Amazon Route 53 Resolver.
4703//
4704// Lists information about associations between Amazon VPCs and query logging
4705// configurations.
4706//
4707// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4708// with awserr.Error's Code and Message methods to get detailed information about
4709// the error.
4710//
4711// See the AWS API reference guide for Amazon Route 53 Resolver's
4712// API operation ListResolverQueryLogConfigAssociations for usage and error information.
4713//
4714// Returned Error Types:
4715//   * InvalidParameterException
4716//   One or more parameters in this request are not valid.
4717//
4718//   * InvalidRequestException
4719//   The request is invalid.
4720//
4721//   * LimitExceededException
4722//   The request caused one or more limits to be exceeded.
4723//
4724//   * InternalServiceErrorException
4725//   We encountered an unknown error. Try again in a few minutes.
4726//
4727//   * ThrottlingException
4728//   The request was throttled. Try again in a few minutes.
4729//
4730//   * AccessDeniedException
4731//   The current account doesn't have the IAM permissions required to perform
4732//   the specified Resolver operation.
4733//
4734// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListResolverQueryLogConfigAssociations
4735func (c *Route53Resolver) ListResolverQueryLogConfigAssociations(input *ListResolverQueryLogConfigAssociationsInput) (*ListResolverQueryLogConfigAssociationsOutput, error) {
4736	req, out := c.ListResolverQueryLogConfigAssociationsRequest(input)
4737	return out, req.Send()
4738}
4739
4740// ListResolverQueryLogConfigAssociationsWithContext is the same as ListResolverQueryLogConfigAssociations with the addition of
4741// the ability to pass a context and additional request options.
4742//
4743// See ListResolverQueryLogConfigAssociations for details on how to use this API operation.
4744//
4745// The context must be non-nil and will be used for request cancellation. If
4746// the context is nil a panic will occur. In the future the SDK may create
4747// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4748// for more information on using Contexts.
4749func (c *Route53Resolver) ListResolverQueryLogConfigAssociationsWithContext(ctx aws.Context, input *ListResolverQueryLogConfigAssociationsInput, opts ...request.Option) (*ListResolverQueryLogConfigAssociationsOutput, error) {
4750	req, out := c.ListResolverQueryLogConfigAssociationsRequest(input)
4751	req.SetContext(ctx)
4752	req.ApplyOptions(opts...)
4753	return out, req.Send()
4754}
4755
4756// ListResolverQueryLogConfigAssociationsPages iterates over the pages of a ListResolverQueryLogConfigAssociations operation,
4757// calling the "fn" function with the response data for each page. To stop
4758// iterating, return false from the fn function.
4759//
4760// See ListResolverQueryLogConfigAssociations method for more information on how to use this operation.
4761//
4762// Note: This operation can generate multiple requests to a service.
4763//
4764//    // Example iterating over at most 3 pages of a ListResolverQueryLogConfigAssociations operation.
4765//    pageNum := 0
4766//    err := client.ListResolverQueryLogConfigAssociationsPages(params,
4767//        func(page *route53resolver.ListResolverQueryLogConfigAssociationsOutput, lastPage bool) bool {
4768//            pageNum++
4769//            fmt.Println(page)
4770//            return pageNum <= 3
4771//        })
4772//
4773func (c *Route53Resolver) ListResolverQueryLogConfigAssociationsPages(input *ListResolverQueryLogConfigAssociationsInput, fn func(*ListResolverQueryLogConfigAssociationsOutput, bool) bool) error {
4774	return c.ListResolverQueryLogConfigAssociationsPagesWithContext(aws.BackgroundContext(), input, fn)
4775}
4776
4777// ListResolverQueryLogConfigAssociationsPagesWithContext same as ListResolverQueryLogConfigAssociationsPages except
4778// it takes a Context and allows setting request options on the pages.
4779//
4780// The context must be non-nil and will be used for request cancellation. If
4781// the context is nil a panic will occur. In the future the SDK may create
4782// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4783// for more information on using Contexts.
4784func (c *Route53Resolver) ListResolverQueryLogConfigAssociationsPagesWithContext(ctx aws.Context, input *ListResolverQueryLogConfigAssociationsInput, fn func(*ListResolverQueryLogConfigAssociationsOutput, bool) bool, opts ...request.Option) error {
4785	p := request.Pagination{
4786		NewRequest: func() (*request.Request, error) {
4787			var inCpy *ListResolverQueryLogConfigAssociationsInput
4788			if input != nil {
4789				tmp := *input
4790				inCpy = &tmp
4791			}
4792			req, _ := c.ListResolverQueryLogConfigAssociationsRequest(inCpy)
4793			req.SetContext(ctx)
4794			req.ApplyOptions(opts...)
4795			return req, nil
4796		},
4797	}
4798
4799	for p.Next() {
4800		if !fn(p.Page().(*ListResolverQueryLogConfigAssociationsOutput), !p.HasNextPage()) {
4801			break
4802		}
4803	}
4804
4805	return p.Err()
4806}
4807
4808const opListResolverQueryLogConfigs = "ListResolverQueryLogConfigs"
4809
4810// ListResolverQueryLogConfigsRequest generates a "aws/request.Request" representing the
4811// client's request for the ListResolverQueryLogConfigs operation. The "output" return
4812// value will be populated with the request's response once the request completes
4813// successfully.
4814//
4815// Use "Send" method on the returned Request to send the API call to the service.
4816// the "output" return value is not valid until after Send returns without error.
4817//
4818// See ListResolverQueryLogConfigs for more information on using the ListResolverQueryLogConfigs
4819// API call, and error handling.
4820//
4821// This method is useful when you want to inject custom logic or configuration
4822// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4823//
4824//
4825//    // Example sending a request using the ListResolverQueryLogConfigsRequest method.
4826//    req, resp := client.ListResolverQueryLogConfigsRequest(params)
4827//
4828//    err := req.Send()
4829//    if err == nil { // resp is now filled
4830//        fmt.Println(resp)
4831//    }
4832//
4833// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListResolverQueryLogConfigs
4834func (c *Route53Resolver) ListResolverQueryLogConfigsRequest(input *ListResolverQueryLogConfigsInput) (req *request.Request, output *ListResolverQueryLogConfigsOutput) {
4835	op := &request.Operation{
4836		Name:       opListResolverQueryLogConfigs,
4837		HTTPMethod: "POST",
4838		HTTPPath:   "/",
4839		Paginator: &request.Paginator{
4840			InputTokens:     []string{"NextToken"},
4841			OutputTokens:    []string{"NextToken"},
4842			LimitToken:      "MaxResults",
4843			TruncationToken: "",
4844		},
4845	}
4846
4847	if input == nil {
4848		input = &ListResolverQueryLogConfigsInput{}
4849	}
4850
4851	output = &ListResolverQueryLogConfigsOutput{}
4852	req = c.newRequest(op, input, output)
4853	return
4854}
4855
4856// ListResolverQueryLogConfigs API operation for Amazon Route 53 Resolver.
4857//
4858// Lists information about the specified query logging configurations. Each
4859// configuration defines where you want Resolver to save DNS query logs and
4860// specifies the VPCs that you want to log queries for.
4861//
4862// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4863// with awserr.Error's Code and Message methods to get detailed information about
4864// the error.
4865//
4866// See the AWS API reference guide for Amazon Route 53 Resolver's
4867// API operation ListResolverQueryLogConfigs for usage and error information.
4868//
4869// Returned Error Types:
4870//   * InvalidNextTokenException
4871//   The value that you specified for NextToken in a List request isn't valid.
4872//
4873//   * InvalidRequestException
4874//   The request is invalid.
4875//
4876//   * InvalidParameterException
4877//   One or more parameters in this request are not valid.
4878//
4879//   * InternalServiceErrorException
4880//   We encountered an unknown error. Try again in a few minutes.
4881//
4882//   * ThrottlingException
4883//   The request was throttled. Try again in a few minutes.
4884//
4885//   * AccessDeniedException
4886//   The current account doesn't have the IAM permissions required to perform
4887//   the specified Resolver operation.
4888//
4889// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListResolverQueryLogConfigs
4890func (c *Route53Resolver) ListResolverQueryLogConfigs(input *ListResolverQueryLogConfigsInput) (*ListResolverQueryLogConfigsOutput, error) {
4891	req, out := c.ListResolverQueryLogConfigsRequest(input)
4892	return out, req.Send()
4893}
4894
4895// ListResolverQueryLogConfigsWithContext is the same as ListResolverQueryLogConfigs with the addition of
4896// the ability to pass a context and additional request options.
4897//
4898// See ListResolverQueryLogConfigs for details on how to use this API operation.
4899//
4900// The context must be non-nil and will be used for request cancellation. If
4901// the context is nil a panic will occur. In the future the SDK may create
4902// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4903// for more information on using Contexts.
4904func (c *Route53Resolver) ListResolverQueryLogConfigsWithContext(ctx aws.Context, input *ListResolverQueryLogConfigsInput, opts ...request.Option) (*ListResolverQueryLogConfigsOutput, error) {
4905	req, out := c.ListResolverQueryLogConfigsRequest(input)
4906	req.SetContext(ctx)
4907	req.ApplyOptions(opts...)
4908	return out, req.Send()
4909}
4910
4911// ListResolverQueryLogConfigsPages iterates over the pages of a ListResolverQueryLogConfigs operation,
4912// calling the "fn" function with the response data for each page. To stop
4913// iterating, return false from the fn function.
4914//
4915// See ListResolverQueryLogConfigs method for more information on how to use this operation.
4916//
4917// Note: This operation can generate multiple requests to a service.
4918//
4919//    // Example iterating over at most 3 pages of a ListResolverQueryLogConfigs operation.
4920//    pageNum := 0
4921//    err := client.ListResolverQueryLogConfigsPages(params,
4922//        func(page *route53resolver.ListResolverQueryLogConfigsOutput, lastPage bool) bool {
4923//            pageNum++
4924//            fmt.Println(page)
4925//            return pageNum <= 3
4926//        })
4927//
4928func (c *Route53Resolver) ListResolverQueryLogConfigsPages(input *ListResolverQueryLogConfigsInput, fn func(*ListResolverQueryLogConfigsOutput, bool) bool) error {
4929	return c.ListResolverQueryLogConfigsPagesWithContext(aws.BackgroundContext(), input, fn)
4930}
4931
4932// ListResolverQueryLogConfigsPagesWithContext same as ListResolverQueryLogConfigsPages except
4933// it takes a Context and allows setting request options on the pages.
4934//
4935// The context must be non-nil and will be used for request cancellation. If
4936// the context is nil a panic will occur. In the future the SDK may create
4937// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4938// for more information on using Contexts.
4939func (c *Route53Resolver) ListResolverQueryLogConfigsPagesWithContext(ctx aws.Context, input *ListResolverQueryLogConfigsInput, fn func(*ListResolverQueryLogConfigsOutput, bool) bool, opts ...request.Option) error {
4940	p := request.Pagination{
4941		NewRequest: func() (*request.Request, error) {
4942			var inCpy *ListResolverQueryLogConfigsInput
4943			if input != nil {
4944				tmp := *input
4945				inCpy = &tmp
4946			}
4947			req, _ := c.ListResolverQueryLogConfigsRequest(inCpy)
4948			req.SetContext(ctx)
4949			req.ApplyOptions(opts...)
4950			return req, nil
4951		},
4952	}
4953
4954	for p.Next() {
4955		if !fn(p.Page().(*ListResolverQueryLogConfigsOutput), !p.HasNextPage()) {
4956			break
4957		}
4958	}
4959
4960	return p.Err()
4961}
4962
4963const opListResolverRuleAssociations = "ListResolverRuleAssociations"
4964
4965// ListResolverRuleAssociationsRequest generates a "aws/request.Request" representing the
4966// client's request for the ListResolverRuleAssociations operation. The "output" return
4967// value will be populated with the request's response once the request completes
4968// successfully.
4969//
4970// Use "Send" method on the returned Request to send the API call to the service.
4971// the "output" return value is not valid until after Send returns without error.
4972//
4973// See ListResolverRuleAssociations for more information on using the ListResolverRuleAssociations
4974// API call, and error handling.
4975//
4976// This method is useful when you want to inject custom logic or configuration
4977// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4978//
4979//
4980//    // Example sending a request using the ListResolverRuleAssociationsRequest method.
4981//    req, resp := client.ListResolverRuleAssociationsRequest(params)
4982//
4983//    err := req.Send()
4984//    if err == nil { // resp is now filled
4985//        fmt.Println(resp)
4986//    }
4987//
4988// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListResolverRuleAssociations
4989func (c *Route53Resolver) ListResolverRuleAssociationsRequest(input *ListResolverRuleAssociationsInput) (req *request.Request, output *ListResolverRuleAssociationsOutput) {
4990	op := &request.Operation{
4991		Name:       opListResolverRuleAssociations,
4992		HTTPMethod: "POST",
4993		HTTPPath:   "/",
4994		Paginator: &request.Paginator{
4995			InputTokens:     []string{"NextToken"},
4996			OutputTokens:    []string{"NextToken"},
4997			LimitToken:      "MaxResults",
4998			TruncationToken: "",
4999		},
5000	}
5001
5002	if input == nil {
5003		input = &ListResolverRuleAssociationsInput{}
5004	}
5005
5006	output = &ListResolverRuleAssociationsOutput{}
5007	req = c.newRequest(op, input, output)
5008	return
5009}
5010
5011// ListResolverRuleAssociations API operation for Amazon Route 53 Resolver.
5012//
5013// Lists the associations that were created between Resolver rules and VPCs
5014// using the current Amazon Web Services account.
5015//
5016// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5017// with awserr.Error's Code and Message methods to get detailed information about
5018// the error.
5019//
5020// See the AWS API reference guide for Amazon Route 53 Resolver's
5021// API operation ListResolverRuleAssociations for usage and error information.
5022//
5023// Returned Error Types:
5024//   * InvalidNextTokenException
5025//   The value that you specified for NextToken in a List request isn't valid.
5026//
5027//   * InvalidRequestException
5028//   The request is invalid.
5029//
5030//   * InvalidParameterException
5031//   One or more parameters in this request are not valid.
5032//
5033//   * InternalServiceErrorException
5034//   We encountered an unknown error. Try again in a few minutes.
5035//
5036//   * ThrottlingException
5037//   The request was throttled. Try again in a few minutes.
5038//
5039// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListResolverRuleAssociations
5040func (c *Route53Resolver) ListResolverRuleAssociations(input *ListResolverRuleAssociationsInput) (*ListResolverRuleAssociationsOutput, error) {
5041	req, out := c.ListResolverRuleAssociationsRequest(input)
5042	return out, req.Send()
5043}
5044
5045// ListResolverRuleAssociationsWithContext is the same as ListResolverRuleAssociations with the addition of
5046// the ability to pass a context and additional request options.
5047//
5048// See ListResolverRuleAssociations for details on how to use this API operation.
5049//
5050// The context must be non-nil and will be used for request cancellation. If
5051// the context is nil a panic will occur. In the future the SDK may create
5052// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5053// for more information on using Contexts.
5054func (c *Route53Resolver) ListResolverRuleAssociationsWithContext(ctx aws.Context, input *ListResolverRuleAssociationsInput, opts ...request.Option) (*ListResolverRuleAssociationsOutput, error) {
5055	req, out := c.ListResolverRuleAssociationsRequest(input)
5056	req.SetContext(ctx)
5057	req.ApplyOptions(opts...)
5058	return out, req.Send()
5059}
5060
5061// ListResolverRuleAssociationsPages iterates over the pages of a ListResolverRuleAssociations operation,
5062// calling the "fn" function with the response data for each page. To stop
5063// iterating, return false from the fn function.
5064//
5065// See ListResolverRuleAssociations method for more information on how to use this operation.
5066//
5067// Note: This operation can generate multiple requests to a service.
5068//
5069//    // Example iterating over at most 3 pages of a ListResolverRuleAssociations operation.
5070//    pageNum := 0
5071//    err := client.ListResolverRuleAssociationsPages(params,
5072//        func(page *route53resolver.ListResolverRuleAssociationsOutput, lastPage bool) bool {
5073//            pageNum++
5074//            fmt.Println(page)
5075//            return pageNum <= 3
5076//        })
5077//
5078func (c *Route53Resolver) ListResolverRuleAssociationsPages(input *ListResolverRuleAssociationsInput, fn func(*ListResolverRuleAssociationsOutput, bool) bool) error {
5079	return c.ListResolverRuleAssociationsPagesWithContext(aws.BackgroundContext(), input, fn)
5080}
5081
5082// ListResolverRuleAssociationsPagesWithContext same as ListResolverRuleAssociationsPages except
5083// it takes a Context and allows setting request options on the pages.
5084//
5085// The context must be non-nil and will be used for request cancellation. If
5086// the context is nil a panic will occur. In the future the SDK may create
5087// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5088// for more information on using Contexts.
5089func (c *Route53Resolver) ListResolverRuleAssociationsPagesWithContext(ctx aws.Context, input *ListResolverRuleAssociationsInput, fn func(*ListResolverRuleAssociationsOutput, bool) bool, opts ...request.Option) error {
5090	p := request.Pagination{
5091		NewRequest: func() (*request.Request, error) {
5092			var inCpy *ListResolverRuleAssociationsInput
5093			if input != nil {
5094				tmp := *input
5095				inCpy = &tmp
5096			}
5097			req, _ := c.ListResolverRuleAssociationsRequest(inCpy)
5098			req.SetContext(ctx)
5099			req.ApplyOptions(opts...)
5100			return req, nil
5101		},
5102	}
5103
5104	for p.Next() {
5105		if !fn(p.Page().(*ListResolverRuleAssociationsOutput), !p.HasNextPage()) {
5106			break
5107		}
5108	}
5109
5110	return p.Err()
5111}
5112
5113const opListResolverRules = "ListResolverRules"
5114
5115// ListResolverRulesRequest generates a "aws/request.Request" representing the
5116// client's request for the ListResolverRules operation. The "output" return
5117// value will be populated with the request's response once the request completes
5118// successfully.
5119//
5120// Use "Send" method on the returned Request to send the API call to the service.
5121// the "output" return value is not valid until after Send returns without error.
5122//
5123// See ListResolverRules for more information on using the ListResolverRules
5124// API call, and error handling.
5125//
5126// This method is useful when you want to inject custom logic or configuration
5127// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5128//
5129//
5130//    // Example sending a request using the ListResolverRulesRequest method.
5131//    req, resp := client.ListResolverRulesRequest(params)
5132//
5133//    err := req.Send()
5134//    if err == nil { // resp is now filled
5135//        fmt.Println(resp)
5136//    }
5137//
5138// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListResolverRules
5139func (c *Route53Resolver) ListResolverRulesRequest(input *ListResolverRulesInput) (req *request.Request, output *ListResolverRulesOutput) {
5140	op := &request.Operation{
5141		Name:       opListResolverRules,
5142		HTTPMethod: "POST",
5143		HTTPPath:   "/",
5144		Paginator: &request.Paginator{
5145			InputTokens:     []string{"NextToken"},
5146			OutputTokens:    []string{"NextToken"},
5147			LimitToken:      "MaxResults",
5148			TruncationToken: "",
5149		},
5150	}
5151
5152	if input == nil {
5153		input = &ListResolverRulesInput{}
5154	}
5155
5156	output = &ListResolverRulesOutput{}
5157	req = c.newRequest(op, input, output)
5158	return
5159}
5160
5161// ListResolverRules API operation for Amazon Route 53 Resolver.
5162//
5163// Lists the Resolver rules that were created using the current Amazon Web Services
5164// account.
5165//
5166// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5167// with awserr.Error's Code and Message methods to get detailed information about
5168// the error.
5169//
5170// See the AWS API reference guide for Amazon Route 53 Resolver's
5171// API operation ListResolverRules for usage and error information.
5172//
5173// Returned Error Types:
5174//   * InvalidNextTokenException
5175//   The value that you specified for NextToken in a List request isn't valid.
5176//
5177//   * InvalidRequestException
5178//   The request is invalid.
5179//
5180//   * InvalidParameterException
5181//   One or more parameters in this request are not valid.
5182//
5183//   * InternalServiceErrorException
5184//   We encountered an unknown error. Try again in a few minutes.
5185//
5186//   * ThrottlingException
5187//   The request was throttled. Try again in a few minutes.
5188//
5189// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListResolverRules
5190func (c *Route53Resolver) ListResolverRules(input *ListResolverRulesInput) (*ListResolverRulesOutput, error) {
5191	req, out := c.ListResolverRulesRequest(input)
5192	return out, req.Send()
5193}
5194
5195// ListResolverRulesWithContext is the same as ListResolverRules with the addition of
5196// the ability to pass a context and additional request options.
5197//
5198// See ListResolverRules for details on how to use this API operation.
5199//
5200// The context must be non-nil and will be used for request cancellation. If
5201// the context is nil a panic will occur. In the future the SDK may create
5202// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5203// for more information on using Contexts.
5204func (c *Route53Resolver) ListResolverRulesWithContext(ctx aws.Context, input *ListResolverRulesInput, opts ...request.Option) (*ListResolverRulesOutput, error) {
5205	req, out := c.ListResolverRulesRequest(input)
5206	req.SetContext(ctx)
5207	req.ApplyOptions(opts...)
5208	return out, req.Send()
5209}
5210
5211// ListResolverRulesPages iterates over the pages of a ListResolverRules operation,
5212// calling the "fn" function with the response data for each page. To stop
5213// iterating, return false from the fn function.
5214//
5215// See ListResolverRules method for more information on how to use this operation.
5216//
5217// Note: This operation can generate multiple requests to a service.
5218//
5219//    // Example iterating over at most 3 pages of a ListResolverRules operation.
5220//    pageNum := 0
5221//    err := client.ListResolverRulesPages(params,
5222//        func(page *route53resolver.ListResolverRulesOutput, lastPage bool) bool {
5223//            pageNum++
5224//            fmt.Println(page)
5225//            return pageNum <= 3
5226//        })
5227//
5228func (c *Route53Resolver) ListResolverRulesPages(input *ListResolverRulesInput, fn func(*ListResolverRulesOutput, bool) bool) error {
5229	return c.ListResolverRulesPagesWithContext(aws.BackgroundContext(), input, fn)
5230}
5231
5232// ListResolverRulesPagesWithContext same as ListResolverRulesPages except
5233// it takes a Context and allows setting request options on the pages.
5234//
5235// The context must be non-nil and will be used for request cancellation. If
5236// the context is nil a panic will occur. In the future the SDK may create
5237// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5238// for more information on using Contexts.
5239func (c *Route53Resolver) ListResolverRulesPagesWithContext(ctx aws.Context, input *ListResolverRulesInput, fn func(*ListResolverRulesOutput, bool) bool, opts ...request.Option) error {
5240	p := request.Pagination{
5241		NewRequest: func() (*request.Request, error) {
5242			var inCpy *ListResolverRulesInput
5243			if input != nil {
5244				tmp := *input
5245				inCpy = &tmp
5246			}
5247			req, _ := c.ListResolverRulesRequest(inCpy)
5248			req.SetContext(ctx)
5249			req.ApplyOptions(opts...)
5250			return req, nil
5251		},
5252	}
5253
5254	for p.Next() {
5255		if !fn(p.Page().(*ListResolverRulesOutput), !p.HasNextPage()) {
5256			break
5257		}
5258	}
5259
5260	return p.Err()
5261}
5262
5263const opListTagsForResource = "ListTagsForResource"
5264
5265// ListTagsForResourceRequest generates a "aws/request.Request" representing the
5266// client's request for the ListTagsForResource operation. The "output" return
5267// value will be populated with the request's response once the request completes
5268// successfully.
5269//
5270// Use "Send" method on the returned Request to send the API call to the service.
5271// the "output" return value is not valid until after Send returns without error.
5272//
5273// See ListTagsForResource for more information on using the ListTagsForResource
5274// API call, and error handling.
5275//
5276// This method is useful when you want to inject custom logic or configuration
5277// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5278//
5279//
5280//    // Example sending a request using the ListTagsForResourceRequest method.
5281//    req, resp := client.ListTagsForResourceRequest(params)
5282//
5283//    err := req.Send()
5284//    if err == nil { // resp is now filled
5285//        fmt.Println(resp)
5286//    }
5287//
5288// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListTagsForResource
5289func (c *Route53Resolver) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
5290	op := &request.Operation{
5291		Name:       opListTagsForResource,
5292		HTTPMethod: "POST",
5293		HTTPPath:   "/",
5294		Paginator: &request.Paginator{
5295			InputTokens:     []string{"NextToken"},
5296			OutputTokens:    []string{"NextToken"},
5297			LimitToken:      "MaxResults",
5298			TruncationToken: "",
5299		},
5300	}
5301
5302	if input == nil {
5303		input = &ListTagsForResourceInput{}
5304	}
5305
5306	output = &ListTagsForResourceOutput{}
5307	req = c.newRequest(op, input, output)
5308	return
5309}
5310
5311// ListTagsForResource API operation for Amazon Route 53 Resolver.
5312//
5313// Lists the tags that you associated with the specified resource.
5314//
5315// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5316// with awserr.Error's Code and Message methods to get detailed information about
5317// the error.
5318//
5319// See the AWS API reference guide for Amazon Route 53 Resolver's
5320// API operation ListTagsForResource for usage and error information.
5321//
5322// Returned Error Types:
5323//   * ResourceNotFoundException
5324//   The specified resource doesn't exist.
5325//
5326//   * InvalidParameterException
5327//   One or more parameters in this request are not valid.
5328//
5329//   * InvalidNextTokenException
5330//   The value that you specified for NextToken in a List request isn't valid.
5331//
5332//   * InvalidRequestException
5333//   The request is invalid.
5334//
5335//   * InternalServiceErrorException
5336//   We encountered an unknown error. Try again in a few minutes.
5337//
5338//   * ThrottlingException
5339//   The request was throttled. Try again in a few minutes.
5340//
5341// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListTagsForResource
5342func (c *Route53Resolver) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
5343	req, out := c.ListTagsForResourceRequest(input)
5344	return out, req.Send()
5345}
5346
5347// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
5348// the ability to pass a context and additional request options.
5349//
5350// See ListTagsForResource for details on how to use this API operation.
5351//
5352// The context must be non-nil and will be used for request cancellation. If
5353// the context is nil a panic will occur. In the future the SDK may create
5354// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5355// for more information on using Contexts.
5356func (c *Route53Resolver) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
5357	req, out := c.ListTagsForResourceRequest(input)
5358	req.SetContext(ctx)
5359	req.ApplyOptions(opts...)
5360	return out, req.Send()
5361}
5362
5363// ListTagsForResourcePages iterates over the pages of a ListTagsForResource operation,
5364// calling the "fn" function with the response data for each page. To stop
5365// iterating, return false from the fn function.
5366//
5367// See ListTagsForResource method for more information on how to use this operation.
5368//
5369// Note: This operation can generate multiple requests to a service.
5370//
5371//    // Example iterating over at most 3 pages of a ListTagsForResource operation.
5372//    pageNum := 0
5373//    err := client.ListTagsForResourcePages(params,
5374//        func(page *route53resolver.ListTagsForResourceOutput, lastPage bool) bool {
5375//            pageNum++
5376//            fmt.Println(page)
5377//            return pageNum <= 3
5378//        })
5379//
5380func (c *Route53Resolver) ListTagsForResourcePages(input *ListTagsForResourceInput, fn func(*ListTagsForResourceOutput, bool) bool) error {
5381	return c.ListTagsForResourcePagesWithContext(aws.BackgroundContext(), input, fn)
5382}
5383
5384// ListTagsForResourcePagesWithContext same as ListTagsForResourcePages except
5385// it takes a Context and allows setting request options on the pages.
5386//
5387// The context must be non-nil and will be used for request cancellation. If
5388// the context is nil a panic will occur. In the future the SDK may create
5389// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5390// for more information on using Contexts.
5391func (c *Route53Resolver) ListTagsForResourcePagesWithContext(ctx aws.Context, input *ListTagsForResourceInput, fn func(*ListTagsForResourceOutput, bool) bool, opts ...request.Option) error {
5392	p := request.Pagination{
5393		NewRequest: func() (*request.Request, error) {
5394			var inCpy *ListTagsForResourceInput
5395			if input != nil {
5396				tmp := *input
5397				inCpy = &tmp
5398			}
5399			req, _ := c.ListTagsForResourceRequest(inCpy)
5400			req.SetContext(ctx)
5401			req.ApplyOptions(opts...)
5402			return req, nil
5403		},
5404	}
5405
5406	for p.Next() {
5407		if !fn(p.Page().(*ListTagsForResourceOutput), !p.HasNextPage()) {
5408			break
5409		}
5410	}
5411
5412	return p.Err()
5413}
5414
5415const opPutFirewallRuleGroupPolicy = "PutFirewallRuleGroupPolicy"
5416
5417// PutFirewallRuleGroupPolicyRequest generates a "aws/request.Request" representing the
5418// client's request for the PutFirewallRuleGroupPolicy operation. The "output" return
5419// value will be populated with the request's response once the request completes
5420// successfully.
5421//
5422// Use "Send" method on the returned Request to send the API call to the service.
5423// the "output" return value is not valid until after Send returns without error.
5424//
5425// See PutFirewallRuleGroupPolicy for more information on using the PutFirewallRuleGroupPolicy
5426// API call, and error handling.
5427//
5428// This method is useful when you want to inject custom logic or configuration
5429// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5430//
5431//
5432//    // Example sending a request using the PutFirewallRuleGroupPolicyRequest method.
5433//    req, resp := client.PutFirewallRuleGroupPolicyRequest(params)
5434//
5435//    err := req.Send()
5436//    if err == nil { // resp is now filled
5437//        fmt.Println(resp)
5438//    }
5439//
5440// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/PutFirewallRuleGroupPolicy
5441func (c *Route53Resolver) PutFirewallRuleGroupPolicyRequest(input *PutFirewallRuleGroupPolicyInput) (req *request.Request, output *PutFirewallRuleGroupPolicyOutput) {
5442	op := &request.Operation{
5443		Name:       opPutFirewallRuleGroupPolicy,
5444		HTTPMethod: "POST",
5445		HTTPPath:   "/",
5446	}
5447
5448	if input == nil {
5449		input = &PutFirewallRuleGroupPolicyInput{}
5450	}
5451
5452	output = &PutFirewallRuleGroupPolicyOutput{}
5453	req = c.newRequest(op, input, output)
5454	return
5455}
5456
5457// PutFirewallRuleGroupPolicy API operation for Amazon Route 53 Resolver.
5458//
5459// Attaches an Identity and Access Management (Amazon Web Services IAM) policy
5460// for sharing the rule group. You can use the policy to share the rule group
5461// using Resource Access Manager (RAM).
5462//
5463// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5464// with awserr.Error's Code and Message methods to get detailed information about
5465// the error.
5466//
5467// See the AWS API reference guide for Amazon Route 53 Resolver's
5468// API operation PutFirewallRuleGroupPolicy for usage and error information.
5469//
5470// Returned Error Types:
5471//   * ValidationException
5472//
5473//   * ResourceNotFoundException
5474//   The specified resource doesn't exist.
5475//
5476//   * AccessDeniedException
5477//   The current account doesn't have the IAM permissions required to perform
5478//   the specified Resolver operation.
5479//
5480//   * InternalServiceErrorException
5481//   We encountered an unknown error. Try again in a few minutes.
5482//
5483//   * ThrottlingException
5484//   The request was throttled. Try again in a few minutes.
5485//
5486// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/PutFirewallRuleGroupPolicy
5487func (c *Route53Resolver) PutFirewallRuleGroupPolicy(input *PutFirewallRuleGroupPolicyInput) (*PutFirewallRuleGroupPolicyOutput, error) {
5488	req, out := c.PutFirewallRuleGroupPolicyRequest(input)
5489	return out, req.Send()
5490}
5491
5492// PutFirewallRuleGroupPolicyWithContext is the same as PutFirewallRuleGroupPolicy with the addition of
5493// the ability to pass a context and additional request options.
5494//
5495// See PutFirewallRuleGroupPolicy for details on how to use this API operation.
5496//
5497// The context must be non-nil and will be used for request cancellation. If
5498// the context is nil a panic will occur. In the future the SDK may create
5499// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5500// for more information on using Contexts.
5501func (c *Route53Resolver) PutFirewallRuleGroupPolicyWithContext(ctx aws.Context, input *PutFirewallRuleGroupPolicyInput, opts ...request.Option) (*PutFirewallRuleGroupPolicyOutput, error) {
5502	req, out := c.PutFirewallRuleGroupPolicyRequest(input)
5503	req.SetContext(ctx)
5504	req.ApplyOptions(opts...)
5505	return out, req.Send()
5506}
5507
5508const opPutResolverQueryLogConfigPolicy = "PutResolverQueryLogConfigPolicy"
5509
5510// PutResolverQueryLogConfigPolicyRequest generates a "aws/request.Request" representing the
5511// client's request for the PutResolverQueryLogConfigPolicy operation. The "output" return
5512// value will be populated with the request's response once the request completes
5513// successfully.
5514//
5515// Use "Send" method on the returned Request to send the API call to the service.
5516// the "output" return value is not valid until after Send returns without error.
5517//
5518// See PutResolverQueryLogConfigPolicy for more information on using the PutResolverQueryLogConfigPolicy
5519// API call, and error handling.
5520//
5521// This method is useful when you want to inject custom logic or configuration
5522// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5523//
5524//
5525//    // Example sending a request using the PutResolverQueryLogConfigPolicyRequest method.
5526//    req, resp := client.PutResolverQueryLogConfigPolicyRequest(params)
5527//
5528//    err := req.Send()
5529//    if err == nil { // resp is now filled
5530//        fmt.Println(resp)
5531//    }
5532//
5533// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/PutResolverQueryLogConfigPolicy
5534func (c *Route53Resolver) PutResolverQueryLogConfigPolicyRequest(input *PutResolverQueryLogConfigPolicyInput) (req *request.Request, output *PutResolverQueryLogConfigPolicyOutput) {
5535	op := &request.Operation{
5536		Name:       opPutResolverQueryLogConfigPolicy,
5537		HTTPMethod: "POST",
5538		HTTPPath:   "/",
5539	}
5540
5541	if input == nil {
5542		input = &PutResolverQueryLogConfigPolicyInput{}
5543	}
5544
5545	output = &PutResolverQueryLogConfigPolicyOutput{}
5546	req = c.newRequest(op, input, output)
5547	return
5548}
5549
5550// PutResolverQueryLogConfigPolicy API operation for Amazon Route 53 Resolver.
5551//
5552// Specifies an Amazon Web Services account that you want to share a query logging
5553// configuration with, the query logging configuration that you want to share,
5554// and the operations that you want the account to be able to perform on the
5555// configuration.
5556//
5557// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5558// with awserr.Error's Code and Message methods to get detailed information about
5559// the error.
5560//
5561// See the AWS API reference guide for Amazon Route 53 Resolver's
5562// API operation PutResolverQueryLogConfigPolicy for usage and error information.
5563//
5564// Returned Error Types:
5565//   * InvalidPolicyDocument
5566//   The specified Resolver rule policy is invalid.
5567//
5568//   * InvalidParameterException
5569//   One or more parameters in this request are not valid.
5570//
5571//   * InvalidRequestException
5572//   The request is invalid.
5573//
5574//   * UnknownResourceException
5575//   The specified resource doesn't exist.
5576//
5577//   * InternalServiceErrorException
5578//   We encountered an unknown error. Try again in a few minutes.
5579//
5580//   * AccessDeniedException
5581//   The current account doesn't have the IAM permissions required to perform
5582//   the specified Resolver operation.
5583//
5584// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/PutResolverQueryLogConfigPolicy
5585func (c *Route53Resolver) PutResolverQueryLogConfigPolicy(input *PutResolverQueryLogConfigPolicyInput) (*PutResolverQueryLogConfigPolicyOutput, error) {
5586	req, out := c.PutResolverQueryLogConfigPolicyRequest(input)
5587	return out, req.Send()
5588}
5589
5590// PutResolverQueryLogConfigPolicyWithContext is the same as PutResolverQueryLogConfigPolicy with the addition of
5591// the ability to pass a context and additional request options.
5592//
5593// See PutResolverQueryLogConfigPolicy for details on how to use this API operation.
5594//
5595// The context must be non-nil and will be used for request cancellation. If
5596// the context is nil a panic will occur. In the future the SDK may create
5597// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5598// for more information on using Contexts.
5599func (c *Route53Resolver) PutResolverQueryLogConfigPolicyWithContext(ctx aws.Context, input *PutResolverQueryLogConfigPolicyInput, opts ...request.Option) (*PutResolverQueryLogConfigPolicyOutput, error) {
5600	req, out := c.PutResolverQueryLogConfigPolicyRequest(input)
5601	req.SetContext(ctx)
5602	req.ApplyOptions(opts...)
5603	return out, req.Send()
5604}
5605
5606const opPutResolverRulePolicy = "PutResolverRulePolicy"
5607
5608// PutResolverRulePolicyRequest generates a "aws/request.Request" representing the
5609// client's request for the PutResolverRulePolicy operation. The "output" return
5610// value will be populated with the request's response once the request completes
5611// successfully.
5612//
5613// Use "Send" method on the returned Request to send the API call to the service.
5614// the "output" return value is not valid until after Send returns without error.
5615//
5616// See PutResolverRulePolicy for more information on using the PutResolverRulePolicy
5617// API call, and error handling.
5618//
5619// This method is useful when you want to inject custom logic or configuration
5620// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5621//
5622//
5623//    // Example sending a request using the PutResolverRulePolicyRequest method.
5624//    req, resp := client.PutResolverRulePolicyRequest(params)
5625//
5626//    err := req.Send()
5627//    if err == nil { // resp is now filled
5628//        fmt.Println(resp)
5629//    }
5630//
5631// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/PutResolverRulePolicy
5632func (c *Route53Resolver) PutResolverRulePolicyRequest(input *PutResolverRulePolicyInput) (req *request.Request, output *PutResolverRulePolicyOutput) {
5633	op := &request.Operation{
5634		Name:       opPutResolverRulePolicy,
5635		HTTPMethod: "POST",
5636		HTTPPath:   "/",
5637	}
5638
5639	if input == nil {
5640		input = &PutResolverRulePolicyInput{}
5641	}
5642
5643	output = &PutResolverRulePolicyOutput{}
5644	req = c.newRequest(op, input, output)
5645	return
5646}
5647
5648// PutResolverRulePolicy API operation for Amazon Route 53 Resolver.
5649//
5650// Specifies an Amazon Web Services rule that you want to share with another
5651// account, the account that you want to share the rule with, and the operations
5652// that you want the account to be able to perform on the rule.
5653//
5654// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5655// with awserr.Error's Code and Message methods to get detailed information about
5656// the error.
5657//
5658// See the AWS API reference guide for Amazon Route 53 Resolver's
5659// API operation PutResolverRulePolicy for usage and error information.
5660//
5661// Returned Error Types:
5662//   * InvalidPolicyDocument
5663//   The specified Resolver rule policy is invalid.
5664//
5665//   * InvalidParameterException
5666//   One or more parameters in this request are not valid.
5667//
5668//   * UnknownResourceException
5669//   The specified resource doesn't exist.
5670//
5671//   * InternalServiceErrorException
5672//   We encountered an unknown error. Try again in a few minutes.
5673//
5674// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/PutResolverRulePolicy
5675func (c *Route53Resolver) PutResolverRulePolicy(input *PutResolverRulePolicyInput) (*PutResolverRulePolicyOutput, error) {
5676	req, out := c.PutResolverRulePolicyRequest(input)
5677	return out, req.Send()
5678}
5679
5680// PutResolverRulePolicyWithContext is the same as PutResolverRulePolicy with the addition of
5681// the ability to pass a context and additional request options.
5682//
5683// See PutResolverRulePolicy for details on how to use this API operation.
5684//
5685// The context must be non-nil and will be used for request cancellation. If
5686// the context is nil a panic will occur. In the future the SDK may create
5687// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5688// for more information on using Contexts.
5689func (c *Route53Resolver) PutResolverRulePolicyWithContext(ctx aws.Context, input *PutResolverRulePolicyInput, opts ...request.Option) (*PutResolverRulePolicyOutput, error) {
5690	req, out := c.PutResolverRulePolicyRequest(input)
5691	req.SetContext(ctx)
5692	req.ApplyOptions(opts...)
5693	return out, req.Send()
5694}
5695
5696const opTagResource = "TagResource"
5697
5698// TagResourceRequest generates a "aws/request.Request" representing the
5699// client's request for the TagResource operation. The "output" return
5700// value will be populated with the request's response once the request completes
5701// successfully.
5702//
5703// Use "Send" method on the returned Request to send the API call to the service.
5704// the "output" return value is not valid until after Send returns without error.
5705//
5706// See TagResource for more information on using the TagResource
5707// API call, and error handling.
5708//
5709// This method is useful when you want to inject custom logic or configuration
5710// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5711//
5712//
5713//    // Example sending a request using the TagResourceRequest method.
5714//    req, resp := client.TagResourceRequest(params)
5715//
5716//    err := req.Send()
5717//    if err == nil { // resp is now filled
5718//        fmt.Println(resp)
5719//    }
5720//
5721// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/TagResource
5722func (c *Route53Resolver) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
5723	op := &request.Operation{
5724		Name:       opTagResource,
5725		HTTPMethod: "POST",
5726		HTTPPath:   "/",
5727	}
5728
5729	if input == nil {
5730		input = &TagResourceInput{}
5731	}
5732
5733	output = &TagResourceOutput{}
5734	req = c.newRequest(op, input, output)
5735	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5736	return
5737}
5738
5739// TagResource API operation for Amazon Route 53 Resolver.
5740//
5741// Adds one or more tags to a specified resource.
5742//
5743// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5744// with awserr.Error's Code and Message methods to get detailed information about
5745// the error.
5746//
5747// See the AWS API reference guide for Amazon Route 53 Resolver's
5748// API operation TagResource for usage and error information.
5749//
5750// Returned Error Types:
5751//   * LimitExceededException
5752//   The request caused one or more limits to be exceeded.
5753//
5754//   * ResourceNotFoundException
5755//   The specified resource doesn't exist.
5756//
5757//   * InvalidParameterException
5758//   One or more parameters in this request are not valid.
5759//
5760//   * InvalidRequestException
5761//   The request is invalid.
5762//
5763//   * InvalidTagException
5764//   The specified tag is invalid.
5765//
5766//   * InternalServiceErrorException
5767//   We encountered an unknown error. Try again in a few minutes.
5768//
5769//   * ThrottlingException
5770//   The request was throttled. Try again in a few minutes.
5771//
5772// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/TagResource
5773func (c *Route53Resolver) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
5774	req, out := c.TagResourceRequest(input)
5775	return out, req.Send()
5776}
5777
5778// TagResourceWithContext is the same as TagResource with the addition of
5779// the ability to pass a context and additional request options.
5780//
5781// See TagResource for details on how to use this API operation.
5782//
5783// The context must be non-nil and will be used for request cancellation. If
5784// the context is nil a panic will occur. In the future the SDK may create
5785// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5786// for more information on using Contexts.
5787func (c *Route53Resolver) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
5788	req, out := c.TagResourceRequest(input)
5789	req.SetContext(ctx)
5790	req.ApplyOptions(opts...)
5791	return out, req.Send()
5792}
5793
5794const opUntagResource = "UntagResource"
5795
5796// UntagResourceRequest generates a "aws/request.Request" representing the
5797// client's request for the UntagResource operation. The "output" return
5798// value will be populated with the request's response once the request completes
5799// successfully.
5800//
5801// Use "Send" method on the returned Request to send the API call to the service.
5802// the "output" return value is not valid until after Send returns without error.
5803//
5804// See UntagResource for more information on using the UntagResource
5805// API call, and error handling.
5806//
5807// This method is useful when you want to inject custom logic or configuration
5808// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5809//
5810//
5811//    // Example sending a request using the UntagResourceRequest method.
5812//    req, resp := client.UntagResourceRequest(params)
5813//
5814//    err := req.Send()
5815//    if err == nil { // resp is now filled
5816//        fmt.Println(resp)
5817//    }
5818//
5819// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UntagResource
5820func (c *Route53Resolver) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
5821	op := &request.Operation{
5822		Name:       opUntagResource,
5823		HTTPMethod: "POST",
5824		HTTPPath:   "/",
5825	}
5826
5827	if input == nil {
5828		input = &UntagResourceInput{}
5829	}
5830
5831	output = &UntagResourceOutput{}
5832	req = c.newRequest(op, input, output)
5833	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5834	return
5835}
5836
5837// UntagResource API operation for Amazon Route 53 Resolver.
5838//
5839// Removes one or more tags from a specified resource.
5840//
5841// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5842// with awserr.Error's Code and Message methods to get detailed information about
5843// the error.
5844//
5845// See the AWS API reference guide for Amazon Route 53 Resolver's
5846// API operation UntagResource for usage and error information.
5847//
5848// Returned Error Types:
5849//   * ResourceNotFoundException
5850//   The specified resource doesn't exist.
5851//
5852//   * InvalidParameterException
5853//   One or more parameters in this request are not valid.
5854//
5855//   * InvalidRequestException
5856//   The request is invalid.
5857//
5858//   * InternalServiceErrorException
5859//   We encountered an unknown error. Try again in a few minutes.
5860//
5861//   * ThrottlingException
5862//   The request was throttled. Try again in a few minutes.
5863//
5864// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UntagResource
5865func (c *Route53Resolver) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
5866	req, out := c.UntagResourceRequest(input)
5867	return out, req.Send()
5868}
5869
5870// UntagResourceWithContext is the same as UntagResource with the addition of
5871// the ability to pass a context and additional request options.
5872//
5873// See UntagResource for details on how to use this API operation.
5874//
5875// The context must be non-nil and will be used for request cancellation. If
5876// the context is nil a panic will occur. In the future the SDK may create
5877// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5878// for more information on using Contexts.
5879func (c *Route53Resolver) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
5880	req, out := c.UntagResourceRequest(input)
5881	req.SetContext(ctx)
5882	req.ApplyOptions(opts...)
5883	return out, req.Send()
5884}
5885
5886const opUpdateFirewallConfig = "UpdateFirewallConfig"
5887
5888// UpdateFirewallConfigRequest generates a "aws/request.Request" representing the
5889// client's request for the UpdateFirewallConfig operation. The "output" return
5890// value will be populated with the request's response once the request completes
5891// successfully.
5892//
5893// Use "Send" method on the returned Request to send the API call to the service.
5894// the "output" return value is not valid until after Send returns without error.
5895//
5896// See UpdateFirewallConfig for more information on using the UpdateFirewallConfig
5897// API call, and error handling.
5898//
5899// This method is useful when you want to inject custom logic or configuration
5900// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5901//
5902//
5903//    // Example sending a request using the UpdateFirewallConfigRequest method.
5904//    req, resp := client.UpdateFirewallConfigRequest(params)
5905//
5906//    err := req.Send()
5907//    if err == nil { // resp is now filled
5908//        fmt.Println(resp)
5909//    }
5910//
5911// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UpdateFirewallConfig
5912func (c *Route53Resolver) UpdateFirewallConfigRequest(input *UpdateFirewallConfigInput) (req *request.Request, output *UpdateFirewallConfigOutput) {
5913	op := &request.Operation{
5914		Name:       opUpdateFirewallConfig,
5915		HTTPMethod: "POST",
5916		HTTPPath:   "/",
5917	}
5918
5919	if input == nil {
5920		input = &UpdateFirewallConfigInput{}
5921	}
5922
5923	output = &UpdateFirewallConfigOutput{}
5924	req = c.newRequest(op, input, output)
5925	return
5926}
5927
5928// UpdateFirewallConfig API operation for Amazon Route 53 Resolver.
5929//
5930// Updates the configuration of the firewall behavior provided by DNS Firewall
5931// for a single VPC from Amazon Virtual Private Cloud (Amazon VPC).
5932//
5933// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5934// with awserr.Error's Code and Message methods to get detailed information about
5935// the error.
5936//
5937// See the AWS API reference guide for Amazon Route 53 Resolver's
5938// API operation UpdateFirewallConfig for usage and error information.
5939//
5940// Returned Error Types:
5941//   * ValidationException
5942//
5943//   * ResourceNotFoundException
5944//   The specified resource doesn't exist.
5945//
5946//   * AccessDeniedException
5947//   The current account doesn't have the IAM permissions required to perform
5948//   the specified Resolver operation.
5949//
5950//   * InternalServiceErrorException
5951//   We encountered an unknown error. Try again in a few minutes.
5952//
5953//   * ThrottlingException
5954//   The request was throttled. Try again in a few minutes.
5955//
5956// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UpdateFirewallConfig
5957func (c *Route53Resolver) UpdateFirewallConfig(input *UpdateFirewallConfigInput) (*UpdateFirewallConfigOutput, error) {
5958	req, out := c.UpdateFirewallConfigRequest(input)
5959	return out, req.Send()
5960}
5961
5962// UpdateFirewallConfigWithContext is the same as UpdateFirewallConfig with the addition of
5963// the ability to pass a context and additional request options.
5964//
5965// See UpdateFirewallConfig for details on how to use this API operation.
5966//
5967// The context must be non-nil and will be used for request cancellation. If
5968// the context is nil a panic will occur. In the future the SDK may create
5969// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5970// for more information on using Contexts.
5971func (c *Route53Resolver) UpdateFirewallConfigWithContext(ctx aws.Context, input *UpdateFirewallConfigInput, opts ...request.Option) (*UpdateFirewallConfigOutput, error) {
5972	req, out := c.UpdateFirewallConfigRequest(input)
5973	req.SetContext(ctx)
5974	req.ApplyOptions(opts...)
5975	return out, req.Send()
5976}
5977
5978const opUpdateFirewallDomains = "UpdateFirewallDomains"
5979
5980// UpdateFirewallDomainsRequest generates a "aws/request.Request" representing the
5981// client's request for the UpdateFirewallDomains operation. The "output" return
5982// value will be populated with the request's response once the request completes
5983// successfully.
5984//
5985// Use "Send" method on the returned Request to send the API call to the service.
5986// the "output" return value is not valid until after Send returns without error.
5987//
5988// See UpdateFirewallDomains for more information on using the UpdateFirewallDomains
5989// API call, and error handling.
5990//
5991// This method is useful when you want to inject custom logic or configuration
5992// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5993//
5994//
5995//    // Example sending a request using the UpdateFirewallDomainsRequest method.
5996//    req, resp := client.UpdateFirewallDomainsRequest(params)
5997//
5998//    err := req.Send()
5999//    if err == nil { // resp is now filled
6000//        fmt.Println(resp)
6001//    }
6002//
6003// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UpdateFirewallDomains
6004func (c *Route53Resolver) UpdateFirewallDomainsRequest(input *UpdateFirewallDomainsInput) (req *request.Request, output *UpdateFirewallDomainsOutput) {
6005	op := &request.Operation{
6006		Name:       opUpdateFirewallDomains,
6007		HTTPMethod: "POST",
6008		HTTPPath:   "/",
6009	}
6010
6011	if input == nil {
6012		input = &UpdateFirewallDomainsInput{}
6013	}
6014
6015	output = &UpdateFirewallDomainsOutput{}
6016	req = c.newRequest(op, input, output)
6017	return
6018}
6019
6020// UpdateFirewallDomains API operation for Amazon Route 53 Resolver.
6021//
6022// Updates the firewall domain list from an array of domain specifications.
6023//
6024// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6025// with awserr.Error's Code and Message methods to get detailed information about
6026// the error.
6027//
6028// See the AWS API reference guide for Amazon Route 53 Resolver's
6029// API operation UpdateFirewallDomains for usage and error information.
6030//
6031// Returned Error Types:
6032//   * ValidationException
6033//
6034//   * AccessDeniedException
6035//   The current account doesn't have the IAM permissions required to perform
6036//   the specified Resolver operation.
6037//
6038//   * ResourceNotFoundException
6039//   The specified resource doesn't exist.
6040//
6041//   * LimitExceededException
6042//   The request caused one or more limits to be exceeded.
6043//
6044//   * ConflictException
6045//
6046//   * InternalServiceErrorException
6047//   We encountered an unknown error. Try again in a few minutes.
6048//
6049//   * ThrottlingException
6050//   The request was throttled. Try again in a few minutes.
6051//
6052// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UpdateFirewallDomains
6053func (c *Route53Resolver) UpdateFirewallDomains(input *UpdateFirewallDomainsInput) (*UpdateFirewallDomainsOutput, error) {
6054	req, out := c.UpdateFirewallDomainsRequest(input)
6055	return out, req.Send()
6056}
6057
6058// UpdateFirewallDomainsWithContext is the same as UpdateFirewallDomains with the addition of
6059// the ability to pass a context and additional request options.
6060//
6061// See UpdateFirewallDomains for details on how to use this API operation.
6062//
6063// The context must be non-nil and will be used for request cancellation. If
6064// the context is nil a panic will occur. In the future the SDK may create
6065// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6066// for more information on using Contexts.
6067func (c *Route53Resolver) UpdateFirewallDomainsWithContext(ctx aws.Context, input *UpdateFirewallDomainsInput, opts ...request.Option) (*UpdateFirewallDomainsOutput, error) {
6068	req, out := c.UpdateFirewallDomainsRequest(input)
6069	req.SetContext(ctx)
6070	req.ApplyOptions(opts...)
6071	return out, req.Send()
6072}
6073
6074const opUpdateFirewallRule = "UpdateFirewallRule"
6075
6076// UpdateFirewallRuleRequest generates a "aws/request.Request" representing the
6077// client's request for the UpdateFirewallRule operation. The "output" return
6078// value will be populated with the request's response once the request completes
6079// successfully.
6080//
6081// Use "Send" method on the returned Request to send the API call to the service.
6082// the "output" return value is not valid until after Send returns without error.
6083//
6084// See UpdateFirewallRule for more information on using the UpdateFirewallRule
6085// API call, and error handling.
6086//
6087// This method is useful when you want to inject custom logic or configuration
6088// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6089//
6090//
6091//    // Example sending a request using the UpdateFirewallRuleRequest method.
6092//    req, resp := client.UpdateFirewallRuleRequest(params)
6093//
6094//    err := req.Send()
6095//    if err == nil { // resp is now filled
6096//        fmt.Println(resp)
6097//    }
6098//
6099// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UpdateFirewallRule
6100func (c *Route53Resolver) UpdateFirewallRuleRequest(input *UpdateFirewallRuleInput) (req *request.Request, output *UpdateFirewallRuleOutput) {
6101	op := &request.Operation{
6102		Name:       opUpdateFirewallRule,
6103		HTTPMethod: "POST",
6104		HTTPPath:   "/",
6105	}
6106
6107	if input == nil {
6108		input = &UpdateFirewallRuleInput{}
6109	}
6110
6111	output = &UpdateFirewallRuleOutput{}
6112	req = c.newRequest(op, input, output)
6113	return
6114}
6115
6116// UpdateFirewallRule API operation for Amazon Route 53 Resolver.
6117//
6118// Updates the specified firewall rule.
6119//
6120// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6121// with awserr.Error's Code and Message methods to get detailed information about
6122// the error.
6123//
6124// See the AWS API reference guide for Amazon Route 53 Resolver's
6125// API operation UpdateFirewallRule for usage and error information.
6126//
6127// Returned Error Types:
6128//   * ResourceNotFoundException
6129//   The specified resource doesn't exist.
6130//
6131//   * ValidationException
6132//
6133//   * ConflictException
6134//
6135//   * AccessDeniedException
6136//   The current account doesn't have the IAM permissions required to perform
6137//   the specified Resolver operation.
6138//
6139//   * InternalServiceErrorException
6140//   We encountered an unknown error. Try again in a few minutes.
6141//
6142//   * ThrottlingException
6143//   The request was throttled. Try again in a few minutes.
6144//
6145// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UpdateFirewallRule
6146func (c *Route53Resolver) UpdateFirewallRule(input *UpdateFirewallRuleInput) (*UpdateFirewallRuleOutput, error) {
6147	req, out := c.UpdateFirewallRuleRequest(input)
6148	return out, req.Send()
6149}
6150
6151// UpdateFirewallRuleWithContext is the same as UpdateFirewallRule with the addition of
6152// the ability to pass a context and additional request options.
6153//
6154// See UpdateFirewallRule for details on how to use this API operation.
6155//
6156// The context must be non-nil and will be used for request cancellation. If
6157// the context is nil a panic will occur. In the future the SDK may create
6158// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6159// for more information on using Contexts.
6160func (c *Route53Resolver) UpdateFirewallRuleWithContext(ctx aws.Context, input *UpdateFirewallRuleInput, opts ...request.Option) (*UpdateFirewallRuleOutput, error) {
6161	req, out := c.UpdateFirewallRuleRequest(input)
6162	req.SetContext(ctx)
6163	req.ApplyOptions(opts...)
6164	return out, req.Send()
6165}
6166
6167const opUpdateFirewallRuleGroupAssociation = "UpdateFirewallRuleGroupAssociation"
6168
6169// UpdateFirewallRuleGroupAssociationRequest generates a "aws/request.Request" representing the
6170// client's request for the UpdateFirewallRuleGroupAssociation operation. The "output" return
6171// value will be populated with the request's response once the request completes
6172// successfully.
6173//
6174// Use "Send" method on the returned Request to send the API call to the service.
6175// the "output" return value is not valid until after Send returns without error.
6176//
6177// See UpdateFirewallRuleGroupAssociation for more information on using the UpdateFirewallRuleGroupAssociation
6178// API call, and error handling.
6179//
6180// This method is useful when you want to inject custom logic or configuration
6181// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6182//
6183//
6184//    // Example sending a request using the UpdateFirewallRuleGroupAssociationRequest method.
6185//    req, resp := client.UpdateFirewallRuleGroupAssociationRequest(params)
6186//
6187//    err := req.Send()
6188//    if err == nil { // resp is now filled
6189//        fmt.Println(resp)
6190//    }
6191//
6192// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UpdateFirewallRuleGroupAssociation
6193func (c *Route53Resolver) UpdateFirewallRuleGroupAssociationRequest(input *UpdateFirewallRuleGroupAssociationInput) (req *request.Request, output *UpdateFirewallRuleGroupAssociationOutput) {
6194	op := &request.Operation{
6195		Name:       opUpdateFirewallRuleGroupAssociation,
6196		HTTPMethod: "POST",
6197		HTTPPath:   "/",
6198	}
6199
6200	if input == nil {
6201		input = &UpdateFirewallRuleGroupAssociationInput{}
6202	}
6203
6204	output = &UpdateFirewallRuleGroupAssociationOutput{}
6205	req = c.newRequest(op, input, output)
6206	return
6207}
6208
6209// UpdateFirewallRuleGroupAssociation API operation for Amazon Route 53 Resolver.
6210//
6211// Changes the association of a FirewallRuleGroup with a VPC. The association
6212// enables DNS filtering for the VPC.
6213//
6214// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6215// with awserr.Error's Code and Message methods to get detailed information about
6216// the error.
6217//
6218// See the AWS API reference guide for Amazon Route 53 Resolver's
6219// API operation UpdateFirewallRuleGroupAssociation for usage and error information.
6220//
6221// Returned Error Types:
6222//   * ResourceNotFoundException
6223//   The specified resource doesn't exist.
6224//
6225//   * ValidationException
6226//
6227//   * ConflictException
6228//
6229//   * AccessDeniedException
6230//   The current account doesn't have the IAM permissions required to perform
6231//   the specified Resolver operation.
6232//
6233//   * InternalServiceErrorException
6234//   We encountered an unknown error. Try again in a few minutes.
6235//
6236//   * ThrottlingException
6237//   The request was throttled. Try again in a few minutes.
6238//
6239// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UpdateFirewallRuleGroupAssociation
6240func (c *Route53Resolver) UpdateFirewallRuleGroupAssociation(input *UpdateFirewallRuleGroupAssociationInput) (*UpdateFirewallRuleGroupAssociationOutput, error) {
6241	req, out := c.UpdateFirewallRuleGroupAssociationRequest(input)
6242	return out, req.Send()
6243}
6244
6245// UpdateFirewallRuleGroupAssociationWithContext is the same as UpdateFirewallRuleGroupAssociation with the addition of
6246// the ability to pass a context and additional request options.
6247//
6248// See UpdateFirewallRuleGroupAssociation for details on how to use this API operation.
6249//
6250// The context must be non-nil and will be used for request cancellation. If
6251// the context is nil a panic will occur. In the future the SDK may create
6252// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6253// for more information on using Contexts.
6254func (c *Route53Resolver) UpdateFirewallRuleGroupAssociationWithContext(ctx aws.Context, input *UpdateFirewallRuleGroupAssociationInput, opts ...request.Option) (*UpdateFirewallRuleGroupAssociationOutput, error) {
6255	req, out := c.UpdateFirewallRuleGroupAssociationRequest(input)
6256	req.SetContext(ctx)
6257	req.ApplyOptions(opts...)
6258	return out, req.Send()
6259}
6260
6261const opUpdateResolverDnssecConfig = "UpdateResolverDnssecConfig"
6262
6263// UpdateResolverDnssecConfigRequest generates a "aws/request.Request" representing the
6264// client's request for the UpdateResolverDnssecConfig operation. The "output" return
6265// value will be populated with the request's response once the request completes
6266// successfully.
6267//
6268// Use "Send" method on the returned Request to send the API call to the service.
6269// the "output" return value is not valid until after Send returns without error.
6270//
6271// See UpdateResolverDnssecConfig for more information on using the UpdateResolverDnssecConfig
6272// API call, and error handling.
6273//
6274// This method is useful when you want to inject custom logic or configuration
6275// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6276//
6277//
6278//    // Example sending a request using the UpdateResolverDnssecConfigRequest method.
6279//    req, resp := client.UpdateResolverDnssecConfigRequest(params)
6280//
6281//    err := req.Send()
6282//    if err == nil { // resp is now filled
6283//        fmt.Println(resp)
6284//    }
6285//
6286// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UpdateResolverDnssecConfig
6287func (c *Route53Resolver) UpdateResolverDnssecConfigRequest(input *UpdateResolverDnssecConfigInput) (req *request.Request, output *UpdateResolverDnssecConfigOutput) {
6288	op := &request.Operation{
6289		Name:       opUpdateResolverDnssecConfig,
6290		HTTPMethod: "POST",
6291		HTTPPath:   "/",
6292	}
6293
6294	if input == nil {
6295		input = &UpdateResolverDnssecConfigInput{}
6296	}
6297
6298	output = &UpdateResolverDnssecConfigOutput{}
6299	req = c.newRequest(op, input, output)
6300	return
6301}
6302
6303// UpdateResolverDnssecConfig API operation for Amazon Route 53 Resolver.
6304//
6305// Updates an existing DNSSEC validation configuration. If there is no existing
6306// DNSSEC validation configuration, one is created.
6307//
6308// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6309// with awserr.Error's Code and Message methods to get detailed information about
6310// the error.
6311//
6312// See the AWS API reference guide for Amazon Route 53 Resolver's
6313// API operation UpdateResolverDnssecConfig for usage and error information.
6314//
6315// Returned Error Types:
6316//   * InvalidParameterException
6317//   One or more parameters in this request are not valid.
6318//
6319//   * ResourceNotFoundException
6320//   The specified resource doesn't exist.
6321//
6322//   * InvalidRequestException
6323//   The request is invalid.
6324//
6325//   * InternalServiceErrorException
6326//   We encountered an unknown error. Try again in a few minutes.
6327//
6328//   * ThrottlingException
6329//   The request was throttled. Try again in a few minutes.
6330//
6331//   * AccessDeniedException
6332//   The current account doesn't have the IAM permissions required to perform
6333//   the specified Resolver operation.
6334//
6335// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UpdateResolverDnssecConfig
6336func (c *Route53Resolver) UpdateResolverDnssecConfig(input *UpdateResolverDnssecConfigInput) (*UpdateResolverDnssecConfigOutput, error) {
6337	req, out := c.UpdateResolverDnssecConfigRequest(input)
6338	return out, req.Send()
6339}
6340
6341// UpdateResolverDnssecConfigWithContext is the same as UpdateResolverDnssecConfig with the addition of
6342// the ability to pass a context and additional request options.
6343//
6344// See UpdateResolverDnssecConfig for details on how to use this API operation.
6345//
6346// The context must be non-nil and will be used for request cancellation. If
6347// the context is nil a panic will occur. In the future the SDK may create
6348// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6349// for more information on using Contexts.
6350func (c *Route53Resolver) UpdateResolverDnssecConfigWithContext(ctx aws.Context, input *UpdateResolverDnssecConfigInput, opts ...request.Option) (*UpdateResolverDnssecConfigOutput, error) {
6351	req, out := c.UpdateResolverDnssecConfigRequest(input)
6352	req.SetContext(ctx)
6353	req.ApplyOptions(opts...)
6354	return out, req.Send()
6355}
6356
6357const opUpdateResolverEndpoint = "UpdateResolverEndpoint"
6358
6359// UpdateResolverEndpointRequest generates a "aws/request.Request" representing the
6360// client's request for the UpdateResolverEndpoint operation. The "output" return
6361// value will be populated with the request's response once the request completes
6362// successfully.
6363//
6364// Use "Send" method on the returned Request to send the API call to the service.
6365// the "output" return value is not valid until after Send returns without error.
6366//
6367// See UpdateResolverEndpoint for more information on using the UpdateResolverEndpoint
6368// API call, and error handling.
6369//
6370// This method is useful when you want to inject custom logic or configuration
6371// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6372//
6373//
6374//    // Example sending a request using the UpdateResolverEndpointRequest method.
6375//    req, resp := client.UpdateResolverEndpointRequest(params)
6376//
6377//    err := req.Send()
6378//    if err == nil { // resp is now filled
6379//        fmt.Println(resp)
6380//    }
6381//
6382// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UpdateResolverEndpoint
6383func (c *Route53Resolver) UpdateResolverEndpointRequest(input *UpdateResolverEndpointInput) (req *request.Request, output *UpdateResolverEndpointOutput) {
6384	op := &request.Operation{
6385		Name:       opUpdateResolverEndpoint,
6386		HTTPMethod: "POST",
6387		HTTPPath:   "/",
6388	}
6389
6390	if input == nil {
6391		input = &UpdateResolverEndpointInput{}
6392	}
6393
6394	output = &UpdateResolverEndpointOutput{}
6395	req = c.newRequest(op, input, output)
6396	return
6397}
6398
6399// UpdateResolverEndpoint API operation for Amazon Route 53 Resolver.
6400//
6401// Updates the name of an inbound or an outbound Resolver endpoint.
6402//
6403// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6404// with awserr.Error's Code and Message methods to get detailed information about
6405// the error.
6406//
6407// See the AWS API reference guide for Amazon Route 53 Resolver's
6408// API operation UpdateResolverEndpoint for usage and error information.
6409//
6410// Returned Error Types:
6411//   * ResourceNotFoundException
6412//   The specified resource doesn't exist.
6413//
6414//   * InvalidParameterException
6415//   One or more parameters in this request are not valid.
6416//
6417//   * InvalidRequestException
6418//   The request is invalid.
6419//
6420//   * InternalServiceErrorException
6421//   We encountered an unknown error. Try again in a few minutes.
6422//
6423//   * ThrottlingException
6424//   The request was throttled. Try again in a few minutes.
6425//
6426// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UpdateResolverEndpoint
6427func (c *Route53Resolver) UpdateResolverEndpoint(input *UpdateResolverEndpointInput) (*UpdateResolverEndpointOutput, error) {
6428	req, out := c.UpdateResolverEndpointRequest(input)
6429	return out, req.Send()
6430}
6431
6432// UpdateResolverEndpointWithContext is the same as UpdateResolverEndpoint with the addition of
6433// the ability to pass a context and additional request options.
6434//
6435// See UpdateResolverEndpoint for details on how to use this API operation.
6436//
6437// The context must be non-nil and will be used for request cancellation. If
6438// the context is nil a panic will occur. In the future the SDK may create
6439// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6440// for more information on using Contexts.
6441func (c *Route53Resolver) UpdateResolverEndpointWithContext(ctx aws.Context, input *UpdateResolverEndpointInput, opts ...request.Option) (*UpdateResolverEndpointOutput, error) {
6442	req, out := c.UpdateResolverEndpointRequest(input)
6443	req.SetContext(ctx)
6444	req.ApplyOptions(opts...)
6445	return out, req.Send()
6446}
6447
6448const opUpdateResolverRule = "UpdateResolverRule"
6449
6450// UpdateResolverRuleRequest generates a "aws/request.Request" representing the
6451// client's request for the UpdateResolverRule operation. The "output" return
6452// value will be populated with the request's response once the request completes
6453// successfully.
6454//
6455// Use "Send" method on the returned Request to send the API call to the service.
6456// the "output" return value is not valid until after Send returns without error.
6457//
6458// See UpdateResolverRule for more information on using the UpdateResolverRule
6459// API call, and error handling.
6460//
6461// This method is useful when you want to inject custom logic or configuration
6462// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6463//
6464//
6465//    // Example sending a request using the UpdateResolverRuleRequest method.
6466//    req, resp := client.UpdateResolverRuleRequest(params)
6467//
6468//    err := req.Send()
6469//    if err == nil { // resp is now filled
6470//        fmt.Println(resp)
6471//    }
6472//
6473// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UpdateResolverRule
6474func (c *Route53Resolver) UpdateResolverRuleRequest(input *UpdateResolverRuleInput) (req *request.Request, output *UpdateResolverRuleOutput) {
6475	op := &request.Operation{
6476		Name:       opUpdateResolverRule,
6477		HTTPMethod: "POST",
6478		HTTPPath:   "/",
6479	}
6480
6481	if input == nil {
6482		input = &UpdateResolverRuleInput{}
6483	}
6484
6485	output = &UpdateResolverRuleOutput{}
6486	req = c.newRequest(op, input, output)
6487	return
6488}
6489
6490// UpdateResolverRule API operation for Amazon Route 53 Resolver.
6491//
6492// Updates settings for a specified Resolver rule. ResolverRuleId is required,
6493// and all other parameters are optional. If you don't specify a parameter,
6494// it retains its current value.
6495//
6496// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6497// with awserr.Error's Code and Message methods to get detailed information about
6498// the error.
6499//
6500// See the AWS API reference guide for Amazon Route 53 Resolver's
6501// API operation UpdateResolverRule for usage and error information.
6502//
6503// Returned Error Types:
6504//   * InvalidRequestException
6505//   The request is invalid.
6506//
6507//   * InvalidParameterException
6508//   One or more parameters in this request are not valid.
6509//
6510//   * ResourceNotFoundException
6511//   The specified resource doesn't exist.
6512//
6513//   * ResourceUnavailableException
6514//   The specified resource isn't available.
6515//
6516//   * LimitExceededException
6517//   The request caused one or more limits to be exceeded.
6518//
6519//   * InternalServiceErrorException
6520//   We encountered an unknown error. Try again in a few minutes.
6521//
6522//   * ThrottlingException
6523//   The request was throttled. Try again in a few minutes.
6524//
6525// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UpdateResolverRule
6526func (c *Route53Resolver) UpdateResolverRule(input *UpdateResolverRuleInput) (*UpdateResolverRuleOutput, error) {
6527	req, out := c.UpdateResolverRuleRequest(input)
6528	return out, req.Send()
6529}
6530
6531// UpdateResolverRuleWithContext is the same as UpdateResolverRule with the addition of
6532// the ability to pass a context and additional request options.
6533//
6534// See UpdateResolverRule for details on how to use this API operation.
6535//
6536// The context must be non-nil and will be used for request cancellation. If
6537// the context is nil a panic will occur. In the future the SDK may create
6538// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6539// for more information on using Contexts.
6540func (c *Route53Resolver) UpdateResolverRuleWithContext(ctx aws.Context, input *UpdateResolverRuleInput, opts ...request.Option) (*UpdateResolverRuleOutput, error) {
6541	req, out := c.UpdateResolverRuleRequest(input)
6542	req.SetContext(ctx)
6543	req.ApplyOptions(opts...)
6544	return out, req.Send()
6545}
6546
6547// The current account doesn't have the IAM permissions required to perform
6548// the specified Resolver operation.
6549type AccessDeniedException struct {
6550	_            struct{}                  `type:"structure"`
6551	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6552
6553	Message_ *string `locationName:"Message" type:"string"`
6554}
6555
6556// String returns the string representation
6557func (s AccessDeniedException) String() string {
6558	return awsutil.Prettify(s)
6559}
6560
6561// GoString returns the string representation
6562func (s AccessDeniedException) GoString() string {
6563	return s.String()
6564}
6565
6566func newErrorAccessDeniedException(v protocol.ResponseMetadata) error {
6567	return &AccessDeniedException{
6568		RespMetadata: v,
6569	}
6570}
6571
6572// Code returns the exception type name.
6573func (s *AccessDeniedException) Code() string {
6574	return "AccessDeniedException"
6575}
6576
6577// Message returns the exception's message.
6578func (s *AccessDeniedException) Message() string {
6579	if s.Message_ != nil {
6580		return *s.Message_
6581	}
6582	return ""
6583}
6584
6585// OrigErr always returns nil, satisfies awserr.Error interface.
6586func (s *AccessDeniedException) OrigErr() error {
6587	return nil
6588}
6589
6590func (s *AccessDeniedException) Error() string {
6591	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6592}
6593
6594// Status code returns the HTTP status code for the request's response error.
6595func (s *AccessDeniedException) StatusCode() int {
6596	return s.RespMetadata.StatusCode
6597}
6598
6599// RequestID returns the service's response RequestID for request.
6600func (s *AccessDeniedException) RequestID() string {
6601	return s.RespMetadata.RequestID
6602}
6603
6604type AssociateFirewallRuleGroupInput struct {
6605	_ struct{} `type:"structure"`
6606
6607	// A unique string that identifies the request and that allows failed requests
6608	// to be retried without the risk of running the operation twice. CreatorRequestId
6609	// can be any unique string, for example, a date/time stamp.
6610	CreatorRequestId *string `min:"1" type:"string" idempotencyToken:"true"`
6611
6612	// The unique identifier of the firewall rule group.
6613	//
6614	// FirewallRuleGroupId is a required field
6615	FirewallRuleGroupId *string `min:"1" type:"string" required:"true"`
6616
6617	// If enabled, this setting disallows modification or removal of the association,
6618	// to help prevent against accidentally altering DNS firewall protections. When
6619	// you create the association, the default setting is DISABLED.
6620	MutationProtection *string `type:"string" enum:"MutationProtectionStatus"`
6621
6622	// A name that lets you identify the association, to manage and use it.
6623	//
6624	// Name is a required field
6625	Name *string `type:"string" required:"true"`
6626
6627	// The setting that determines the processing order of the rule group among
6628	// the rule groups that you associate with the specified VPC. DNS Firewall filters
6629	// VPC traffic starting from the rule group with the lowest numeric priority
6630	// setting.
6631	//
6632	// You must specify a unique priority for each rule group that you associate
6633	// with a single VPC. To make it easier to insert rule groups later, leave space
6634	// between the numbers, for example, use 101, 200, and so on. You can change
6635	// the priority setting for a rule group association after you create it.
6636	//
6637	// The allowed values for Priority are between 100 and 9900.
6638	//
6639	// Priority is a required field
6640	Priority *int64 `type:"integer" required:"true"`
6641
6642	// A list of the tag keys and values that you want to associate with the rule
6643	// group association.
6644	Tags []*Tag `type:"list"`
6645
6646	// The unique identifier of the VPC that you want to associate with the rule
6647	// group.
6648	//
6649	// VpcId is a required field
6650	VpcId *string `min:"1" type:"string" required:"true"`
6651}
6652
6653// String returns the string representation
6654func (s AssociateFirewallRuleGroupInput) String() string {
6655	return awsutil.Prettify(s)
6656}
6657
6658// GoString returns the string representation
6659func (s AssociateFirewallRuleGroupInput) GoString() string {
6660	return s.String()
6661}
6662
6663// Validate inspects the fields of the type to determine if they are valid.
6664func (s *AssociateFirewallRuleGroupInput) Validate() error {
6665	invalidParams := request.ErrInvalidParams{Context: "AssociateFirewallRuleGroupInput"}
6666	if s.CreatorRequestId != nil && len(*s.CreatorRequestId) < 1 {
6667		invalidParams.Add(request.NewErrParamMinLen("CreatorRequestId", 1))
6668	}
6669	if s.FirewallRuleGroupId == nil {
6670		invalidParams.Add(request.NewErrParamRequired("FirewallRuleGroupId"))
6671	}
6672	if s.FirewallRuleGroupId != nil && len(*s.FirewallRuleGroupId) < 1 {
6673		invalidParams.Add(request.NewErrParamMinLen("FirewallRuleGroupId", 1))
6674	}
6675	if s.Name == nil {
6676		invalidParams.Add(request.NewErrParamRequired("Name"))
6677	}
6678	if s.Priority == nil {
6679		invalidParams.Add(request.NewErrParamRequired("Priority"))
6680	}
6681	if s.VpcId == nil {
6682		invalidParams.Add(request.NewErrParamRequired("VpcId"))
6683	}
6684	if s.VpcId != nil && len(*s.VpcId) < 1 {
6685		invalidParams.Add(request.NewErrParamMinLen("VpcId", 1))
6686	}
6687	if s.Tags != nil {
6688		for i, v := range s.Tags {
6689			if v == nil {
6690				continue
6691			}
6692			if err := v.Validate(); err != nil {
6693				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
6694			}
6695		}
6696	}
6697
6698	if invalidParams.Len() > 0 {
6699		return invalidParams
6700	}
6701	return nil
6702}
6703
6704// SetCreatorRequestId sets the CreatorRequestId field's value.
6705func (s *AssociateFirewallRuleGroupInput) SetCreatorRequestId(v string) *AssociateFirewallRuleGroupInput {
6706	s.CreatorRequestId = &v
6707	return s
6708}
6709
6710// SetFirewallRuleGroupId sets the FirewallRuleGroupId field's value.
6711func (s *AssociateFirewallRuleGroupInput) SetFirewallRuleGroupId(v string) *AssociateFirewallRuleGroupInput {
6712	s.FirewallRuleGroupId = &v
6713	return s
6714}
6715
6716// SetMutationProtection sets the MutationProtection field's value.
6717func (s *AssociateFirewallRuleGroupInput) SetMutationProtection(v string) *AssociateFirewallRuleGroupInput {
6718	s.MutationProtection = &v
6719	return s
6720}
6721
6722// SetName sets the Name field's value.
6723func (s *AssociateFirewallRuleGroupInput) SetName(v string) *AssociateFirewallRuleGroupInput {
6724	s.Name = &v
6725	return s
6726}
6727
6728// SetPriority sets the Priority field's value.
6729func (s *AssociateFirewallRuleGroupInput) SetPriority(v int64) *AssociateFirewallRuleGroupInput {
6730	s.Priority = &v
6731	return s
6732}
6733
6734// SetTags sets the Tags field's value.
6735func (s *AssociateFirewallRuleGroupInput) SetTags(v []*Tag) *AssociateFirewallRuleGroupInput {
6736	s.Tags = v
6737	return s
6738}
6739
6740// SetVpcId sets the VpcId field's value.
6741func (s *AssociateFirewallRuleGroupInput) SetVpcId(v string) *AssociateFirewallRuleGroupInput {
6742	s.VpcId = &v
6743	return s
6744}
6745
6746type AssociateFirewallRuleGroupOutput struct {
6747	_ struct{} `type:"structure"`
6748
6749	// The association that you just created. The association has an ID that you
6750	// can use to identify it in other requests, like update and delete.
6751	FirewallRuleGroupAssociation *FirewallRuleGroupAssociation `type:"structure"`
6752}
6753
6754// String returns the string representation
6755func (s AssociateFirewallRuleGroupOutput) String() string {
6756	return awsutil.Prettify(s)
6757}
6758
6759// GoString returns the string representation
6760func (s AssociateFirewallRuleGroupOutput) GoString() string {
6761	return s.String()
6762}
6763
6764// SetFirewallRuleGroupAssociation sets the FirewallRuleGroupAssociation field's value.
6765func (s *AssociateFirewallRuleGroupOutput) SetFirewallRuleGroupAssociation(v *FirewallRuleGroupAssociation) *AssociateFirewallRuleGroupOutput {
6766	s.FirewallRuleGroupAssociation = v
6767	return s
6768}
6769
6770type AssociateResolverEndpointIpAddressInput struct {
6771	_ struct{} `type:"structure"`
6772
6773	// Either the IPv4 address that you want to add to a Resolver endpoint or a
6774	// subnet ID. If you specify a subnet ID, Resolver chooses an IP address for
6775	// you from the available IPs in the specified subnet.
6776	//
6777	// IpAddress is a required field
6778	IpAddress *IpAddressUpdate `type:"structure" required:"true"`
6779
6780	// The ID of the Resolver endpoint that you want to associate IP addresses with.
6781	//
6782	// ResolverEndpointId is a required field
6783	ResolverEndpointId *string `min:"1" type:"string" required:"true"`
6784}
6785
6786// String returns the string representation
6787func (s AssociateResolverEndpointIpAddressInput) String() string {
6788	return awsutil.Prettify(s)
6789}
6790
6791// GoString returns the string representation
6792func (s AssociateResolverEndpointIpAddressInput) GoString() string {
6793	return s.String()
6794}
6795
6796// Validate inspects the fields of the type to determine if they are valid.
6797func (s *AssociateResolverEndpointIpAddressInput) Validate() error {
6798	invalidParams := request.ErrInvalidParams{Context: "AssociateResolverEndpointIpAddressInput"}
6799	if s.IpAddress == nil {
6800		invalidParams.Add(request.NewErrParamRequired("IpAddress"))
6801	}
6802	if s.ResolverEndpointId == nil {
6803		invalidParams.Add(request.NewErrParamRequired("ResolverEndpointId"))
6804	}
6805	if s.ResolverEndpointId != nil && len(*s.ResolverEndpointId) < 1 {
6806		invalidParams.Add(request.NewErrParamMinLen("ResolverEndpointId", 1))
6807	}
6808	if s.IpAddress != nil {
6809		if err := s.IpAddress.Validate(); err != nil {
6810			invalidParams.AddNested("IpAddress", err.(request.ErrInvalidParams))
6811		}
6812	}
6813
6814	if invalidParams.Len() > 0 {
6815		return invalidParams
6816	}
6817	return nil
6818}
6819
6820// SetIpAddress sets the IpAddress field's value.
6821func (s *AssociateResolverEndpointIpAddressInput) SetIpAddress(v *IpAddressUpdate) *AssociateResolverEndpointIpAddressInput {
6822	s.IpAddress = v
6823	return s
6824}
6825
6826// SetResolverEndpointId sets the ResolverEndpointId field's value.
6827func (s *AssociateResolverEndpointIpAddressInput) SetResolverEndpointId(v string) *AssociateResolverEndpointIpAddressInput {
6828	s.ResolverEndpointId = &v
6829	return s
6830}
6831
6832type AssociateResolverEndpointIpAddressOutput struct {
6833	_ struct{} `type:"structure"`
6834
6835	// The response to an AssociateResolverEndpointIpAddress request.
6836	ResolverEndpoint *ResolverEndpoint `type:"structure"`
6837}
6838
6839// String returns the string representation
6840func (s AssociateResolverEndpointIpAddressOutput) String() string {
6841	return awsutil.Prettify(s)
6842}
6843
6844// GoString returns the string representation
6845func (s AssociateResolverEndpointIpAddressOutput) GoString() string {
6846	return s.String()
6847}
6848
6849// SetResolverEndpoint sets the ResolverEndpoint field's value.
6850func (s *AssociateResolverEndpointIpAddressOutput) SetResolverEndpoint(v *ResolverEndpoint) *AssociateResolverEndpointIpAddressOutput {
6851	s.ResolverEndpoint = v
6852	return s
6853}
6854
6855type AssociateResolverQueryLogConfigInput struct {
6856	_ struct{} `type:"structure"`
6857
6858	// The ID of the query logging configuration that you want to associate a VPC
6859	// with.
6860	//
6861	// ResolverQueryLogConfigId is a required field
6862	ResolverQueryLogConfigId *string `min:"1" type:"string" required:"true"`
6863
6864	// The ID of an Amazon VPC that you want this query logging configuration to
6865	// log queries for.
6866	//
6867	// The VPCs and the query logging configuration must be in the same Region.
6868	//
6869	// ResourceId is a required field
6870	ResourceId *string `min:"1" type:"string" required:"true"`
6871}
6872
6873// String returns the string representation
6874func (s AssociateResolverQueryLogConfigInput) String() string {
6875	return awsutil.Prettify(s)
6876}
6877
6878// GoString returns the string representation
6879func (s AssociateResolverQueryLogConfigInput) GoString() string {
6880	return s.String()
6881}
6882
6883// Validate inspects the fields of the type to determine if they are valid.
6884func (s *AssociateResolverQueryLogConfigInput) Validate() error {
6885	invalidParams := request.ErrInvalidParams{Context: "AssociateResolverQueryLogConfigInput"}
6886	if s.ResolverQueryLogConfigId == nil {
6887		invalidParams.Add(request.NewErrParamRequired("ResolverQueryLogConfigId"))
6888	}
6889	if s.ResolverQueryLogConfigId != nil && len(*s.ResolverQueryLogConfigId) < 1 {
6890		invalidParams.Add(request.NewErrParamMinLen("ResolverQueryLogConfigId", 1))
6891	}
6892	if s.ResourceId == nil {
6893		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
6894	}
6895	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
6896		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
6897	}
6898
6899	if invalidParams.Len() > 0 {
6900		return invalidParams
6901	}
6902	return nil
6903}
6904
6905// SetResolverQueryLogConfigId sets the ResolverQueryLogConfigId field's value.
6906func (s *AssociateResolverQueryLogConfigInput) SetResolverQueryLogConfigId(v string) *AssociateResolverQueryLogConfigInput {
6907	s.ResolverQueryLogConfigId = &v
6908	return s
6909}
6910
6911// SetResourceId sets the ResourceId field's value.
6912func (s *AssociateResolverQueryLogConfigInput) SetResourceId(v string) *AssociateResolverQueryLogConfigInput {
6913	s.ResourceId = &v
6914	return s
6915}
6916
6917type AssociateResolverQueryLogConfigOutput struct {
6918	_ struct{} `type:"structure"`
6919
6920	// A complex type that contains settings for a specified association between
6921	// an Amazon VPC and a query logging configuration.
6922	ResolverQueryLogConfigAssociation *ResolverQueryLogConfigAssociation `type:"structure"`
6923}
6924
6925// String returns the string representation
6926func (s AssociateResolverQueryLogConfigOutput) String() string {
6927	return awsutil.Prettify(s)
6928}
6929
6930// GoString returns the string representation
6931func (s AssociateResolverQueryLogConfigOutput) GoString() string {
6932	return s.String()
6933}
6934
6935// SetResolverQueryLogConfigAssociation sets the ResolverQueryLogConfigAssociation field's value.
6936func (s *AssociateResolverQueryLogConfigOutput) SetResolverQueryLogConfigAssociation(v *ResolverQueryLogConfigAssociation) *AssociateResolverQueryLogConfigOutput {
6937	s.ResolverQueryLogConfigAssociation = v
6938	return s
6939}
6940
6941type AssociateResolverRuleInput struct {
6942	_ struct{} `type:"structure"`
6943
6944	// A name for the association that you're creating between a Resolver rule and
6945	// a VPC.
6946	Name *string `type:"string"`
6947
6948	// The ID of the Resolver rule that you want to associate with the VPC. To list
6949	// the existing Resolver rules, use ListResolverRules (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverRules.html).
6950	//
6951	// ResolverRuleId is a required field
6952	ResolverRuleId *string `min:"1" type:"string" required:"true"`
6953
6954	// The ID of the VPC that you want to associate the Resolver rule with.
6955	//
6956	// VPCId is a required field
6957	VPCId *string `min:"1" type:"string" required:"true"`
6958}
6959
6960// String returns the string representation
6961func (s AssociateResolverRuleInput) String() string {
6962	return awsutil.Prettify(s)
6963}
6964
6965// GoString returns the string representation
6966func (s AssociateResolverRuleInput) GoString() string {
6967	return s.String()
6968}
6969
6970// Validate inspects the fields of the type to determine if they are valid.
6971func (s *AssociateResolverRuleInput) Validate() error {
6972	invalidParams := request.ErrInvalidParams{Context: "AssociateResolverRuleInput"}
6973	if s.ResolverRuleId == nil {
6974		invalidParams.Add(request.NewErrParamRequired("ResolverRuleId"))
6975	}
6976	if s.ResolverRuleId != nil && len(*s.ResolverRuleId) < 1 {
6977		invalidParams.Add(request.NewErrParamMinLen("ResolverRuleId", 1))
6978	}
6979	if s.VPCId == nil {
6980		invalidParams.Add(request.NewErrParamRequired("VPCId"))
6981	}
6982	if s.VPCId != nil && len(*s.VPCId) < 1 {
6983		invalidParams.Add(request.NewErrParamMinLen("VPCId", 1))
6984	}
6985
6986	if invalidParams.Len() > 0 {
6987		return invalidParams
6988	}
6989	return nil
6990}
6991
6992// SetName sets the Name field's value.
6993func (s *AssociateResolverRuleInput) SetName(v string) *AssociateResolverRuleInput {
6994	s.Name = &v
6995	return s
6996}
6997
6998// SetResolverRuleId sets the ResolverRuleId field's value.
6999func (s *AssociateResolverRuleInput) SetResolverRuleId(v string) *AssociateResolverRuleInput {
7000	s.ResolverRuleId = &v
7001	return s
7002}
7003
7004// SetVPCId sets the VPCId field's value.
7005func (s *AssociateResolverRuleInput) SetVPCId(v string) *AssociateResolverRuleInput {
7006	s.VPCId = &v
7007	return s
7008}
7009
7010type AssociateResolverRuleOutput struct {
7011	_ struct{} `type:"structure"`
7012
7013	// Information about the AssociateResolverRule request, including the status
7014	// of the request.
7015	ResolverRuleAssociation *ResolverRuleAssociation `type:"structure"`
7016}
7017
7018// String returns the string representation
7019func (s AssociateResolverRuleOutput) String() string {
7020	return awsutil.Prettify(s)
7021}
7022
7023// GoString returns the string representation
7024func (s AssociateResolverRuleOutput) GoString() string {
7025	return s.String()
7026}
7027
7028// SetResolverRuleAssociation sets the ResolverRuleAssociation field's value.
7029func (s *AssociateResolverRuleOutput) SetResolverRuleAssociation(v *ResolverRuleAssociation) *AssociateResolverRuleOutput {
7030	s.ResolverRuleAssociation = v
7031	return s
7032}
7033
7034type ConflictException struct {
7035	_            struct{}                  `type:"structure"`
7036	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
7037
7038	Message_ *string `locationName:"Message" type:"string"`
7039}
7040
7041// String returns the string representation
7042func (s ConflictException) String() string {
7043	return awsutil.Prettify(s)
7044}
7045
7046// GoString returns the string representation
7047func (s ConflictException) GoString() string {
7048	return s.String()
7049}
7050
7051func newErrorConflictException(v protocol.ResponseMetadata) error {
7052	return &ConflictException{
7053		RespMetadata: v,
7054	}
7055}
7056
7057// Code returns the exception type name.
7058func (s *ConflictException) Code() string {
7059	return "ConflictException"
7060}
7061
7062// Message returns the exception's message.
7063func (s *ConflictException) Message() string {
7064	if s.Message_ != nil {
7065		return *s.Message_
7066	}
7067	return ""
7068}
7069
7070// OrigErr always returns nil, satisfies awserr.Error interface.
7071func (s *ConflictException) OrigErr() error {
7072	return nil
7073}
7074
7075func (s *ConflictException) Error() string {
7076	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
7077}
7078
7079// Status code returns the HTTP status code for the request's response error.
7080func (s *ConflictException) StatusCode() int {
7081	return s.RespMetadata.StatusCode
7082}
7083
7084// RequestID returns the service's response RequestID for request.
7085func (s *ConflictException) RequestID() string {
7086	return s.RespMetadata.RequestID
7087}
7088
7089type CreateFirewallDomainListInput struct {
7090	_ struct{} `type:"structure"`
7091
7092	// A unique string that identifies the request and that allows you to retry
7093	// failed requests without the risk of running the operation twice. CreatorRequestId
7094	// can be any unique string, for example, a date/time stamp.
7095	CreatorRequestId *string `min:"1" type:"string" idempotencyToken:"true"`
7096
7097	// A name that lets you identify the domain list to manage and use it.
7098	//
7099	// Name is a required field
7100	Name *string `type:"string" required:"true"`
7101
7102	// A list of the tag keys and values that you want to associate with the domain
7103	// list.
7104	Tags []*Tag `type:"list"`
7105}
7106
7107// String returns the string representation
7108func (s CreateFirewallDomainListInput) String() string {
7109	return awsutil.Prettify(s)
7110}
7111
7112// GoString returns the string representation
7113func (s CreateFirewallDomainListInput) GoString() string {
7114	return s.String()
7115}
7116
7117// Validate inspects the fields of the type to determine if they are valid.
7118func (s *CreateFirewallDomainListInput) Validate() error {
7119	invalidParams := request.ErrInvalidParams{Context: "CreateFirewallDomainListInput"}
7120	if s.CreatorRequestId != nil && len(*s.CreatorRequestId) < 1 {
7121		invalidParams.Add(request.NewErrParamMinLen("CreatorRequestId", 1))
7122	}
7123	if s.Name == nil {
7124		invalidParams.Add(request.NewErrParamRequired("Name"))
7125	}
7126	if s.Tags != nil {
7127		for i, v := range s.Tags {
7128			if v == nil {
7129				continue
7130			}
7131			if err := v.Validate(); err != nil {
7132				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
7133			}
7134		}
7135	}
7136
7137	if invalidParams.Len() > 0 {
7138		return invalidParams
7139	}
7140	return nil
7141}
7142
7143// SetCreatorRequestId sets the CreatorRequestId field's value.
7144func (s *CreateFirewallDomainListInput) SetCreatorRequestId(v string) *CreateFirewallDomainListInput {
7145	s.CreatorRequestId = &v
7146	return s
7147}
7148
7149// SetName sets the Name field's value.
7150func (s *CreateFirewallDomainListInput) SetName(v string) *CreateFirewallDomainListInput {
7151	s.Name = &v
7152	return s
7153}
7154
7155// SetTags sets the Tags field's value.
7156func (s *CreateFirewallDomainListInput) SetTags(v []*Tag) *CreateFirewallDomainListInput {
7157	s.Tags = v
7158	return s
7159}
7160
7161type CreateFirewallDomainListOutput struct {
7162	_ struct{} `type:"structure"`
7163
7164	// The domain list that you just created.
7165	FirewallDomainList *FirewallDomainList `type:"structure"`
7166}
7167
7168// String returns the string representation
7169func (s CreateFirewallDomainListOutput) String() string {
7170	return awsutil.Prettify(s)
7171}
7172
7173// GoString returns the string representation
7174func (s CreateFirewallDomainListOutput) GoString() string {
7175	return s.String()
7176}
7177
7178// SetFirewallDomainList sets the FirewallDomainList field's value.
7179func (s *CreateFirewallDomainListOutput) SetFirewallDomainList(v *FirewallDomainList) *CreateFirewallDomainListOutput {
7180	s.FirewallDomainList = v
7181	return s
7182}
7183
7184type CreateFirewallRuleGroupInput struct {
7185	_ struct{} `type:"structure"`
7186
7187	// A unique string defined by you to identify the request. This allows you to
7188	// retry failed requests without the risk of running the operation twice. This
7189	// can be any unique string, for example, a timestamp.
7190	CreatorRequestId *string `min:"1" type:"string" idempotencyToken:"true"`
7191
7192	// A name that lets you identify the rule group, to manage and use it.
7193	//
7194	// Name is a required field
7195	Name *string `type:"string" required:"true"`
7196
7197	// A list of the tag keys and values that you want to associate with the rule
7198	// group.
7199	Tags []*Tag `type:"list"`
7200}
7201
7202// String returns the string representation
7203func (s CreateFirewallRuleGroupInput) String() string {
7204	return awsutil.Prettify(s)
7205}
7206
7207// GoString returns the string representation
7208func (s CreateFirewallRuleGroupInput) GoString() string {
7209	return s.String()
7210}
7211
7212// Validate inspects the fields of the type to determine if they are valid.
7213func (s *CreateFirewallRuleGroupInput) Validate() error {
7214	invalidParams := request.ErrInvalidParams{Context: "CreateFirewallRuleGroupInput"}
7215	if s.CreatorRequestId != nil && len(*s.CreatorRequestId) < 1 {
7216		invalidParams.Add(request.NewErrParamMinLen("CreatorRequestId", 1))
7217	}
7218	if s.Name == nil {
7219		invalidParams.Add(request.NewErrParamRequired("Name"))
7220	}
7221	if s.Tags != nil {
7222		for i, v := range s.Tags {
7223			if v == nil {
7224				continue
7225			}
7226			if err := v.Validate(); err != nil {
7227				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
7228			}
7229		}
7230	}
7231
7232	if invalidParams.Len() > 0 {
7233		return invalidParams
7234	}
7235	return nil
7236}
7237
7238// SetCreatorRequestId sets the CreatorRequestId field's value.
7239func (s *CreateFirewallRuleGroupInput) SetCreatorRequestId(v string) *CreateFirewallRuleGroupInput {
7240	s.CreatorRequestId = &v
7241	return s
7242}
7243
7244// SetName sets the Name field's value.
7245func (s *CreateFirewallRuleGroupInput) SetName(v string) *CreateFirewallRuleGroupInput {
7246	s.Name = &v
7247	return s
7248}
7249
7250// SetTags sets the Tags field's value.
7251func (s *CreateFirewallRuleGroupInput) SetTags(v []*Tag) *CreateFirewallRuleGroupInput {
7252	s.Tags = v
7253	return s
7254}
7255
7256type CreateFirewallRuleGroupOutput struct {
7257	_ struct{} `type:"structure"`
7258
7259	// A collection of rules used to filter DNS network traffic.
7260	FirewallRuleGroup *FirewallRuleGroup `type:"structure"`
7261}
7262
7263// String returns the string representation
7264func (s CreateFirewallRuleGroupOutput) String() string {
7265	return awsutil.Prettify(s)
7266}
7267
7268// GoString returns the string representation
7269func (s CreateFirewallRuleGroupOutput) GoString() string {
7270	return s.String()
7271}
7272
7273// SetFirewallRuleGroup sets the FirewallRuleGroup field's value.
7274func (s *CreateFirewallRuleGroupOutput) SetFirewallRuleGroup(v *FirewallRuleGroup) *CreateFirewallRuleGroupOutput {
7275	s.FirewallRuleGroup = v
7276	return s
7277}
7278
7279type CreateFirewallRuleInput struct {
7280	_ struct{} `type:"structure"`
7281
7282	// The action that DNS Firewall should take on a DNS query when it matches one
7283	// of the domains in the rule's domain list:
7284	//
7285	//    * ALLOW - Permit the request to go through.
7286	//
7287	//    * ALERT - Permit the request and send metrics and logs to Cloud Watch.
7288	//
7289	//    * BLOCK - Disallow the request. This option requires additional details
7290	//    in the rule's BlockResponse.
7291	//
7292	// Action is a required field
7293	Action *string `type:"string" required:"true" enum:"Action"`
7294
7295	// The DNS record's type. This determines the format of the record value that
7296	// you provided in BlockOverrideDomain. Used for the rule action BLOCK with
7297	// a BlockResponse setting of OVERRIDE.
7298	//
7299	// This setting is required if the BlockResponse setting is OVERRIDE.
7300	BlockOverrideDnsType *string `type:"string" enum:"BlockOverrideDnsType"`
7301
7302	// The custom DNS record to send back in response to the query. Used for the
7303	// rule action BLOCK with a BlockResponse setting of OVERRIDE.
7304	//
7305	// This setting is required if the BlockResponse setting is OVERRIDE.
7306	BlockOverrideDomain *string `min:"1" type:"string"`
7307
7308	// The recommended amount of time, in seconds, for the DNS resolver or web browser
7309	// to cache the provided override record. Used for the rule action BLOCK with
7310	// a BlockResponse setting of OVERRIDE.
7311	//
7312	// This setting is required if the BlockResponse setting is OVERRIDE.
7313	BlockOverrideTtl *int64 `type:"integer"`
7314
7315	// The way that you want DNS Firewall to block the request, used with the rule
7316	// action setting BLOCK.
7317	//
7318	//    * NODATA - Respond indicating that the query was successful, but no response
7319	//    is available for it.
7320	//
7321	//    * NXDOMAIN - Respond indicating that the domain name that's in the query
7322	//    doesn't exist.
7323	//
7324	//    * OVERRIDE - Provide a custom override in the response. This option requires
7325	//    custom handling details in the rule's BlockOverride* settings.
7326	//
7327	// This setting is required if the rule action setting is BLOCK.
7328	BlockResponse *string `type:"string" enum:"BlockResponse"`
7329
7330	// A unique string that identifies the request and that allows you to retry
7331	// failed requests without the risk of running the operation twice. CreatorRequestId
7332	// can be any unique string, for example, a date/time stamp.
7333	CreatorRequestId *string `min:"1" type:"string" idempotencyToken:"true"`
7334
7335	// The ID of the domain list that you want to use in the rule.
7336	//
7337	// FirewallDomainListId is a required field
7338	FirewallDomainListId *string `min:"1" type:"string" required:"true"`
7339
7340	// The unique identifier of the firewall rule group where you want to create
7341	// the rule.
7342	//
7343	// FirewallRuleGroupId is a required field
7344	FirewallRuleGroupId *string `min:"1" type:"string" required:"true"`
7345
7346	// A name that lets you identify the rule in the rule group.
7347	//
7348	// Name is a required field
7349	Name *string `type:"string" required:"true"`
7350
7351	// The setting that determines the processing order of the rule in the rule
7352	// group. DNS Firewall processes the rules in a rule group by order of priority,
7353	// starting from the lowest setting.
7354	//
7355	// You must specify a unique priority for each rule in a rule group. To make
7356	// it easier to insert rules later, leave space between the numbers, for example,
7357	// use 100, 200, and so on. You can change the priority setting for the rules
7358	// in a rule group at any time.
7359	//
7360	// Priority is a required field
7361	Priority *int64 `type:"integer" required:"true"`
7362}
7363
7364// String returns the string representation
7365func (s CreateFirewallRuleInput) String() string {
7366	return awsutil.Prettify(s)
7367}
7368
7369// GoString returns the string representation
7370func (s CreateFirewallRuleInput) GoString() string {
7371	return s.String()
7372}
7373
7374// Validate inspects the fields of the type to determine if they are valid.
7375func (s *CreateFirewallRuleInput) Validate() error {
7376	invalidParams := request.ErrInvalidParams{Context: "CreateFirewallRuleInput"}
7377	if s.Action == nil {
7378		invalidParams.Add(request.NewErrParamRequired("Action"))
7379	}
7380	if s.BlockOverrideDomain != nil && len(*s.BlockOverrideDomain) < 1 {
7381		invalidParams.Add(request.NewErrParamMinLen("BlockOverrideDomain", 1))
7382	}
7383	if s.CreatorRequestId != nil && len(*s.CreatorRequestId) < 1 {
7384		invalidParams.Add(request.NewErrParamMinLen("CreatorRequestId", 1))
7385	}
7386	if s.FirewallDomainListId == nil {
7387		invalidParams.Add(request.NewErrParamRequired("FirewallDomainListId"))
7388	}
7389	if s.FirewallDomainListId != nil && len(*s.FirewallDomainListId) < 1 {
7390		invalidParams.Add(request.NewErrParamMinLen("FirewallDomainListId", 1))
7391	}
7392	if s.FirewallRuleGroupId == nil {
7393		invalidParams.Add(request.NewErrParamRequired("FirewallRuleGroupId"))
7394	}
7395	if s.FirewallRuleGroupId != nil && len(*s.FirewallRuleGroupId) < 1 {
7396		invalidParams.Add(request.NewErrParamMinLen("FirewallRuleGroupId", 1))
7397	}
7398	if s.Name == nil {
7399		invalidParams.Add(request.NewErrParamRequired("Name"))
7400	}
7401	if s.Priority == nil {
7402		invalidParams.Add(request.NewErrParamRequired("Priority"))
7403	}
7404
7405	if invalidParams.Len() > 0 {
7406		return invalidParams
7407	}
7408	return nil
7409}
7410
7411// SetAction sets the Action field's value.
7412func (s *CreateFirewallRuleInput) SetAction(v string) *CreateFirewallRuleInput {
7413	s.Action = &v
7414	return s
7415}
7416
7417// SetBlockOverrideDnsType sets the BlockOverrideDnsType field's value.
7418func (s *CreateFirewallRuleInput) SetBlockOverrideDnsType(v string) *CreateFirewallRuleInput {
7419	s.BlockOverrideDnsType = &v
7420	return s
7421}
7422
7423// SetBlockOverrideDomain sets the BlockOverrideDomain field's value.
7424func (s *CreateFirewallRuleInput) SetBlockOverrideDomain(v string) *CreateFirewallRuleInput {
7425	s.BlockOverrideDomain = &v
7426	return s
7427}
7428
7429// SetBlockOverrideTtl sets the BlockOverrideTtl field's value.
7430func (s *CreateFirewallRuleInput) SetBlockOverrideTtl(v int64) *CreateFirewallRuleInput {
7431	s.BlockOverrideTtl = &v
7432	return s
7433}
7434
7435// SetBlockResponse sets the BlockResponse field's value.
7436func (s *CreateFirewallRuleInput) SetBlockResponse(v string) *CreateFirewallRuleInput {
7437	s.BlockResponse = &v
7438	return s
7439}
7440
7441// SetCreatorRequestId sets the CreatorRequestId field's value.
7442func (s *CreateFirewallRuleInput) SetCreatorRequestId(v string) *CreateFirewallRuleInput {
7443	s.CreatorRequestId = &v
7444	return s
7445}
7446
7447// SetFirewallDomainListId sets the FirewallDomainListId field's value.
7448func (s *CreateFirewallRuleInput) SetFirewallDomainListId(v string) *CreateFirewallRuleInput {
7449	s.FirewallDomainListId = &v
7450	return s
7451}
7452
7453// SetFirewallRuleGroupId sets the FirewallRuleGroupId field's value.
7454func (s *CreateFirewallRuleInput) SetFirewallRuleGroupId(v string) *CreateFirewallRuleInput {
7455	s.FirewallRuleGroupId = &v
7456	return s
7457}
7458
7459// SetName sets the Name field's value.
7460func (s *CreateFirewallRuleInput) SetName(v string) *CreateFirewallRuleInput {
7461	s.Name = &v
7462	return s
7463}
7464
7465// SetPriority sets the Priority field's value.
7466func (s *CreateFirewallRuleInput) SetPriority(v int64) *CreateFirewallRuleInput {
7467	s.Priority = &v
7468	return s
7469}
7470
7471type CreateFirewallRuleOutput struct {
7472	_ struct{} `type:"structure"`
7473
7474	// The firewall rule that you just created.
7475	FirewallRule *FirewallRule `type:"structure"`
7476}
7477
7478// String returns the string representation
7479func (s CreateFirewallRuleOutput) String() string {
7480	return awsutil.Prettify(s)
7481}
7482
7483// GoString returns the string representation
7484func (s CreateFirewallRuleOutput) GoString() string {
7485	return s.String()
7486}
7487
7488// SetFirewallRule sets the FirewallRule field's value.
7489func (s *CreateFirewallRuleOutput) SetFirewallRule(v *FirewallRule) *CreateFirewallRuleOutput {
7490	s.FirewallRule = v
7491	return s
7492}
7493
7494type CreateResolverEndpointInput struct {
7495	_ struct{} `type:"structure"`
7496
7497	// A unique string that identifies the request and that allows failed requests
7498	// to be retried without the risk of running the operation twice. CreatorRequestId
7499	// can be any unique string, for example, a date/time stamp.
7500	//
7501	// CreatorRequestId is a required field
7502	CreatorRequestId *string `min:"1" type:"string" required:"true"`
7503
7504	// Specify the applicable value:
7505	//
7506	//    * INBOUND: Resolver forwards DNS queries to the DNS service for a VPC
7507	//    from your network
7508	//
7509	//    * OUTBOUND: Resolver forwards DNS queries from the DNS service for a VPC
7510	//    to your network
7511	//
7512	// Direction is a required field
7513	Direction *string `type:"string" required:"true" enum:"ResolverEndpointDirection"`
7514
7515	// The subnets and IP addresses in your VPC that DNS queries originate from
7516	// (for outbound endpoints) or that you forward DNS queries to (for inbound
7517	// endpoints). The subnet ID uniquely identifies a VPC.
7518	//
7519	// IpAddresses is a required field
7520	IpAddresses []*IpAddressRequest `min:"1" type:"list" required:"true"`
7521
7522	// A friendly name that lets you easily find a configuration in the Resolver
7523	// dashboard in the Route 53 console.
7524	Name *string `type:"string"`
7525
7526	// The ID of one or more security groups that you want to use to control access
7527	// to this VPC. The security group that you specify must include one or more
7528	// inbound rules (for inbound Resolver endpoints) or outbound rules (for outbound
7529	// Resolver endpoints). Inbound and outbound rules must allow TCP and UDP access.
7530	// For inbound access, open port 53. For outbound access, open the port that
7531	// you're using for DNS queries on your network.
7532	//
7533	// SecurityGroupIds is a required field
7534	SecurityGroupIds []*string `type:"list" required:"true"`
7535
7536	// A list of the tag keys and values that you want to associate with the endpoint.
7537	Tags []*Tag `type:"list"`
7538}
7539
7540// String returns the string representation
7541func (s CreateResolverEndpointInput) String() string {
7542	return awsutil.Prettify(s)
7543}
7544
7545// GoString returns the string representation
7546func (s CreateResolverEndpointInput) GoString() string {
7547	return s.String()
7548}
7549
7550// Validate inspects the fields of the type to determine if they are valid.
7551func (s *CreateResolverEndpointInput) Validate() error {
7552	invalidParams := request.ErrInvalidParams{Context: "CreateResolverEndpointInput"}
7553	if s.CreatorRequestId == nil {
7554		invalidParams.Add(request.NewErrParamRequired("CreatorRequestId"))
7555	}
7556	if s.CreatorRequestId != nil && len(*s.CreatorRequestId) < 1 {
7557		invalidParams.Add(request.NewErrParamMinLen("CreatorRequestId", 1))
7558	}
7559	if s.Direction == nil {
7560		invalidParams.Add(request.NewErrParamRequired("Direction"))
7561	}
7562	if s.IpAddresses == nil {
7563		invalidParams.Add(request.NewErrParamRequired("IpAddresses"))
7564	}
7565	if s.IpAddresses != nil && len(s.IpAddresses) < 1 {
7566		invalidParams.Add(request.NewErrParamMinLen("IpAddresses", 1))
7567	}
7568	if s.SecurityGroupIds == nil {
7569		invalidParams.Add(request.NewErrParamRequired("SecurityGroupIds"))
7570	}
7571	if s.IpAddresses != nil {
7572		for i, v := range s.IpAddresses {
7573			if v == nil {
7574				continue
7575			}
7576			if err := v.Validate(); err != nil {
7577				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "IpAddresses", i), err.(request.ErrInvalidParams))
7578			}
7579		}
7580	}
7581	if s.Tags != nil {
7582		for i, v := range s.Tags {
7583			if v == nil {
7584				continue
7585			}
7586			if err := v.Validate(); err != nil {
7587				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
7588			}
7589		}
7590	}
7591
7592	if invalidParams.Len() > 0 {
7593		return invalidParams
7594	}
7595	return nil
7596}
7597
7598// SetCreatorRequestId sets the CreatorRequestId field's value.
7599func (s *CreateResolverEndpointInput) SetCreatorRequestId(v string) *CreateResolverEndpointInput {
7600	s.CreatorRequestId = &v
7601	return s
7602}
7603
7604// SetDirection sets the Direction field's value.
7605func (s *CreateResolverEndpointInput) SetDirection(v string) *CreateResolverEndpointInput {
7606	s.Direction = &v
7607	return s
7608}
7609
7610// SetIpAddresses sets the IpAddresses field's value.
7611func (s *CreateResolverEndpointInput) SetIpAddresses(v []*IpAddressRequest) *CreateResolverEndpointInput {
7612	s.IpAddresses = v
7613	return s
7614}
7615
7616// SetName sets the Name field's value.
7617func (s *CreateResolverEndpointInput) SetName(v string) *CreateResolverEndpointInput {
7618	s.Name = &v
7619	return s
7620}
7621
7622// SetSecurityGroupIds sets the SecurityGroupIds field's value.
7623func (s *CreateResolverEndpointInput) SetSecurityGroupIds(v []*string) *CreateResolverEndpointInput {
7624	s.SecurityGroupIds = v
7625	return s
7626}
7627
7628// SetTags sets the Tags field's value.
7629func (s *CreateResolverEndpointInput) SetTags(v []*Tag) *CreateResolverEndpointInput {
7630	s.Tags = v
7631	return s
7632}
7633
7634type CreateResolverEndpointOutput struct {
7635	_ struct{} `type:"structure"`
7636
7637	// Information about the CreateResolverEndpoint request, including the status
7638	// of the request.
7639	ResolverEndpoint *ResolverEndpoint `type:"structure"`
7640}
7641
7642// String returns the string representation
7643func (s CreateResolverEndpointOutput) String() string {
7644	return awsutil.Prettify(s)
7645}
7646
7647// GoString returns the string representation
7648func (s CreateResolverEndpointOutput) GoString() string {
7649	return s.String()
7650}
7651
7652// SetResolverEndpoint sets the ResolverEndpoint field's value.
7653func (s *CreateResolverEndpointOutput) SetResolverEndpoint(v *ResolverEndpoint) *CreateResolverEndpointOutput {
7654	s.ResolverEndpoint = v
7655	return s
7656}
7657
7658type CreateResolverQueryLogConfigInput struct {
7659	_ struct{} `type:"structure"`
7660
7661	// A unique string that identifies the request and that allows failed requests
7662	// to be retried without the risk of running the operation twice. CreatorRequestId
7663	// can be any unique string, for example, a date/time stamp.
7664	CreatorRequestId *string `min:"1" type:"string" idempotencyToken:"true"`
7665
7666	// The ARN of the resource that you want Resolver to send query logs. You can
7667	// send query logs to an S3 bucket, a CloudWatch Logs log group, or a Kinesis
7668	// Data Firehose delivery stream. Examples of valid values include the following:
7669	//
7670	//    * S3 bucket: arn:aws:s3:::examplebucket You can optionally append a file
7671	//    prefix to the end of the ARN. arn:aws:s3:::examplebucket/development/
7672	//
7673	//    * CloudWatch Logs log group: arn:aws:logs:us-west-1:123456789012:log-group:/mystack-testgroup-12ABC1AB12A1:*
7674	//
7675	//    * Kinesis Data Firehose delivery stream: arn:aws:kinesis:us-east-2:0123456789:stream/my_stream_name
7676	//
7677	// DestinationArn is a required field
7678	DestinationArn *string `min:"1" type:"string" required:"true"`
7679
7680	// The name that you want to give the query logging configuration.
7681	//
7682	// Name is a required field
7683	Name *string `min:"1" type:"string" required:"true"`
7684
7685	// A list of the tag keys and values that you want to associate with the query
7686	// logging configuration.
7687	Tags []*Tag `type:"list"`
7688}
7689
7690// String returns the string representation
7691func (s CreateResolverQueryLogConfigInput) String() string {
7692	return awsutil.Prettify(s)
7693}
7694
7695// GoString returns the string representation
7696func (s CreateResolverQueryLogConfigInput) GoString() string {
7697	return s.String()
7698}
7699
7700// Validate inspects the fields of the type to determine if they are valid.
7701func (s *CreateResolverQueryLogConfigInput) Validate() error {
7702	invalidParams := request.ErrInvalidParams{Context: "CreateResolverQueryLogConfigInput"}
7703	if s.CreatorRequestId != nil && len(*s.CreatorRequestId) < 1 {
7704		invalidParams.Add(request.NewErrParamMinLen("CreatorRequestId", 1))
7705	}
7706	if s.DestinationArn == nil {
7707		invalidParams.Add(request.NewErrParamRequired("DestinationArn"))
7708	}
7709	if s.DestinationArn != nil && len(*s.DestinationArn) < 1 {
7710		invalidParams.Add(request.NewErrParamMinLen("DestinationArn", 1))
7711	}
7712	if s.Name == nil {
7713		invalidParams.Add(request.NewErrParamRequired("Name"))
7714	}
7715	if s.Name != nil && len(*s.Name) < 1 {
7716		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
7717	}
7718	if s.Tags != nil {
7719		for i, v := range s.Tags {
7720			if v == nil {
7721				continue
7722			}
7723			if err := v.Validate(); err != nil {
7724				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
7725			}
7726		}
7727	}
7728
7729	if invalidParams.Len() > 0 {
7730		return invalidParams
7731	}
7732	return nil
7733}
7734
7735// SetCreatorRequestId sets the CreatorRequestId field's value.
7736func (s *CreateResolverQueryLogConfigInput) SetCreatorRequestId(v string) *CreateResolverQueryLogConfigInput {
7737	s.CreatorRequestId = &v
7738	return s
7739}
7740
7741// SetDestinationArn sets the DestinationArn field's value.
7742func (s *CreateResolverQueryLogConfigInput) SetDestinationArn(v string) *CreateResolverQueryLogConfigInput {
7743	s.DestinationArn = &v
7744	return s
7745}
7746
7747// SetName sets the Name field's value.
7748func (s *CreateResolverQueryLogConfigInput) SetName(v string) *CreateResolverQueryLogConfigInput {
7749	s.Name = &v
7750	return s
7751}
7752
7753// SetTags sets the Tags field's value.
7754func (s *CreateResolverQueryLogConfigInput) SetTags(v []*Tag) *CreateResolverQueryLogConfigInput {
7755	s.Tags = v
7756	return s
7757}
7758
7759type CreateResolverQueryLogConfigOutput struct {
7760	_ struct{} `type:"structure"`
7761
7762	// Information about the CreateResolverQueryLogConfig request, including the
7763	// status of the request.
7764	ResolverQueryLogConfig *ResolverQueryLogConfig `type:"structure"`
7765}
7766
7767// String returns the string representation
7768func (s CreateResolverQueryLogConfigOutput) String() string {
7769	return awsutil.Prettify(s)
7770}
7771
7772// GoString returns the string representation
7773func (s CreateResolverQueryLogConfigOutput) GoString() string {
7774	return s.String()
7775}
7776
7777// SetResolverQueryLogConfig sets the ResolverQueryLogConfig field's value.
7778func (s *CreateResolverQueryLogConfigOutput) SetResolverQueryLogConfig(v *ResolverQueryLogConfig) *CreateResolverQueryLogConfigOutput {
7779	s.ResolverQueryLogConfig = v
7780	return s
7781}
7782
7783type CreateResolverRuleInput struct {
7784	_ struct{} `type:"structure"`
7785
7786	// A unique string that identifies the request and that allows failed requests
7787	// to be retried without the risk of running the operation twice. CreatorRequestId
7788	// can be any unique string, for example, a date/time stamp.
7789	//
7790	// CreatorRequestId is a required field
7791	CreatorRequestId *string `min:"1" type:"string" required:"true"`
7792
7793	// DNS queries for this domain name are forwarded to the IP addresses that you
7794	// specify in TargetIps. If a query matches multiple Resolver rules (example.com
7795	// and www.example.com), outbound DNS queries are routed using the Resolver
7796	// rule that contains the most specific domain name (www.example.com).
7797	//
7798	// DomainName is a required field
7799	DomainName *string `min:"1" type:"string" required:"true"`
7800
7801	// A friendly name that lets you easily find a rule in the Resolver dashboard
7802	// in the Route 53 console.
7803	Name *string `type:"string"`
7804
7805	// The ID of the outbound Resolver endpoint that you want to use to route DNS
7806	// queries to the IP addresses that you specify in TargetIps.
7807	ResolverEndpointId *string `min:"1" type:"string"`
7808
7809	// When you want to forward DNS queries for specified domain name to resolvers
7810	// on your network, specify FORWARD.
7811	//
7812	// When you have a forwarding rule to forward DNS queries for a domain to your
7813	// network and you want Resolver to process queries for a subdomain of that
7814	// domain, specify SYSTEM.
7815	//
7816	// For example, to forward DNS queries for example.com to resolvers on your
7817	// network, you create a rule and specify FORWARD for RuleType. To then have
7818	// Resolver process queries for apex.example.com, you create a rule and specify
7819	// SYSTEM for RuleType.
7820	//
7821	// Currently, only Resolver can create rules that have a value of RECURSIVE
7822	// for RuleType.
7823	//
7824	// RuleType is a required field
7825	RuleType *string `type:"string" required:"true" enum:"RuleTypeOption"`
7826
7827	// A list of the tag keys and values that you want to associate with the endpoint.
7828	Tags []*Tag `type:"list"`
7829
7830	// The IPs that you want Resolver to forward DNS queries to. You can specify
7831	// only IPv4 addresses. Separate IP addresses with a space.
7832	//
7833	// TargetIps is available only when the value of Rule type is FORWARD.
7834	TargetIps []*TargetAddress `min:"1" type:"list"`
7835}
7836
7837// String returns the string representation
7838func (s CreateResolverRuleInput) String() string {
7839	return awsutil.Prettify(s)
7840}
7841
7842// GoString returns the string representation
7843func (s CreateResolverRuleInput) GoString() string {
7844	return s.String()
7845}
7846
7847// Validate inspects the fields of the type to determine if they are valid.
7848func (s *CreateResolverRuleInput) Validate() error {
7849	invalidParams := request.ErrInvalidParams{Context: "CreateResolverRuleInput"}
7850	if s.CreatorRequestId == nil {
7851		invalidParams.Add(request.NewErrParamRequired("CreatorRequestId"))
7852	}
7853	if s.CreatorRequestId != nil && len(*s.CreatorRequestId) < 1 {
7854		invalidParams.Add(request.NewErrParamMinLen("CreatorRequestId", 1))
7855	}
7856	if s.DomainName == nil {
7857		invalidParams.Add(request.NewErrParamRequired("DomainName"))
7858	}
7859	if s.DomainName != nil && len(*s.DomainName) < 1 {
7860		invalidParams.Add(request.NewErrParamMinLen("DomainName", 1))
7861	}
7862	if s.ResolverEndpointId != nil && len(*s.ResolverEndpointId) < 1 {
7863		invalidParams.Add(request.NewErrParamMinLen("ResolverEndpointId", 1))
7864	}
7865	if s.RuleType == nil {
7866		invalidParams.Add(request.NewErrParamRequired("RuleType"))
7867	}
7868	if s.TargetIps != nil && len(s.TargetIps) < 1 {
7869		invalidParams.Add(request.NewErrParamMinLen("TargetIps", 1))
7870	}
7871	if s.Tags != nil {
7872		for i, v := range s.Tags {
7873			if v == nil {
7874				continue
7875			}
7876			if err := v.Validate(); err != nil {
7877				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
7878			}
7879		}
7880	}
7881	if s.TargetIps != nil {
7882		for i, v := range s.TargetIps {
7883			if v == nil {
7884				continue
7885			}
7886			if err := v.Validate(); err != nil {
7887				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TargetIps", i), err.(request.ErrInvalidParams))
7888			}
7889		}
7890	}
7891
7892	if invalidParams.Len() > 0 {
7893		return invalidParams
7894	}
7895	return nil
7896}
7897
7898// SetCreatorRequestId sets the CreatorRequestId field's value.
7899func (s *CreateResolverRuleInput) SetCreatorRequestId(v string) *CreateResolverRuleInput {
7900	s.CreatorRequestId = &v
7901	return s
7902}
7903
7904// SetDomainName sets the DomainName field's value.
7905func (s *CreateResolverRuleInput) SetDomainName(v string) *CreateResolverRuleInput {
7906	s.DomainName = &v
7907	return s
7908}
7909
7910// SetName sets the Name field's value.
7911func (s *CreateResolverRuleInput) SetName(v string) *CreateResolverRuleInput {
7912	s.Name = &v
7913	return s
7914}
7915
7916// SetResolverEndpointId sets the ResolverEndpointId field's value.
7917func (s *CreateResolverRuleInput) SetResolverEndpointId(v string) *CreateResolverRuleInput {
7918	s.ResolverEndpointId = &v
7919	return s
7920}
7921
7922// SetRuleType sets the RuleType field's value.
7923func (s *CreateResolverRuleInput) SetRuleType(v string) *CreateResolverRuleInput {
7924	s.RuleType = &v
7925	return s
7926}
7927
7928// SetTags sets the Tags field's value.
7929func (s *CreateResolverRuleInput) SetTags(v []*Tag) *CreateResolverRuleInput {
7930	s.Tags = v
7931	return s
7932}
7933
7934// SetTargetIps sets the TargetIps field's value.
7935func (s *CreateResolverRuleInput) SetTargetIps(v []*TargetAddress) *CreateResolverRuleInput {
7936	s.TargetIps = v
7937	return s
7938}
7939
7940type CreateResolverRuleOutput struct {
7941	_ struct{} `type:"structure"`
7942
7943	// Information about the CreateResolverRule request, including the status of
7944	// the request.
7945	ResolverRule *ResolverRule `type:"structure"`
7946}
7947
7948// String returns the string representation
7949func (s CreateResolverRuleOutput) String() string {
7950	return awsutil.Prettify(s)
7951}
7952
7953// GoString returns the string representation
7954func (s CreateResolverRuleOutput) GoString() string {
7955	return s.String()
7956}
7957
7958// SetResolverRule sets the ResolverRule field's value.
7959func (s *CreateResolverRuleOutput) SetResolverRule(v *ResolverRule) *CreateResolverRuleOutput {
7960	s.ResolverRule = v
7961	return s
7962}
7963
7964type DeleteFirewallDomainListInput struct {
7965	_ struct{} `type:"structure"`
7966
7967	// The ID of the domain list that you want to delete.
7968	//
7969	// FirewallDomainListId is a required field
7970	FirewallDomainListId *string `min:"1" type:"string" required:"true"`
7971}
7972
7973// String returns the string representation
7974func (s DeleteFirewallDomainListInput) String() string {
7975	return awsutil.Prettify(s)
7976}
7977
7978// GoString returns the string representation
7979func (s DeleteFirewallDomainListInput) GoString() string {
7980	return s.String()
7981}
7982
7983// Validate inspects the fields of the type to determine if they are valid.
7984func (s *DeleteFirewallDomainListInput) Validate() error {
7985	invalidParams := request.ErrInvalidParams{Context: "DeleteFirewallDomainListInput"}
7986	if s.FirewallDomainListId == nil {
7987		invalidParams.Add(request.NewErrParamRequired("FirewallDomainListId"))
7988	}
7989	if s.FirewallDomainListId != nil && len(*s.FirewallDomainListId) < 1 {
7990		invalidParams.Add(request.NewErrParamMinLen("FirewallDomainListId", 1))
7991	}
7992
7993	if invalidParams.Len() > 0 {
7994		return invalidParams
7995	}
7996	return nil
7997}
7998
7999// SetFirewallDomainListId sets the FirewallDomainListId field's value.
8000func (s *DeleteFirewallDomainListInput) SetFirewallDomainListId(v string) *DeleteFirewallDomainListInput {
8001	s.FirewallDomainListId = &v
8002	return s
8003}
8004
8005type DeleteFirewallDomainListOutput struct {
8006	_ struct{} `type:"structure"`
8007
8008	// The domain list that you just deleted.
8009	FirewallDomainList *FirewallDomainList `type:"structure"`
8010}
8011
8012// String returns the string representation
8013func (s DeleteFirewallDomainListOutput) String() string {
8014	return awsutil.Prettify(s)
8015}
8016
8017// GoString returns the string representation
8018func (s DeleteFirewallDomainListOutput) GoString() string {
8019	return s.String()
8020}
8021
8022// SetFirewallDomainList sets the FirewallDomainList field's value.
8023func (s *DeleteFirewallDomainListOutput) SetFirewallDomainList(v *FirewallDomainList) *DeleteFirewallDomainListOutput {
8024	s.FirewallDomainList = v
8025	return s
8026}
8027
8028type DeleteFirewallRuleGroupInput struct {
8029	_ struct{} `type:"structure"`
8030
8031	// The unique identifier of the firewall rule group that you want to delete.
8032	//
8033	// FirewallRuleGroupId is a required field
8034	FirewallRuleGroupId *string `min:"1" type:"string" required:"true"`
8035}
8036
8037// String returns the string representation
8038func (s DeleteFirewallRuleGroupInput) String() string {
8039	return awsutil.Prettify(s)
8040}
8041
8042// GoString returns the string representation
8043func (s DeleteFirewallRuleGroupInput) GoString() string {
8044	return s.String()
8045}
8046
8047// Validate inspects the fields of the type to determine if they are valid.
8048func (s *DeleteFirewallRuleGroupInput) Validate() error {
8049	invalidParams := request.ErrInvalidParams{Context: "DeleteFirewallRuleGroupInput"}
8050	if s.FirewallRuleGroupId == nil {
8051		invalidParams.Add(request.NewErrParamRequired("FirewallRuleGroupId"))
8052	}
8053	if s.FirewallRuleGroupId != nil && len(*s.FirewallRuleGroupId) < 1 {
8054		invalidParams.Add(request.NewErrParamMinLen("FirewallRuleGroupId", 1))
8055	}
8056
8057	if invalidParams.Len() > 0 {
8058		return invalidParams
8059	}
8060	return nil
8061}
8062
8063// SetFirewallRuleGroupId sets the FirewallRuleGroupId field's value.
8064func (s *DeleteFirewallRuleGroupInput) SetFirewallRuleGroupId(v string) *DeleteFirewallRuleGroupInput {
8065	s.FirewallRuleGroupId = &v
8066	return s
8067}
8068
8069type DeleteFirewallRuleGroupOutput struct {
8070	_ struct{} `type:"structure"`
8071
8072	// A collection of rules used to filter DNS network traffic.
8073	FirewallRuleGroup *FirewallRuleGroup `type:"structure"`
8074}
8075
8076// String returns the string representation
8077func (s DeleteFirewallRuleGroupOutput) String() string {
8078	return awsutil.Prettify(s)
8079}
8080
8081// GoString returns the string representation
8082func (s DeleteFirewallRuleGroupOutput) GoString() string {
8083	return s.String()
8084}
8085
8086// SetFirewallRuleGroup sets the FirewallRuleGroup field's value.
8087func (s *DeleteFirewallRuleGroupOutput) SetFirewallRuleGroup(v *FirewallRuleGroup) *DeleteFirewallRuleGroupOutput {
8088	s.FirewallRuleGroup = v
8089	return s
8090}
8091
8092type DeleteFirewallRuleInput struct {
8093	_ struct{} `type:"structure"`
8094
8095	// The ID of the domain list that's used in the rule.
8096	//
8097	// FirewallDomainListId is a required field
8098	FirewallDomainListId *string `min:"1" type:"string" required:"true"`
8099
8100	// The unique identifier of the firewall rule group that you want to delete
8101	// the rule from.
8102	//
8103	// FirewallRuleGroupId is a required field
8104	FirewallRuleGroupId *string `min:"1" type:"string" required:"true"`
8105}
8106
8107// String returns the string representation
8108func (s DeleteFirewallRuleInput) String() string {
8109	return awsutil.Prettify(s)
8110}
8111
8112// GoString returns the string representation
8113func (s DeleteFirewallRuleInput) GoString() string {
8114	return s.String()
8115}
8116
8117// Validate inspects the fields of the type to determine if they are valid.
8118func (s *DeleteFirewallRuleInput) Validate() error {
8119	invalidParams := request.ErrInvalidParams{Context: "DeleteFirewallRuleInput"}
8120	if s.FirewallDomainListId == nil {
8121		invalidParams.Add(request.NewErrParamRequired("FirewallDomainListId"))
8122	}
8123	if s.FirewallDomainListId != nil && len(*s.FirewallDomainListId) < 1 {
8124		invalidParams.Add(request.NewErrParamMinLen("FirewallDomainListId", 1))
8125	}
8126	if s.FirewallRuleGroupId == nil {
8127		invalidParams.Add(request.NewErrParamRequired("FirewallRuleGroupId"))
8128	}
8129	if s.FirewallRuleGroupId != nil && len(*s.FirewallRuleGroupId) < 1 {
8130		invalidParams.Add(request.NewErrParamMinLen("FirewallRuleGroupId", 1))
8131	}
8132
8133	if invalidParams.Len() > 0 {
8134		return invalidParams
8135	}
8136	return nil
8137}
8138
8139// SetFirewallDomainListId sets the FirewallDomainListId field's value.
8140func (s *DeleteFirewallRuleInput) SetFirewallDomainListId(v string) *DeleteFirewallRuleInput {
8141	s.FirewallDomainListId = &v
8142	return s
8143}
8144
8145// SetFirewallRuleGroupId sets the FirewallRuleGroupId field's value.
8146func (s *DeleteFirewallRuleInput) SetFirewallRuleGroupId(v string) *DeleteFirewallRuleInput {
8147	s.FirewallRuleGroupId = &v
8148	return s
8149}
8150
8151type DeleteFirewallRuleOutput struct {
8152	_ struct{} `type:"structure"`
8153
8154	// The specification for the firewall rule that you just deleted.
8155	FirewallRule *FirewallRule `type:"structure"`
8156}
8157
8158// String returns the string representation
8159func (s DeleteFirewallRuleOutput) String() string {
8160	return awsutil.Prettify(s)
8161}
8162
8163// GoString returns the string representation
8164func (s DeleteFirewallRuleOutput) GoString() string {
8165	return s.String()
8166}
8167
8168// SetFirewallRule sets the FirewallRule field's value.
8169func (s *DeleteFirewallRuleOutput) SetFirewallRule(v *FirewallRule) *DeleteFirewallRuleOutput {
8170	s.FirewallRule = v
8171	return s
8172}
8173
8174type DeleteResolverEndpointInput struct {
8175	_ struct{} `type:"structure"`
8176
8177	// The ID of the Resolver endpoint that you want to delete.
8178	//
8179	// ResolverEndpointId is a required field
8180	ResolverEndpointId *string `min:"1" type:"string" required:"true"`
8181}
8182
8183// String returns the string representation
8184func (s DeleteResolverEndpointInput) String() string {
8185	return awsutil.Prettify(s)
8186}
8187
8188// GoString returns the string representation
8189func (s DeleteResolverEndpointInput) GoString() string {
8190	return s.String()
8191}
8192
8193// Validate inspects the fields of the type to determine if they are valid.
8194func (s *DeleteResolverEndpointInput) Validate() error {
8195	invalidParams := request.ErrInvalidParams{Context: "DeleteResolverEndpointInput"}
8196	if s.ResolverEndpointId == nil {
8197		invalidParams.Add(request.NewErrParamRequired("ResolverEndpointId"))
8198	}
8199	if s.ResolverEndpointId != nil && len(*s.ResolverEndpointId) < 1 {
8200		invalidParams.Add(request.NewErrParamMinLen("ResolverEndpointId", 1))
8201	}
8202
8203	if invalidParams.Len() > 0 {
8204		return invalidParams
8205	}
8206	return nil
8207}
8208
8209// SetResolverEndpointId sets the ResolverEndpointId field's value.
8210func (s *DeleteResolverEndpointInput) SetResolverEndpointId(v string) *DeleteResolverEndpointInput {
8211	s.ResolverEndpointId = &v
8212	return s
8213}
8214
8215type DeleteResolverEndpointOutput struct {
8216	_ struct{} `type:"structure"`
8217
8218	// Information about the DeleteResolverEndpoint request, including the status
8219	// of the request.
8220	ResolverEndpoint *ResolverEndpoint `type:"structure"`
8221}
8222
8223// String returns the string representation
8224func (s DeleteResolverEndpointOutput) String() string {
8225	return awsutil.Prettify(s)
8226}
8227
8228// GoString returns the string representation
8229func (s DeleteResolverEndpointOutput) GoString() string {
8230	return s.String()
8231}
8232
8233// SetResolverEndpoint sets the ResolverEndpoint field's value.
8234func (s *DeleteResolverEndpointOutput) SetResolverEndpoint(v *ResolverEndpoint) *DeleteResolverEndpointOutput {
8235	s.ResolverEndpoint = v
8236	return s
8237}
8238
8239type DeleteResolverQueryLogConfigInput struct {
8240	_ struct{} `type:"structure"`
8241
8242	// The ID of the query logging configuration that you want to delete.
8243	//
8244	// ResolverQueryLogConfigId is a required field
8245	ResolverQueryLogConfigId *string `min:"1" type:"string" required:"true"`
8246}
8247
8248// String returns the string representation
8249func (s DeleteResolverQueryLogConfigInput) String() string {
8250	return awsutil.Prettify(s)
8251}
8252
8253// GoString returns the string representation
8254func (s DeleteResolverQueryLogConfigInput) GoString() string {
8255	return s.String()
8256}
8257
8258// Validate inspects the fields of the type to determine if they are valid.
8259func (s *DeleteResolverQueryLogConfigInput) Validate() error {
8260	invalidParams := request.ErrInvalidParams{Context: "DeleteResolverQueryLogConfigInput"}
8261	if s.ResolverQueryLogConfigId == nil {
8262		invalidParams.Add(request.NewErrParamRequired("ResolverQueryLogConfigId"))
8263	}
8264	if s.ResolverQueryLogConfigId != nil && len(*s.ResolverQueryLogConfigId) < 1 {
8265		invalidParams.Add(request.NewErrParamMinLen("ResolverQueryLogConfigId", 1))
8266	}
8267
8268	if invalidParams.Len() > 0 {
8269		return invalidParams
8270	}
8271	return nil
8272}
8273
8274// SetResolverQueryLogConfigId sets the ResolverQueryLogConfigId field's value.
8275func (s *DeleteResolverQueryLogConfigInput) SetResolverQueryLogConfigId(v string) *DeleteResolverQueryLogConfigInput {
8276	s.ResolverQueryLogConfigId = &v
8277	return s
8278}
8279
8280type DeleteResolverQueryLogConfigOutput struct {
8281	_ struct{} `type:"structure"`
8282
8283	// Information about the query logging configuration that you deleted, including
8284	// the status of the request.
8285	ResolverQueryLogConfig *ResolverQueryLogConfig `type:"structure"`
8286}
8287
8288// String returns the string representation
8289func (s DeleteResolverQueryLogConfigOutput) String() string {
8290	return awsutil.Prettify(s)
8291}
8292
8293// GoString returns the string representation
8294func (s DeleteResolverQueryLogConfigOutput) GoString() string {
8295	return s.String()
8296}
8297
8298// SetResolverQueryLogConfig sets the ResolverQueryLogConfig field's value.
8299func (s *DeleteResolverQueryLogConfigOutput) SetResolverQueryLogConfig(v *ResolverQueryLogConfig) *DeleteResolverQueryLogConfigOutput {
8300	s.ResolverQueryLogConfig = v
8301	return s
8302}
8303
8304type DeleteResolverRuleInput struct {
8305	_ struct{} `type:"structure"`
8306
8307	// The ID of the Resolver rule that you want to delete.
8308	//
8309	// ResolverRuleId is a required field
8310	ResolverRuleId *string `min:"1" type:"string" required:"true"`
8311}
8312
8313// String returns the string representation
8314func (s DeleteResolverRuleInput) String() string {
8315	return awsutil.Prettify(s)
8316}
8317
8318// GoString returns the string representation
8319func (s DeleteResolverRuleInput) GoString() string {
8320	return s.String()
8321}
8322
8323// Validate inspects the fields of the type to determine if they are valid.
8324func (s *DeleteResolverRuleInput) Validate() error {
8325	invalidParams := request.ErrInvalidParams{Context: "DeleteResolverRuleInput"}
8326	if s.ResolverRuleId == nil {
8327		invalidParams.Add(request.NewErrParamRequired("ResolverRuleId"))
8328	}
8329	if s.ResolverRuleId != nil && len(*s.ResolverRuleId) < 1 {
8330		invalidParams.Add(request.NewErrParamMinLen("ResolverRuleId", 1))
8331	}
8332
8333	if invalidParams.Len() > 0 {
8334		return invalidParams
8335	}
8336	return nil
8337}
8338
8339// SetResolverRuleId sets the ResolverRuleId field's value.
8340func (s *DeleteResolverRuleInput) SetResolverRuleId(v string) *DeleteResolverRuleInput {
8341	s.ResolverRuleId = &v
8342	return s
8343}
8344
8345type DeleteResolverRuleOutput struct {
8346	_ struct{} `type:"structure"`
8347
8348	// Information about the DeleteResolverRule request, including the status of
8349	// the request.
8350	ResolverRule *ResolverRule `type:"structure"`
8351}
8352
8353// String returns the string representation
8354func (s DeleteResolverRuleOutput) String() string {
8355	return awsutil.Prettify(s)
8356}
8357
8358// GoString returns the string representation
8359func (s DeleteResolverRuleOutput) GoString() string {
8360	return s.String()
8361}
8362
8363// SetResolverRule sets the ResolverRule field's value.
8364func (s *DeleteResolverRuleOutput) SetResolverRule(v *ResolverRule) *DeleteResolverRuleOutput {
8365	s.ResolverRule = v
8366	return s
8367}
8368
8369type DisassociateFirewallRuleGroupInput struct {
8370	_ struct{} `type:"structure"`
8371
8372	// The identifier of the FirewallRuleGroupAssociation.
8373	//
8374	// FirewallRuleGroupAssociationId is a required field
8375	FirewallRuleGroupAssociationId *string `min:"1" type:"string" required:"true"`
8376}
8377
8378// String returns the string representation
8379func (s DisassociateFirewallRuleGroupInput) String() string {
8380	return awsutil.Prettify(s)
8381}
8382
8383// GoString returns the string representation
8384func (s DisassociateFirewallRuleGroupInput) GoString() string {
8385	return s.String()
8386}
8387
8388// Validate inspects the fields of the type to determine if they are valid.
8389func (s *DisassociateFirewallRuleGroupInput) Validate() error {
8390	invalidParams := request.ErrInvalidParams{Context: "DisassociateFirewallRuleGroupInput"}
8391	if s.FirewallRuleGroupAssociationId == nil {
8392		invalidParams.Add(request.NewErrParamRequired("FirewallRuleGroupAssociationId"))
8393	}
8394	if s.FirewallRuleGroupAssociationId != nil && len(*s.FirewallRuleGroupAssociationId) < 1 {
8395		invalidParams.Add(request.NewErrParamMinLen("FirewallRuleGroupAssociationId", 1))
8396	}
8397
8398	if invalidParams.Len() > 0 {
8399		return invalidParams
8400	}
8401	return nil
8402}
8403
8404// SetFirewallRuleGroupAssociationId sets the FirewallRuleGroupAssociationId field's value.
8405func (s *DisassociateFirewallRuleGroupInput) SetFirewallRuleGroupAssociationId(v string) *DisassociateFirewallRuleGroupInput {
8406	s.FirewallRuleGroupAssociationId = &v
8407	return s
8408}
8409
8410type DisassociateFirewallRuleGroupOutput struct {
8411	_ struct{} `type:"structure"`
8412
8413	// The firewall rule group association that you just removed.
8414	FirewallRuleGroupAssociation *FirewallRuleGroupAssociation `type:"structure"`
8415}
8416
8417// String returns the string representation
8418func (s DisassociateFirewallRuleGroupOutput) String() string {
8419	return awsutil.Prettify(s)
8420}
8421
8422// GoString returns the string representation
8423func (s DisassociateFirewallRuleGroupOutput) GoString() string {
8424	return s.String()
8425}
8426
8427// SetFirewallRuleGroupAssociation sets the FirewallRuleGroupAssociation field's value.
8428func (s *DisassociateFirewallRuleGroupOutput) SetFirewallRuleGroupAssociation(v *FirewallRuleGroupAssociation) *DisassociateFirewallRuleGroupOutput {
8429	s.FirewallRuleGroupAssociation = v
8430	return s
8431}
8432
8433type DisassociateResolverEndpointIpAddressInput struct {
8434	_ struct{} `type:"structure"`
8435
8436	// The IPv4 address that you want to remove from a Resolver endpoint.
8437	//
8438	// IpAddress is a required field
8439	IpAddress *IpAddressUpdate `type:"structure" required:"true"`
8440
8441	// The ID of the Resolver endpoint that you want to disassociate an IP address
8442	// from.
8443	//
8444	// ResolverEndpointId is a required field
8445	ResolverEndpointId *string `min:"1" type:"string" required:"true"`
8446}
8447
8448// String returns the string representation
8449func (s DisassociateResolverEndpointIpAddressInput) String() string {
8450	return awsutil.Prettify(s)
8451}
8452
8453// GoString returns the string representation
8454func (s DisassociateResolverEndpointIpAddressInput) GoString() string {
8455	return s.String()
8456}
8457
8458// Validate inspects the fields of the type to determine if they are valid.
8459func (s *DisassociateResolverEndpointIpAddressInput) Validate() error {
8460	invalidParams := request.ErrInvalidParams{Context: "DisassociateResolverEndpointIpAddressInput"}
8461	if s.IpAddress == nil {
8462		invalidParams.Add(request.NewErrParamRequired("IpAddress"))
8463	}
8464	if s.ResolverEndpointId == nil {
8465		invalidParams.Add(request.NewErrParamRequired("ResolverEndpointId"))
8466	}
8467	if s.ResolverEndpointId != nil && len(*s.ResolverEndpointId) < 1 {
8468		invalidParams.Add(request.NewErrParamMinLen("ResolverEndpointId", 1))
8469	}
8470	if s.IpAddress != nil {
8471		if err := s.IpAddress.Validate(); err != nil {
8472			invalidParams.AddNested("IpAddress", err.(request.ErrInvalidParams))
8473		}
8474	}
8475
8476	if invalidParams.Len() > 0 {
8477		return invalidParams
8478	}
8479	return nil
8480}
8481
8482// SetIpAddress sets the IpAddress field's value.
8483func (s *DisassociateResolverEndpointIpAddressInput) SetIpAddress(v *IpAddressUpdate) *DisassociateResolverEndpointIpAddressInput {
8484	s.IpAddress = v
8485	return s
8486}
8487
8488// SetResolverEndpointId sets the ResolverEndpointId field's value.
8489func (s *DisassociateResolverEndpointIpAddressInput) SetResolverEndpointId(v string) *DisassociateResolverEndpointIpAddressInput {
8490	s.ResolverEndpointId = &v
8491	return s
8492}
8493
8494type DisassociateResolverEndpointIpAddressOutput struct {
8495	_ struct{} `type:"structure"`
8496
8497	// The response to an DisassociateResolverEndpointIpAddress request.
8498	ResolverEndpoint *ResolverEndpoint `type:"structure"`
8499}
8500
8501// String returns the string representation
8502func (s DisassociateResolverEndpointIpAddressOutput) String() string {
8503	return awsutil.Prettify(s)
8504}
8505
8506// GoString returns the string representation
8507func (s DisassociateResolverEndpointIpAddressOutput) GoString() string {
8508	return s.String()
8509}
8510
8511// SetResolverEndpoint sets the ResolverEndpoint field's value.
8512func (s *DisassociateResolverEndpointIpAddressOutput) SetResolverEndpoint(v *ResolverEndpoint) *DisassociateResolverEndpointIpAddressOutput {
8513	s.ResolverEndpoint = v
8514	return s
8515}
8516
8517type DisassociateResolverQueryLogConfigInput struct {
8518	_ struct{} `type:"structure"`
8519
8520	// The ID of the query logging configuration that you want to disassociate a
8521	// specified VPC from.
8522	//
8523	// ResolverQueryLogConfigId is a required field
8524	ResolverQueryLogConfigId *string `min:"1" type:"string" required:"true"`
8525
8526	// The ID of the Amazon VPC that you want to disassociate from a specified query
8527	// logging configuration.
8528	//
8529	// ResourceId is a required field
8530	ResourceId *string `min:"1" type:"string" required:"true"`
8531}
8532
8533// String returns the string representation
8534func (s DisassociateResolverQueryLogConfigInput) String() string {
8535	return awsutil.Prettify(s)
8536}
8537
8538// GoString returns the string representation
8539func (s DisassociateResolverQueryLogConfigInput) GoString() string {
8540	return s.String()
8541}
8542
8543// Validate inspects the fields of the type to determine if they are valid.
8544func (s *DisassociateResolverQueryLogConfigInput) Validate() error {
8545	invalidParams := request.ErrInvalidParams{Context: "DisassociateResolverQueryLogConfigInput"}
8546	if s.ResolverQueryLogConfigId == nil {
8547		invalidParams.Add(request.NewErrParamRequired("ResolverQueryLogConfigId"))
8548	}
8549	if s.ResolverQueryLogConfigId != nil && len(*s.ResolverQueryLogConfigId) < 1 {
8550		invalidParams.Add(request.NewErrParamMinLen("ResolverQueryLogConfigId", 1))
8551	}
8552	if s.ResourceId == nil {
8553		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
8554	}
8555	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
8556		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
8557	}
8558
8559	if invalidParams.Len() > 0 {
8560		return invalidParams
8561	}
8562	return nil
8563}
8564
8565// SetResolverQueryLogConfigId sets the ResolverQueryLogConfigId field's value.
8566func (s *DisassociateResolverQueryLogConfigInput) SetResolverQueryLogConfigId(v string) *DisassociateResolverQueryLogConfigInput {
8567	s.ResolverQueryLogConfigId = &v
8568	return s
8569}
8570
8571// SetResourceId sets the ResourceId field's value.
8572func (s *DisassociateResolverQueryLogConfigInput) SetResourceId(v string) *DisassociateResolverQueryLogConfigInput {
8573	s.ResourceId = &v
8574	return s
8575}
8576
8577type DisassociateResolverQueryLogConfigOutput struct {
8578	_ struct{} `type:"structure"`
8579
8580	// A complex type that contains settings for the association that you deleted
8581	// between an Amazon VPC and a query logging configuration.
8582	ResolverQueryLogConfigAssociation *ResolverQueryLogConfigAssociation `type:"structure"`
8583}
8584
8585// String returns the string representation
8586func (s DisassociateResolverQueryLogConfigOutput) String() string {
8587	return awsutil.Prettify(s)
8588}
8589
8590// GoString returns the string representation
8591func (s DisassociateResolverQueryLogConfigOutput) GoString() string {
8592	return s.String()
8593}
8594
8595// SetResolverQueryLogConfigAssociation sets the ResolverQueryLogConfigAssociation field's value.
8596func (s *DisassociateResolverQueryLogConfigOutput) SetResolverQueryLogConfigAssociation(v *ResolverQueryLogConfigAssociation) *DisassociateResolverQueryLogConfigOutput {
8597	s.ResolverQueryLogConfigAssociation = v
8598	return s
8599}
8600
8601type DisassociateResolverRuleInput struct {
8602	_ struct{} `type:"structure"`
8603
8604	// The ID of the Resolver rule that you want to disassociate from the specified
8605	// VPC.
8606	//
8607	// ResolverRuleId is a required field
8608	ResolverRuleId *string `min:"1" type:"string" required:"true"`
8609
8610	// The ID of the VPC that you want to disassociate the Resolver rule from.
8611	//
8612	// VPCId is a required field
8613	VPCId *string `min:"1" type:"string" required:"true"`
8614}
8615
8616// String returns the string representation
8617func (s DisassociateResolverRuleInput) String() string {
8618	return awsutil.Prettify(s)
8619}
8620
8621// GoString returns the string representation
8622func (s DisassociateResolverRuleInput) GoString() string {
8623	return s.String()
8624}
8625
8626// Validate inspects the fields of the type to determine if they are valid.
8627func (s *DisassociateResolverRuleInput) Validate() error {
8628	invalidParams := request.ErrInvalidParams{Context: "DisassociateResolverRuleInput"}
8629	if s.ResolverRuleId == nil {
8630		invalidParams.Add(request.NewErrParamRequired("ResolverRuleId"))
8631	}
8632	if s.ResolverRuleId != nil && len(*s.ResolverRuleId) < 1 {
8633		invalidParams.Add(request.NewErrParamMinLen("ResolverRuleId", 1))
8634	}
8635	if s.VPCId == nil {
8636		invalidParams.Add(request.NewErrParamRequired("VPCId"))
8637	}
8638	if s.VPCId != nil && len(*s.VPCId) < 1 {
8639		invalidParams.Add(request.NewErrParamMinLen("VPCId", 1))
8640	}
8641
8642	if invalidParams.Len() > 0 {
8643		return invalidParams
8644	}
8645	return nil
8646}
8647
8648// SetResolverRuleId sets the ResolverRuleId field's value.
8649func (s *DisassociateResolverRuleInput) SetResolverRuleId(v string) *DisassociateResolverRuleInput {
8650	s.ResolverRuleId = &v
8651	return s
8652}
8653
8654// SetVPCId sets the VPCId field's value.
8655func (s *DisassociateResolverRuleInput) SetVPCId(v string) *DisassociateResolverRuleInput {
8656	s.VPCId = &v
8657	return s
8658}
8659
8660type DisassociateResolverRuleOutput struct {
8661	_ struct{} `type:"structure"`
8662
8663	// Information about the DisassociateResolverRule request, including the status
8664	// of the request.
8665	ResolverRuleAssociation *ResolverRuleAssociation `type:"structure"`
8666}
8667
8668// String returns the string representation
8669func (s DisassociateResolverRuleOutput) String() string {
8670	return awsutil.Prettify(s)
8671}
8672
8673// GoString returns the string representation
8674func (s DisassociateResolverRuleOutput) GoString() string {
8675	return s.String()
8676}
8677
8678// SetResolverRuleAssociation sets the ResolverRuleAssociation field's value.
8679func (s *DisassociateResolverRuleOutput) SetResolverRuleAssociation(v *ResolverRuleAssociation) *DisassociateResolverRuleOutput {
8680	s.ResolverRuleAssociation = v
8681	return s
8682}
8683
8684// For Resolver list operations (ListResolverEndpoints (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverEndpoints.html),
8685// ListResolverRules (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverRules.html),
8686// ListResolverRuleAssociations (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverRuleAssociations.html),
8687// ListResolverQueryLogConfigs (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverQueryLogConfigs.html),
8688// ListResolverQueryLogConfigAssociations (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverQueryLogConfigAssociations.html)),
8689// and ListResolverDnssecConfigs (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverDnssecConfigs.html)),
8690// an optional specification to return a subset of objects.
8691//
8692// To filter objects, such as Resolver endpoints or Resolver rules, you specify
8693// Name and Values. For example, to list only inbound Resolver endpoints, specify
8694// Direction for Name and specify INBOUND for Values.
8695type Filter struct {
8696	_ struct{} `type:"structure"`
8697
8698	// The name of the parameter that you want to use to filter objects.
8699	//
8700	// The valid values for Name depend on the action that you're including the
8701	// filter in, ListResolverEndpoints (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverEndpoints.html),
8702	// ListResolverRules (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverRules.html),
8703	// ListResolverRuleAssociations (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverRuleAssociations.html),
8704	// ListResolverQueryLogConfigs (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverQueryLogConfigs.html),
8705	// or ListResolverQueryLogConfigAssociations (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverQueryLogConfigAssociations.html).
8706	//
8707	// In early versions of Resolver, values for Name were listed as uppercase,
8708	// with underscore (_) delimiters. For example, CreatorRequestId was originally
8709	// listed as CREATOR_REQUEST_ID. Uppercase values for Name are still supported.
8710	//
8711	// ListResolverEndpoints
8712	//
8713	// Valid values for Name include the following:
8714	//
8715	//    * CreatorRequestId: The value that you specified when you created the
8716	//    Resolver endpoint.
8717	//
8718	//    * Direction: Whether you want to return inbound or outbound Resolver endpoints.
8719	//    If you specify DIRECTION for Name, specify INBOUND or OUTBOUND for Values.
8720	//
8721	//    * HostVPCId: The ID of the VPC that inbound DNS queries pass through on
8722	//    the way from your network to your VPCs in a region, or the VPC that outbound
8723	//    queries pass through on the way from your VPCs to your network. In a CreateResolverEndpoint
8724	//    (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_CreateResolverEndpoint.html)
8725	//    request, SubnetId indirectly identifies the VPC. In a GetResolverEndpoint
8726	//    (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverEndpoint.html)
8727	//    request, the VPC ID for a Resolver endpoint is returned in the HostVPCId
8728	//    element.
8729	//
8730	//    * IpAddressCount: The number of IP addresses that you have associated
8731	//    with the Resolver endpoint.
8732	//
8733	//    * Name: The name of the Resolver endpoint.
8734	//
8735	//    * SecurityGroupIds: The IDs of the VPC security groups that you specified
8736	//    when you created the Resolver endpoint.
8737	//
8738	//    * Status: The status of the Resolver endpoint. If you specify Status for
8739	//    Name, specify one of the following status codes for Values: CREATING,
8740	//    OPERATIONAL, UPDATING, AUTO_RECOVERING, ACTION_NEEDED, or DELETING. For
8741	//    more information, see Status in ResolverEndpoint (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ResolverEndpoint.html).
8742	//
8743	// ListResolverRules
8744	//
8745	// Valid values for Name include the following:
8746	//
8747	//    * CreatorRequestId: The value that you specified when you created the
8748	//    Resolver rule.
8749	//
8750	//    * DomainName: The domain name for which Resolver is forwarding DNS queries
8751	//    to your network. In the value that you specify for Values, include a trailing
8752	//    dot (.) after the domain name. For example, if the domain name is example.com,
8753	//    specify the following value. Note the "." after com: example.com.
8754	//
8755	//    * Name: The name of the Resolver rule.
8756	//
8757	//    * ResolverEndpointId: The ID of the Resolver endpoint that the Resolver
8758	//    rule is associated with. You can filter on the Resolver endpoint only
8759	//    for rules that have a value of FORWARD for RuleType.
8760	//
8761	//    * Status: The status of the Resolver rule. If you specify Status for Name,
8762	//    specify one of the following status codes for Values: COMPLETE, DELETING,
8763	//    UPDATING, or FAILED.
8764	//
8765	//    * Type: The type of the Resolver rule. If you specify TYPE for Name, specify
8766	//    FORWARD or SYSTEM for Values.
8767	//
8768	// ListResolverRuleAssociations
8769	//
8770	// Valid values for Name include the following:
8771	//
8772	//    * Name: The name of the Resolver rule association.
8773	//
8774	//    * ResolverRuleId: The ID of the Resolver rule that is associated with
8775	//    one or more VPCs.
8776	//
8777	//    * Status: The status of the Resolver rule association. If you specify
8778	//    Status for Name, specify one of the following status codes for Values:
8779	//    CREATING, COMPLETE, DELETING, or FAILED.
8780	//
8781	//    * VPCId: The ID of the VPC that the Resolver rule is associated with.
8782	//
8783	// ListResolverQueryLogConfigs
8784	//
8785	// Valid values for Name include the following:
8786	//
8787	//    * Arn: The ARN for the query logging configuration.
8788	//
8789	//    * AssociationCount: The number of VPCs that are associated with the query
8790	//    logging configuration.
8791	//
8792	//    * CreationTime: The date and time that the query logging configuration
8793	//    was created, in Unix time format and Coordinated Universal Time (UTC).
8794	//
8795	//    * CreatorRequestId: A unique string that identifies the request that created
8796	//    the query logging configuration.
8797	//
8798	//    * Destination: The Amazon Web Services service that you want to forward
8799	//    query logs to. Valid values include the following: S3 CloudWatchLogs KinesisFirehose
8800	//
8801	//    * DestinationArn: The ARN of the location that Resolver is sending query
8802	//    logs to. This value can be the ARN for an S3 bucket, a CloudWatch Logs
8803	//    log group, or a Kinesis Data Firehose delivery stream.
8804	//
8805	//    * Id: The ID of the query logging configuration
8806	//
8807	//    * Name: The name of the query logging configuration
8808	//
8809	//    * OwnerId: The Amazon Web Services account ID for the account that created
8810	//    the query logging configuration.
8811	//
8812	//    * ShareStatus: An indication of whether the query logging configuration
8813	//    is shared with other Amazon Web Services accounts, or was shared with
8814	//    the current account by another Amazon Web Services account. Valid values
8815	//    include: NOT_SHARED, SHARED_WITH_ME, or SHARED_BY_ME.
8816	//
8817	//    * Status: The status of the query logging configuration. If you specify
8818	//    Status for Name, specify the applicable status code for Values: CREATING,
8819	//    CREATED, DELETING, or FAILED. For more information, see Status (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ResolverQueryLogConfig.html#Route53Resolver-Type-route53resolver_ResolverQueryLogConfig-Status).
8820	//
8821	// ListResolverQueryLogConfigAssociations
8822	//
8823	// Valid values for Name include the following:
8824	//
8825	//    * CreationTime: The date and time that the VPC was associated with the
8826	//    query logging configuration, in Unix time format and Coordinated Universal
8827	//    Time (UTC).
8828	//
8829	//    * Error: If the value of Status is FAILED, specify the cause: DESTINATION_NOT_FOUND
8830	//    or ACCESS_DENIED.
8831	//
8832	//    * Id: The ID of the query logging association.
8833	//
8834	//    * ResolverQueryLogConfigId: The ID of the query logging configuration
8835	//    that a VPC is associated with.
8836	//
8837	//    * ResourceId: The ID of the Amazon VPC that is associated with the query
8838	//    logging configuration.
8839	//
8840	//    * Status: The status of the query logging association. If you specify
8841	//    Status for Name, specify the applicable status code for Values: CREATING,
8842	//    CREATED, DELETING, or FAILED. For more information, see Status (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ResolverQueryLogConfigAssociation.html#Route53Resolver-Type-route53resolver_ResolverQueryLogConfigAssociation-Status).
8843	Name *string `min:"1" type:"string"`
8844
8845	// When you're using a List operation and you want the operation to return a
8846	// subset of objects, such as Resolver endpoints or Resolver rules, the value
8847	// of the parameter that you want to use to filter objects. For example, to
8848	// list only inbound Resolver endpoints, specify Direction for Name and specify
8849	// INBOUND for Values.
8850	Values []*string `type:"list"`
8851}
8852
8853// String returns the string representation
8854func (s Filter) String() string {
8855	return awsutil.Prettify(s)
8856}
8857
8858// GoString returns the string representation
8859func (s Filter) GoString() string {
8860	return s.String()
8861}
8862
8863// Validate inspects the fields of the type to determine if they are valid.
8864func (s *Filter) Validate() error {
8865	invalidParams := request.ErrInvalidParams{Context: "Filter"}
8866	if s.Name != nil && len(*s.Name) < 1 {
8867		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
8868	}
8869
8870	if invalidParams.Len() > 0 {
8871		return invalidParams
8872	}
8873	return nil
8874}
8875
8876// SetName sets the Name field's value.
8877func (s *Filter) SetName(v string) *Filter {
8878	s.Name = &v
8879	return s
8880}
8881
8882// SetValues sets the Values field's value.
8883func (s *Filter) SetValues(v []*string) *Filter {
8884	s.Values = v
8885	return s
8886}
8887
8888// Configuration of the firewall behavior provided by DNS Firewall for a single
8889// VPC from Amazon Virtual Private Cloud (Amazon VPC).
8890type FirewallConfig struct {
8891	_ struct{} `type:"structure"`
8892
8893	// Determines how DNS Firewall operates during failures, for example when all
8894	// traffic that is sent to DNS Firewall fails to receive a reply.
8895	//
8896	//    * By default, fail open is disabled, which means the failure mode is closed.
8897	//    This approach favors security over availability. DNS Firewall returns
8898	//    a failure error when it is unable to properly evaluate a query.
8899	//
8900	//    * If you enable this option, the failure mode is open. This approach favors
8901	//    availability over security. DNS Firewall allows queries to proceed if
8902	//    it is unable to properly evaluate them.
8903	//
8904	// This behavior is only enforced for VPCs that have at least one DNS Firewall
8905	// rule group association.
8906	FirewallFailOpen *string `type:"string" enum:"FirewallFailOpenStatus"`
8907
8908	// The ID of the firewall configuration.
8909	Id *string `min:"1" type:"string"`
8910
8911	// The Amazon Web Services account ID of the owner of the VPC that this firewall
8912	// configuration applies to.
8913	OwnerId *string `min:"12" type:"string"`
8914
8915	// The ID of the VPC that this firewall configuration applies to.
8916	ResourceId *string `min:"1" type:"string"`
8917}
8918
8919// String returns the string representation
8920func (s FirewallConfig) String() string {
8921	return awsutil.Prettify(s)
8922}
8923
8924// GoString returns the string representation
8925func (s FirewallConfig) GoString() string {
8926	return s.String()
8927}
8928
8929// SetFirewallFailOpen sets the FirewallFailOpen field's value.
8930func (s *FirewallConfig) SetFirewallFailOpen(v string) *FirewallConfig {
8931	s.FirewallFailOpen = &v
8932	return s
8933}
8934
8935// SetId sets the Id field's value.
8936func (s *FirewallConfig) SetId(v string) *FirewallConfig {
8937	s.Id = &v
8938	return s
8939}
8940
8941// SetOwnerId sets the OwnerId field's value.
8942func (s *FirewallConfig) SetOwnerId(v string) *FirewallConfig {
8943	s.OwnerId = &v
8944	return s
8945}
8946
8947// SetResourceId sets the ResourceId field's value.
8948func (s *FirewallConfig) SetResourceId(v string) *FirewallConfig {
8949	s.ResourceId = &v
8950	return s
8951}
8952
8953// High-level information about a list of firewall domains for use in a FirewallRule.
8954// This is returned by GetFirewallDomainList.
8955//
8956// To retrieve the domains that are defined for this domain list, call ListFirewallDomains.
8957type FirewallDomainList struct {
8958	_ struct{} `type:"structure"`
8959
8960	// The Amazon Resource Name (ARN) of the firewall domain list.
8961	Arn *string `min:"1" type:"string"`
8962
8963	// The date and time that the domain list was created, in Unix time format and
8964	// Coordinated Universal Time (UTC).
8965	CreationTime *string `min:"20" type:"string"`
8966
8967	// A unique string defined by you to identify the request. This allows you to
8968	// retry failed requests without the risk of running the operation twice. This
8969	// can be any unique string, for example, a timestamp.
8970	CreatorRequestId *string `min:"1" type:"string"`
8971
8972	// The number of domain names that are specified in the domain list.
8973	DomainCount *int64 `type:"integer"`
8974
8975	// The ID of the domain list.
8976	Id *string `min:"1" type:"string"`
8977
8978	// The owner of the list, used only for lists that are not managed by you. For
8979	// example, the managed domain list AWSManagedDomainsMalwareDomainList has the
8980	// managed owner name Route 53 Resolver DNS Firewall.
8981	ManagedOwnerName *string `min:"1" type:"string"`
8982
8983	// The date and time that the domain list was last modified, in Unix time format
8984	// and Coordinated Universal Time (UTC).
8985	ModificationTime *string `min:"20" type:"string"`
8986
8987	// The name of the domain list.
8988	Name *string `type:"string"`
8989
8990	// The status of the domain list.
8991	Status *string `type:"string" enum:"FirewallDomainListStatus"`
8992
8993	// Additional information about the status of the list, if available.
8994	StatusMessage *string `type:"string"`
8995}
8996
8997// String returns the string representation
8998func (s FirewallDomainList) String() string {
8999	return awsutil.Prettify(s)
9000}
9001
9002// GoString returns the string representation
9003func (s FirewallDomainList) GoString() string {
9004	return s.String()
9005}
9006
9007// SetArn sets the Arn field's value.
9008func (s *FirewallDomainList) SetArn(v string) *FirewallDomainList {
9009	s.Arn = &v
9010	return s
9011}
9012
9013// SetCreationTime sets the CreationTime field's value.
9014func (s *FirewallDomainList) SetCreationTime(v string) *FirewallDomainList {
9015	s.CreationTime = &v
9016	return s
9017}
9018
9019// SetCreatorRequestId sets the CreatorRequestId field's value.
9020func (s *FirewallDomainList) SetCreatorRequestId(v string) *FirewallDomainList {
9021	s.CreatorRequestId = &v
9022	return s
9023}
9024
9025// SetDomainCount sets the DomainCount field's value.
9026func (s *FirewallDomainList) SetDomainCount(v int64) *FirewallDomainList {
9027	s.DomainCount = &v
9028	return s
9029}
9030
9031// SetId sets the Id field's value.
9032func (s *FirewallDomainList) SetId(v string) *FirewallDomainList {
9033	s.Id = &v
9034	return s
9035}
9036
9037// SetManagedOwnerName sets the ManagedOwnerName field's value.
9038func (s *FirewallDomainList) SetManagedOwnerName(v string) *FirewallDomainList {
9039	s.ManagedOwnerName = &v
9040	return s
9041}
9042
9043// SetModificationTime sets the ModificationTime field's value.
9044func (s *FirewallDomainList) SetModificationTime(v string) *FirewallDomainList {
9045	s.ModificationTime = &v
9046	return s
9047}
9048
9049// SetName sets the Name field's value.
9050func (s *FirewallDomainList) SetName(v string) *FirewallDomainList {
9051	s.Name = &v
9052	return s
9053}
9054
9055// SetStatus sets the Status field's value.
9056func (s *FirewallDomainList) SetStatus(v string) *FirewallDomainList {
9057	s.Status = &v
9058	return s
9059}
9060
9061// SetStatusMessage sets the StatusMessage field's value.
9062func (s *FirewallDomainList) SetStatusMessage(v string) *FirewallDomainList {
9063	s.StatusMessage = &v
9064	return s
9065}
9066
9067// Minimal high-level information for a firewall domain list. The action ListFirewallDomainLists
9068// returns an array of these objects.
9069//
9070// To retrieve full information for a firewall domain list, call GetFirewallDomainList
9071// and ListFirewallDomains.
9072type FirewallDomainListMetadata struct {
9073	_ struct{} `type:"structure"`
9074
9075	// The Amazon Resource Name (ARN) of the firewall domain list metadata.
9076	Arn *string `min:"1" type:"string"`
9077
9078	// A unique string defined by you to identify the request. This allows you to
9079	// retry failed requests without the risk of running the operation twice. This
9080	// can be any unique string, for example, a timestamp.
9081	CreatorRequestId *string `min:"1" type:"string"`
9082
9083	// The ID of the domain list.
9084	Id *string `min:"1" type:"string"`
9085
9086	// The owner of the list, used only for lists that are not managed by you. For
9087	// example, the managed domain list AWSManagedDomainsMalwareDomainList has the
9088	// managed owner name Route 53 Resolver DNS Firewall.
9089	ManagedOwnerName *string `min:"1" type:"string"`
9090
9091	// The name of the domain list.
9092	Name *string `type:"string"`
9093}
9094
9095// String returns the string representation
9096func (s FirewallDomainListMetadata) String() string {
9097	return awsutil.Prettify(s)
9098}
9099
9100// GoString returns the string representation
9101func (s FirewallDomainListMetadata) GoString() string {
9102	return s.String()
9103}
9104
9105// SetArn sets the Arn field's value.
9106func (s *FirewallDomainListMetadata) SetArn(v string) *FirewallDomainListMetadata {
9107	s.Arn = &v
9108	return s
9109}
9110
9111// SetCreatorRequestId sets the CreatorRequestId field's value.
9112func (s *FirewallDomainListMetadata) SetCreatorRequestId(v string) *FirewallDomainListMetadata {
9113	s.CreatorRequestId = &v
9114	return s
9115}
9116
9117// SetId sets the Id field's value.
9118func (s *FirewallDomainListMetadata) SetId(v string) *FirewallDomainListMetadata {
9119	s.Id = &v
9120	return s
9121}
9122
9123// SetManagedOwnerName sets the ManagedOwnerName field's value.
9124func (s *FirewallDomainListMetadata) SetManagedOwnerName(v string) *FirewallDomainListMetadata {
9125	s.ManagedOwnerName = &v
9126	return s
9127}
9128
9129// SetName sets the Name field's value.
9130func (s *FirewallDomainListMetadata) SetName(v string) *FirewallDomainListMetadata {
9131	s.Name = &v
9132	return s
9133}
9134
9135// A single firewall rule in a rule group.
9136type FirewallRule struct {
9137	_ struct{} `type:"structure"`
9138
9139	// The action that DNS Firewall should take on a DNS query when it matches one
9140	// of the domains in the rule's domain list:
9141	//
9142	//    * ALLOW - Permit the request to go through.
9143	//
9144	//    * ALERT - Permit the request to go through but send an alert to the logs.
9145	//
9146	//    * BLOCK - Disallow the request. If this is specified, additional handling
9147	//    details are provided in the rule's BlockResponse setting.
9148	Action *string `type:"string" enum:"Action"`
9149
9150	// The DNS record's type. This determines the format of the record value that
9151	// you provided in BlockOverrideDomain. Used for the rule action BLOCK with
9152	// a BlockResponse setting of OVERRIDE.
9153	BlockOverrideDnsType *string `type:"string" enum:"BlockOverrideDnsType"`
9154
9155	// The custom DNS record to send back in response to the query. Used for the
9156	// rule action BLOCK with a BlockResponse setting of OVERRIDE.
9157	BlockOverrideDomain *string `min:"1" type:"string"`
9158
9159	// The recommended amount of time, in seconds, for the DNS resolver or web browser
9160	// to cache the provided override record. Used for the rule action BLOCK with
9161	// a BlockResponse setting of OVERRIDE.
9162	BlockOverrideTtl *int64 `type:"integer"`
9163
9164	// The way that you want DNS Firewall to block the request. Used for the rule
9165	// action setting BLOCK.
9166	//
9167	//    * NODATA - Respond indicating that the query was successful, but no response
9168	//    is available for it.
9169	//
9170	//    * NXDOMAIN - Respond indicating that the domain name that's in the query
9171	//    doesn't exist.
9172	//
9173	//    * OVERRIDE - Provide a custom override in the response. This option requires
9174	//    custom handling details in the rule's BlockOverride* settings.
9175	BlockResponse *string `type:"string" enum:"BlockResponse"`
9176
9177	// The date and time that the rule was created, in Unix time format and Coordinated
9178	// Universal Time (UTC).
9179	CreationTime *string `min:"20" type:"string"`
9180
9181	// A unique string defined by you to identify the request. This allows you to
9182	// retry failed requests without the risk of executing the operation twice.
9183	// This can be any unique string, for example, a timestamp.
9184	CreatorRequestId *string `min:"1" type:"string"`
9185
9186	// The ID of the domain list that's used in the rule.
9187	FirewallDomainListId *string `min:"1" type:"string"`
9188
9189	// The unique identifier of the firewall rule group of the rule.
9190	FirewallRuleGroupId *string `min:"1" type:"string"`
9191
9192	// The date and time that the rule was last modified, in Unix time format and
9193	// Coordinated Universal Time (UTC).
9194	ModificationTime *string `min:"20" type:"string"`
9195
9196	// The name of the rule.
9197	Name *string `type:"string"`
9198
9199	// The priority of the rule in the rule group. This value must be unique within
9200	// the rule group. DNS Firewall processes the rules in a rule group by order
9201	// of priority, starting from the lowest setting.
9202	Priority *int64 `type:"integer"`
9203}
9204
9205// String returns the string representation
9206func (s FirewallRule) String() string {
9207	return awsutil.Prettify(s)
9208}
9209
9210// GoString returns the string representation
9211func (s FirewallRule) GoString() string {
9212	return s.String()
9213}
9214
9215// SetAction sets the Action field's value.
9216func (s *FirewallRule) SetAction(v string) *FirewallRule {
9217	s.Action = &v
9218	return s
9219}
9220
9221// SetBlockOverrideDnsType sets the BlockOverrideDnsType field's value.
9222func (s *FirewallRule) SetBlockOverrideDnsType(v string) *FirewallRule {
9223	s.BlockOverrideDnsType = &v
9224	return s
9225}
9226
9227// SetBlockOverrideDomain sets the BlockOverrideDomain field's value.
9228func (s *FirewallRule) SetBlockOverrideDomain(v string) *FirewallRule {
9229	s.BlockOverrideDomain = &v
9230	return s
9231}
9232
9233// SetBlockOverrideTtl sets the BlockOverrideTtl field's value.
9234func (s *FirewallRule) SetBlockOverrideTtl(v int64) *FirewallRule {
9235	s.BlockOverrideTtl = &v
9236	return s
9237}
9238
9239// SetBlockResponse sets the BlockResponse field's value.
9240func (s *FirewallRule) SetBlockResponse(v string) *FirewallRule {
9241	s.BlockResponse = &v
9242	return s
9243}
9244
9245// SetCreationTime sets the CreationTime field's value.
9246func (s *FirewallRule) SetCreationTime(v string) *FirewallRule {
9247	s.CreationTime = &v
9248	return s
9249}
9250
9251// SetCreatorRequestId sets the CreatorRequestId field's value.
9252func (s *FirewallRule) SetCreatorRequestId(v string) *FirewallRule {
9253	s.CreatorRequestId = &v
9254	return s
9255}
9256
9257// SetFirewallDomainListId sets the FirewallDomainListId field's value.
9258func (s *FirewallRule) SetFirewallDomainListId(v string) *FirewallRule {
9259	s.FirewallDomainListId = &v
9260	return s
9261}
9262
9263// SetFirewallRuleGroupId sets the FirewallRuleGroupId field's value.
9264func (s *FirewallRule) SetFirewallRuleGroupId(v string) *FirewallRule {
9265	s.FirewallRuleGroupId = &v
9266	return s
9267}
9268
9269// SetModificationTime sets the ModificationTime field's value.
9270func (s *FirewallRule) SetModificationTime(v string) *FirewallRule {
9271	s.ModificationTime = &v
9272	return s
9273}
9274
9275// SetName sets the Name field's value.
9276func (s *FirewallRule) SetName(v string) *FirewallRule {
9277	s.Name = &v
9278	return s
9279}
9280
9281// SetPriority sets the Priority field's value.
9282func (s *FirewallRule) SetPriority(v int64) *FirewallRule {
9283	s.Priority = &v
9284	return s
9285}
9286
9287// High-level information for a firewall rule group. A firewall rule group is
9288// a collection of rules that DNS Firewall uses to filter DNS network traffic
9289// for a VPC. To retrieve the rules for the rule group, call ListFirewallRules.
9290type FirewallRuleGroup struct {
9291	_ struct{} `type:"structure"`
9292
9293	// The ARN (Amazon Resource Name) of the rule group.
9294	Arn *string `min:"1" type:"string"`
9295
9296	// The date and time that the rule group was created, in Unix time format and
9297	// Coordinated Universal Time (UTC).
9298	CreationTime *string `min:"20" type:"string"`
9299
9300	// A unique string defined by you to identify the request. This allows you to
9301	// retry failed requests without the risk of running the operation twice. This
9302	// can be any unique string, for example, a timestamp.
9303	CreatorRequestId *string `min:"1" type:"string"`
9304
9305	// The ID of the rule group.
9306	Id *string `min:"1" type:"string"`
9307
9308	// The date and time that the rule group was last modified, in Unix time format
9309	// and Coordinated Universal Time (UTC).
9310	ModificationTime *string `min:"20" type:"string"`
9311
9312	// The name of the rule group.
9313	Name *string `type:"string"`
9314
9315	// The Amazon Web Services account ID for the account that created the rule
9316	// group. When a rule group is shared with your account, this is the account
9317	// that has shared the rule group with you.
9318	OwnerId *string `min:"12" type:"string"`
9319
9320	// The number of rules in the rule group.
9321	RuleCount *int64 `type:"integer"`
9322
9323	// Whether the rule group is shared with other Amazon Web Services accounts,
9324	// or was shared with the current account by another Amazon Web Services account.
9325	// Sharing is configured through Resource Access Manager (RAM).
9326	ShareStatus *string `type:"string" enum:"ShareStatus"`
9327
9328	// The status of the domain list.
9329	Status *string `type:"string" enum:"FirewallRuleGroupStatus"`
9330
9331	// Additional information about the status of the rule group, if available.
9332	StatusMessage *string `type:"string"`
9333}
9334
9335// String returns the string representation
9336func (s FirewallRuleGroup) String() string {
9337	return awsutil.Prettify(s)
9338}
9339
9340// GoString returns the string representation
9341func (s FirewallRuleGroup) GoString() string {
9342	return s.String()
9343}
9344
9345// SetArn sets the Arn field's value.
9346func (s *FirewallRuleGroup) SetArn(v string) *FirewallRuleGroup {
9347	s.Arn = &v
9348	return s
9349}
9350
9351// SetCreationTime sets the CreationTime field's value.
9352func (s *FirewallRuleGroup) SetCreationTime(v string) *FirewallRuleGroup {
9353	s.CreationTime = &v
9354	return s
9355}
9356
9357// SetCreatorRequestId sets the CreatorRequestId field's value.
9358func (s *FirewallRuleGroup) SetCreatorRequestId(v string) *FirewallRuleGroup {
9359	s.CreatorRequestId = &v
9360	return s
9361}
9362
9363// SetId sets the Id field's value.
9364func (s *FirewallRuleGroup) SetId(v string) *FirewallRuleGroup {
9365	s.Id = &v
9366	return s
9367}
9368
9369// SetModificationTime sets the ModificationTime field's value.
9370func (s *FirewallRuleGroup) SetModificationTime(v string) *FirewallRuleGroup {
9371	s.ModificationTime = &v
9372	return s
9373}
9374
9375// SetName sets the Name field's value.
9376func (s *FirewallRuleGroup) SetName(v string) *FirewallRuleGroup {
9377	s.Name = &v
9378	return s
9379}
9380
9381// SetOwnerId sets the OwnerId field's value.
9382func (s *FirewallRuleGroup) SetOwnerId(v string) *FirewallRuleGroup {
9383	s.OwnerId = &v
9384	return s
9385}
9386
9387// SetRuleCount sets the RuleCount field's value.
9388func (s *FirewallRuleGroup) SetRuleCount(v int64) *FirewallRuleGroup {
9389	s.RuleCount = &v
9390	return s
9391}
9392
9393// SetShareStatus sets the ShareStatus field's value.
9394func (s *FirewallRuleGroup) SetShareStatus(v string) *FirewallRuleGroup {
9395	s.ShareStatus = &v
9396	return s
9397}
9398
9399// SetStatus sets the Status field's value.
9400func (s *FirewallRuleGroup) SetStatus(v string) *FirewallRuleGroup {
9401	s.Status = &v
9402	return s
9403}
9404
9405// SetStatusMessage sets the StatusMessage field's value.
9406func (s *FirewallRuleGroup) SetStatusMessage(v string) *FirewallRuleGroup {
9407	s.StatusMessage = &v
9408	return s
9409}
9410
9411// An association between a firewall rule group and a VPC, which enables DNS
9412// filtering for the VPC.
9413type FirewallRuleGroupAssociation struct {
9414	_ struct{} `type:"structure"`
9415
9416	// The Amazon Resource Name (ARN) of the firewall rule group association.
9417	Arn *string `min:"1" type:"string"`
9418
9419	// The date and time that the association was created, in Unix time format and
9420	// Coordinated Universal Time (UTC).
9421	CreationTime *string `min:"20" type:"string"`
9422
9423	// A unique string defined by you to identify the request. This allows you to
9424	// retry failed requests without the risk of running the operation twice. This
9425	// can be any unique string, for example, a timestamp.
9426	CreatorRequestId *string `min:"1" type:"string"`
9427
9428	// The unique identifier of the firewall rule group.
9429	FirewallRuleGroupId *string `min:"1" type:"string"`
9430
9431	// The identifier for the association.
9432	Id *string `min:"1" type:"string"`
9433
9434	// The owner of the association, used only for associations that are not managed
9435	// by you. If you use Firewall Manager to manage your DNS Firewalls, then this
9436	// reports Firewall Manager as the managed owner.
9437	ManagedOwnerName *string `min:"1" type:"string"`
9438
9439	// The date and time that the association was last modified, in Unix time format
9440	// and Coordinated Universal Time (UTC).
9441	ModificationTime *string `min:"20" type:"string"`
9442
9443	// If enabled, this setting disallows modification or removal of the association,
9444	// to help prevent against accidentally altering DNS firewall protections.
9445	MutationProtection *string `type:"string" enum:"MutationProtectionStatus"`
9446
9447	// The name of the association.
9448	Name *string `type:"string"`
9449
9450	// The setting that determines the processing order of the rule group among
9451	// the rule groups that are associated with a single VPC. DNS Firewall filters
9452	// VPC traffic starting from rule group with the lowest numeric priority setting.
9453	Priority *int64 `type:"integer"`
9454
9455	// The current status of the association.
9456	Status *string `type:"string" enum:"FirewallRuleGroupAssociationStatus"`
9457
9458	// Additional information about the status of the response, if available.
9459	StatusMessage *string `type:"string"`
9460
9461	// The unique identifier of the VPC that is associated with the rule group.
9462	VpcId *string `min:"1" type:"string"`
9463}
9464
9465// String returns the string representation
9466func (s FirewallRuleGroupAssociation) String() string {
9467	return awsutil.Prettify(s)
9468}
9469
9470// GoString returns the string representation
9471func (s FirewallRuleGroupAssociation) GoString() string {
9472	return s.String()
9473}
9474
9475// SetArn sets the Arn field's value.
9476func (s *FirewallRuleGroupAssociation) SetArn(v string) *FirewallRuleGroupAssociation {
9477	s.Arn = &v
9478	return s
9479}
9480
9481// SetCreationTime sets the CreationTime field's value.
9482func (s *FirewallRuleGroupAssociation) SetCreationTime(v string) *FirewallRuleGroupAssociation {
9483	s.CreationTime = &v
9484	return s
9485}
9486
9487// SetCreatorRequestId sets the CreatorRequestId field's value.
9488func (s *FirewallRuleGroupAssociation) SetCreatorRequestId(v string) *FirewallRuleGroupAssociation {
9489	s.CreatorRequestId = &v
9490	return s
9491}
9492
9493// SetFirewallRuleGroupId sets the FirewallRuleGroupId field's value.
9494func (s *FirewallRuleGroupAssociation) SetFirewallRuleGroupId(v string) *FirewallRuleGroupAssociation {
9495	s.FirewallRuleGroupId = &v
9496	return s
9497}
9498
9499// SetId sets the Id field's value.
9500func (s *FirewallRuleGroupAssociation) SetId(v string) *FirewallRuleGroupAssociation {
9501	s.Id = &v
9502	return s
9503}
9504
9505// SetManagedOwnerName sets the ManagedOwnerName field's value.
9506func (s *FirewallRuleGroupAssociation) SetManagedOwnerName(v string) *FirewallRuleGroupAssociation {
9507	s.ManagedOwnerName = &v
9508	return s
9509}
9510
9511// SetModificationTime sets the ModificationTime field's value.
9512func (s *FirewallRuleGroupAssociation) SetModificationTime(v string) *FirewallRuleGroupAssociation {
9513	s.ModificationTime = &v
9514	return s
9515}
9516
9517// SetMutationProtection sets the MutationProtection field's value.
9518func (s *FirewallRuleGroupAssociation) SetMutationProtection(v string) *FirewallRuleGroupAssociation {
9519	s.MutationProtection = &v
9520	return s
9521}
9522
9523// SetName sets the Name field's value.
9524func (s *FirewallRuleGroupAssociation) SetName(v string) *FirewallRuleGroupAssociation {
9525	s.Name = &v
9526	return s
9527}
9528
9529// SetPriority sets the Priority field's value.
9530func (s *FirewallRuleGroupAssociation) SetPriority(v int64) *FirewallRuleGroupAssociation {
9531	s.Priority = &v
9532	return s
9533}
9534
9535// SetStatus sets the Status field's value.
9536func (s *FirewallRuleGroupAssociation) SetStatus(v string) *FirewallRuleGroupAssociation {
9537	s.Status = &v
9538	return s
9539}
9540
9541// SetStatusMessage sets the StatusMessage field's value.
9542func (s *FirewallRuleGroupAssociation) SetStatusMessage(v string) *FirewallRuleGroupAssociation {
9543	s.StatusMessage = &v
9544	return s
9545}
9546
9547// SetVpcId sets the VpcId field's value.
9548func (s *FirewallRuleGroupAssociation) SetVpcId(v string) *FirewallRuleGroupAssociation {
9549	s.VpcId = &v
9550	return s
9551}
9552
9553// Minimal high-level information for a firewall rule group. The action ListFirewallRuleGroups
9554// returns an array of these objects.
9555//
9556// To retrieve full information for a firewall rule group, call GetFirewallRuleGroup
9557// and ListFirewallRules.
9558type FirewallRuleGroupMetadata struct {
9559	_ struct{} `type:"structure"`
9560
9561	// The ARN (Amazon Resource Name) of the rule group.
9562	Arn *string `min:"1" type:"string"`
9563
9564	// A unique string defined by you to identify the request. This allows you to
9565	// retry failed requests without the risk of running the operation twice. This
9566	// can be any unique string, for example, a timestamp.
9567	CreatorRequestId *string `min:"1" type:"string"`
9568
9569	// The ID of the rule group.
9570	Id *string `min:"1" type:"string"`
9571
9572	// The name of the rule group.
9573	Name *string `type:"string"`
9574
9575	// The Amazon Web Services account ID for the account that created the rule
9576	// group. When a rule group is shared with your account, this is the account
9577	// that has shared the rule group with you.
9578	OwnerId *string `min:"12" type:"string"`
9579
9580	// Whether the rule group is shared with other Amazon Web Services accounts,
9581	// or was shared with the current account by another Amazon Web Services account.
9582	// Sharing is configured through Resource Access Manager (RAM).
9583	ShareStatus *string `type:"string" enum:"ShareStatus"`
9584}
9585
9586// String returns the string representation
9587func (s FirewallRuleGroupMetadata) String() string {
9588	return awsutil.Prettify(s)
9589}
9590
9591// GoString returns the string representation
9592func (s FirewallRuleGroupMetadata) GoString() string {
9593	return s.String()
9594}
9595
9596// SetArn sets the Arn field's value.
9597func (s *FirewallRuleGroupMetadata) SetArn(v string) *FirewallRuleGroupMetadata {
9598	s.Arn = &v
9599	return s
9600}
9601
9602// SetCreatorRequestId sets the CreatorRequestId field's value.
9603func (s *FirewallRuleGroupMetadata) SetCreatorRequestId(v string) *FirewallRuleGroupMetadata {
9604	s.CreatorRequestId = &v
9605	return s
9606}
9607
9608// SetId sets the Id field's value.
9609func (s *FirewallRuleGroupMetadata) SetId(v string) *FirewallRuleGroupMetadata {
9610	s.Id = &v
9611	return s
9612}
9613
9614// SetName sets the Name field's value.
9615func (s *FirewallRuleGroupMetadata) SetName(v string) *FirewallRuleGroupMetadata {
9616	s.Name = &v
9617	return s
9618}
9619
9620// SetOwnerId sets the OwnerId field's value.
9621func (s *FirewallRuleGroupMetadata) SetOwnerId(v string) *FirewallRuleGroupMetadata {
9622	s.OwnerId = &v
9623	return s
9624}
9625
9626// SetShareStatus sets the ShareStatus field's value.
9627func (s *FirewallRuleGroupMetadata) SetShareStatus(v string) *FirewallRuleGroupMetadata {
9628	s.ShareStatus = &v
9629	return s
9630}
9631
9632type GetFirewallConfigInput struct {
9633	_ struct{} `type:"structure"`
9634
9635	// The ID of the VPC from Amazon VPC that the configuration is for.
9636	//
9637	// ResourceId is a required field
9638	ResourceId *string `min:"1" type:"string" required:"true"`
9639}
9640
9641// String returns the string representation
9642func (s GetFirewallConfigInput) String() string {
9643	return awsutil.Prettify(s)
9644}
9645
9646// GoString returns the string representation
9647func (s GetFirewallConfigInput) GoString() string {
9648	return s.String()
9649}
9650
9651// Validate inspects the fields of the type to determine if they are valid.
9652func (s *GetFirewallConfigInput) Validate() error {
9653	invalidParams := request.ErrInvalidParams{Context: "GetFirewallConfigInput"}
9654	if s.ResourceId == nil {
9655		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
9656	}
9657	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
9658		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
9659	}
9660
9661	if invalidParams.Len() > 0 {
9662		return invalidParams
9663	}
9664	return nil
9665}
9666
9667// SetResourceId sets the ResourceId field's value.
9668func (s *GetFirewallConfigInput) SetResourceId(v string) *GetFirewallConfigInput {
9669	s.ResourceId = &v
9670	return s
9671}
9672
9673type GetFirewallConfigOutput struct {
9674	_ struct{} `type:"structure"`
9675
9676	// Configuration of the firewall behavior provided by DNS Firewall for a single
9677	// VPC from AmazonVPC.
9678	FirewallConfig *FirewallConfig `type:"structure"`
9679}
9680
9681// String returns the string representation
9682func (s GetFirewallConfigOutput) String() string {
9683	return awsutil.Prettify(s)
9684}
9685
9686// GoString returns the string representation
9687func (s GetFirewallConfigOutput) GoString() string {
9688	return s.String()
9689}
9690
9691// SetFirewallConfig sets the FirewallConfig field's value.
9692func (s *GetFirewallConfigOutput) SetFirewallConfig(v *FirewallConfig) *GetFirewallConfigOutput {
9693	s.FirewallConfig = v
9694	return s
9695}
9696
9697type GetFirewallDomainListInput struct {
9698	_ struct{} `type:"structure"`
9699
9700	// The ID of the domain list.
9701	//
9702	// FirewallDomainListId is a required field
9703	FirewallDomainListId *string `min:"1" type:"string" required:"true"`
9704}
9705
9706// String returns the string representation
9707func (s GetFirewallDomainListInput) String() string {
9708	return awsutil.Prettify(s)
9709}
9710
9711// GoString returns the string representation
9712func (s GetFirewallDomainListInput) GoString() string {
9713	return s.String()
9714}
9715
9716// Validate inspects the fields of the type to determine if they are valid.
9717func (s *GetFirewallDomainListInput) Validate() error {
9718	invalidParams := request.ErrInvalidParams{Context: "GetFirewallDomainListInput"}
9719	if s.FirewallDomainListId == nil {
9720		invalidParams.Add(request.NewErrParamRequired("FirewallDomainListId"))
9721	}
9722	if s.FirewallDomainListId != nil && len(*s.FirewallDomainListId) < 1 {
9723		invalidParams.Add(request.NewErrParamMinLen("FirewallDomainListId", 1))
9724	}
9725
9726	if invalidParams.Len() > 0 {
9727		return invalidParams
9728	}
9729	return nil
9730}
9731
9732// SetFirewallDomainListId sets the FirewallDomainListId field's value.
9733func (s *GetFirewallDomainListInput) SetFirewallDomainListId(v string) *GetFirewallDomainListInput {
9734	s.FirewallDomainListId = &v
9735	return s
9736}
9737
9738type GetFirewallDomainListOutput struct {
9739	_ struct{} `type:"structure"`
9740
9741	// The domain list that you requested.
9742	FirewallDomainList *FirewallDomainList `type:"structure"`
9743}
9744
9745// String returns the string representation
9746func (s GetFirewallDomainListOutput) String() string {
9747	return awsutil.Prettify(s)
9748}
9749
9750// GoString returns the string representation
9751func (s GetFirewallDomainListOutput) GoString() string {
9752	return s.String()
9753}
9754
9755// SetFirewallDomainList sets the FirewallDomainList field's value.
9756func (s *GetFirewallDomainListOutput) SetFirewallDomainList(v *FirewallDomainList) *GetFirewallDomainListOutput {
9757	s.FirewallDomainList = v
9758	return s
9759}
9760
9761type GetFirewallRuleGroupAssociationInput struct {
9762	_ struct{} `type:"structure"`
9763
9764	// The identifier of the FirewallRuleGroupAssociation.
9765	//
9766	// FirewallRuleGroupAssociationId is a required field
9767	FirewallRuleGroupAssociationId *string `min:"1" type:"string" required:"true"`
9768}
9769
9770// String returns the string representation
9771func (s GetFirewallRuleGroupAssociationInput) String() string {
9772	return awsutil.Prettify(s)
9773}
9774
9775// GoString returns the string representation
9776func (s GetFirewallRuleGroupAssociationInput) GoString() string {
9777	return s.String()
9778}
9779
9780// Validate inspects the fields of the type to determine if they are valid.
9781func (s *GetFirewallRuleGroupAssociationInput) Validate() error {
9782	invalidParams := request.ErrInvalidParams{Context: "GetFirewallRuleGroupAssociationInput"}
9783	if s.FirewallRuleGroupAssociationId == nil {
9784		invalidParams.Add(request.NewErrParamRequired("FirewallRuleGroupAssociationId"))
9785	}
9786	if s.FirewallRuleGroupAssociationId != nil && len(*s.FirewallRuleGroupAssociationId) < 1 {
9787		invalidParams.Add(request.NewErrParamMinLen("FirewallRuleGroupAssociationId", 1))
9788	}
9789
9790	if invalidParams.Len() > 0 {
9791		return invalidParams
9792	}
9793	return nil
9794}
9795
9796// SetFirewallRuleGroupAssociationId sets the FirewallRuleGroupAssociationId field's value.
9797func (s *GetFirewallRuleGroupAssociationInput) SetFirewallRuleGroupAssociationId(v string) *GetFirewallRuleGroupAssociationInput {
9798	s.FirewallRuleGroupAssociationId = &v
9799	return s
9800}
9801
9802type GetFirewallRuleGroupAssociationOutput struct {
9803	_ struct{} `type:"structure"`
9804
9805	// The association that you requested.
9806	FirewallRuleGroupAssociation *FirewallRuleGroupAssociation `type:"structure"`
9807}
9808
9809// String returns the string representation
9810func (s GetFirewallRuleGroupAssociationOutput) String() string {
9811	return awsutil.Prettify(s)
9812}
9813
9814// GoString returns the string representation
9815func (s GetFirewallRuleGroupAssociationOutput) GoString() string {
9816	return s.String()
9817}
9818
9819// SetFirewallRuleGroupAssociation sets the FirewallRuleGroupAssociation field's value.
9820func (s *GetFirewallRuleGroupAssociationOutput) SetFirewallRuleGroupAssociation(v *FirewallRuleGroupAssociation) *GetFirewallRuleGroupAssociationOutput {
9821	s.FirewallRuleGroupAssociation = v
9822	return s
9823}
9824
9825type GetFirewallRuleGroupInput struct {
9826	_ struct{} `type:"structure"`
9827
9828	// The unique identifier of the firewall rule group.
9829	//
9830	// FirewallRuleGroupId is a required field
9831	FirewallRuleGroupId *string `min:"1" type:"string" required:"true"`
9832}
9833
9834// String returns the string representation
9835func (s GetFirewallRuleGroupInput) String() string {
9836	return awsutil.Prettify(s)
9837}
9838
9839// GoString returns the string representation
9840func (s GetFirewallRuleGroupInput) GoString() string {
9841	return s.String()
9842}
9843
9844// Validate inspects the fields of the type to determine if they are valid.
9845func (s *GetFirewallRuleGroupInput) Validate() error {
9846	invalidParams := request.ErrInvalidParams{Context: "GetFirewallRuleGroupInput"}
9847	if s.FirewallRuleGroupId == nil {
9848		invalidParams.Add(request.NewErrParamRequired("FirewallRuleGroupId"))
9849	}
9850	if s.FirewallRuleGroupId != nil && len(*s.FirewallRuleGroupId) < 1 {
9851		invalidParams.Add(request.NewErrParamMinLen("FirewallRuleGroupId", 1))
9852	}
9853
9854	if invalidParams.Len() > 0 {
9855		return invalidParams
9856	}
9857	return nil
9858}
9859
9860// SetFirewallRuleGroupId sets the FirewallRuleGroupId field's value.
9861func (s *GetFirewallRuleGroupInput) SetFirewallRuleGroupId(v string) *GetFirewallRuleGroupInput {
9862	s.FirewallRuleGroupId = &v
9863	return s
9864}
9865
9866type GetFirewallRuleGroupOutput struct {
9867	_ struct{} `type:"structure"`
9868
9869	// A collection of rules used to filter DNS network traffic.
9870	FirewallRuleGroup *FirewallRuleGroup `type:"structure"`
9871}
9872
9873// String returns the string representation
9874func (s GetFirewallRuleGroupOutput) String() string {
9875	return awsutil.Prettify(s)
9876}
9877
9878// GoString returns the string representation
9879func (s GetFirewallRuleGroupOutput) GoString() string {
9880	return s.String()
9881}
9882
9883// SetFirewallRuleGroup sets the FirewallRuleGroup field's value.
9884func (s *GetFirewallRuleGroupOutput) SetFirewallRuleGroup(v *FirewallRuleGroup) *GetFirewallRuleGroupOutput {
9885	s.FirewallRuleGroup = v
9886	return s
9887}
9888
9889type GetFirewallRuleGroupPolicyInput struct {
9890	_ struct{} `type:"structure"`
9891
9892	// The ARN (Amazon Resource Name) for the rule group.
9893	//
9894	// Arn is a required field
9895	Arn *string `min:"1" type:"string" required:"true"`
9896}
9897
9898// String returns the string representation
9899func (s GetFirewallRuleGroupPolicyInput) String() string {
9900	return awsutil.Prettify(s)
9901}
9902
9903// GoString returns the string representation
9904func (s GetFirewallRuleGroupPolicyInput) GoString() string {
9905	return s.String()
9906}
9907
9908// Validate inspects the fields of the type to determine if they are valid.
9909func (s *GetFirewallRuleGroupPolicyInput) Validate() error {
9910	invalidParams := request.ErrInvalidParams{Context: "GetFirewallRuleGroupPolicyInput"}
9911	if s.Arn == nil {
9912		invalidParams.Add(request.NewErrParamRequired("Arn"))
9913	}
9914	if s.Arn != nil && len(*s.Arn) < 1 {
9915		invalidParams.Add(request.NewErrParamMinLen("Arn", 1))
9916	}
9917
9918	if invalidParams.Len() > 0 {
9919		return invalidParams
9920	}
9921	return nil
9922}
9923
9924// SetArn sets the Arn field's value.
9925func (s *GetFirewallRuleGroupPolicyInput) SetArn(v string) *GetFirewallRuleGroupPolicyInput {
9926	s.Arn = &v
9927	return s
9928}
9929
9930type GetFirewallRuleGroupPolicyOutput struct {
9931	_ struct{} `type:"structure"`
9932
9933	// The Identity and Access Management (Amazon Web Services IAM) policy for sharing
9934	// the specified rule group. You can use the policy to share the rule group
9935	// using Resource Access Manager (RAM).
9936	FirewallRuleGroupPolicy *string `type:"string"`
9937}
9938
9939// String returns the string representation
9940func (s GetFirewallRuleGroupPolicyOutput) String() string {
9941	return awsutil.Prettify(s)
9942}
9943
9944// GoString returns the string representation
9945func (s GetFirewallRuleGroupPolicyOutput) GoString() string {
9946	return s.String()
9947}
9948
9949// SetFirewallRuleGroupPolicy sets the FirewallRuleGroupPolicy field's value.
9950func (s *GetFirewallRuleGroupPolicyOutput) SetFirewallRuleGroupPolicy(v string) *GetFirewallRuleGroupPolicyOutput {
9951	s.FirewallRuleGroupPolicy = &v
9952	return s
9953}
9954
9955type GetResolverDnssecConfigInput struct {
9956	_ struct{} `type:"structure"`
9957
9958	// The ID of the virtual private cloud (VPC) for the DNSSEC validation status.
9959	//
9960	// ResourceId is a required field
9961	ResourceId *string `min:"1" type:"string" required:"true"`
9962}
9963
9964// String returns the string representation
9965func (s GetResolverDnssecConfigInput) String() string {
9966	return awsutil.Prettify(s)
9967}
9968
9969// GoString returns the string representation
9970func (s GetResolverDnssecConfigInput) GoString() string {
9971	return s.String()
9972}
9973
9974// Validate inspects the fields of the type to determine if they are valid.
9975func (s *GetResolverDnssecConfigInput) Validate() error {
9976	invalidParams := request.ErrInvalidParams{Context: "GetResolverDnssecConfigInput"}
9977	if s.ResourceId == nil {
9978		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
9979	}
9980	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
9981		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
9982	}
9983
9984	if invalidParams.Len() > 0 {
9985		return invalidParams
9986	}
9987	return nil
9988}
9989
9990// SetResourceId sets the ResourceId field's value.
9991func (s *GetResolverDnssecConfigInput) SetResourceId(v string) *GetResolverDnssecConfigInput {
9992	s.ResourceId = &v
9993	return s
9994}
9995
9996type GetResolverDnssecConfigOutput struct {
9997	_ struct{} `type:"structure"`
9998
9999	// The information about a configuration for DNSSEC validation.
10000	ResolverDNSSECConfig *ResolverDnssecConfig `type:"structure"`
10001}
10002
10003// String returns the string representation
10004func (s GetResolverDnssecConfigOutput) String() string {
10005	return awsutil.Prettify(s)
10006}
10007
10008// GoString returns the string representation
10009func (s GetResolverDnssecConfigOutput) GoString() string {
10010	return s.String()
10011}
10012
10013// SetResolverDNSSECConfig sets the ResolverDNSSECConfig field's value.
10014func (s *GetResolverDnssecConfigOutput) SetResolverDNSSECConfig(v *ResolverDnssecConfig) *GetResolverDnssecConfigOutput {
10015	s.ResolverDNSSECConfig = v
10016	return s
10017}
10018
10019type GetResolverEndpointInput struct {
10020	_ struct{} `type:"structure"`
10021
10022	// The ID of the Resolver endpoint that you want to get information about.
10023	//
10024	// ResolverEndpointId is a required field
10025	ResolverEndpointId *string `min:"1" type:"string" required:"true"`
10026}
10027
10028// String returns the string representation
10029func (s GetResolverEndpointInput) String() string {
10030	return awsutil.Prettify(s)
10031}
10032
10033// GoString returns the string representation
10034func (s GetResolverEndpointInput) GoString() string {
10035	return s.String()
10036}
10037
10038// Validate inspects the fields of the type to determine if they are valid.
10039func (s *GetResolverEndpointInput) Validate() error {
10040	invalidParams := request.ErrInvalidParams{Context: "GetResolverEndpointInput"}
10041	if s.ResolverEndpointId == nil {
10042		invalidParams.Add(request.NewErrParamRequired("ResolverEndpointId"))
10043	}
10044	if s.ResolverEndpointId != nil && len(*s.ResolverEndpointId) < 1 {
10045		invalidParams.Add(request.NewErrParamMinLen("ResolverEndpointId", 1))
10046	}
10047
10048	if invalidParams.Len() > 0 {
10049		return invalidParams
10050	}
10051	return nil
10052}
10053
10054// SetResolverEndpointId sets the ResolverEndpointId field's value.
10055func (s *GetResolverEndpointInput) SetResolverEndpointId(v string) *GetResolverEndpointInput {
10056	s.ResolverEndpointId = &v
10057	return s
10058}
10059
10060type GetResolverEndpointOutput struct {
10061	_ struct{} `type:"structure"`
10062
10063	// Information about the Resolver endpoint that you specified in a GetResolverEndpoint
10064	// request.
10065	ResolverEndpoint *ResolverEndpoint `type:"structure"`
10066}
10067
10068// String returns the string representation
10069func (s GetResolverEndpointOutput) String() string {
10070	return awsutil.Prettify(s)
10071}
10072
10073// GoString returns the string representation
10074func (s GetResolverEndpointOutput) GoString() string {
10075	return s.String()
10076}
10077
10078// SetResolverEndpoint sets the ResolverEndpoint field's value.
10079func (s *GetResolverEndpointOutput) SetResolverEndpoint(v *ResolverEndpoint) *GetResolverEndpointOutput {
10080	s.ResolverEndpoint = v
10081	return s
10082}
10083
10084type GetResolverQueryLogConfigAssociationInput struct {
10085	_ struct{} `type:"structure"`
10086
10087	// The ID of the Resolver query logging configuration association that you want
10088	// to get information about.
10089	//
10090	// ResolverQueryLogConfigAssociationId is a required field
10091	ResolverQueryLogConfigAssociationId *string `min:"1" type:"string" required:"true"`
10092}
10093
10094// String returns the string representation
10095func (s GetResolverQueryLogConfigAssociationInput) String() string {
10096	return awsutil.Prettify(s)
10097}
10098
10099// GoString returns the string representation
10100func (s GetResolverQueryLogConfigAssociationInput) GoString() string {
10101	return s.String()
10102}
10103
10104// Validate inspects the fields of the type to determine if they are valid.
10105func (s *GetResolverQueryLogConfigAssociationInput) Validate() error {
10106	invalidParams := request.ErrInvalidParams{Context: "GetResolverQueryLogConfigAssociationInput"}
10107	if s.ResolverQueryLogConfigAssociationId == nil {
10108		invalidParams.Add(request.NewErrParamRequired("ResolverQueryLogConfigAssociationId"))
10109	}
10110	if s.ResolverQueryLogConfigAssociationId != nil && len(*s.ResolverQueryLogConfigAssociationId) < 1 {
10111		invalidParams.Add(request.NewErrParamMinLen("ResolverQueryLogConfigAssociationId", 1))
10112	}
10113
10114	if invalidParams.Len() > 0 {
10115		return invalidParams
10116	}
10117	return nil
10118}
10119
10120// SetResolverQueryLogConfigAssociationId sets the ResolverQueryLogConfigAssociationId field's value.
10121func (s *GetResolverQueryLogConfigAssociationInput) SetResolverQueryLogConfigAssociationId(v string) *GetResolverQueryLogConfigAssociationInput {
10122	s.ResolverQueryLogConfigAssociationId = &v
10123	return s
10124}
10125
10126type GetResolverQueryLogConfigAssociationOutput struct {
10127	_ struct{} `type:"structure"`
10128
10129	// Information about the Resolver query logging configuration association that
10130	// you specified in a GetQueryLogConfigAssociation request.
10131	ResolverQueryLogConfigAssociation *ResolverQueryLogConfigAssociation `type:"structure"`
10132}
10133
10134// String returns the string representation
10135func (s GetResolverQueryLogConfigAssociationOutput) String() string {
10136	return awsutil.Prettify(s)
10137}
10138
10139// GoString returns the string representation
10140func (s GetResolverQueryLogConfigAssociationOutput) GoString() string {
10141	return s.String()
10142}
10143
10144// SetResolverQueryLogConfigAssociation sets the ResolverQueryLogConfigAssociation field's value.
10145func (s *GetResolverQueryLogConfigAssociationOutput) SetResolverQueryLogConfigAssociation(v *ResolverQueryLogConfigAssociation) *GetResolverQueryLogConfigAssociationOutput {
10146	s.ResolverQueryLogConfigAssociation = v
10147	return s
10148}
10149
10150type GetResolverQueryLogConfigInput struct {
10151	_ struct{} `type:"structure"`
10152
10153	// The ID of the Resolver query logging configuration that you want to get information
10154	// about.
10155	//
10156	// ResolverQueryLogConfigId is a required field
10157	ResolverQueryLogConfigId *string `min:"1" type:"string" required:"true"`
10158}
10159
10160// String returns the string representation
10161func (s GetResolverQueryLogConfigInput) String() string {
10162	return awsutil.Prettify(s)
10163}
10164
10165// GoString returns the string representation
10166func (s GetResolverQueryLogConfigInput) GoString() string {
10167	return s.String()
10168}
10169
10170// Validate inspects the fields of the type to determine if they are valid.
10171func (s *GetResolverQueryLogConfigInput) Validate() error {
10172	invalidParams := request.ErrInvalidParams{Context: "GetResolverQueryLogConfigInput"}
10173	if s.ResolverQueryLogConfigId == nil {
10174		invalidParams.Add(request.NewErrParamRequired("ResolverQueryLogConfigId"))
10175	}
10176	if s.ResolverQueryLogConfigId != nil && len(*s.ResolverQueryLogConfigId) < 1 {
10177		invalidParams.Add(request.NewErrParamMinLen("ResolverQueryLogConfigId", 1))
10178	}
10179
10180	if invalidParams.Len() > 0 {
10181		return invalidParams
10182	}
10183	return nil
10184}
10185
10186// SetResolverQueryLogConfigId sets the ResolverQueryLogConfigId field's value.
10187func (s *GetResolverQueryLogConfigInput) SetResolverQueryLogConfigId(v string) *GetResolverQueryLogConfigInput {
10188	s.ResolverQueryLogConfigId = &v
10189	return s
10190}
10191
10192type GetResolverQueryLogConfigOutput struct {
10193	_ struct{} `type:"structure"`
10194
10195	// Information about the Resolver query logging configuration that you specified
10196	// in a GetQueryLogConfig request.
10197	ResolverQueryLogConfig *ResolverQueryLogConfig `type:"structure"`
10198}
10199
10200// String returns the string representation
10201func (s GetResolverQueryLogConfigOutput) String() string {
10202	return awsutil.Prettify(s)
10203}
10204
10205// GoString returns the string representation
10206func (s GetResolverQueryLogConfigOutput) GoString() string {
10207	return s.String()
10208}
10209
10210// SetResolverQueryLogConfig sets the ResolverQueryLogConfig field's value.
10211func (s *GetResolverQueryLogConfigOutput) SetResolverQueryLogConfig(v *ResolverQueryLogConfig) *GetResolverQueryLogConfigOutput {
10212	s.ResolverQueryLogConfig = v
10213	return s
10214}
10215
10216type GetResolverQueryLogConfigPolicyInput struct {
10217	_ struct{} `type:"structure"`
10218
10219	// The ARN of the query logging configuration that you want to get the query
10220	// logging policy for.
10221	//
10222	// Arn is a required field
10223	Arn *string `min:"1" type:"string" required:"true"`
10224}
10225
10226// String returns the string representation
10227func (s GetResolverQueryLogConfigPolicyInput) String() string {
10228	return awsutil.Prettify(s)
10229}
10230
10231// GoString returns the string representation
10232func (s GetResolverQueryLogConfigPolicyInput) GoString() string {
10233	return s.String()
10234}
10235
10236// Validate inspects the fields of the type to determine if they are valid.
10237func (s *GetResolverQueryLogConfigPolicyInput) Validate() error {
10238	invalidParams := request.ErrInvalidParams{Context: "GetResolverQueryLogConfigPolicyInput"}
10239	if s.Arn == nil {
10240		invalidParams.Add(request.NewErrParamRequired("Arn"))
10241	}
10242	if s.Arn != nil && len(*s.Arn) < 1 {
10243		invalidParams.Add(request.NewErrParamMinLen("Arn", 1))
10244	}
10245
10246	if invalidParams.Len() > 0 {
10247		return invalidParams
10248	}
10249	return nil
10250}
10251
10252// SetArn sets the Arn field's value.
10253func (s *GetResolverQueryLogConfigPolicyInput) SetArn(v string) *GetResolverQueryLogConfigPolicyInput {
10254	s.Arn = &v
10255	return s
10256}
10257
10258type GetResolverQueryLogConfigPolicyOutput struct {
10259	_ struct{} `type:"structure"`
10260
10261	// Information about the query logging policy for the query logging configuration
10262	// that you specified in a GetResolverQueryLogConfigPolicy request.
10263	ResolverQueryLogConfigPolicy *string `type:"string"`
10264}
10265
10266// String returns the string representation
10267func (s GetResolverQueryLogConfigPolicyOutput) String() string {
10268	return awsutil.Prettify(s)
10269}
10270
10271// GoString returns the string representation
10272func (s GetResolverQueryLogConfigPolicyOutput) GoString() string {
10273	return s.String()
10274}
10275
10276// SetResolverQueryLogConfigPolicy sets the ResolverQueryLogConfigPolicy field's value.
10277func (s *GetResolverQueryLogConfigPolicyOutput) SetResolverQueryLogConfigPolicy(v string) *GetResolverQueryLogConfigPolicyOutput {
10278	s.ResolverQueryLogConfigPolicy = &v
10279	return s
10280}
10281
10282type GetResolverRuleAssociationInput struct {
10283	_ struct{} `type:"structure"`
10284
10285	// The ID of the Resolver rule association that you want to get information
10286	// about.
10287	//
10288	// ResolverRuleAssociationId is a required field
10289	ResolverRuleAssociationId *string `min:"1" type:"string" required:"true"`
10290}
10291
10292// String returns the string representation
10293func (s GetResolverRuleAssociationInput) String() string {
10294	return awsutil.Prettify(s)
10295}
10296
10297// GoString returns the string representation
10298func (s GetResolverRuleAssociationInput) GoString() string {
10299	return s.String()
10300}
10301
10302// Validate inspects the fields of the type to determine if they are valid.
10303func (s *GetResolverRuleAssociationInput) Validate() error {
10304	invalidParams := request.ErrInvalidParams{Context: "GetResolverRuleAssociationInput"}
10305	if s.ResolverRuleAssociationId == nil {
10306		invalidParams.Add(request.NewErrParamRequired("ResolverRuleAssociationId"))
10307	}
10308	if s.ResolverRuleAssociationId != nil && len(*s.ResolverRuleAssociationId) < 1 {
10309		invalidParams.Add(request.NewErrParamMinLen("ResolverRuleAssociationId", 1))
10310	}
10311
10312	if invalidParams.Len() > 0 {
10313		return invalidParams
10314	}
10315	return nil
10316}
10317
10318// SetResolverRuleAssociationId sets the ResolverRuleAssociationId field's value.
10319func (s *GetResolverRuleAssociationInput) SetResolverRuleAssociationId(v string) *GetResolverRuleAssociationInput {
10320	s.ResolverRuleAssociationId = &v
10321	return s
10322}
10323
10324type GetResolverRuleAssociationOutput struct {
10325	_ struct{} `type:"structure"`
10326
10327	// Information about the Resolver rule association that you specified in a GetResolverRuleAssociation
10328	// request.
10329	ResolverRuleAssociation *ResolverRuleAssociation `type:"structure"`
10330}
10331
10332// String returns the string representation
10333func (s GetResolverRuleAssociationOutput) String() string {
10334	return awsutil.Prettify(s)
10335}
10336
10337// GoString returns the string representation
10338func (s GetResolverRuleAssociationOutput) GoString() string {
10339	return s.String()
10340}
10341
10342// SetResolverRuleAssociation sets the ResolverRuleAssociation field's value.
10343func (s *GetResolverRuleAssociationOutput) SetResolverRuleAssociation(v *ResolverRuleAssociation) *GetResolverRuleAssociationOutput {
10344	s.ResolverRuleAssociation = v
10345	return s
10346}
10347
10348type GetResolverRuleInput struct {
10349	_ struct{} `type:"structure"`
10350
10351	// The ID of the Resolver rule that you want to get information about.
10352	//
10353	// ResolverRuleId is a required field
10354	ResolverRuleId *string `min:"1" type:"string" required:"true"`
10355}
10356
10357// String returns the string representation
10358func (s GetResolverRuleInput) String() string {
10359	return awsutil.Prettify(s)
10360}
10361
10362// GoString returns the string representation
10363func (s GetResolverRuleInput) GoString() string {
10364	return s.String()
10365}
10366
10367// Validate inspects the fields of the type to determine if they are valid.
10368func (s *GetResolverRuleInput) Validate() error {
10369	invalidParams := request.ErrInvalidParams{Context: "GetResolverRuleInput"}
10370	if s.ResolverRuleId == nil {
10371		invalidParams.Add(request.NewErrParamRequired("ResolverRuleId"))
10372	}
10373	if s.ResolverRuleId != nil && len(*s.ResolverRuleId) < 1 {
10374		invalidParams.Add(request.NewErrParamMinLen("ResolverRuleId", 1))
10375	}
10376
10377	if invalidParams.Len() > 0 {
10378		return invalidParams
10379	}
10380	return nil
10381}
10382
10383// SetResolverRuleId sets the ResolverRuleId field's value.
10384func (s *GetResolverRuleInput) SetResolverRuleId(v string) *GetResolverRuleInput {
10385	s.ResolverRuleId = &v
10386	return s
10387}
10388
10389type GetResolverRuleOutput struct {
10390	_ struct{} `type:"structure"`
10391
10392	// Information about the Resolver rule that you specified in a GetResolverRule
10393	// request.
10394	ResolverRule *ResolverRule `type:"structure"`
10395}
10396
10397// String returns the string representation
10398func (s GetResolverRuleOutput) String() string {
10399	return awsutil.Prettify(s)
10400}
10401
10402// GoString returns the string representation
10403func (s GetResolverRuleOutput) GoString() string {
10404	return s.String()
10405}
10406
10407// SetResolverRule sets the ResolverRule field's value.
10408func (s *GetResolverRuleOutput) SetResolverRule(v *ResolverRule) *GetResolverRuleOutput {
10409	s.ResolverRule = v
10410	return s
10411}
10412
10413type GetResolverRulePolicyInput struct {
10414	_ struct{} `type:"structure"`
10415
10416	// The ID of the Resolver rule that you want to get the Resolver rule policy
10417	// for.
10418	//
10419	// Arn is a required field
10420	Arn *string `min:"1" type:"string" required:"true"`
10421}
10422
10423// String returns the string representation
10424func (s GetResolverRulePolicyInput) String() string {
10425	return awsutil.Prettify(s)
10426}
10427
10428// GoString returns the string representation
10429func (s GetResolverRulePolicyInput) GoString() string {
10430	return s.String()
10431}
10432
10433// Validate inspects the fields of the type to determine if they are valid.
10434func (s *GetResolverRulePolicyInput) Validate() error {
10435	invalidParams := request.ErrInvalidParams{Context: "GetResolverRulePolicyInput"}
10436	if s.Arn == nil {
10437		invalidParams.Add(request.NewErrParamRequired("Arn"))
10438	}
10439	if s.Arn != nil && len(*s.Arn) < 1 {
10440		invalidParams.Add(request.NewErrParamMinLen("Arn", 1))
10441	}
10442
10443	if invalidParams.Len() > 0 {
10444		return invalidParams
10445	}
10446	return nil
10447}
10448
10449// SetArn sets the Arn field's value.
10450func (s *GetResolverRulePolicyInput) SetArn(v string) *GetResolverRulePolicyInput {
10451	s.Arn = &v
10452	return s
10453}
10454
10455type GetResolverRulePolicyOutput struct {
10456	_ struct{} `type:"structure"`
10457
10458	// The Resolver rule policy for the rule that you specified in a GetResolverRulePolicy
10459	// request.
10460	ResolverRulePolicy *string `type:"string"`
10461}
10462
10463// String returns the string representation
10464func (s GetResolverRulePolicyOutput) String() string {
10465	return awsutil.Prettify(s)
10466}
10467
10468// GoString returns the string representation
10469func (s GetResolverRulePolicyOutput) GoString() string {
10470	return s.String()
10471}
10472
10473// SetResolverRulePolicy sets the ResolverRulePolicy field's value.
10474func (s *GetResolverRulePolicyOutput) SetResolverRulePolicy(v string) *GetResolverRulePolicyOutput {
10475	s.ResolverRulePolicy = &v
10476	return s
10477}
10478
10479type ImportFirewallDomainsInput struct {
10480	_ struct{} `type:"structure"`
10481
10482	// The fully qualified URL or URI of the file stored in Amazon Simple Storage
10483	// Service (Amazon S3) that contains the list of domains to import.
10484	//
10485	// The file must be in an S3 bucket that's in the same Region as your DNS Firewall.
10486	// The file must be a text file and must contain a single domain per line.
10487	//
10488	// DomainFileUrl is a required field
10489	DomainFileUrl *string `min:"1" type:"string" required:"true"`
10490
10491	// The ID of the domain list that you want to modify with the import operation.
10492	//
10493	// FirewallDomainListId is a required field
10494	FirewallDomainListId *string `min:"1" type:"string" required:"true"`
10495
10496	// What you want DNS Firewall to do with the domains that are listed in the
10497	// file. This must be set to REPLACE, which updates the domain list to exactly
10498	// match the list in the file.
10499	//
10500	// Operation is a required field
10501	Operation *string `type:"string" required:"true" enum:"FirewallDomainImportOperation"`
10502}
10503
10504// String returns the string representation
10505func (s ImportFirewallDomainsInput) String() string {
10506	return awsutil.Prettify(s)
10507}
10508
10509// GoString returns the string representation
10510func (s ImportFirewallDomainsInput) GoString() string {
10511	return s.String()
10512}
10513
10514// Validate inspects the fields of the type to determine if they are valid.
10515func (s *ImportFirewallDomainsInput) Validate() error {
10516	invalidParams := request.ErrInvalidParams{Context: "ImportFirewallDomainsInput"}
10517	if s.DomainFileUrl == nil {
10518		invalidParams.Add(request.NewErrParamRequired("DomainFileUrl"))
10519	}
10520	if s.DomainFileUrl != nil && len(*s.DomainFileUrl) < 1 {
10521		invalidParams.Add(request.NewErrParamMinLen("DomainFileUrl", 1))
10522	}
10523	if s.FirewallDomainListId == nil {
10524		invalidParams.Add(request.NewErrParamRequired("FirewallDomainListId"))
10525	}
10526	if s.FirewallDomainListId != nil && len(*s.FirewallDomainListId) < 1 {
10527		invalidParams.Add(request.NewErrParamMinLen("FirewallDomainListId", 1))
10528	}
10529	if s.Operation == nil {
10530		invalidParams.Add(request.NewErrParamRequired("Operation"))
10531	}
10532
10533	if invalidParams.Len() > 0 {
10534		return invalidParams
10535	}
10536	return nil
10537}
10538
10539// SetDomainFileUrl sets the DomainFileUrl field's value.
10540func (s *ImportFirewallDomainsInput) SetDomainFileUrl(v string) *ImportFirewallDomainsInput {
10541	s.DomainFileUrl = &v
10542	return s
10543}
10544
10545// SetFirewallDomainListId sets the FirewallDomainListId field's value.
10546func (s *ImportFirewallDomainsInput) SetFirewallDomainListId(v string) *ImportFirewallDomainsInput {
10547	s.FirewallDomainListId = &v
10548	return s
10549}
10550
10551// SetOperation sets the Operation field's value.
10552func (s *ImportFirewallDomainsInput) SetOperation(v string) *ImportFirewallDomainsInput {
10553	s.Operation = &v
10554	return s
10555}
10556
10557type ImportFirewallDomainsOutput struct {
10558	_ struct{} `type:"structure"`
10559
10560	// The Id of the firewall domain list that DNS Firewall just updated.
10561	Id *string `min:"1" type:"string"`
10562
10563	// The name of the domain list.
10564	Name *string `type:"string"`
10565
10566	Status *string `type:"string" enum:"FirewallDomainListStatus"`
10567
10568	// Additional information about the status of the list, if available.
10569	StatusMessage *string `type:"string"`
10570}
10571
10572// String returns the string representation
10573func (s ImportFirewallDomainsOutput) String() string {
10574	return awsutil.Prettify(s)
10575}
10576
10577// GoString returns the string representation
10578func (s ImportFirewallDomainsOutput) GoString() string {
10579	return s.String()
10580}
10581
10582// SetId sets the Id field's value.
10583func (s *ImportFirewallDomainsOutput) SetId(v string) *ImportFirewallDomainsOutput {
10584	s.Id = &v
10585	return s
10586}
10587
10588// SetName sets the Name field's value.
10589func (s *ImportFirewallDomainsOutput) SetName(v string) *ImportFirewallDomainsOutput {
10590	s.Name = &v
10591	return s
10592}
10593
10594// SetStatus sets the Status field's value.
10595func (s *ImportFirewallDomainsOutput) SetStatus(v string) *ImportFirewallDomainsOutput {
10596	s.Status = &v
10597	return s
10598}
10599
10600// SetStatusMessage sets the StatusMessage field's value.
10601func (s *ImportFirewallDomainsOutput) SetStatusMessage(v string) *ImportFirewallDomainsOutput {
10602	s.StatusMessage = &v
10603	return s
10604}
10605
10606// We encountered an unknown error. Try again in a few minutes.
10607type InternalServiceErrorException struct {
10608	_            struct{}                  `type:"structure"`
10609	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
10610
10611	Message_ *string `locationName:"Message" type:"string"`
10612}
10613
10614// String returns the string representation
10615func (s InternalServiceErrorException) String() string {
10616	return awsutil.Prettify(s)
10617}
10618
10619// GoString returns the string representation
10620func (s InternalServiceErrorException) GoString() string {
10621	return s.String()
10622}
10623
10624func newErrorInternalServiceErrorException(v protocol.ResponseMetadata) error {
10625	return &InternalServiceErrorException{
10626		RespMetadata: v,
10627	}
10628}
10629
10630// Code returns the exception type name.
10631func (s *InternalServiceErrorException) Code() string {
10632	return "InternalServiceErrorException"
10633}
10634
10635// Message returns the exception's message.
10636func (s *InternalServiceErrorException) Message() string {
10637	if s.Message_ != nil {
10638		return *s.Message_
10639	}
10640	return ""
10641}
10642
10643// OrigErr always returns nil, satisfies awserr.Error interface.
10644func (s *InternalServiceErrorException) OrigErr() error {
10645	return nil
10646}
10647
10648func (s *InternalServiceErrorException) Error() string {
10649	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
10650}
10651
10652// Status code returns the HTTP status code for the request's response error.
10653func (s *InternalServiceErrorException) StatusCode() int {
10654	return s.RespMetadata.StatusCode
10655}
10656
10657// RequestID returns the service's response RequestID for request.
10658func (s *InternalServiceErrorException) RequestID() string {
10659	return s.RespMetadata.RequestID
10660}
10661
10662// The value that you specified for NextToken in a List request isn't valid.
10663type InvalidNextTokenException struct {
10664	_            struct{}                  `type:"structure"`
10665	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
10666
10667	Message_ *string `locationName:"Message" type:"string"`
10668}
10669
10670// String returns the string representation
10671func (s InvalidNextTokenException) String() string {
10672	return awsutil.Prettify(s)
10673}
10674
10675// GoString returns the string representation
10676func (s InvalidNextTokenException) GoString() string {
10677	return s.String()
10678}
10679
10680func newErrorInvalidNextTokenException(v protocol.ResponseMetadata) error {
10681	return &InvalidNextTokenException{
10682		RespMetadata: v,
10683	}
10684}
10685
10686// Code returns the exception type name.
10687func (s *InvalidNextTokenException) Code() string {
10688	return "InvalidNextTokenException"
10689}
10690
10691// Message returns the exception's message.
10692func (s *InvalidNextTokenException) Message() string {
10693	if s.Message_ != nil {
10694		return *s.Message_
10695	}
10696	return ""
10697}
10698
10699// OrigErr always returns nil, satisfies awserr.Error interface.
10700func (s *InvalidNextTokenException) OrigErr() error {
10701	return nil
10702}
10703
10704func (s *InvalidNextTokenException) Error() string {
10705	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
10706}
10707
10708// Status code returns the HTTP status code for the request's response error.
10709func (s *InvalidNextTokenException) StatusCode() int {
10710	return s.RespMetadata.StatusCode
10711}
10712
10713// RequestID returns the service's response RequestID for request.
10714func (s *InvalidNextTokenException) RequestID() string {
10715	return s.RespMetadata.RequestID
10716}
10717
10718// One or more parameters in this request are not valid.
10719type InvalidParameterException struct {
10720	_            struct{}                  `type:"structure"`
10721	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
10722
10723	// For an InvalidParameterException error, the name of the parameter that's
10724	// invalid.
10725	FieldName *string `type:"string"`
10726
10727	Message_ *string `locationName:"Message" type:"string"`
10728}
10729
10730// String returns the string representation
10731func (s InvalidParameterException) String() string {
10732	return awsutil.Prettify(s)
10733}
10734
10735// GoString returns the string representation
10736func (s InvalidParameterException) GoString() string {
10737	return s.String()
10738}
10739
10740func newErrorInvalidParameterException(v protocol.ResponseMetadata) error {
10741	return &InvalidParameterException{
10742		RespMetadata: v,
10743	}
10744}
10745
10746// Code returns the exception type name.
10747func (s *InvalidParameterException) Code() string {
10748	return "InvalidParameterException"
10749}
10750
10751// Message returns the exception's message.
10752func (s *InvalidParameterException) Message() string {
10753	if s.Message_ != nil {
10754		return *s.Message_
10755	}
10756	return ""
10757}
10758
10759// OrigErr always returns nil, satisfies awserr.Error interface.
10760func (s *InvalidParameterException) OrigErr() error {
10761	return nil
10762}
10763
10764func (s *InvalidParameterException) Error() string {
10765	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
10766}
10767
10768// Status code returns the HTTP status code for the request's response error.
10769func (s *InvalidParameterException) StatusCode() int {
10770	return s.RespMetadata.StatusCode
10771}
10772
10773// RequestID returns the service's response RequestID for request.
10774func (s *InvalidParameterException) RequestID() string {
10775	return s.RespMetadata.RequestID
10776}
10777
10778// The specified Resolver rule policy is invalid.
10779type InvalidPolicyDocument struct {
10780	_            struct{}                  `type:"structure"`
10781	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
10782
10783	Message_ *string `locationName:"Message" type:"string"`
10784}
10785
10786// String returns the string representation
10787func (s InvalidPolicyDocument) String() string {
10788	return awsutil.Prettify(s)
10789}
10790
10791// GoString returns the string representation
10792func (s InvalidPolicyDocument) GoString() string {
10793	return s.String()
10794}
10795
10796func newErrorInvalidPolicyDocument(v protocol.ResponseMetadata) error {
10797	return &InvalidPolicyDocument{
10798		RespMetadata: v,
10799	}
10800}
10801
10802// Code returns the exception type name.
10803func (s *InvalidPolicyDocument) Code() string {
10804	return "InvalidPolicyDocument"
10805}
10806
10807// Message returns the exception's message.
10808func (s *InvalidPolicyDocument) Message() string {
10809	if s.Message_ != nil {
10810		return *s.Message_
10811	}
10812	return ""
10813}
10814
10815// OrigErr always returns nil, satisfies awserr.Error interface.
10816func (s *InvalidPolicyDocument) OrigErr() error {
10817	return nil
10818}
10819
10820func (s *InvalidPolicyDocument) Error() string {
10821	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
10822}
10823
10824// Status code returns the HTTP status code for the request's response error.
10825func (s *InvalidPolicyDocument) StatusCode() int {
10826	return s.RespMetadata.StatusCode
10827}
10828
10829// RequestID returns the service's response RequestID for request.
10830func (s *InvalidPolicyDocument) RequestID() string {
10831	return s.RespMetadata.RequestID
10832}
10833
10834// The request is invalid.
10835type InvalidRequestException struct {
10836	_            struct{}                  `type:"structure"`
10837	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
10838
10839	Message_ *string `locationName:"Message" type:"string"`
10840}
10841
10842// String returns the string representation
10843func (s InvalidRequestException) String() string {
10844	return awsutil.Prettify(s)
10845}
10846
10847// GoString returns the string representation
10848func (s InvalidRequestException) GoString() string {
10849	return s.String()
10850}
10851
10852func newErrorInvalidRequestException(v protocol.ResponseMetadata) error {
10853	return &InvalidRequestException{
10854		RespMetadata: v,
10855	}
10856}
10857
10858// Code returns the exception type name.
10859func (s *InvalidRequestException) Code() string {
10860	return "InvalidRequestException"
10861}
10862
10863// Message returns the exception's message.
10864func (s *InvalidRequestException) Message() string {
10865	if s.Message_ != nil {
10866		return *s.Message_
10867	}
10868	return ""
10869}
10870
10871// OrigErr always returns nil, satisfies awserr.Error interface.
10872func (s *InvalidRequestException) OrigErr() error {
10873	return nil
10874}
10875
10876func (s *InvalidRequestException) Error() string {
10877	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
10878}
10879
10880// Status code returns the HTTP status code for the request's response error.
10881func (s *InvalidRequestException) StatusCode() int {
10882	return s.RespMetadata.StatusCode
10883}
10884
10885// RequestID returns the service's response RequestID for request.
10886func (s *InvalidRequestException) RequestID() string {
10887	return s.RespMetadata.RequestID
10888}
10889
10890// The specified tag is invalid.
10891type InvalidTagException struct {
10892	_            struct{}                  `type:"structure"`
10893	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
10894
10895	Message_ *string `locationName:"Message" type:"string"`
10896}
10897
10898// String returns the string representation
10899func (s InvalidTagException) String() string {
10900	return awsutil.Prettify(s)
10901}
10902
10903// GoString returns the string representation
10904func (s InvalidTagException) GoString() string {
10905	return s.String()
10906}
10907
10908func newErrorInvalidTagException(v protocol.ResponseMetadata) error {
10909	return &InvalidTagException{
10910		RespMetadata: v,
10911	}
10912}
10913
10914// Code returns the exception type name.
10915func (s *InvalidTagException) Code() string {
10916	return "InvalidTagException"
10917}
10918
10919// Message returns the exception's message.
10920func (s *InvalidTagException) Message() string {
10921	if s.Message_ != nil {
10922		return *s.Message_
10923	}
10924	return ""
10925}
10926
10927// OrigErr always returns nil, satisfies awserr.Error interface.
10928func (s *InvalidTagException) OrigErr() error {
10929	return nil
10930}
10931
10932func (s *InvalidTagException) Error() string {
10933	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
10934}
10935
10936// Status code returns the HTTP status code for the request's response error.
10937func (s *InvalidTagException) StatusCode() int {
10938	return s.RespMetadata.StatusCode
10939}
10940
10941// RequestID returns the service's response RequestID for request.
10942func (s *InvalidTagException) RequestID() string {
10943	return s.RespMetadata.RequestID
10944}
10945
10946// In a CreateResolverEndpoint (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_CreateResolverEndpoint.html)
10947// request, the IP address that DNS queries originate from (for outbound endpoints)
10948// or that you forward DNS queries to (for inbound endpoints). IpAddressRequest
10949// also includes the ID of the subnet that contains the IP address.
10950type IpAddressRequest struct {
10951	_ struct{} `type:"structure"`
10952
10953	// The IP address that you want to use for DNS queries.
10954	Ip *string `min:"7" type:"string"`
10955
10956	// The ID of the subnet that contains the IP address.
10957	//
10958	// SubnetId is a required field
10959	SubnetId *string `min:"1" type:"string" required:"true"`
10960}
10961
10962// String returns the string representation
10963func (s IpAddressRequest) String() string {
10964	return awsutil.Prettify(s)
10965}
10966
10967// GoString returns the string representation
10968func (s IpAddressRequest) GoString() string {
10969	return s.String()
10970}
10971
10972// Validate inspects the fields of the type to determine if they are valid.
10973func (s *IpAddressRequest) Validate() error {
10974	invalidParams := request.ErrInvalidParams{Context: "IpAddressRequest"}
10975	if s.Ip != nil && len(*s.Ip) < 7 {
10976		invalidParams.Add(request.NewErrParamMinLen("Ip", 7))
10977	}
10978	if s.SubnetId == nil {
10979		invalidParams.Add(request.NewErrParamRequired("SubnetId"))
10980	}
10981	if s.SubnetId != nil && len(*s.SubnetId) < 1 {
10982		invalidParams.Add(request.NewErrParamMinLen("SubnetId", 1))
10983	}
10984
10985	if invalidParams.Len() > 0 {
10986		return invalidParams
10987	}
10988	return nil
10989}
10990
10991// SetIp sets the Ip field's value.
10992func (s *IpAddressRequest) SetIp(v string) *IpAddressRequest {
10993	s.Ip = &v
10994	return s
10995}
10996
10997// SetSubnetId sets the SubnetId field's value.
10998func (s *IpAddressRequest) SetSubnetId(v string) *IpAddressRequest {
10999	s.SubnetId = &v
11000	return s
11001}
11002
11003// In the response to a GetResolverEndpoint (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverEndpoint.html)
11004// request, information about the IP addresses that the Resolver endpoint uses
11005// for DNS queries.
11006type IpAddressResponse struct {
11007	_ struct{} `type:"structure"`
11008
11009	// The date and time that the IP address was created, in Unix time format and
11010	// Coordinated Universal Time (UTC).
11011	CreationTime *string `min:"20" type:"string"`
11012
11013	// One IP address that the Resolver endpoint uses for DNS queries.
11014	Ip *string `min:"7" type:"string"`
11015
11016	// The ID of one IP address.
11017	IpId *string `min:"1" type:"string"`
11018
11019	// The date and time that the IP address was last modified, in Unix time format
11020	// and Coordinated Universal Time (UTC).
11021	ModificationTime *string `min:"20" type:"string"`
11022
11023	// A status code that gives the current status of the request.
11024	Status *string `type:"string" enum:"IpAddressStatus"`
11025
11026	// A message that provides additional information about the status of the request.
11027	StatusMessage *string `type:"string"`
11028
11029	// The ID of one subnet.
11030	SubnetId *string `min:"1" type:"string"`
11031}
11032
11033// String returns the string representation
11034func (s IpAddressResponse) String() string {
11035	return awsutil.Prettify(s)
11036}
11037
11038// GoString returns the string representation
11039func (s IpAddressResponse) GoString() string {
11040	return s.String()
11041}
11042
11043// SetCreationTime sets the CreationTime field's value.
11044func (s *IpAddressResponse) SetCreationTime(v string) *IpAddressResponse {
11045	s.CreationTime = &v
11046	return s
11047}
11048
11049// SetIp sets the Ip field's value.
11050func (s *IpAddressResponse) SetIp(v string) *IpAddressResponse {
11051	s.Ip = &v
11052	return s
11053}
11054
11055// SetIpId sets the IpId field's value.
11056func (s *IpAddressResponse) SetIpId(v string) *IpAddressResponse {
11057	s.IpId = &v
11058	return s
11059}
11060
11061// SetModificationTime sets the ModificationTime field's value.
11062func (s *IpAddressResponse) SetModificationTime(v string) *IpAddressResponse {
11063	s.ModificationTime = &v
11064	return s
11065}
11066
11067// SetStatus sets the Status field's value.
11068func (s *IpAddressResponse) SetStatus(v string) *IpAddressResponse {
11069	s.Status = &v
11070	return s
11071}
11072
11073// SetStatusMessage sets the StatusMessage field's value.
11074func (s *IpAddressResponse) SetStatusMessage(v string) *IpAddressResponse {
11075	s.StatusMessage = &v
11076	return s
11077}
11078
11079// SetSubnetId sets the SubnetId field's value.
11080func (s *IpAddressResponse) SetSubnetId(v string) *IpAddressResponse {
11081	s.SubnetId = &v
11082	return s
11083}
11084
11085// In an UpdateResolverEndpoint (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_UpdateResolverEndpoint.html)
11086// request, information about an IP address to update.
11087type IpAddressUpdate struct {
11088	_ struct{} `type:"structure"`
11089
11090	// The new IP address.
11091	Ip *string `min:"7" type:"string"`
11092
11093	// Only when removing an IP address from a Resolver endpoint: The ID of the
11094	// IP address that you want to remove. To get this ID, use GetResolverEndpoint
11095	// (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverEndpoint.html).
11096	IpId *string `min:"1" type:"string"`
11097
11098	// The ID of the subnet that includes the IP address that you want to update.
11099	// To get this ID, use GetResolverEndpoint (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverEndpoint.html).
11100	SubnetId *string `min:"1" type:"string"`
11101}
11102
11103// String returns the string representation
11104func (s IpAddressUpdate) String() string {
11105	return awsutil.Prettify(s)
11106}
11107
11108// GoString returns the string representation
11109func (s IpAddressUpdate) GoString() string {
11110	return s.String()
11111}
11112
11113// Validate inspects the fields of the type to determine if they are valid.
11114func (s *IpAddressUpdate) Validate() error {
11115	invalidParams := request.ErrInvalidParams{Context: "IpAddressUpdate"}
11116	if s.Ip != nil && len(*s.Ip) < 7 {
11117		invalidParams.Add(request.NewErrParamMinLen("Ip", 7))
11118	}
11119	if s.IpId != nil && len(*s.IpId) < 1 {
11120		invalidParams.Add(request.NewErrParamMinLen("IpId", 1))
11121	}
11122	if s.SubnetId != nil && len(*s.SubnetId) < 1 {
11123		invalidParams.Add(request.NewErrParamMinLen("SubnetId", 1))
11124	}
11125
11126	if invalidParams.Len() > 0 {
11127		return invalidParams
11128	}
11129	return nil
11130}
11131
11132// SetIp sets the Ip field's value.
11133func (s *IpAddressUpdate) SetIp(v string) *IpAddressUpdate {
11134	s.Ip = &v
11135	return s
11136}
11137
11138// SetIpId sets the IpId field's value.
11139func (s *IpAddressUpdate) SetIpId(v string) *IpAddressUpdate {
11140	s.IpId = &v
11141	return s
11142}
11143
11144// SetSubnetId sets the SubnetId field's value.
11145func (s *IpAddressUpdate) SetSubnetId(v string) *IpAddressUpdate {
11146	s.SubnetId = &v
11147	return s
11148}
11149
11150// The request caused one or more limits to be exceeded.
11151type LimitExceededException struct {
11152	_            struct{}                  `type:"structure"`
11153	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
11154
11155	Message_ *string `locationName:"Message" type:"string"`
11156
11157	// For a LimitExceededException error, the type of resource that exceeded the
11158	// current limit.
11159	ResourceType *string `type:"string"`
11160}
11161
11162// String returns the string representation
11163func (s LimitExceededException) String() string {
11164	return awsutil.Prettify(s)
11165}
11166
11167// GoString returns the string representation
11168func (s LimitExceededException) GoString() string {
11169	return s.String()
11170}
11171
11172func newErrorLimitExceededException(v protocol.ResponseMetadata) error {
11173	return &LimitExceededException{
11174		RespMetadata: v,
11175	}
11176}
11177
11178// Code returns the exception type name.
11179func (s *LimitExceededException) Code() string {
11180	return "LimitExceededException"
11181}
11182
11183// Message returns the exception's message.
11184func (s *LimitExceededException) Message() string {
11185	if s.Message_ != nil {
11186		return *s.Message_
11187	}
11188	return ""
11189}
11190
11191// OrigErr always returns nil, satisfies awserr.Error interface.
11192func (s *LimitExceededException) OrigErr() error {
11193	return nil
11194}
11195
11196func (s *LimitExceededException) Error() string {
11197	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
11198}
11199
11200// Status code returns the HTTP status code for the request's response error.
11201func (s *LimitExceededException) StatusCode() int {
11202	return s.RespMetadata.StatusCode
11203}
11204
11205// RequestID returns the service's response RequestID for request.
11206func (s *LimitExceededException) RequestID() string {
11207	return s.RespMetadata.RequestID
11208}
11209
11210type ListFirewallConfigsInput struct {
11211	_ struct{} `type:"structure"`
11212
11213	// The maximum number of objects that you want Resolver to return for this request.
11214	// If more objects are available, in the response, Resolver provides a NextToken
11215	// value that you can use in a subsequent call to get the next batch of objects.
11216	//
11217	// If you don't specify a value for MaxResults, Resolver returns up to 100 objects.
11218	MaxResults *int64 `min:"5" type:"integer"`
11219
11220	// For the first call to this list request, omit this value.
11221	//
11222	// When you request a list of objects, Resolver returns at most the number of
11223	// objects specified in MaxResults. If more objects are available for retrieval,
11224	// Resolver returns a NextToken value in the response. To retrieve the next
11225	// batch of objects, use the token that was returned for the prior request in
11226	// your next request.
11227	NextToken *string `type:"string"`
11228}
11229
11230// String returns the string representation
11231func (s ListFirewallConfigsInput) String() string {
11232	return awsutil.Prettify(s)
11233}
11234
11235// GoString returns the string representation
11236func (s ListFirewallConfigsInput) GoString() string {
11237	return s.String()
11238}
11239
11240// Validate inspects the fields of the type to determine if they are valid.
11241func (s *ListFirewallConfigsInput) Validate() error {
11242	invalidParams := request.ErrInvalidParams{Context: "ListFirewallConfigsInput"}
11243	if s.MaxResults != nil && *s.MaxResults < 5 {
11244		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 5))
11245	}
11246
11247	if invalidParams.Len() > 0 {
11248		return invalidParams
11249	}
11250	return nil
11251}
11252
11253// SetMaxResults sets the MaxResults field's value.
11254func (s *ListFirewallConfigsInput) SetMaxResults(v int64) *ListFirewallConfigsInput {
11255	s.MaxResults = &v
11256	return s
11257}
11258
11259// SetNextToken sets the NextToken field's value.
11260func (s *ListFirewallConfigsInput) SetNextToken(v string) *ListFirewallConfigsInput {
11261	s.NextToken = &v
11262	return s
11263}
11264
11265type ListFirewallConfigsOutput struct {
11266	_ struct{} `type:"structure"`
11267
11268	// The configurations for the firewall behavior provided by DNS Firewall for
11269	// VPCs from Amazon Virtual Private Cloud (Amazon VPC).
11270	FirewallConfigs []*FirewallConfig `type:"list"`
11271
11272	// If objects are still available for retrieval, Resolver returns this token
11273	// in the response. To retrieve the next batch of objects, provide this token
11274	// in your next request.
11275	NextToken *string `type:"string"`
11276}
11277
11278// String returns the string representation
11279func (s ListFirewallConfigsOutput) String() string {
11280	return awsutil.Prettify(s)
11281}
11282
11283// GoString returns the string representation
11284func (s ListFirewallConfigsOutput) GoString() string {
11285	return s.String()
11286}
11287
11288// SetFirewallConfigs sets the FirewallConfigs field's value.
11289func (s *ListFirewallConfigsOutput) SetFirewallConfigs(v []*FirewallConfig) *ListFirewallConfigsOutput {
11290	s.FirewallConfigs = v
11291	return s
11292}
11293
11294// SetNextToken sets the NextToken field's value.
11295func (s *ListFirewallConfigsOutput) SetNextToken(v string) *ListFirewallConfigsOutput {
11296	s.NextToken = &v
11297	return s
11298}
11299
11300type ListFirewallDomainListsInput struct {
11301	_ struct{} `type:"structure"`
11302
11303	// The maximum number of objects that you want Resolver to return for this request.
11304	// If more objects are available, in the response, Resolver provides a NextToken
11305	// value that you can use in a subsequent call to get the next batch of objects.
11306	//
11307	// If you don't specify a value for MaxResults, Resolver returns up to 100 objects.
11308	MaxResults *int64 `min:"1" type:"integer"`
11309
11310	// For the first call to this list request, omit this value.
11311	//
11312	// When you request a list of objects, Resolver returns at most the number of
11313	// objects specified in MaxResults. If more objects are available for retrieval,
11314	// Resolver returns a NextToken value in the response. To retrieve the next
11315	// batch of objects, use the token that was returned for the prior request in
11316	// your next request.
11317	NextToken *string `type:"string"`
11318}
11319
11320// String returns the string representation
11321func (s ListFirewallDomainListsInput) String() string {
11322	return awsutil.Prettify(s)
11323}
11324
11325// GoString returns the string representation
11326func (s ListFirewallDomainListsInput) GoString() string {
11327	return s.String()
11328}
11329
11330// Validate inspects the fields of the type to determine if they are valid.
11331func (s *ListFirewallDomainListsInput) Validate() error {
11332	invalidParams := request.ErrInvalidParams{Context: "ListFirewallDomainListsInput"}
11333	if s.MaxResults != nil && *s.MaxResults < 1 {
11334		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
11335	}
11336
11337	if invalidParams.Len() > 0 {
11338		return invalidParams
11339	}
11340	return nil
11341}
11342
11343// SetMaxResults sets the MaxResults field's value.
11344func (s *ListFirewallDomainListsInput) SetMaxResults(v int64) *ListFirewallDomainListsInput {
11345	s.MaxResults = &v
11346	return s
11347}
11348
11349// SetNextToken sets the NextToken field's value.
11350func (s *ListFirewallDomainListsInput) SetNextToken(v string) *ListFirewallDomainListsInput {
11351	s.NextToken = &v
11352	return s
11353}
11354
11355type ListFirewallDomainListsOutput struct {
11356	_ struct{} `type:"structure"`
11357
11358	// A list of the domain lists that you have defined.
11359	//
11360	// This might be a partial list of the domain lists that you've defined. For
11361	// information, see MaxResults.
11362	FirewallDomainLists []*FirewallDomainListMetadata `type:"list"`
11363
11364	// If objects are still available for retrieval, Resolver returns this token
11365	// in the response. To retrieve the next batch of objects, provide this token
11366	// in your next request.
11367	NextToken *string `type:"string"`
11368}
11369
11370// String returns the string representation
11371func (s ListFirewallDomainListsOutput) String() string {
11372	return awsutil.Prettify(s)
11373}
11374
11375// GoString returns the string representation
11376func (s ListFirewallDomainListsOutput) GoString() string {
11377	return s.String()
11378}
11379
11380// SetFirewallDomainLists sets the FirewallDomainLists field's value.
11381func (s *ListFirewallDomainListsOutput) SetFirewallDomainLists(v []*FirewallDomainListMetadata) *ListFirewallDomainListsOutput {
11382	s.FirewallDomainLists = v
11383	return s
11384}
11385
11386// SetNextToken sets the NextToken field's value.
11387func (s *ListFirewallDomainListsOutput) SetNextToken(v string) *ListFirewallDomainListsOutput {
11388	s.NextToken = &v
11389	return s
11390}
11391
11392type ListFirewallDomainsInput struct {
11393	_ struct{} `type:"structure"`
11394
11395	// The ID of the domain list whose domains you want to retrieve.
11396	//
11397	// FirewallDomainListId is a required field
11398	FirewallDomainListId *string `min:"1" type:"string" required:"true"`
11399
11400	// The maximum number of objects that you want Resolver to return for this request.
11401	// If more objects are available, in the response, Resolver provides a NextToken
11402	// value that you can use in a subsequent call to get the next batch of objects.
11403	//
11404	// If you don't specify a value for MaxResults, Resolver returns up to 100 objects.
11405	MaxResults *int64 `min:"1" type:"integer"`
11406
11407	// For the first call to this list request, omit this value.
11408	//
11409	// When you request a list of objects, Resolver returns at most the number of
11410	// objects specified in MaxResults. If more objects are available for retrieval,
11411	// Resolver returns a NextToken value in the response. To retrieve the next
11412	// batch of objects, use the token that was returned for the prior request in
11413	// your next request.
11414	NextToken *string `type:"string"`
11415}
11416
11417// String returns the string representation
11418func (s ListFirewallDomainsInput) String() string {
11419	return awsutil.Prettify(s)
11420}
11421
11422// GoString returns the string representation
11423func (s ListFirewallDomainsInput) GoString() string {
11424	return s.String()
11425}
11426
11427// Validate inspects the fields of the type to determine if they are valid.
11428func (s *ListFirewallDomainsInput) Validate() error {
11429	invalidParams := request.ErrInvalidParams{Context: "ListFirewallDomainsInput"}
11430	if s.FirewallDomainListId == nil {
11431		invalidParams.Add(request.NewErrParamRequired("FirewallDomainListId"))
11432	}
11433	if s.FirewallDomainListId != nil && len(*s.FirewallDomainListId) < 1 {
11434		invalidParams.Add(request.NewErrParamMinLen("FirewallDomainListId", 1))
11435	}
11436	if s.MaxResults != nil && *s.MaxResults < 1 {
11437		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
11438	}
11439
11440	if invalidParams.Len() > 0 {
11441		return invalidParams
11442	}
11443	return nil
11444}
11445
11446// SetFirewallDomainListId sets the FirewallDomainListId field's value.
11447func (s *ListFirewallDomainsInput) SetFirewallDomainListId(v string) *ListFirewallDomainsInput {
11448	s.FirewallDomainListId = &v
11449	return s
11450}
11451
11452// SetMaxResults sets the MaxResults field's value.
11453func (s *ListFirewallDomainsInput) SetMaxResults(v int64) *ListFirewallDomainsInput {
11454	s.MaxResults = &v
11455	return s
11456}
11457
11458// SetNextToken sets the NextToken field's value.
11459func (s *ListFirewallDomainsInput) SetNextToken(v string) *ListFirewallDomainsInput {
11460	s.NextToken = &v
11461	return s
11462}
11463
11464type ListFirewallDomainsOutput struct {
11465	_ struct{} `type:"structure"`
11466
11467	// A list of the domains in the firewall domain list.
11468	//
11469	// This might be a partial list of the domains that you've defined in the domain
11470	// list. For information, see MaxResults.
11471	Domains []*string `type:"list"`
11472
11473	// If objects are still available for retrieval, Resolver returns this token
11474	// in the response. To retrieve the next batch of objects, provide this token
11475	// in your next request.
11476	NextToken *string `type:"string"`
11477}
11478
11479// String returns the string representation
11480func (s ListFirewallDomainsOutput) String() string {
11481	return awsutil.Prettify(s)
11482}
11483
11484// GoString returns the string representation
11485func (s ListFirewallDomainsOutput) GoString() string {
11486	return s.String()
11487}
11488
11489// SetDomains sets the Domains field's value.
11490func (s *ListFirewallDomainsOutput) SetDomains(v []*string) *ListFirewallDomainsOutput {
11491	s.Domains = v
11492	return s
11493}
11494
11495// SetNextToken sets the NextToken field's value.
11496func (s *ListFirewallDomainsOutput) SetNextToken(v string) *ListFirewallDomainsOutput {
11497	s.NextToken = &v
11498	return s
11499}
11500
11501type ListFirewallRuleGroupAssociationsInput struct {
11502	_ struct{} `type:"structure"`
11503
11504	// The unique identifier of the firewall rule group that you want to retrieve
11505	// the associations for. Leave this blank to retrieve associations for any rule
11506	// group.
11507	FirewallRuleGroupId *string `min:"1" type:"string"`
11508
11509	// The maximum number of objects that you want Resolver to return for this request.
11510	// If more objects are available, in the response, Resolver provides a NextToken
11511	// value that you can use in a subsequent call to get the next batch of objects.
11512	//
11513	// If you don't specify a value for MaxResults, Resolver returns up to 100 objects.
11514	MaxResults *int64 `min:"1" type:"integer"`
11515
11516	// For the first call to this list request, omit this value.
11517	//
11518	// When you request a list of objects, Resolver returns at most the number of
11519	// objects specified in MaxResults. If more objects are available for retrieval,
11520	// Resolver returns a NextToken value in the response. To retrieve the next
11521	// batch of objects, use the token that was returned for the prior request in
11522	// your next request.
11523	NextToken *string `type:"string"`
11524
11525	// The setting that determines the processing order of the rule group among
11526	// the rule groups that are associated with a single VPC. DNS Firewall filters
11527	// VPC traffic starting from the rule group with the lowest numeric priority
11528	// setting.
11529	Priority *int64 `type:"integer"`
11530
11531	// The association Status setting that you want DNS Firewall to filter on for
11532	// the list. If you don't specify this, then DNS Firewall returns all associations,
11533	// regardless of status.
11534	Status *string `type:"string" enum:"FirewallRuleGroupAssociationStatus"`
11535
11536	// The unique identifier of the VPC that you want to retrieve the associations
11537	// for. Leave this blank to retrieve associations for any VPC.
11538	VpcId *string `min:"1" type:"string"`
11539}
11540
11541// String returns the string representation
11542func (s ListFirewallRuleGroupAssociationsInput) String() string {
11543	return awsutil.Prettify(s)
11544}
11545
11546// GoString returns the string representation
11547func (s ListFirewallRuleGroupAssociationsInput) GoString() string {
11548	return s.String()
11549}
11550
11551// Validate inspects the fields of the type to determine if they are valid.
11552func (s *ListFirewallRuleGroupAssociationsInput) Validate() error {
11553	invalidParams := request.ErrInvalidParams{Context: "ListFirewallRuleGroupAssociationsInput"}
11554	if s.FirewallRuleGroupId != nil && len(*s.FirewallRuleGroupId) < 1 {
11555		invalidParams.Add(request.NewErrParamMinLen("FirewallRuleGroupId", 1))
11556	}
11557	if s.MaxResults != nil && *s.MaxResults < 1 {
11558		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
11559	}
11560	if s.VpcId != nil && len(*s.VpcId) < 1 {
11561		invalidParams.Add(request.NewErrParamMinLen("VpcId", 1))
11562	}
11563
11564	if invalidParams.Len() > 0 {
11565		return invalidParams
11566	}
11567	return nil
11568}
11569
11570// SetFirewallRuleGroupId sets the FirewallRuleGroupId field's value.
11571func (s *ListFirewallRuleGroupAssociationsInput) SetFirewallRuleGroupId(v string) *ListFirewallRuleGroupAssociationsInput {
11572	s.FirewallRuleGroupId = &v
11573	return s
11574}
11575
11576// SetMaxResults sets the MaxResults field's value.
11577func (s *ListFirewallRuleGroupAssociationsInput) SetMaxResults(v int64) *ListFirewallRuleGroupAssociationsInput {
11578	s.MaxResults = &v
11579	return s
11580}
11581
11582// SetNextToken sets the NextToken field's value.
11583func (s *ListFirewallRuleGroupAssociationsInput) SetNextToken(v string) *ListFirewallRuleGroupAssociationsInput {
11584	s.NextToken = &v
11585	return s
11586}
11587
11588// SetPriority sets the Priority field's value.
11589func (s *ListFirewallRuleGroupAssociationsInput) SetPriority(v int64) *ListFirewallRuleGroupAssociationsInput {
11590	s.Priority = &v
11591	return s
11592}
11593
11594// SetStatus sets the Status field's value.
11595func (s *ListFirewallRuleGroupAssociationsInput) SetStatus(v string) *ListFirewallRuleGroupAssociationsInput {
11596	s.Status = &v
11597	return s
11598}
11599
11600// SetVpcId sets the VpcId field's value.
11601func (s *ListFirewallRuleGroupAssociationsInput) SetVpcId(v string) *ListFirewallRuleGroupAssociationsInput {
11602	s.VpcId = &v
11603	return s
11604}
11605
11606type ListFirewallRuleGroupAssociationsOutput struct {
11607	_ struct{} `type:"structure"`
11608
11609	// A list of your firewall rule group associations.
11610	//
11611	// This might be a partial list of the associations that you have defined. For
11612	// information, see MaxResults.
11613	FirewallRuleGroupAssociations []*FirewallRuleGroupAssociation `type:"list"`
11614
11615	// If objects are still available for retrieval, Resolver returns this token
11616	// in the response. To retrieve the next batch of objects, provide this token
11617	// in your next request.
11618	NextToken *string `type:"string"`
11619}
11620
11621// String returns the string representation
11622func (s ListFirewallRuleGroupAssociationsOutput) String() string {
11623	return awsutil.Prettify(s)
11624}
11625
11626// GoString returns the string representation
11627func (s ListFirewallRuleGroupAssociationsOutput) GoString() string {
11628	return s.String()
11629}
11630
11631// SetFirewallRuleGroupAssociations sets the FirewallRuleGroupAssociations field's value.
11632func (s *ListFirewallRuleGroupAssociationsOutput) SetFirewallRuleGroupAssociations(v []*FirewallRuleGroupAssociation) *ListFirewallRuleGroupAssociationsOutput {
11633	s.FirewallRuleGroupAssociations = v
11634	return s
11635}
11636
11637// SetNextToken sets the NextToken field's value.
11638func (s *ListFirewallRuleGroupAssociationsOutput) SetNextToken(v string) *ListFirewallRuleGroupAssociationsOutput {
11639	s.NextToken = &v
11640	return s
11641}
11642
11643type ListFirewallRuleGroupsInput struct {
11644	_ struct{} `type:"structure"`
11645
11646	// The maximum number of objects that you want Resolver to return for this request.
11647	// If more objects are available, in the response, Resolver provides a NextToken
11648	// value that you can use in a subsequent call to get the next batch of objects.
11649	//
11650	// If you don't specify a value for MaxResults, Resolver returns up to 100 objects.
11651	MaxResults *int64 `min:"1" type:"integer"`
11652
11653	// For the first call to this list request, omit this value.
11654	//
11655	// When you request a list of objects, Resolver returns at most the number of
11656	// objects specified in MaxResults. If more objects are available for retrieval,
11657	// Resolver returns a NextToken value in the response. To retrieve the next
11658	// batch of objects, use the token that was returned for the prior request in
11659	// your next request.
11660	NextToken *string `type:"string"`
11661}
11662
11663// String returns the string representation
11664func (s ListFirewallRuleGroupsInput) String() string {
11665	return awsutil.Prettify(s)
11666}
11667
11668// GoString returns the string representation
11669func (s ListFirewallRuleGroupsInput) GoString() string {
11670	return s.String()
11671}
11672
11673// Validate inspects the fields of the type to determine if they are valid.
11674func (s *ListFirewallRuleGroupsInput) Validate() error {
11675	invalidParams := request.ErrInvalidParams{Context: "ListFirewallRuleGroupsInput"}
11676	if s.MaxResults != nil && *s.MaxResults < 1 {
11677		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
11678	}
11679
11680	if invalidParams.Len() > 0 {
11681		return invalidParams
11682	}
11683	return nil
11684}
11685
11686// SetMaxResults sets the MaxResults field's value.
11687func (s *ListFirewallRuleGroupsInput) SetMaxResults(v int64) *ListFirewallRuleGroupsInput {
11688	s.MaxResults = &v
11689	return s
11690}
11691
11692// SetNextToken sets the NextToken field's value.
11693func (s *ListFirewallRuleGroupsInput) SetNextToken(v string) *ListFirewallRuleGroupsInput {
11694	s.NextToken = &v
11695	return s
11696}
11697
11698type ListFirewallRuleGroupsOutput struct {
11699	_ struct{} `type:"structure"`
11700
11701	// A list of your firewall rule groups.
11702	//
11703	// This might be a partial list of the rule groups that you have defined. For
11704	// information, see MaxResults.
11705	FirewallRuleGroups []*FirewallRuleGroupMetadata `type:"list"`
11706
11707	// If objects are still available for retrieval, Resolver returns this token
11708	// in the response. To retrieve the next batch of objects, provide this token
11709	// in your next request.
11710	NextToken *string `type:"string"`
11711}
11712
11713// String returns the string representation
11714func (s ListFirewallRuleGroupsOutput) String() string {
11715	return awsutil.Prettify(s)
11716}
11717
11718// GoString returns the string representation
11719func (s ListFirewallRuleGroupsOutput) GoString() string {
11720	return s.String()
11721}
11722
11723// SetFirewallRuleGroups sets the FirewallRuleGroups field's value.
11724func (s *ListFirewallRuleGroupsOutput) SetFirewallRuleGroups(v []*FirewallRuleGroupMetadata) *ListFirewallRuleGroupsOutput {
11725	s.FirewallRuleGroups = v
11726	return s
11727}
11728
11729// SetNextToken sets the NextToken field's value.
11730func (s *ListFirewallRuleGroupsOutput) SetNextToken(v string) *ListFirewallRuleGroupsOutput {
11731	s.NextToken = &v
11732	return s
11733}
11734
11735type ListFirewallRulesInput struct {
11736	_ struct{} `type:"structure"`
11737
11738	// Optional additional filter for the rules to retrieve.
11739	//
11740	// The action that DNS Firewall should take on a DNS query when it matches one
11741	// of the domains in the rule's domain list:
11742	//
11743	//    * ALLOW - Permit the request to go through.
11744	//
11745	//    * ALERT - Permit the request to go through but send an alert to the logs.
11746	//
11747	//    * BLOCK - Disallow the request. If this is specified, additional handling
11748	//    details are provided in the rule's BlockResponse setting.
11749	Action *string `type:"string" enum:"Action"`
11750
11751	// The unique identifier of the firewall rule group that you want to retrieve
11752	// the rules for.
11753	//
11754	// FirewallRuleGroupId is a required field
11755	FirewallRuleGroupId *string `min:"1" type:"string" required:"true"`
11756
11757	// The maximum number of objects that you want Resolver to return for this request.
11758	// If more objects are available, in the response, Resolver provides a NextToken
11759	// value that you can use in a subsequent call to get the next batch of objects.
11760	//
11761	// If you don't specify a value for MaxResults, Resolver returns up to 100 objects.
11762	MaxResults *int64 `min:"1" type:"integer"`
11763
11764	// For the first call to this list request, omit this value.
11765	//
11766	// When you request a list of objects, Resolver returns at most the number of
11767	// objects specified in MaxResults. If more objects are available for retrieval,
11768	// Resolver returns a NextToken value in the response. To retrieve the next
11769	// batch of objects, use the token that was returned for the prior request in
11770	// your next request.
11771	NextToken *string `type:"string"`
11772
11773	// Optional additional filter for the rules to retrieve.
11774	//
11775	// The setting that determines the processing order of the rules in a rule group.
11776	// DNS Firewall processes the rules in a rule group by order of priority, starting
11777	// from the lowest setting.
11778	Priority *int64 `type:"integer"`
11779}
11780
11781// String returns the string representation
11782func (s ListFirewallRulesInput) String() string {
11783	return awsutil.Prettify(s)
11784}
11785
11786// GoString returns the string representation
11787func (s ListFirewallRulesInput) GoString() string {
11788	return s.String()
11789}
11790
11791// Validate inspects the fields of the type to determine if they are valid.
11792func (s *ListFirewallRulesInput) Validate() error {
11793	invalidParams := request.ErrInvalidParams{Context: "ListFirewallRulesInput"}
11794	if s.FirewallRuleGroupId == nil {
11795		invalidParams.Add(request.NewErrParamRequired("FirewallRuleGroupId"))
11796	}
11797	if s.FirewallRuleGroupId != nil && len(*s.FirewallRuleGroupId) < 1 {
11798		invalidParams.Add(request.NewErrParamMinLen("FirewallRuleGroupId", 1))
11799	}
11800	if s.MaxResults != nil && *s.MaxResults < 1 {
11801		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
11802	}
11803
11804	if invalidParams.Len() > 0 {
11805		return invalidParams
11806	}
11807	return nil
11808}
11809
11810// SetAction sets the Action field's value.
11811func (s *ListFirewallRulesInput) SetAction(v string) *ListFirewallRulesInput {
11812	s.Action = &v
11813	return s
11814}
11815
11816// SetFirewallRuleGroupId sets the FirewallRuleGroupId field's value.
11817func (s *ListFirewallRulesInput) SetFirewallRuleGroupId(v string) *ListFirewallRulesInput {
11818	s.FirewallRuleGroupId = &v
11819	return s
11820}
11821
11822// SetMaxResults sets the MaxResults field's value.
11823func (s *ListFirewallRulesInput) SetMaxResults(v int64) *ListFirewallRulesInput {
11824	s.MaxResults = &v
11825	return s
11826}
11827
11828// SetNextToken sets the NextToken field's value.
11829func (s *ListFirewallRulesInput) SetNextToken(v string) *ListFirewallRulesInput {
11830	s.NextToken = &v
11831	return s
11832}
11833
11834// SetPriority sets the Priority field's value.
11835func (s *ListFirewallRulesInput) SetPriority(v int64) *ListFirewallRulesInput {
11836	s.Priority = &v
11837	return s
11838}
11839
11840type ListFirewallRulesOutput struct {
11841	_ struct{} `type:"structure"`
11842
11843	// A list of the rules that you have defined.
11844	//
11845	// This might be a partial list of the firewall rules that you've defined. For
11846	// information, see MaxResults.
11847	FirewallRules []*FirewallRule `type:"list"`
11848
11849	// If objects are still available for retrieval, Resolver returns this token
11850	// in the response. To retrieve the next batch of objects, provide this token
11851	// in your next request.
11852	NextToken *string `type:"string"`
11853}
11854
11855// String returns the string representation
11856func (s ListFirewallRulesOutput) String() string {
11857	return awsutil.Prettify(s)
11858}
11859
11860// GoString returns the string representation
11861func (s ListFirewallRulesOutput) GoString() string {
11862	return s.String()
11863}
11864
11865// SetFirewallRules sets the FirewallRules field's value.
11866func (s *ListFirewallRulesOutput) SetFirewallRules(v []*FirewallRule) *ListFirewallRulesOutput {
11867	s.FirewallRules = v
11868	return s
11869}
11870
11871// SetNextToken sets the NextToken field's value.
11872func (s *ListFirewallRulesOutput) SetNextToken(v string) *ListFirewallRulesOutput {
11873	s.NextToken = &v
11874	return s
11875}
11876
11877type ListResolverDnssecConfigsInput struct {
11878	_ struct{} `type:"structure"`
11879
11880	// An optional specification to return a subset of objects.
11881	Filters []*Filter `type:"list"`
11882
11883	// Optional: An integer that specifies the maximum number of DNSSEC configuration
11884	// results that you want Amazon Route 53 to return. If you don't specify a value
11885	// for MaxResults, Route 53 returns up to 100 configuration per page.
11886	MaxResults *int64 `min:"1" type:"integer"`
11887
11888	// (Optional) If the current Amazon Web Services account has more than MaxResults
11889	// DNSSEC configurations, use NextToken to get the second and subsequent pages
11890	// of results.
11891	//
11892	// For the first ListResolverDnssecConfigs request, omit this value.
11893	//
11894	// For the second and subsequent requests, get the value of NextToken from the
11895	// previous response and specify that value for NextToken in the request.
11896	NextToken *string `type:"string"`
11897}
11898
11899// String returns the string representation
11900func (s ListResolverDnssecConfigsInput) String() string {
11901	return awsutil.Prettify(s)
11902}
11903
11904// GoString returns the string representation
11905func (s ListResolverDnssecConfigsInput) GoString() string {
11906	return s.String()
11907}
11908
11909// Validate inspects the fields of the type to determine if they are valid.
11910func (s *ListResolverDnssecConfigsInput) Validate() error {
11911	invalidParams := request.ErrInvalidParams{Context: "ListResolverDnssecConfigsInput"}
11912	if s.MaxResults != nil && *s.MaxResults < 1 {
11913		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
11914	}
11915	if s.Filters != nil {
11916		for i, v := range s.Filters {
11917			if v == nil {
11918				continue
11919			}
11920			if err := v.Validate(); err != nil {
11921				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
11922			}
11923		}
11924	}
11925
11926	if invalidParams.Len() > 0 {
11927		return invalidParams
11928	}
11929	return nil
11930}
11931
11932// SetFilters sets the Filters field's value.
11933func (s *ListResolverDnssecConfigsInput) SetFilters(v []*Filter) *ListResolverDnssecConfigsInput {
11934	s.Filters = v
11935	return s
11936}
11937
11938// SetMaxResults sets the MaxResults field's value.
11939func (s *ListResolverDnssecConfigsInput) SetMaxResults(v int64) *ListResolverDnssecConfigsInput {
11940	s.MaxResults = &v
11941	return s
11942}
11943
11944// SetNextToken sets the NextToken field's value.
11945func (s *ListResolverDnssecConfigsInput) SetNextToken(v string) *ListResolverDnssecConfigsInput {
11946	s.NextToken = &v
11947	return s
11948}
11949
11950type ListResolverDnssecConfigsOutput struct {
11951	_ struct{} `type:"structure"`
11952
11953	// If a response includes the last of the DNSSEC configurations that are associated
11954	// with the current Amazon Web Services account, NextToken doesn't appear in
11955	// the response.
11956	//
11957	// If a response doesn't include the last of the configurations, you can get
11958	// more configurations by submitting another ListResolverDnssecConfigs (https://docs.aws.amazon.com/Route53/latest/APIReference/API_ListResolverDnssecConfigs.html)
11959	// request. Get the value of NextToken that Amazon Route 53 returned in the
11960	// previous response and include it in NextToken in the next request.
11961	NextToken *string `type:"string"`
11962
11963	// An array that contains one ResolverDnssecConfig (https://docs.aws.amazon.com/Route53/latest/APIReference/API_ResolverDnssecConfig.html)
11964	// element for each configuration for DNSSEC validation that is associated with
11965	// the current Amazon Web Services account.
11966	ResolverDnssecConfigs []*ResolverDnssecConfig `type:"list"`
11967}
11968
11969// String returns the string representation
11970func (s ListResolverDnssecConfigsOutput) String() string {
11971	return awsutil.Prettify(s)
11972}
11973
11974// GoString returns the string representation
11975func (s ListResolverDnssecConfigsOutput) GoString() string {
11976	return s.String()
11977}
11978
11979// SetNextToken sets the NextToken field's value.
11980func (s *ListResolverDnssecConfigsOutput) SetNextToken(v string) *ListResolverDnssecConfigsOutput {
11981	s.NextToken = &v
11982	return s
11983}
11984
11985// SetResolverDnssecConfigs sets the ResolverDnssecConfigs field's value.
11986func (s *ListResolverDnssecConfigsOutput) SetResolverDnssecConfigs(v []*ResolverDnssecConfig) *ListResolverDnssecConfigsOutput {
11987	s.ResolverDnssecConfigs = v
11988	return s
11989}
11990
11991type ListResolverEndpointIpAddressesInput struct {
11992	_ struct{} `type:"structure"`
11993
11994	// The maximum number of IP addresses that you want to return in the response
11995	// to a ListResolverEndpointIpAddresses request. If you don't specify a value
11996	// for MaxResults, Resolver returns up to 100 IP addresses.
11997	MaxResults *int64 `min:"1" type:"integer"`
11998
11999	// For the first ListResolverEndpointIpAddresses request, omit this value.
12000	//
12001	// If the specified Resolver endpoint has more than MaxResults IP addresses,
12002	// you can submit another ListResolverEndpointIpAddresses request to get the
12003	// next group of IP addresses. In the next request, specify the value of NextToken
12004	// from the previous response.
12005	NextToken *string `type:"string"`
12006
12007	// The ID of the Resolver endpoint that you want to get IP addresses for.
12008	//
12009	// ResolverEndpointId is a required field
12010	ResolverEndpointId *string `min:"1" type:"string" required:"true"`
12011}
12012
12013// String returns the string representation
12014func (s ListResolverEndpointIpAddressesInput) String() string {
12015	return awsutil.Prettify(s)
12016}
12017
12018// GoString returns the string representation
12019func (s ListResolverEndpointIpAddressesInput) GoString() string {
12020	return s.String()
12021}
12022
12023// Validate inspects the fields of the type to determine if they are valid.
12024func (s *ListResolverEndpointIpAddressesInput) Validate() error {
12025	invalidParams := request.ErrInvalidParams{Context: "ListResolverEndpointIpAddressesInput"}
12026	if s.MaxResults != nil && *s.MaxResults < 1 {
12027		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
12028	}
12029	if s.ResolverEndpointId == nil {
12030		invalidParams.Add(request.NewErrParamRequired("ResolverEndpointId"))
12031	}
12032	if s.ResolverEndpointId != nil && len(*s.ResolverEndpointId) < 1 {
12033		invalidParams.Add(request.NewErrParamMinLen("ResolverEndpointId", 1))
12034	}
12035
12036	if invalidParams.Len() > 0 {
12037		return invalidParams
12038	}
12039	return nil
12040}
12041
12042// SetMaxResults sets the MaxResults field's value.
12043func (s *ListResolverEndpointIpAddressesInput) SetMaxResults(v int64) *ListResolverEndpointIpAddressesInput {
12044	s.MaxResults = &v
12045	return s
12046}
12047
12048// SetNextToken sets the NextToken field's value.
12049func (s *ListResolverEndpointIpAddressesInput) SetNextToken(v string) *ListResolverEndpointIpAddressesInput {
12050	s.NextToken = &v
12051	return s
12052}
12053
12054// SetResolverEndpointId sets the ResolverEndpointId field's value.
12055func (s *ListResolverEndpointIpAddressesInput) SetResolverEndpointId(v string) *ListResolverEndpointIpAddressesInput {
12056	s.ResolverEndpointId = &v
12057	return s
12058}
12059
12060type ListResolverEndpointIpAddressesOutput struct {
12061	_ struct{} `type:"structure"`
12062
12063	// Information about the IP addresses in your VPC that DNS queries originate
12064	// from (for outbound endpoints) or that you forward DNS queries to (for inbound
12065	// endpoints).
12066	IpAddresses []*IpAddressResponse `type:"list"`
12067
12068	// The value that you specified for MaxResults in the request.
12069	MaxResults *int64 `min:"1" type:"integer"`
12070
12071	// If the specified endpoint has more than MaxResults IP addresses, you can
12072	// submit another ListResolverEndpointIpAddresses request to get the next group
12073	// of IP addresses. In the next request, specify the value of NextToken from
12074	// the previous response.
12075	NextToken *string `type:"string"`
12076}
12077
12078// String returns the string representation
12079func (s ListResolverEndpointIpAddressesOutput) String() string {
12080	return awsutil.Prettify(s)
12081}
12082
12083// GoString returns the string representation
12084func (s ListResolverEndpointIpAddressesOutput) GoString() string {
12085	return s.String()
12086}
12087
12088// SetIpAddresses sets the IpAddresses field's value.
12089func (s *ListResolverEndpointIpAddressesOutput) SetIpAddresses(v []*IpAddressResponse) *ListResolverEndpointIpAddressesOutput {
12090	s.IpAddresses = v
12091	return s
12092}
12093
12094// SetMaxResults sets the MaxResults field's value.
12095func (s *ListResolverEndpointIpAddressesOutput) SetMaxResults(v int64) *ListResolverEndpointIpAddressesOutput {
12096	s.MaxResults = &v
12097	return s
12098}
12099
12100// SetNextToken sets the NextToken field's value.
12101func (s *ListResolverEndpointIpAddressesOutput) SetNextToken(v string) *ListResolverEndpointIpAddressesOutput {
12102	s.NextToken = &v
12103	return s
12104}
12105
12106type ListResolverEndpointsInput struct {
12107	_ struct{} `type:"structure"`
12108
12109	// An optional specification to return a subset of Resolver endpoints, such
12110	// as all inbound Resolver endpoints.
12111	//
12112	// If you submit a second or subsequent ListResolverEndpoints request and specify
12113	// the NextToken parameter, you must use the same values for Filters, if any,
12114	// as in the previous request.
12115	Filters []*Filter `type:"list"`
12116
12117	// The maximum number of Resolver endpoints that you want to return in the response
12118	// to a ListResolverEndpoints request. If you don't specify a value for MaxResults,
12119	// Resolver returns up to 100 Resolver endpoints.
12120	MaxResults *int64 `min:"1" type:"integer"`
12121
12122	// For the first ListResolverEndpoints request, omit this value.
12123	//
12124	// If you have more than MaxResults Resolver endpoints, you can submit another
12125	// ListResolverEndpoints request to get the next group of Resolver endpoints.
12126	// In the next request, specify the value of NextToken from the previous response.
12127	NextToken *string `type:"string"`
12128}
12129
12130// String returns the string representation
12131func (s ListResolverEndpointsInput) String() string {
12132	return awsutil.Prettify(s)
12133}
12134
12135// GoString returns the string representation
12136func (s ListResolverEndpointsInput) GoString() string {
12137	return s.String()
12138}
12139
12140// Validate inspects the fields of the type to determine if they are valid.
12141func (s *ListResolverEndpointsInput) Validate() error {
12142	invalidParams := request.ErrInvalidParams{Context: "ListResolverEndpointsInput"}
12143	if s.MaxResults != nil && *s.MaxResults < 1 {
12144		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
12145	}
12146	if s.Filters != nil {
12147		for i, v := range s.Filters {
12148			if v == nil {
12149				continue
12150			}
12151			if err := v.Validate(); err != nil {
12152				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
12153			}
12154		}
12155	}
12156
12157	if invalidParams.Len() > 0 {
12158		return invalidParams
12159	}
12160	return nil
12161}
12162
12163// SetFilters sets the Filters field's value.
12164func (s *ListResolverEndpointsInput) SetFilters(v []*Filter) *ListResolverEndpointsInput {
12165	s.Filters = v
12166	return s
12167}
12168
12169// SetMaxResults sets the MaxResults field's value.
12170func (s *ListResolverEndpointsInput) SetMaxResults(v int64) *ListResolverEndpointsInput {
12171	s.MaxResults = &v
12172	return s
12173}
12174
12175// SetNextToken sets the NextToken field's value.
12176func (s *ListResolverEndpointsInput) SetNextToken(v string) *ListResolverEndpointsInput {
12177	s.NextToken = &v
12178	return s
12179}
12180
12181type ListResolverEndpointsOutput struct {
12182	_ struct{} `type:"structure"`
12183
12184	// The value that you specified for MaxResults in the request.
12185	MaxResults *int64 `min:"1" type:"integer"`
12186
12187	// If more than MaxResults IP addresses match the specified criteria, you can
12188	// submit another ListResolverEndpoint request to get the next group of results.
12189	// In the next request, specify the value of NextToken from the previous response.
12190	NextToken *string `type:"string"`
12191
12192	// The Resolver endpoints that were created by using the current Amazon Web
12193	// Services account, and that match the specified filters, if any.
12194	ResolverEndpoints []*ResolverEndpoint `type:"list"`
12195}
12196
12197// String returns the string representation
12198func (s ListResolverEndpointsOutput) String() string {
12199	return awsutil.Prettify(s)
12200}
12201
12202// GoString returns the string representation
12203func (s ListResolverEndpointsOutput) GoString() string {
12204	return s.String()
12205}
12206
12207// SetMaxResults sets the MaxResults field's value.
12208func (s *ListResolverEndpointsOutput) SetMaxResults(v int64) *ListResolverEndpointsOutput {
12209	s.MaxResults = &v
12210	return s
12211}
12212
12213// SetNextToken sets the NextToken field's value.
12214func (s *ListResolverEndpointsOutput) SetNextToken(v string) *ListResolverEndpointsOutput {
12215	s.NextToken = &v
12216	return s
12217}
12218
12219// SetResolverEndpoints sets the ResolverEndpoints field's value.
12220func (s *ListResolverEndpointsOutput) SetResolverEndpoints(v []*ResolverEndpoint) *ListResolverEndpointsOutput {
12221	s.ResolverEndpoints = v
12222	return s
12223}
12224
12225type ListResolverQueryLogConfigAssociationsInput struct {
12226	_ struct{} `type:"structure"`
12227
12228	// An optional specification to return a subset of query logging associations.
12229	//
12230	// If you submit a second or subsequent ListResolverQueryLogConfigAssociations
12231	// request and specify the NextToken parameter, you must use the same values
12232	// for Filters, if any, as in the previous request.
12233	Filters []*Filter `type:"list"`
12234
12235	// The maximum number of query logging associations that you want to return
12236	// in the response to a ListResolverQueryLogConfigAssociations request. If you
12237	// don't specify a value for MaxResults, Resolver returns up to 100 query logging
12238	// associations.
12239	MaxResults *int64 `min:"1" type:"integer"`
12240
12241	// For the first ListResolverQueryLogConfigAssociations request, omit this value.
12242	//
12243	// If there are more than MaxResults query logging associations that match the
12244	// values that you specify for Filters, you can submit another ListResolverQueryLogConfigAssociations
12245	// request to get the next group of associations. In the next request, specify
12246	// the value of NextToken from the previous response.
12247	NextToken *string `type:"string"`
12248
12249	// The element that you want Resolver to sort query logging associations by.
12250	//
12251	// If you submit a second or subsequent ListResolverQueryLogConfigAssociations
12252	// request and specify the NextToken parameter, you must use the same value
12253	// for SortBy, if any, as in the previous request.
12254	//
12255	// Valid values include the following elements:
12256	//
12257	//    * CreationTime: The ID of the query logging association.
12258	//
12259	//    * Error: If the value of Status is FAILED, the value of Error indicates
12260	//    the cause: DESTINATION_NOT_FOUND: The specified destination (for example,
12261	//    an Amazon S3 bucket) was deleted. ACCESS_DENIED: Permissions don't allow
12262	//    sending logs to the destination. If Status is a value other than FAILED,
12263	//    ERROR is null.
12264	//
12265	//    * Id: The ID of the query logging association
12266	//
12267	//    * ResolverQueryLogConfigId: The ID of the query logging configuration
12268	//
12269	//    * ResourceId: The ID of the VPC that is associated with the query logging
12270	//    configuration
12271	//
12272	//    * Status: The current status of the configuration. Valid values include
12273	//    the following: CREATING: Resolver is creating an association between an
12274	//    Amazon VPC and a query logging configuration. CREATED: The association
12275	//    between an Amazon VPC and a query logging configuration was successfully
12276	//    created. Resolver is logging queries that originate in the specified VPC.
12277	//    DELETING: Resolver is deleting this query logging association. FAILED:
12278	//    Resolver either couldn't create or couldn't delete the query logging association.
12279	//    Here are two common causes: The specified destination (for example, an
12280	//    Amazon S3 bucket) was deleted. Permissions don't allow sending logs to
12281	//    the destination.
12282	SortBy *string `min:"1" type:"string"`
12283
12284	// If you specified a value for SortBy, the order that you want query logging
12285	// associations to be listed in, ASCENDING or DESCENDING.
12286	//
12287	// If you submit a second or subsequent ListResolverQueryLogConfigAssociations
12288	// request and specify the NextToken parameter, you must use the same value
12289	// for SortOrder, if any, as in the previous request.
12290	SortOrder *string `type:"string" enum:"SortOrder"`
12291}
12292
12293// String returns the string representation
12294func (s ListResolverQueryLogConfigAssociationsInput) String() string {
12295	return awsutil.Prettify(s)
12296}
12297
12298// GoString returns the string representation
12299func (s ListResolverQueryLogConfigAssociationsInput) GoString() string {
12300	return s.String()
12301}
12302
12303// Validate inspects the fields of the type to determine if they are valid.
12304func (s *ListResolverQueryLogConfigAssociationsInput) Validate() error {
12305	invalidParams := request.ErrInvalidParams{Context: "ListResolverQueryLogConfigAssociationsInput"}
12306	if s.MaxResults != nil && *s.MaxResults < 1 {
12307		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
12308	}
12309	if s.SortBy != nil && len(*s.SortBy) < 1 {
12310		invalidParams.Add(request.NewErrParamMinLen("SortBy", 1))
12311	}
12312	if s.Filters != nil {
12313		for i, v := range s.Filters {
12314			if v == nil {
12315				continue
12316			}
12317			if err := v.Validate(); err != nil {
12318				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
12319			}
12320		}
12321	}
12322
12323	if invalidParams.Len() > 0 {
12324		return invalidParams
12325	}
12326	return nil
12327}
12328
12329// SetFilters sets the Filters field's value.
12330func (s *ListResolverQueryLogConfigAssociationsInput) SetFilters(v []*Filter) *ListResolverQueryLogConfigAssociationsInput {
12331	s.Filters = v
12332	return s
12333}
12334
12335// SetMaxResults sets the MaxResults field's value.
12336func (s *ListResolverQueryLogConfigAssociationsInput) SetMaxResults(v int64) *ListResolverQueryLogConfigAssociationsInput {
12337	s.MaxResults = &v
12338	return s
12339}
12340
12341// SetNextToken sets the NextToken field's value.
12342func (s *ListResolverQueryLogConfigAssociationsInput) SetNextToken(v string) *ListResolverQueryLogConfigAssociationsInput {
12343	s.NextToken = &v
12344	return s
12345}
12346
12347// SetSortBy sets the SortBy field's value.
12348func (s *ListResolverQueryLogConfigAssociationsInput) SetSortBy(v string) *ListResolverQueryLogConfigAssociationsInput {
12349	s.SortBy = &v
12350	return s
12351}
12352
12353// SetSortOrder sets the SortOrder field's value.
12354func (s *ListResolverQueryLogConfigAssociationsInput) SetSortOrder(v string) *ListResolverQueryLogConfigAssociationsInput {
12355	s.SortOrder = &v
12356	return s
12357}
12358
12359type ListResolverQueryLogConfigAssociationsOutput struct {
12360	_ struct{} `type:"structure"`
12361
12362	// If there are more than MaxResults query logging associations, you can submit
12363	// another ListResolverQueryLogConfigAssociations request to get the next group
12364	// of associations. In the next request, specify the value of NextToken from
12365	// the previous response.
12366	NextToken *string `type:"string"`
12367
12368	// A list that contains one ResolverQueryLogConfigAssociations element for each
12369	// query logging association that matches the values that you specified for
12370	// Filter.
12371	ResolverQueryLogConfigAssociations []*ResolverQueryLogConfigAssociation `type:"list"`
12372
12373	// The total number of query logging associations that were created by the current
12374	// account in the specified Region. This count can differ from the number of
12375	// associations that are returned in a ListResolverQueryLogConfigAssociations
12376	// response, depending on the values that you specify in the request.
12377	TotalCount *int64 `type:"integer"`
12378
12379	// The total number of query logging associations that were created by the current
12380	// account in the specified Region and that match the filters that were specified
12381	// in the ListResolverQueryLogConfigAssociations request. For the total number
12382	// of associations that were created by the current account in the specified
12383	// Region, see TotalCount.
12384	TotalFilteredCount *int64 `type:"integer"`
12385}
12386
12387// String returns the string representation
12388func (s ListResolverQueryLogConfigAssociationsOutput) String() string {
12389	return awsutil.Prettify(s)
12390}
12391
12392// GoString returns the string representation
12393func (s ListResolverQueryLogConfigAssociationsOutput) GoString() string {
12394	return s.String()
12395}
12396
12397// SetNextToken sets the NextToken field's value.
12398func (s *ListResolverQueryLogConfigAssociationsOutput) SetNextToken(v string) *ListResolverQueryLogConfigAssociationsOutput {
12399	s.NextToken = &v
12400	return s
12401}
12402
12403// SetResolverQueryLogConfigAssociations sets the ResolverQueryLogConfigAssociations field's value.
12404func (s *ListResolverQueryLogConfigAssociationsOutput) SetResolverQueryLogConfigAssociations(v []*ResolverQueryLogConfigAssociation) *ListResolverQueryLogConfigAssociationsOutput {
12405	s.ResolverQueryLogConfigAssociations = v
12406	return s
12407}
12408
12409// SetTotalCount sets the TotalCount field's value.
12410func (s *ListResolverQueryLogConfigAssociationsOutput) SetTotalCount(v int64) *ListResolverQueryLogConfigAssociationsOutput {
12411	s.TotalCount = &v
12412	return s
12413}
12414
12415// SetTotalFilteredCount sets the TotalFilteredCount field's value.
12416func (s *ListResolverQueryLogConfigAssociationsOutput) SetTotalFilteredCount(v int64) *ListResolverQueryLogConfigAssociationsOutput {
12417	s.TotalFilteredCount = &v
12418	return s
12419}
12420
12421type ListResolverQueryLogConfigsInput struct {
12422	_ struct{} `type:"structure"`
12423
12424	// An optional specification to return a subset of query logging configurations.
12425	//
12426	// If you submit a second or subsequent ListResolverQueryLogConfigs request
12427	// and specify the NextToken parameter, you must use the same values for Filters,
12428	// if any, as in the previous request.
12429	Filters []*Filter `type:"list"`
12430
12431	// The maximum number of query logging configurations that you want to return
12432	// in the response to a ListResolverQueryLogConfigs request. If you don't specify
12433	// a value for MaxResults, Resolver returns up to 100 query logging configurations.
12434	MaxResults *int64 `min:"1" type:"integer"`
12435
12436	// For the first ListResolverQueryLogConfigs request, omit this value.
12437	//
12438	// If there are more than MaxResults query logging configurations that match
12439	// the values that you specify for Filters, you can submit another ListResolverQueryLogConfigs
12440	// request to get the next group of configurations. In the next request, specify
12441	// the value of NextToken from the previous response.
12442	NextToken *string `type:"string"`
12443
12444	// The element that you want Resolver to sort query logging configurations by.
12445	//
12446	// If you submit a second or subsequent ListResolverQueryLogConfigs request
12447	// and specify the NextToken parameter, you must use the same value for SortBy,
12448	// if any, as in the previous request.
12449	//
12450	// Valid values include the following elements:
12451	//
12452	//    * Arn: The ARN of the query logging configuration
12453	//
12454	//    * AssociationCount: The number of VPCs that are associated with the specified
12455	//    configuration
12456	//
12457	//    * CreationTime: The date and time that Resolver returned when the configuration
12458	//    was created
12459	//
12460	//    * CreatorRequestId: The value that was specified for CreatorRequestId
12461	//    when the configuration was created
12462	//
12463	//    * DestinationArn: The location that logs are sent to
12464	//
12465	//    * Id: The ID of the configuration
12466	//
12467	//    * Name: The name of the configuration
12468	//
12469	//    * OwnerId: The Amazon Web Services account number of the account that
12470	//    created the configuration
12471	//
12472	//    * ShareStatus: Whether the configuration is shared with other Amazon Web
12473	//    Services accounts or shared with the current account by another Amazon
12474	//    Web Services account. Sharing is configured through Resource Access Manager
12475	//    (RAM).
12476	//
12477	//    * Status: The current status of the configuration. Valid values include
12478	//    the following: CREATING: Resolver is creating the query logging configuration.
12479	//    CREATED: The query logging configuration was successfully created. Resolver
12480	//    is logging queries that originate in the specified VPC. DELETING: Resolver
12481	//    is deleting this query logging configuration. FAILED: Resolver either
12482	//    couldn't create or couldn't delete the query logging configuration. Here
12483	//    are two common causes: The specified destination (for example, an Amazon
12484	//    S3 bucket) was deleted. Permissions don't allow sending logs to the destination.
12485	SortBy *string `min:"1" type:"string"`
12486
12487	// If you specified a value for SortBy, the order that you want query logging
12488	// configurations to be listed in, ASCENDING or DESCENDING.
12489	//
12490	// If you submit a second or subsequent ListResolverQueryLogConfigs request
12491	// and specify the NextToken parameter, you must use the same value for SortOrder,
12492	// if any, as in the previous request.
12493	SortOrder *string `type:"string" enum:"SortOrder"`
12494}
12495
12496// String returns the string representation
12497func (s ListResolverQueryLogConfigsInput) String() string {
12498	return awsutil.Prettify(s)
12499}
12500
12501// GoString returns the string representation
12502func (s ListResolverQueryLogConfigsInput) GoString() string {
12503	return s.String()
12504}
12505
12506// Validate inspects the fields of the type to determine if they are valid.
12507func (s *ListResolverQueryLogConfigsInput) Validate() error {
12508	invalidParams := request.ErrInvalidParams{Context: "ListResolverQueryLogConfigsInput"}
12509	if s.MaxResults != nil && *s.MaxResults < 1 {
12510		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
12511	}
12512	if s.SortBy != nil && len(*s.SortBy) < 1 {
12513		invalidParams.Add(request.NewErrParamMinLen("SortBy", 1))
12514	}
12515	if s.Filters != nil {
12516		for i, v := range s.Filters {
12517			if v == nil {
12518				continue
12519			}
12520			if err := v.Validate(); err != nil {
12521				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
12522			}
12523		}
12524	}
12525
12526	if invalidParams.Len() > 0 {
12527		return invalidParams
12528	}
12529	return nil
12530}
12531
12532// SetFilters sets the Filters field's value.
12533func (s *ListResolverQueryLogConfigsInput) SetFilters(v []*Filter) *ListResolverQueryLogConfigsInput {
12534	s.Filters = v
12535	return s
12536}
12537
12538// SetMaxResults sets the MaxResults field's value.
12539func (s *ListResolverQueryLogConfigsInput) SetMaxResults(v int64) *ListResolverQueryLogConfigsInput {
12540	s.MaxResults = &v
12541	return s
12542}
12543
12544// SetNextToken sets the NextToken field's value.
12545func (s *ListResolverQueryLogConfigsInput) SetNextToken(v string) *ListResolverQueryLogConfigsInput {
12546	s.NextToken = &v
12547	return s
12548}
12549
12550// SetSortBy sets the SortBy field's value.
12551func (s *ListResolverQueryLogConfigsInput) SetSortBy(v string) *ListResolverQueryLogConfigsInput {
12552	s.SortBy = &v
12553	return s
12554}
12555
12556// SetSortOrder sets the SortOrder field's value.
12557func (s *ListResolverQueryLogConfigsInput) SetSortOrder(v string) *ListResolverQueryLogConfigsInput {
12558	s.SortOrder = &v
12559	return s
12560}
12561
12562type ListResolverQueryLogConfigsOutput struct {
12563	_ struct{} `type:"structure"`
12564
12565	// If there are more than MaxResults query logging configurations, you can submit
12566	// another ListResolverQueryLogConfigs request to get the next group of configurations.
12567	// In the next request, specify the value of NextToken from the previous response.
12568	NextToken *string `type:"string"`
12569
12570	// A list that contains one ResolverQueryLogConfig element for each query logging
12571	// configuration that matches the values that you specified for Filter.
12572	ResolverQueryLogConfigs []*ResolverQueryLogConfig `type:"list"`
12573
12574	// The total number of query logging configurations that were created by the
12575	// current account in the specified Region. This count can differ from the number
12576	// of query logging configurations that are returned in a ListResolverQueryLogConfigs
12577	// response, depending on the values that you specify in the request.
12578	TotalCount *int64 `type:"integer"`
12579
12580	// The total number of query logging configurations that were created by the
12581	// current account in the specified Region and that match the filters that were
12582	// specified in the ListResolverQueryLogConfigs request. For the total number
12583	// of query logging configurations that were created by the current account
12584	// in the specified Region, see TotalCount.
12585	TotalFilteredCount *int64 `type:"integer"`
12586}
12587
12588// String returns the string representation
12589func (s ListResolverQueryLogConfigsOutput) String() string {
12590	return awsutil.Prettify(s)
12591}
12592
12593// GoString returns the string representation
12594func (s ListResolverQueryLogConfigsOutput) GoString() string {
12595	return s.String()
12596}
12597
12598// SetNextToken sets the NextToken field's value.
12599func (s *ListResolverQueryLogConfigsOutput) SetNextToken(v string) *ListResolverQueryLogConfigsOutput {
12600	s.NextToken = &v
12601	return s
12602}
12603
12604// SetResolverQueryLogConfigs sets the ResolverQueryLogConfigs field's value.
12605func (s *ListResolverQueryLogConfigsOutput) SetResolverQueryLogConfigs(v []*ResolverQueryLogConfig) *ListResolverQueryLogConfigsOutput {
12606	s.ResolverQueryLogConfigs = v
12607	return s
12608}
12609
12610// SetTotalCount sets the TotalCount field's value.
12611func (s *ListResolverQueryLogConfigsOutput) SetTotalCount(v int64) *ListResolverQueryLogConfigsOutput {
12612	s.TotalCount = &v
12613	return s
12614}
12615
12616// SetTotalFilteredCount sets the TotalFilteredCount field's value.
12617func (s *ListResolverQueryLogConfigsOutput) SetTotalFilteredCount(v int64) *ListResolverQueryLogConfigsOutput {
12618	s.TotalFilteredCount = &v
12619	return s
12620}
12621
12622type ListResolverRuleAssociationsInput struct {
12623	_ struct{} `type:"structure"`
12624
12625	// An optional specification to return a subset of Resolver rules, such as Resolver
12626	// rules that are associated with the same VPC ID.
12627	//
12628	// If you submit a second or subsequent ListResolverRuleAssociations request
12629	// and specify the NextToken parameter, you must use the same values for Filters,
12630	// if any, as in the previous request.
12631	Filters []*Filter `type:"list"`
12632
12633	// The maximum number of rule associations that you want to return in the response
12634	// to a ListResolverRuleAssociations request. If you don't specify a value for
12635	// MaxResults, Resolver returns up to 100 rule associations.
12636	MaxResults *int64 `min:"1" type:"integer"`
12637
12638	// For the first ListResolverRuleAssociation request, omit this value.
12639	//
12640	// If you have more than MaxResults rule associations, you can submit another
12641	// ListResolverRuleAssociation request to get the next group of rule associations.
12642	// In the next request, specify the value of NextToken from the previous response.
12643	NextToken *string `type:"string"`
12644}
12645
12646// String returns the string representation
12647func (s ListResolverRuleAssociationsInput) String() string {
12648	return awsutil.Prettify(s)
12649}
12650
12651// GoString returns the string representation
12652func (s ListResolverRuleAssociationsInput) GoString() string {
12653	return s.String()
12654}
12655
12656// Validate inspects the fields of the type to determine if they are valid.
12657func (s *ListResolverRuleAssociationsInput) Validate() error {
12658	invalidParams := request.ErrInvalidParams{Context: "ListResolverRuleAssociationsInput"}
12659	if s.MaxResults != nil && *s.MaxResults < 1 {
12660		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
12661	}
12662	if s.Filters != nil {
12663		for i, v := range s.Filters {
12664			if v == nil {
12665				continue
12666			}
12667			if err := v.Validate(); err != nil {
12668				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
12669			}
12670		}
12671	}
12672
12673	if invalidParams.Len() > 0 {
12674		return invalidParams
12675	}
12676	return nil
12677}
12678
12679// SetFilters sets the Filters field's value.
12680func (s *ListResolverRuleAssociationsInput) SetFilters(v []*Filter) *ListResolverRuleAssociationsInput {
12681	s.Filters = v
12682	return s
12683}
12684
12685// SetMaxResults sets the MaxResults field's value.
12686func (s *ListResolverRuleAssociationsInput) SetMaxResults(v int64) *ListResolverRuleAssociationsInput {
12687	s.MaxResults = &v
12688	return s
12689}
12690
12691// SetNextToken sets the NextToken field's value.
12692func (s *ListResolverRuleAssociationsInput) SetNextToken(v string) *ListResolverRuleAssociationsInput {
12693	s.NextToken = &v
12694	return s
12695}
12696
12697type ListResolverRuleAssociationsOutput struct {
12698	_ struct{} `type:"structure"`
12699
12700	// The value that you specified for MaxResults in the request.
12701	MaxResults *int64 `min:"1" type:"integer"`
12702
12703	// If more than MaxResults rule associations match the specified criteria, you
12704	// can submit another ListResolverRuleAssociation request to get the next group
12705	// of results. In the next request, specify the value of NextToken from the
12706	// previous response.
12707	NextToken *string `type:"string"`
12708
12709	// The associations that were created between Resolver rules and VPCs using
12710	// the current Amazon Web Services account, and that match the specified filters,
12711	// if any.
12712	ResolverRuleAssociations []*ResolverRuleAssociation `type:"list"`
12713}
12714
12715// String returns the string representation
12716func (s ListResolverRuleAssociationsOutput) String() string {
12717	return awsutil.Prettify(s)
12718}
12719
12720// GoString returns the string representation
12721func (s ListResolverRuleAssociationsOutput) GoString() string {
12722	return s.String()
12723}
12724
12725// SetMaxResults sets the MaxResults field's value.
12726func (s *ListResolverRuleAssociationsOutput) SetMaxResults(v int64) *ListResolverRuleAssociationsOutput {
12727	s.MaxResults = &v
12728	return s
12729}
12730
12731// SetNextToken sets the NextToken field's value.
12732func (s *ListResolverRuleAssociationsOutput) SetNextToken(v string) *ListResolverRuleAssociationsOutput {
12733	s.NextToken = &v
12734	return s
12735}
12736
12737// SetResolverRuleAssociations sets the ResolverRuleAssociations field's value.
12738func (s *ListResolverRuleAssociationsOutput) SetResolverRuleAssociations(v []*ResolverRuleAssociation) *ListResolverRuleAssociationsOutput {
12739	s.ResolverRuleAssociations = v
12740	return s
12741}
12742
12743type ListResolverRulesInput struct {
12744	_ struct{} `type:"structure"`
12745
12746	// An optional specification to return a subset of Resolver rules, such as all
12747	// Resolver rules that are associated with the same Resolver endpoint.
12748	//
12749	// If you submit a second or subsequent ListResolverRules request and specify
12750	// the NextToken parameter, you must use the same values for Filters, if any,
12751	// as in the previous request.
12752	Filters []*Filter `type:"list"`
12753
12754	// The maximum number of Resolver rules that you want to return in the response
12755	// to a ListResolverRules request. If you don't specify a value for MaxResults,
12756	// Resolver returns up to 100 Resolver rules.
12757	MaxResults *int64 `min:"1" type:"integer"`
12758
12759	// For the first ListResolverRules request, omit this value.
12760	//
12761	// If you have more than MaxResults Resolver rules, you can submit another ListResolverRules
12762	// request to get the next group of Resolver rules. In the next request, specify
12763	// the value of NextToken from the previous response.
12764	NextToken *string `type:"string"`
12765}
12766
12767// String returns the string representation
12768func (s ListResolverRulesInput) String() string {
12769	return awsutil.Prettify(s)
12770}
12771
12772// GoString returns the string representation
12773func (s ListResolverRulesInput) GoString() string {
12774	return s.String()
12775}
12776
12777// Validate inspects the fields of the type to determine if they are valid.
12778func (s *ListResolverRulesInput) Validate() error {
12779	invalidParams := request.ErrInvalidParams{Context: "ListResolverRulesInput"}
12780	if s.MaxResults != nil && *s.MaxResults < 1 {
12781		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
12782	}
12783	if s.Filters != nil {
12784		for i, v := range s.Filters {
12785			if v == nil {
12786				continue
12787			}
12788			if err := v.Validate(); err != nil {
12789				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
12790			}
12791		}
12792	}
12793
12794	if invalidParams.Len() > 0 {
12795		return invalidParams
12796	}
12797	return nil
12798}
12799
12800// SetFilters sets the Filters field's value.
12801func (s *ListResolverRulesInput) SetFilters(v []*Filter) *ListResolverRulesInput {
12802	s.Filters = v
12803	return s
12804}
12805
12806// SetMaxResults sets the MaxResults field's value.
12807func (s *ListResolverRulesInput) SetMaxResults(v int64) *ListResolverRulesInput {
12808	s.MaxResults = &v
12809	return s
12810}
12811
12812// SetNextToken sets the NextToken field's value.
12813func (s *ListResolverRulesInput) SetNextToken(v string) *ListResolverRulesInput {
12814	s.NextToken = &v
12815	return s
12816}
12817
12818type ListResolverRulesOutput struct {
12819	_ struct{} `type:"structure"`
12820
12821	// The value that you specified for MaxResults in the request.
12822	MaxResults *int64 `min:"1" type:"integer"`
12823
12824	// If more than MaxResults Resolver rules match the specified criteria, you
12825	// can submit another ListResolverRules request to get the next group of results.
12826	// In the next request, specify the value of NextToken from the previous response.
12827	NextToken *string `type:"string"`
12828
12829	// The Resolver rules that were created using the current Amazon Web Services
12830	// account and that match the specified filters, if any.
12831	ResolverRules []*ResolverRule `type:"list"`
12832}
12833
12834// String returns the string representation
12835func (s ListResolverRulesOutput) String() string {
12836	return awsutil.Prettify(s)
12837}
12838
12839// GoString returns the string representation
12840func (s ListResolverRulesOutput) GoString() string {
12841	return s.String()
12842}
12843
12844// SetMaxResults sets the MaxResults field's value.
12845func (s *ListResolverRulesOutput) SetMaxResults(v int64) *ListResolverRulesOutput {
12846	s.MaxResults = &v
12847	return s
12848}
12849
12850// SetNextToken sets the NextToken field's value.
12851func (s *ListResolverRulesOutput) SetNextToken(v string) *ListResolverRulesOutput {
12852	s.NextToken = &v
12853	return s
12854}
12855
12856// SetResolverRules sets the ResolverRules field's value.
12857func (s *ListResolverRulesOutput) SetResolverRules(v []*ResolverRule) *ListResolverRulesOutput {
12858	s.ResolverRules = v
12859	return s
12860}
12861
12862type ListTagsForResourceInput struct {
12863	_ struct{} `type:"structure"`
12864
12865	// The maximum number of tags that you want to return in the response to a ListTagsForResource
12866	// request. If you don't specify a value for MaxResults, Resolver returns up
12867	// to 100 tags.
12868	MaxResults *int64 `min:"1" type:"integer"`
12869
12870	// For the first ListTagsForResource request, omit this value.
12871	//
12872	// If you have more than MaxResults tags, you can submit another ListTagsForResource
12873	// request to get the next group of tags for the resource. In the next request,
12874	// specify the value of NextToken from the previous response.
12875	NextToken *string `type:"string"`
12876
12877	// The Amazon Resource Name (ARN) for the resource that you want to list tags
12878	// for.
12879	//
12880	// ResourceArn is a required field
12881	ResourceArn *string `min:"1" type:"string" required:"true"`
12882}
12883
12884// String returns the string representation
12885func (s ListTagsForResourceInput) String() string {
12886	return awsutil.Prettify(s)
12887}
12888
12889// GoString returns the string representation
12890func (s ListTagsForResourceInput) GoString() string {
12891	return s.String()
12892}
12893
12894// Validate inspects the fields of the type to determine if they are valid.
12895func (s *ListTagsForResourceInput) Validate() error {
12896	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
12897	if s.MaxResults != nil && *s.MaxResults < 1 {
12898		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
12899	}
12900	if s.ResourceArn == nil {
12901		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
12902	}
12903	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
12904		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
12905	}
12906
12907	if invalidParams.Len() > 0 {
12908		return invalidParams
12909	}
12910	return nil
12911}
12912
12913// SetMaxResults sets the MaxResults field's value.
12914func (s *ListTagsForResourceInput) SetMaxResults(v int64) *ListTagsForResourceInput {
12915	s.MaxResults = &v
12916	return s
12917}
12918
12919// SetNextToken sets the NextToken field's value.
12920func (s *ListTagsForResourceInput) SetNextToken(v string) *ListTagsForResourceInput {
12921	s.NextToken = &v
12922	return s
12923}
12924
12925// SetResourceArn sets the ResourceArn field's value.
12926func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
12927	s.ResourceArn = &v
12928	return s
12929}
12930
12931type ListTagsForResourceOutput struct {
12932	_ struct{} `type:"structure"`
12933
12934	// If more than MaxResults tags match the specified criteria, you can submit
12935	// another ListTagsForResource request to get the next group of results. In
12936	// the next request, specify the value of NextToken from the previous response.
12937	NextToken *string `type:"string"`
12938
12939	// The tags that are associated with the resource that you specified in the
12940	// ListTagsForResource request.
12941	Tags []*Tag `type:"list"`
12942}
12943
12944// String returns the string representation
12945func (s ListTagsForResourceOutput) String() string {
12946	return awsutil.Prettify(s)
12947}
12948
12949// GoString returns the string representation
12950func (s ListTagsForResourceOutput) GoString() string {
12951	return s.String()
12952}
12953
12954// SetNextToken sets the NextToken field's value.
12955func (s *ListTagsForResourceOutput) SetNextToken(v string) *ListTagsForResourceOutput {
12956	s.NextToken = &v
12957	return s
12958}
12959
12960// SetTags sets the Tags field's value.
12961func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
12962	s.Tags = v
12963	return s
12964}
12965
12966type PutFirewallRuleGroupPolicyInput struct {
12967	_ struct{} `type:"structure"`
12968
12969	// The ARN (Amazon Resource Name) for the rule group that you want to share.
12970	//
12971	// Arn is a required field
12972	Arn *string `min:"1" type:"string" required:"true"`
12973
12974	// The Identity and Access Management (Amazon Web Services IAM) policy to attach
12975	// to the rule group.
12976	//
12977	// FirewallRuleGroupPolicy is a required field
12978	FirewallRuleGroupPolicy *string `type:"string" required:"true"`
12979}
12980
12981// String returns the string representation
12982func (s PutFirewallRuleGroupPolicyInput) String() string {
12983	return awsutil.Prettify(s)
12984}
12985
12986// GoString returns the string representation
12987func (s PutFirewallRuleGroupPolicyInput) GoString() string {
12988	return s.String()
12989}
12990
12991// Validate inspects the fields of the type to determine if they are valid.
12992func (s *PutFirewallRuleGroupPolicyInput) Validate() error {
12993	invalidParams := request.ErrInvalidParams{Context: "PutFirewallRuleGroupPolicyInput"}
12994	if s.Arn == nil {
12995		invalidParams.Add(request.NewErrParamRequired("Arn"))
12996	}
12997	if s.Arn != nil && len(*s.Arn) < 1 {
12998		invalidParams.Add(request.NewErrParamMinLen("Arn", 1))
12999	}
13000	if s.FirewallRuleGroupPolicy == nil {
13001		invalidParams.Add(request.NewErrParamRequired("FirewallRuleGroupPolicy"))
13002	}
13003
13004	if invalidParams.Len() > 0 {
13005		return invalidParams
13006	}
13007	return nil
13008}
13009
13010// SetArn sets the Arn field's value.
13011func (s *PutFirewallRuleGroupPolicyInput) SetArn(v string) *PutFirewallRuleGroupPolicyInput {
13012	s.Arn = &v
13013	return s
13014}
13015
13016// SetFirewallRuleGroupPolicy sets the FirewallRuleGroupPolicy field's value.
13017func (s *PutFirewallRuleGroupPolicyInput) SetFirewallRuleGroupPolicy(v string) *PutFirewallRuleGroupPolicyInput {
13018	s.FirewallRuleGroupPolicy = &v
13019	return s
13020}
13021
13022type PutFirewallRuleGroupPolicyOutput struct {
13023	_ struct{} `type:"structure"`
13024
13025	ReturnValue *bool `type:"boolean"`
13026}
13027
13028// String returns the string representation
13029func (s PutFirewallRuleGroupPolicyOutput) String() string {
13030	return awsutil.Prettify(s)
13031}
13032
13033// GoString returns the string representation
13034func (s PutFirewallRuleGroupPolicyOutput) GoString() string {
13035	return s.String()
13036}
13037
13038// SetReturnValue sets the ReturnValue field's value.
13039func (s *PutFirewallRuleGroupPolicyOutput) SetReturnValue(v bool) *PutFirewallRuleGroupPolicyOutput {
13040	s.ReturnValue = &v
13041	return s
13042}
13043
13044type PutResolverQueryLogConfigPolicyInput struct {
13045	_ struct{} `type:"structure"`
13046
13047	// The Amazon Resource Name (ARN) of the account that you want to share rules
13048	// with.
13049	//
13050	// Arn is a required field
13051	Arn *string `min:"1" type:"string" required:"true"`
13052
13053	// An Identity and Access Management policy statement that lists the query logging
13054	// configurations that you want to share with another Amazon Web Services account
13055	// and the operations that you want the account to be able to perform. You can
13056	// specify the following operations in the Actions section of the statement:
13057	//
13058	//    * route53resolver:AssociateResolverQueryLogConfig
13059	//
13060	//    * route53resolver:DisassociateResolverQueryLogConfig
13061	//
13062	//    * route53resolver:ListResolverQueryLogConfigAssociations
13063	//
13064	//    * route53resolver:ListResolverQueryLogConfigs
13065	//
13066	// In the Resource section of the statement, you specify the ARNs for the query
13067	// logging configurations that you want to share with the account that you specified
13068	// in Arn.
13069	//
13070	// ResolverQueryLogConfigPolicy is a required field
13071	ResolverQueryLogConfigPolicy *string `type:"string" required:"true"`
13072}
13073
13074// String returns the string representation
13075func (s PutResolverQueryLogConfigPolicyInput) String() string {
13076	return awsutil.Prettify(s)
13077}
13078
13079// GoString returns the string representation
13080func (s PutResolverQueryLogConfigPolicyInput) GoString() string {
13081	return s.String()
13082}
13083
13084// Validate inspects the fields of the type to determine if they are valid.
13085func (s *PutResolverQueryLogConfigPolicyInput) Validate() error {
13086	invalidParams := request.ErrInvalidParams{Context: "PutResolverQueryLogConfigPolicyInput"}
13087	if s.Arn == nil {
13088		invalidParams.Add(request.NewErrParamRequired("Arn"))
13089	}
13090	if s.Arn != nil && len(*s.Arn) < 1 {
13091		invalidParams.Add(request.NewErrParamMinLen("Arn", 1))
13092	}
13093	if s.ResolverQueryLogConfigPolicy == nil {
13094		invalidParams.Add(request.NewErrParamRequired("ResolverQueryLogConfigPolicy"))
13095	}
13096
13097	if invalidParams.Len() > 0 {
13098		return invalidParams
13099	}
13100	return nil
13101}
13102
13103// SetArn sets the Arn field's value.
13104func (s *PutResolverQueryLogConfigPolicyInput) SetArn(v string) *PutResolverQueryLogConfigPolicyInput {
13105	s.Arn = &v
13106	return s
13107}
13108
13109// SetResolverQueryLogConfigPolicy sets the ResolverQueryLogConfigPolicy field's value.
13110func (s *PutResolverQueryLogConfigPolicyInput) SetResolverQueryLogConfigPolicy(v string) *PutResolverQueryLogConfigPolicyInput {
13111	s.ResolverQueryLogConfigPolicy = &v
13112	return s
13113}
13114
13115// The response to a PutResolverQueryLogConfigPolicy request.
13116type PutResolverQueryLogConfigPolicyOutput struct {
13117	_ struct{} `type:"structure"`
13118
13119	// Whether the PutResolverQueryLogConfigPolicy request was successful.
13120	ReturnValue *bool `type:"boolean"`
13121}
13122
13123// String returns the string representation
13124func (s PutResolverQueryLogConfigPolicyOutput) String() string {
13125	return awsutil.Prettify(s)
13126}
13127
13128// GoString returns the string representation
13129func (s PutResolverQueryLogConfigPolicyOutput) GoString() string {
13130	return s.String()
13131}
13132
13133// SetReturnValue sets the ReturnValue field's value.
13134func (s *PutResolverQueryLogConfigPolicyOutput) SetReturnValue(v bool) *PutResolverQueryLogConfigPolicyOutput {
13135	s.ReturnValue = &v
13136	return s
13137}
13138
13139type PutResolverRulePolicyInput struct {
13140	_ struct{} `type:"structure"`
13141
13142	// The Amazon Resource Name (ARN) of the rule that you want to share with another
13143	// account.
13144	//
13145	// Arn is a required field
13146	Arn *string `min:"1" type:"string" required:"true"`
13147
13148	// An Identity and Access Management policy statement that lists the rules that
13149	// you want to share with another Amazon Web Services account and the operations
13150	// that you want the account to be able to perform. You can specify the following
13151	// operations in the Action section of the statement:
13152	//
13153	//    * route53resolver:GetResolverRule
13154	//
13155	//    * route53resolver:AssociateResolverRule
13156	//
13157	//    * route53resolver:DisassociateResolverRule
13158	//
13159	//    * route53resolver:ListResolverRules
13160	//
13161	//    * route53resolver:ListResolverRuleAssociations
13162	//
13163	// In the Resource section of the statement, specify the ARN for the rule that
13164	// you want to share with another account. Specify the same ARN that you specified
13165	// in Arn.
13166	//
13167	// ResolverRulePolicy is a required field
13168	ResolverRulePolicy *string `type:"string" required:"true"`
13169}
13170
13171// String returns the string representation
13172func (s PutResolverRulePolicyInput) String() string {
13173	return awsutil.Prettify(s)
13174}
13175
13176// GoString returns the string representation
13177func (s PutResolverRulePolicyInput) GoString() string {
13178	return s.String()
13179}
13180
13181// Validate inspects the fields of the type to determine if they are valid.
13182func (s *PutResolverRulePolicyInput) Validate() error {
13183	invalidParams := request.ErrInvalidParams{Context: "PutResolverRulePolicyInput"}
13184	if s.Arn == nil {
13185		invalidParams.Add(request.NewErrParamRequired("Arn"))
13186	}
13187	if s.Arn != nil && len(*s.Arn) < 1 {
13188		invalidParams.Add(request.NewErrParamMinLen("Arn", 1))
13189	}
13190	if s.ResolverRulePolicy == nil {
13191		invalidParams.Add(request.NewErrParamRequired("ResolverRulePolicy"))
13192	}
13193
13194	if invalidParams.Len() > 0 {
13195		return invalidParams
13196	}
13197	return nil
13198}
13199
13200// SetArn sets the Arn field's value.
13201func (s *PutResolverRulePolicyInput) SetArn(v string) *PutResolverRulePolicyInput {
13202	s.Arn = &v
13203	return s
13204}
13205
13206// SetResolverRulePolicy sets the ResolverRulePolicy field's value.
13207func (s *PutResolverRulePolicyInput) SetResolverRulePolicy(v string) *PutResolverRulePolicyInput {
13208	s.ResolverRulePolicy = &v
13209	return s
13210}
13211
13212// The response to a PutResolverRulePolicy request.
13213type PutResolverRulePolicyOutput struct {
13214	_ struct{} `type:"structure"`
13215
13216	// Whether the PutResolverRulePolicy request was successful.
13217	ReturnValue *bool `type:"boolean"`
13218}
13219
13220// String returns the string representation
13221func (s PutResolverRulePolicyOutput) String() string {
13222	return awsutil.Prettify(s)
13223}
13224
13225// GoString returns the string representation
13226func (s PutResolverRulePolicyOutput) GoString() string {
13227	return s.String()
13228}
13229
13230// SetReturnValue sets the ReturnValue field's value.
13231func (s *PutResolverRulePolicyOutput) SetReturnValue(v bool) *PutResolverRulePolicyOutput {
13232	s.ReturnValue = &v
13233	return s
13234}
13235
13236// A complex type that contains information about a configuration for DNSSEC
13237// validation.
13238type ResolverDnssecConfig struct {
13239	_ struct{} `type:"structure"`
13240
13241	// The ID for a configuration for DNSSEC validation.
13242	Id *string `min:"1" type:"string"`
13243
13244	// The owner account ID of the virtual private cloud (VPC) for a configuration
13245	// for DNSSEC validation.
13246	OwnerId *string `min:"12" type:"string"`
13247
13248	// The ID of the virtual private cloud (VPC) that you're configuring the DNSSEC
13249	// validation status for.
13250	ResourceId *string `min:"1" type:"string"`
13251
13252	// The validation status for a DNSSEC configuration. The status can be one of
13253	// the following:
13254	//
13255	//    * ENABLING: DNSSEC validation is being enabled but is not complete.
13256	//
13257	//    * ENABLED: DNSSEC validation is enabled.
13258	//
13259	//    * DISABLING: DNSSEC validation is being disabled but is not complete.
13260	//
13261	//    * DISABLED DNSSEC validation is disabled.
13262	ValidationStatus *string `type:"string" enum:"ResolverDNSSECValidationStatus"`
13263}
13264
13265// String returns the string representation
13266func (s ResolverDnssecConfig) String() string {
13267	return awsutil.Prettify(s)
13268}
13269
13270// GoString returns the string representation
13271func (s ResolverDnssecConfig) GoString() string {
13272	return s.String()
13273}
13274
13275// SetId sets the Id field's value.
13276func (s *ResolverDnssecConfig) SetId(v string) *ResolverDnssecConfig {
13277	s.Id = &v
13278	return s
13279}
13280
13281// SetOwnerId sets the OwnerId field's value.
13282func (s *ResolverDnssecConfig) SetOwnerId(v string) *ResolverDnssecConfig {
13283	s.OwnerId = &v
13284	return s
13285}
13286
13287// SetResourceId sets the ResourceId field's value.
13288func (s *ResolverDnssecConfig) SetResourceId(v string) *ResolverDnssecConfig {
13289	s.ResourceId = &v
13290	return s
13291}
13292
13293// SetValidationStatus sets the ValidationStatus field's value.
13294func (s *ResolverDnssecConfig) SetValidationStatus(v string) *ResolverDnssecConfig {
13295	s.ValidationStatus = &v
13296	return s
13297}
13298
13299// In the response to a CreateResolverEndpoint (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_CreateResolverEndpoint.html),
13300// DeleteResolverEndpoint (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_DeleteResolverEndpoint.html),
13301// GetResolverEndpoint (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverEndpoint.html),
13302// ListResolverEndpoints (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverEndpoints.html),
13303// or UpdateResolverEndpoint (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_UpdateResolverEndpoint.html)
13304// request, a complex type that contains settings for an existing inbound or
13305// outbound Resolver endpoint.
13306type ResolverEndpoint struct {
13307	_ struct{} `type:"structure"`
13308
13309	// The ARN (Amazon Resource Name) for the Resolver endpoint.
13310	Arn *string `min:"1" type:"string"`
13311
13312	// The date and time that the endpoint was created, in Unix time format and
13313	// Coordinated Universal Time (UTC).
13314	CreationTime *string `min:"20" type:"string"`
13315
13316	// A unique string that identifies the request that created the Resolver endpoint.
13317	// The CreatorRequestId allows failed requests to be retried without the risk
13318	// of running the operation twice.
13319	CreatorRequestId *string `min:"1" type:"string"`
13320
13321	// Indicates whether the Resolver endpoint allows inbound or outbound DNS queries:
13322	//
13323	//    * INBOUND: allows DNS queries to your VPC from your network
13324	//
13325	//    * OUTBOUND: allows DNS queries from your VPC to your network
13326	Direction *string `type:"string" enum:"ResolverEndpointDirection"`
13327
13328	// The ID of the VPC that you want to create the Resolver endpoint in.
13329	HostVPCId *string `min:"1" type:"string"`
13330
13331	// The ID of the Resolver endpoint.
13332	Id *string `min:"1" type:"string"`
13333
13334	// The number of IP addresses that the Resolver endpoint can use for DNS queries.
13335	IpAddressCount *int64 `type:"integer"`
13336
13337	// The date and time that the endpoint was last modified, in Unix time format
13338	// and Coordinated Universal Time (UTC).
13339	ModificationTime *string `min:"20" type:"string"`
13340
13341	// The name that you assigned to the Resolver endpoint when you submitted a
13342	// CreateResolverEndpoint (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_CreateResolverEndpoint.html)
13343	// request.
13344	Name *string `type:"string"`
13345
13346	// The ID of one or more security groups that control access to this VPC. The
13347	// security group must include one or more inbound rules (for inbound endpoints)
13348	// or outbound rules (for outbound endpoints). Inbound and outbound rules must
13349	// allow TCP and UDP access. For inbound access, open port 53. For outbound
13350	// access, open the port that you're using for DNS queries on your network.
13351	SecurityGroupIds []*string `type:"list"`
13352
13353	// A code that specifies the current status of the Resolver endpoint. Valid
13354	// values include the following:
13355	//
13356	//    * CREATING: Resolver is creating and configuring one or more Amazon VPC
13357	//    network interfaces for this endpoint.
13358	//
13359	//    * OPERATIONAL: The Amazon VPC network interfaces for this endpoint are
13360	//    correctly configured and able to pass inbound or outbound DNS queries
13361	//    between your network and Resolver.
13362	//
13363	//    * UPDATING: Resolver is associating or disassociating one or more network
13364	//    interfaces with this endpoint.
13365	//
13366	//    * AUTO_RECOVERING: Resolver is trying to recover one or more of the network
13367	//    interfaces that are associated with this endpoint. During the recovery
13368	//    process, the endpoint functions with limited capacity because of the limit
13369	//    on the number of DNS queries per IP address (per network interface). For
13370	//    the current limit, see Limits on Route 53 Resolver (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DNSLimitations.html#limits-api-entities-resolver).
13371	//
13372	//    * ACTION_NEEDED: This endpoint is unhealthy, and Resolver can't automatically
13373	//    recover it. To resolve the problem, we recommend that you check each IP
13374	//    address that you associated with the endpoint. For each IP address that
13375	//    isn't available, add another IP address and then delete the IP address
13376	//    that isn't available. (An endpoint must always include at least two IP
13377	//    addresses.) A status of ACTION_NEEDED can have a variety of causes. Here
13378	//    are two common causes: One or more of the network interfaces that are
13379	//    associated with the endpoint were deleted using Amazon VPC. The network
13380	//    interface couldn't be created for some reason that's outside the control
13381	//    of Resolver.
13382	//
13383	//    * DELETING: Resolver is deleting this endpoint and the associated network
13384	//    interfaces.
13385	Status *string `type:"string" enum:"ResolverEndpointStatus"`
13386
13387	// A detailed description of the status of the Resolver endpoint.
13388	StatusMessage *string `type:"string"`
13389}
13390
13391// String returns the string representation
13392func (s ResolverEndpoint) String() string {
13393	return awsutil.Prettify(s)
13394}
13395
13396// GoString returns the string representation
13397func (s ResolverEndpoint) GoString() string {
13398	return s.String()
13399}
13400
13401// SetArn sets the Arn field's value.
13402func (s *ResolverEndpoint) SetArn(v string) *ResolverEndpoint {
13403	s.Arn = &v
13404	return s
13405}
13406
13407// SetCreationTime sets the CreationTime field's value.
13408func (s *ResolverEndpoint) SetCreationTime(v string) *ResolverEndpoint {
13409	s.CreationTime = &v
13410	return s
13411}
13412
13413// SetCreatorRequestId sets the CreatorRequestId field's value.
13414func (s *ResolverEndpoint) SetCreatorRequestId(v string) *ResolverEndpoint {
13415	s.CreatorRequestId = &v
13416	return s
13417}
13418
13419// SetDirection sets the Direction field's value.
13420func (s *ResolverEndpoint) SetDirection(v string) *ResolverEndpoint {
13421	s.Direction = &v
13422	return s
13423}
13424
13425// SetHostVPCId sets the HostVPCId field's value.
13426func (s *ResolverEndpoint) SetHostVPCId(v string) *ResolverEndpoint {
13427	s.HostVPCId = &v
13428	return s
13429}
13430
13431// SetId sets the Id field's value.
13432func (s *ResolverEndpoint) SetId(v string) *ResolverEndpoint {
13433	s.Id = &v
13434	return s
13435}
13436
13437// SetIpAddressCount sets the IpAddressCount field's value.
13438func (s *ResolverEndpoint) SetIpAddressCount(v int64) *ResolverEndpoint {
13439	s.IpAddressCount = &v
13440	return s
13441}
13442
13443// SetModificationTime sets the ModificationTime field's value.
13444func (s *ResolverEndpoint) SetModificationTime(v string) *ResolverEndpoint {
13445	s.ModificationTime = &v
13446	return s
13447}
13448
13449// SetName sets the Name field's value.
13450func (s *ResolverEndpoint) SetName(v string) *ResolverEndpoint {
13451	s.Name = &v
13452	return s
13453}
13454
13455// SetSecurityGroupIds sets the SecurityGroupIds field's value.
13456func (s *ResolverEndpoint) SetSecurityGroupIds(v []*string) *ResolverEndpoint {
13457	s.SecurityGroupIds = v
13458	return s
13459}
13460
13461// SetStatus sets the Status field's value.
13462func (s *ResolverEndpoint) SetStatus(v string) *ResolverEndpoint {
13463	s.Status = &v
13464	return s
13465}
13466
13467// SetStatusMessage sets the StatusMessage field's value.
13468func (s *ResolverEndpoint) SetStatusMessage(v string) *ResolverEndpoint {
13469	s.StatusMessage = &v
13470	return s
13471}
13472
13473// In the response to a CreateResolverQueryLogConfig (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_CreateResolverQueryLogConfig.html),
13474// DeleteResolverQueryLogConfig (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_DeleteResolverQueryLogConfig.html),
13475// GetResolverQueryLogConfig (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverQueryLogConfig.html),
13476// or ListResolverQueryLogConfigs (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverQueryLogConfigs.html)
13477// request, a complex type that contains settings for one query logging configuration.
13478type ResolverQueryLogConfig struct {
13479	_ struct{} `type:"structure"`
13480
13481	// The ARN for the query logging configuration.
13482	Arn *string `min:"1" type:"string"`
13483
13484	// The number of VPCs that are associated with the query logging configuration.
13485	AssociationCount *int64 `type:"integer"`
13486
13487	// The date and time that the query logging configuration was created, in Unix
13488	// time format and Coordinated Universal Time (UTC).
13489	CreationTime *string `min:"20" type:"string"`
13490
13491	// A unique string that identifies the request that created the query logging
13492	// configuration. The CreatorRequestId allows failed requests to be retried
13493	// without the risk of running the operation twice.
13494	CreatorRequestId *string `min:"1" type:"string"`
13495
13496	// The ARN of the resource that you want Resolver to send query logs: an Amazon
13497	// S3 bucket, a CloudWatch Logs log group, or a Kinesis Data Firehose delivery
13498	// stream.
13499	DestinationArn *string `min:"1" type:"string"`
13500
13501	// The ID for the query logging configuration.
13502	Id *string `min:"1" type:"string"`
13503
13504	// The name of the query logging configuration.
13505	Name *string `min:"1" type:"string"`
13506
13507	// The Amazon Web Services account ID for the account that created the query
13508	// logging configuration.
13509	OwnerId *string `min:"12" type:"string"`
13510
13511	// An indication of whether the query logging configuration is shared with other
13512	// Amazon Web Services accounts, or was shared with the current account by another
13513	// Amazon Web Services account. Sharing is configured through Resource Access
13514	// Manager (RAM).
13515	ShareStatus *string `type:"string" enum:"ShareStatus"`
13516
13517	// The status of the specified query logging configuration. Valid values include
13518	// the following:
13519	//
13520	//    * CREATING: Resolver is creating the query logging configuration.
13521	//
13522	//    * CREATED: The query logging configuration was successfully created. Resolver
13523	//    is logging queries that originate in the specified VPC.
13524	//
13525	//    * DELETING: Resolver is deleting this query logging configuration.
13526	//
13527	//    * FAILED: Resolver can't deliver logs to the location that is specified
13528	//    in the query logging configuration. Here are two common causes: The specified
13529	//    destination (for example, an Amazon S3 bucket) was deleted. Permissions
13530	//    don't allow sending logs to the destination.
13531	Status *string `type:"string" enum:"ResolverQueryLogConfigStatus"`
13532}
13533
13534// String returns the string representation
13535func (s ResolverQueryLogConfig) String() string {
13536	return awsutil.Prettify(s)
13537}
13538
13539// GoString returns the string representation
13540func (s ResolverQueryLogConfig) GoString() string {
13541	return s.String()
13542}
13543
13544// SetArn sets the Arn field's value.
13545func (s *ResolverQueryLogConfig) SetArn(v string) *ResolverQueryLogConfig {
13546	s.Arn = &v
13547	return s
13548}
13549
13550// SetAssociationCount sets the AssociationCount field's value.
13551func (s *ResolverQueryLogConfig) SetAssociationCount(v int64) *ResolverQueryLogConfig {
13552	s.AssociationCount = &v
13553	return s
13554}
13555
13556// SetCreationTime sets the CreationTime field's value.
13557func (s *ResolverQueryLogConfig) SetCreationTime(v string) *ResolverQueryLogConfig {
13558	s.CreationTime = &v
13559	return s
13560}
13561
13562// SetCreatorRequestId sets the CreatorRequestId field's value.
13563func (s *ResolverQueryLogConfig) SetCreatorRequestId(v string) *ResolverQueryLogConfig {
13564	s.CreatorRequestId = &v
13565	return s
13566}
13567
13568// SetDestinationArn sets the DestinationArn field's value.
13569func (s *ResolverQueryLogConfig) SetDestinationArn(v string) *ResolverQueryLogConfig {
13570	s.DestinationArn = &v
13571	return s
13572}
13573
13574// SetId sets the Id field's value.
13575func (s *ResolverQueryLogConfig) SetId(v string) *ResolverQueryLogConfig {
13576	s.Id = &v
13577	return s
13578}
13579
13580// SetName sets the Name field's value.
13581func (s *ResolverQueryLogConfig) SetName(v string) *ResolverQueryLogConfig {
13582	s.Name = &v
13583	return s
13584}
13585
13586// SetOwnerId sets the OwnerId field's value.
13587func (s *ResolverQueryLogConfig) SetOwnerId(v string) *ResolverQueryLogConfig {
13588	s.OwnerId = &v
13589	return s
13590}
13591
13592// SetShareStatus sets the ShareStatus field's value.
13593func (s *ResolverQueryLogConfig) SetShareStatus(v string) *ResolverQueryLogConfig {
13594	s.ShareStatus = &v
13595	return s
13596}
13597
13598// SetStatus sets the Status field's value.
13599func (s *ResolverQueryLogConfig) SetStatus(v string) *ResolverQueryLogConfig {
13600	s.Status = &v
13601	return s
13602}
13603
13604// In the response to an AssociateResolverQueryLogConfig (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_AssociateResolverQueryLogConfig.html),
13605// DisassociateResolverQueryLogConfig (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_DisassociateResolverQueryLogConfig.html),
13606// GetResolverQueryLogConfigAssociation (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverQueryLogConfigAssociation.html),
13607// or ListResolverQueryLogConfigAssociations (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverQueryLogConfigAssociations.html),
13608// request, a complex type that contains settings for a specified association
13609// between an Amazon VPC and a query logging configuration.
13610type ResolverQueryLogConfigAssociation struct {
13611	_ struct{} `type:"structure"`
13612
13613	// The date and time that the VPC was associated with the query logging configuration,
13614	// in Unix time format and Coordinated Universal Time (UTC).
13615	CreationTime *string `min:"20" type:"string"`
13616
13617	// If the value of Status is FAILED, the value of Error indicates the cause:
13618	//
13619	//    * DESTINATION_NOT_FOUND: The specified destination (for example, an Amazon
13620	//    S3 bucket) was deleted.
13621	//
13622	//    * ACCESS_DENIED: Permissions don't allow sending logs to the destination.
13623	//
13624	// If the value of Status is a value other than FAILED, Error is null.
13625	Error *string `type:"string" enum:"ResolverQueryLogConfigAssociationError"`
13626
13627	// Contains additional information about the error. If the value or Error is
13628	// null, the value of ErrorMessage also is null.
13629	ErrorMessage *string `type:"string"`
13630
13631	// The ID of the query logging association.
13632	Id *string `min:"1" type:"string"`
13633
13634	// The ID of the query logging configuration that a VPC is associated with.
13635	ResolverQueryLogConfigId *string `min:"1" type:"string"`
13636
13637	// The ID of the Amazon VPC that is associated with the query logging configuration.
13638	ResourceId *string `min:"1" type:"string"`
13639
13640	// The status of the specified query logging association. Valid values include
13641	// the following:
13642	//
13643	//    * CREATING: Resolver is creating an association between an Amazon VPC
13644	//    and a query logging configuration.
13645	//
13646	//    * CREATED: The association between an Amazon VPC and a query logging configuration
13647	//    was successfully created. Resolver is logging queries that originate in
13648	//    the specified VPC.
13649	//
13650	//    * DELETING: Resolver is deleting this query logging association.
13651	//
13652	//    * FAILED: Resolver either couldn't create or couldn't delete the query
13653	//    logging association.
13654	Status *string `type:"string" enum:"ResolverQueryLogConfigAssociationStatus"`
13655}
13656
13657// String returns the string representation
13658func (s ResolverQueryLogConfigAssociation) String() string {
13659	return awsutil.Prettify(s)
13660}
13661
13662// GoString returns the string representation
13663func (s ResolverQueryLogConfigAssociation) GoString() string {
13664	return s.String()
13665}
13666
13667// SetCreationTime sets the CreationTime field's value.
13668func (s *ResolverQueryLogConfigAssociation) SetCreationTime(v string) *ResolverQueryLogConfigAssociation {
13669	s.CreationTime = &v
13670	return s
13671}
13672
13673// SetError sets the Error field's value.
13674func (s *ResolverQueryLogConfigAssociation) SetError(v string) *ResolverQueryLogConfigAssociation {
13675	s.Error = &v
13676	return s
13677}
13678
13679// SetErrorMessage sets the ErrorMessage field's value.
13680func (s *ResolverQueryLogConfigAssociation) SetErrorMessage(v string) *ResolverQueryLogConfigAssociation {
13681	s.ErrorMessage = &v
13682	return s
13683}
13684
13685// SetId sets the Id field's value.
13686func (s *ResolverQueryLogConfigAssociation) SetId(v string) *ResolverQueryLogConfigAssociation {
13687	s.Id = &v
13688	return s
13689}
13690
13691// SetResolverQueryLogConfigId sets the ResolverQueryLogConfigId field's value.
13692func (s *ResolverQueryLogConfigAssociation) SetResolverQueryLogConfigId(v string) *ResolverQueryLogConfigAssociation {
13693	s.ResolverQueryLogConfigId = &v
13694	return s
13695}
13696
13697// SetResourceId sets the ResourceId field's value.
13698func (s *ResolverQueryLogConfigAssociation) SetResourceId(v string) *ResolverQueryLogConfigAssociation {
13699	s.ResourceId = &v
13700	return s
13701}
13702
13703// SetStatus sets the Status field's value.
13704func (s *ResolverQueryLogConfigAssociation) SetStatus(v string) *ResolverQueryLogConfigAssociation {
13705	s.Status = &v
13706	return s
13707}
13708
13709// For queries that originate in your VPC, detailed information about a Resolver
13710// rule, which specifies how to route DNS queries out of the VPC. The ResolverRule
13711// parameter appears in the response to a CreateResolverRule (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_CreateResolverRule.html),
13712// DeleteResolverRule (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_DeleteResolverRule.html),
13713// GetResolverRule (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverRule.html),
13714// ListResolverRules (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverRules.html),
13715// or UpdateResolverRule (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_UpdateResolverRule.html)
13716// request.
13717type ResolverRule struct {
13718	_ struct{} `type:"structure"`
13719
13720	// The ARN (Amazon Resource Name) for the Resolver rule specified by Id.
13721	Arn *string `min:"1" type:"string"`
13722
13723	// The date and time that the Resolver rule was created, in Unix time format
13724	// and Coordinated Universal Time (UTC).
13725	CreationTime *string `min:"20" type:"string"`
13726
13727	// A unique string that you specified when you created the Resolver rule. CreatorRequestId
13728	// identifies the request and allows failed requests to be retried without the
13729	// risk of running the operation twice.
13730	CreatorRequestId *string `min:"1" type:"string"`
13731
13732	// DNS queries for this domain name are forwarded to the IP addresses that are
13733	// specified in TargetIps. If a query matches multiple Resolver rules (example.com
13734	// and www.example.com), the query is routed using the Resolver rule that contains
13735	// the most specific domain name (www.example.com).
13736	DomainName *string `min:"1" type:"string"`
13737
13738	// The ID that Resolver assigned to the Resolver rule when you created it.
13739	Id *string `min:"1" type:"string"`
13740
13741	// The date and time that the Resolver rule was last updated, in Unix time format
13742	// and Coordinated Universal Time (UTC).
13743	ModificationTime *string `min:"20" type:"string"`
13744
13745	// The name for the Resolver rule, which you specified when you created the
13746	// Resolver rule.
13747	Name *string `type:"string"`
13748
13749	// When a rule is shared with another Amazon Web Services account, the account
13750	// ID of the account that the rule is shared with.
13751	OwnerId *string `min:"12" type:"string"`
13752
13753	// The ID of the endpoint that the rule is associated with.
13754	ResolverEndpointId *string `min:"1" type:"string"`
13755
13756	// When you want to forward DNS queries for specified domain name to resolvers
13757	// on your network, specify FORWARD.
13758	//
13759	// When you have a forwarding rule to forward DNS queries for a domain to your
13760	// network and you want Resolver to process queries for a subdomain of that
13761	// domain, specify SYSTEM.
13762	//
13763	// For example, to forward DNS queries for example.com to resolvers on your
13764	// network, you create a rule and specify FORWARD for RuleType. To then have
13765	// Resolver process queries for apex.example.com, you create a rule and specify
13766	// SYSTEM for RuleType.
13767	//
13768	// Currently, only Resolver can create rules that have a value of RECURSIVE
13769	// for RuleType.
13770	RuleType *string `type:"string" enum:"RuleTypeOption"`
13771
13772	// Whether the rule is shared and, if so, whether the current account is sharing
13773	// the rule with another account, or another account is sharing the rule with
13774	// the current account.
13775	ShareStatus *string `type:"string" enum:"ShareStatus"`
13776
13777	// A code that specifies the current status of the Resolver rule.
13778	Status *string `type:"string" enum:"ResolverRuleStatus"`
13779
13780	// A detailed description of the status of a Resolver rule.
13781	StatusMessage *string `type:"string"`
13782
13783	// An array that contains the IP addresses and ports that an outbound endpoint
13784	// forwards DNS queries to. Typically, these are the IP addresses of DNS resolvers
13785	// on your network. Specify IPv4 addresses. IPv6 is not supported.
13786	TargetIps []*TargetAddress `min:"1" type:"list"`
13787}
13788
13789// String returns the string representation
13790func (s ResolverRule) String() string {
13791	return awsutil.Prettify(s)
13792}
13793
13794// GoString returns the string representation
13795func (s ResolverRule) GoString() string {
13796	return s.String()
13797}
13798
13799// SetArn sets the Arn field's value.
13800func (s *ResolverRule) SetArn(v string) *ResolverRule {
13801	s.Arn = &v
13802	return s
13803}
13804
13805// SetCreationTime sets the CreationTime field's value.
13806func (s *ResolverRule) SetCreationTime(v string) *ResolverRule {
13807	s.CreationTime = &v
13808	return s
13809}
13810
13811// SetCreatorRequestId sets the CreatorRequestId field's value.
13812func (s *ResolverRule) SetCreatorRequestId(v string) *ResolverRule {
13813	s.CreatorRequestId = &v
13814	return s
13815}
13816
13817// SetDomainName sets the DomainName field's value.
13818func (s *ResolverRule) SetDomainName(v string) *ResolverRule {
13819	s.DomainName = &v
13820	return s
13821}
13822
13823// SetId sets the Id field's value.
13824func (s *ResolverRule) SetId(v string) *ResolverRule {
13825	s.Id = &v
13826	return s
13827}
13828
13829// SetModificationTime sets the ModificationTime field's value.
13830func (s *ResolverRule) SetModificationTime(v string) *ResolverRule {
13831	s.ModificationTime = &v
13832	return s
13833}
13834
13835// SetName sets the Name field's value.
13836func (s *ResolverRule) SetName(v string) *ResolverRule {
13837	s.Name = &v
13838	return s
13839}
13840
13841// SetOwnerId sets the OwnerId field's value.
13842func (s *ResolverRule) SetOwnerId(v string) *ResolverRule {
13843	s.OwnerId = &v
13844	return s
13845}
13846
13847// SetResolverEndpointId sets the ResolverEndpointId field's value.
13848func (s *ResolverRule) SetResolverEndpointId(v string) *ResolverRule {
13849	s.ResolverEndpointId = &v
13850	return s
13851}
13852
13853// SetRuleType sets the RuleType field's value.
13854func (s *ResolverRule) SetRuleType(v string) *ResolverRule {
13855	s.RuleType = &v
13856	return s
13857}
13858
13859// SetShareStatus sets the ShareStatus field's value.
13860func (s *ResolverRule) SetShareStatus(v string) *ResolverRule {
13861	s.ShareStatus = &v
13862	return s
13863}
13864
13865// SetStatus sets the Status field's value.
13866func (s *ResolverRule) SetStatus(v string) *ResolverRule {
13867	s.Status = &v
13868	return s
13869}
13870
13871// SetStatusMessage sets the StatusMessage field's value.
13872func (s *ResolverRule) SetStatusMessage(v string) *ResolverRule {
13873	s.StatusMessage = &v
13874	return s
13875}
13876
13877// SetTargetIps sets the TargetIps field's value.
13878func (s *ResolverRule) SetTargetIps(v []*TargetAddress) *ResolverRule {
13879	s.TargetIps = v
13880	return s
13881}
13882
13883// In the response to an AssociateResolverRule (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_AssociateResolverRule.html),
13884// DisassociateResolverRule (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_DisassociateResolverRule.html),
13885// or ListResolverRuleAssociations (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverRuleAssociations.html)
13886// request, provides information about an association between a Resolver rule
13887// and a VPC. The association determines which DNS queries that originate in
13888// the VPC are forwarded to your network.
13889type ResolverRuleAssociation struct {
13890	_ struct{} `type:"structure"`
13891
13892	// The ID of the association between a Resolver rule and a VPC. Resolver assigns
13893	// this value when you submit an AssociateResolverRule (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_AssociateResolverRule.html)
13894	// request.
13895	Id *string `min:"1" type:"string"`
13896
13897	// The name of an association between a Resolver rule and a VPC.
13898	Name *string `type:"string"`
13899
13900	// The ID of the Resolver rule that you associated with the VPC that is specified
13901	// by VPCId.
13902	ResolverRuleId *string `min:"1" type:"string"`
13903
13904	// A code that specifies the current status of the association between a Resolver
13905	// rule and a VPC.
13906	Status *string `type:"string" enum:"ResolverRuleAssociationStatus"`
13907
13908	// A detailed description of the status of the association between a Resolver
13909	// rule and a VPC.
13910	StatusMessage *string `type:"string"`
13911
13912	// The ID of the VPC that you associated the Resolver rule with.
13913	VPCId *string `min:"1" type:"string"`
13914}
13915
13916// String returns the string representation
13917func (s ResolverRuleAssociation) String() string {
13918	return awsutil.Prettify(s)
13919}
13920
13921// GoString returns the string representation
13922func (s ResolverRuleAssociation) GoString() string {
13923	return s.String()
13924}
13925
13926// SetId sets the Id field's value.
13927func (s *ResolverRuleAssociation) SetId(v string) *ResolverRuleAssociation {
13928	s.Id = &v
13929	return s
13930}
13931
13932// SetName sets the Name field's value.
13933func (s *ResolverRuleAssociation) SetName(v string) *ResolverRuleAssociation {
13934	s.Name = &v
13935	return s
13936}
13937
13938// SetResolverRuleId sets the ResolverRuleId field's value.
13939func (s *ResolverRuleAssociation) SetResolverRuleId(v string) *ResolverRuleAssociation {
13940	s.ResolverRuleId = &v
13941	return s
13942}
13943
13944// SetStatus sets the Status field's value.
13945func (s *ResolverRuleAssociation) SetStatus(v string) *ResolverRuleAssociation {
13946	s.Status = &v
13947	return s
13948}
13949
13950// SetStatusMessage sets the StatusMessage field's value.
13951func (s *ResolverRuleAssociation) SetStatusMessage(v string) *ResolverRuleAssociation {
13952	s.StatusMessage = &v
13953	return s
13954}
13955
13956// SetVPCId sets the VPCId field's value.
13957func (s *ResolverRuleAssociation) SetVPCId(v string) *ResolverRuleAssociation {
13958	s.VPCId = &v
13959	return s
13960}
13961
13962// In an UpdateResolverRule (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_UpdateResolverRule.html)
13963// request, information about the changes that you want to make.
13964type ResolverRuleConfig struct {
13965	_ struct{} `type:"structure"`
13966
13967	// The new name for the Resolver rule. The name that you specify appears in
13968	// the Resolver dashboard in the Route 53 console.
13969	Name *string `type:"string"`
13970
13971	// The ID of the new outbound Resolver endpoint that you want to use to route
13972	// DNS queries to the IP addresses that you specify in TargetIps.
13973	ResolverEndpointId *string `min:"1" type:"string"`
13974
13975	// For DNS queries that originate in your VPC, the new IP addresses that you
13976	// want to route outbound DNS queries to.
13977	TargetIps []*TargetAddress `min:"1" type:"list"`
13978}
13979
13980// String returns the string representation
13981func (s ResolverRuleConfig) String() string {
13982	return awsutil.Prettify(s)
13983}
13984
13985// GoString returns the string representation
13986func (s ResolverRuleConfig) GoString() string {
13987	return s.String()
13988}
13989
13990// Validate inspects the fields of the type to determine if they are valid.
13991func (s *ResolverRuleConfig) Validate() error {
13992	invalidParams := request.ErrInvalidParams{Context: "ResolverRuleConfig"}
13993	if s.ResolverEndpointId != nil && len(*s.ResolverEndpointId) < 1 {
13994		invalidParams.Add(request.NewErrParamMinLen("ResolverEndpointId", 1))
13995	}
13996	if s.TargetIps != nil && len(s.TargetIps) < 1 {
13997		invalidParams.Add(request.NewErrParamMinLen("TargetIps", 1))
13998	}
13999	if s.TargetIps != nil {
14000		for i, v := range s.TargetIps {
14001			if v == nil {
14002				continue
14003			}
14004			if err := v.Validate(); err != nil {
14005				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TargetIps", i), err.(request.ErrInvalidParams))
14006			}
14007		}
14008	}
14009
14010	if invalidParams.Len() > 0 {
14011		return invalidParams
14012	}
14013	return nil
14014}
14015
14016// SetName sets the Name field's value.
14017func (s *ResolverRuleConfig) SetName(v string) *ResolverRuleConfig {
14018	s.Name = &v
14019	return s
14020}
14021
14022// SetResolverEndpointId sets the ResolverEndpointId field's value.
14023func (s *ResolverRuleConfig) SetResolverEndpointId(v string) *ResolverRuleConfig {
14024	s.ResolverEndpointId = &v
14025	return s
14026}
14027
14028// SetTargetIps sets the TargetIps field's value.
14029func (s *ResolverRuleConfig) SetTargetIps(v []*TargetAddress) *ResolverRuleConfig {
14030	s.TargetIps = v
14031	return s
14032}
14033
14034// The resource that you tried to create already exists.
14035type ResourceExistsException struct {
14036	_            struct{}                  `type:"structure"`
14037	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
14038
14039	Message_ *string `locationName:"Message" type:"string"`
14040
14041	// For a ResourceExistsException error, the type of resource that the error
14042	// applies to.
14043	ResourceType *string `type:"string"`
14044}
14045
14046// String returns the string representation
14047func (s ResourceExistsException) String() string {
14048	return awsutil.Prettify(s)
14049}
14050
14051// GoString returns the string representation
14052func (s ResourceExistsException) GoString() string {
14053	return s.String()
14054}
14055
14056func newErrorResourceExistsException(v protocol.ResponseMetadata) error {
14057	return &ResourceExistsException{
14058		RespMetadata: v,
14059	}
14060}
14061
14062// Code returns the exception type name.
14063func (s *ResourceExistsException) Code() string {
14064	return "ResourceExistsException"
14065}
14066
14067// Message returns the exception's message.
14068func (s *ResourceExistsException) Message() string {
14069	if s.Message_ != nil {
14070		return *s.Message_
14071	}
14072	return ""
14073}
14074
14075// OrigErr always returns nil, satisfies awserr.Error interface.
14076func (s *ResourceExistsException) OrigErr() error {
14077	return nil
14078}
14079
14080func (s *ResourceExistsException) Error() string {
14081	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
14082}
14083
14084// Status code returns the HTTP status code for the request's response error.
14085func (s *ResourceExistsException) StatusCode() int {
14086	return s.RespMetadata.StatusCode
14087}
14088
14089// RequestID returns the service's response RequestID for request.
14090func (s *ResourceExistsException) RequestID() string {
14091	return s.RespMetadata.RequestID
14092}
14093
14094// The resource that you tried to update or delete is currently in use.
14095type ResourceInUseException struct {
14096	_            struct{}                  `type:"structure"`
14097	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
14098
14099	Message_ *string `locationName:"Message" type:"string"`
14100
14101	// For a ResourceInUseException error, the type of resource that is currently
14102	// in use.
14103	ResourceType *string `type:"string"`
14104}
14105
14106// String returns the string representation
14107func (s ResourceInUseException) String() string {
14108	return awsutil.Prettify(s)
14109}
14110
14111// GoString returns the string representation
14112func (s ResourceInUseException) GoString() string {
14113	return s.String()
14114}
14115
14116func newErrorResourceInUseException(v protocol.ResponseMetadata) error {
14117	return &ResourceInUseException{
14118		RespMetadata: v,
14119	}
14120}
14121
14122// Code returns the exception type name.
14123func (s *ResourceInUseException) Code() string {
14124	return "ResourceInUseException"
14125}
14126
14127// Message returns the exception's message.
14128func (s *ResourceInUseException) Message() string {
14129	if s.Message_ != nil {
14130		return *s.Message_
14131	}
14132	return ""
14133}
14134
14135// OrigErr always returns nil, satisfies awserr.Error interface.
14136func (s *ResourceInUseException) OrigErr() error {
14137	return nil
14138}
14139
14140func (s *ResourceInUseException) Error() string {
14141	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
14142}
14143
14144// Status code returns the HTTP status code for the request's response error.
14145func (s *ResourceInUseException) StatusCode() int {
14146	return s.RespMetadata.StatusCode
14147}
14148
14149// RequestID returns the service's response RequestID for request.
14150func (s *ResourceInUseException) RequestID() string {
14151	return s.RespMetadata.RequestID
14152}
14153
14154// The specified resource doesn't exist.
14155type ResourceNotFoundException struct {
14156	_            struct{}                  `type:"structure"`
14157	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
14158
14159	Message_ *string `locationName:"Message" type:"string"`
14160
14161	// For a ResourceNotFoundException error, the type of resource that doesn't
14162	// exist.
14163	ResourceType *string `type:"string"`
14164}
14165
14166// String returns the string representation
14167func (s ResourceNotFoundException) String() string {
14168	return awsutil.Prettify(s)
14169}
14170
14171// GoString returns the string representation
14172func (s ResourceNotFoundException) GoString() string {
14173	return s.String()
14174}
14175
14176func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
14177	return &ResourceNotFoundException{
14178		RespMetadata: v,
14179	}
14180}
14181
14182// Code returns the exception type name.
14183func (s *ResourceNotFoundException) Code() string {
14184	return "ResourceNotFoundException"
14185}
14186
14187// Message returns the exception's message.
14188func (s *ResourceNotFoundException) Message() string {
14189	if s.Message_ != nil {
14190		return *s.Message_
14191	}
14192	return ""
14193}
14194
14195// OrigErr always returns nil, satisfies awserr.Error interface.
14196func (s *ResourceNotFoundException) OrigErr() error {
14197	return nil
14198}
14199
14200func (s *ResourceNotFoundException) Error() string {
14201	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
14202}
14203
14204// Status code returns the HTTP status code for the request's response error.
14205func (s *ResourceNotFoundException) StatusCode() int {
14206	return s.RespMetadata.StatusCode
14207}
14208
14209// RequestID returns the service's response RequestID for request.
14210func (s *ResourceNotFoundException) RequestID() string {
14211	return s.RespMetadata.RequestID
14212}
14213
14214// The specified resource isn't available.
14215type ResourceUnavailableException struct {
14216	_            struct{}                  `type:"structure"`
14217	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
14218
14219	Message_ *string `locationName:"Message" type:"string"`
14220
14221	// For a ResourceUnavailableException error, the type of resource that isn't
14222	// available.
14223	ResourceType *string `type:"string"`
14224}
14225
14226// String returns the string representation
14227func (s ResourceUnavailableException) String() string {
14228	return awsutil.Prettify(s)
14229}
14230
14231// GoString returns the string representation
14232func (s ResourceUnavailableException) GoString() string {
14233	return s.String()
14234}
14235
14236func newErrorResourceUnavailableException(v protocol.ResponseMetadata) error {
14237	return &ResourceUnavailableException{
14238		RespMetadata: v,
14239	}
14240}
14241
14242// Code returns the exception type name.
14243func (s *ResourceUnavailableException) Code() string {
14244	return "ResourceUnavailableException"
14245}
14246
14247// Message returns the exception's message.
14248func (s *ResourceUnavailableException) Message() string {
14249	if s.Message_ != nil {
14250		return *s.Message_
14251	}
14252	return ""
14253}
14254
14255// OrigErr always returns nil, satisfies awserr.Error interface.
14256func (s *ResourceUnavailableException) OrigErr() error {
14257	return nil
14258}
14259
14260func (s *ResourceUnavailableException) Error() string {
14261	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
14262}
14263
14264// Status code returns the HTTP status code for the request's response error.
14265func (s *ResourceUnavailableException) StatusCode() int {
14266	return s.RespMetadata.StatusCode
14267}
14268
14269// RequestID returns the service's response RequestID for request.
14270func (s *ResourceUnavailableException) RequestID() string {
14271	return s.RespMetadata.RequestID
14272}
14273
14274// One tag that you want to add to the specified resource. A tag consists of
14275// a Key (a name for the tag) and a Value.
14276type Tag struct {
14277	_ struct{} `type:"structure"`
14278
14279	// The name for the tag. For example, if you want to associate Resolver resources
14280	// with the account IDs of your customers for billing purposes, the value of
14281	// Key might be account-id.
14282	//
14283	// Key is a required field
14284	Key *string `min:"1" type:"string" required:"true"`
14285
14286	// The value for the tag. For example, if Key is account-id, then Value might
14287	// be the ID of the customer account that you're creating the resource for.
14288	//
14289	// Value is a required field
14290	Value *string `type:"string" required:"true"`
14291}
14292
14293// String returns the string representation
14294func (s Tag) String() string {
14295	return awsutil.Prettify(s)
14296}
14297
14298// GoString returns the string representation
14299func (s Tag) GoString() string {
14300	return s.String()
14301}
14302
14303// Validate inspects the fields of the type to determine if they are valid.
14304func (s *Tag) Validate() error {
14305	invalidParams := request.ErrInvalidParams{Context: "Tag"}
14306	if s.Key == nil {
14307		invalidParams.Add(request.NewErrParamRequired("Key"))
14308	}
14309	if s.Key != nil && len(*s.Key) < 1 {
14310		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
14311	}
14312	if s.Value == nil {
14313		invalidParams.Add(request.NewErrParamRequired("Value"))
14314	}
14315
14316	if invalidParams.Len() > 0 {
14317		return invalidParams
14318	}
14319	return nil
14320}
14321
14322// SetKey sets the Key field's value.
14323func (s *Tag) SetKey(v string) *Tag {
14324	s.Key = &v
14325	return s
14326}
14327
14328// SetValue sets the Value field's value.
14329func (s *Tag) SetValue(v string) *Tag {
14330	s.Value = &v
14331	return s
14332}
14333
14334type TagResourceInput struct {
14335	_ struct{} `type:"structure"`
14336
14337	// The Amazon Resource Name (ARN) for the resource that you want to add tags
14338	// to. To get the ARN for a resource, use the applicable Get or List command:
14339	//
14340	//    * GetResolverEndpoint (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverEndpoint.html)
14341	//
14342	//    * GetResolverRule (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverRule.html)
14343	//
14344	//    * GetResolverRuleAssociation (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverRuleAssociation.html)
14345	//
14346	//    * ListResolverEndpoints (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverEndpoints.html)
14347	//
14348	//    * ListResolverRuleAssociations (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverRuleAssociations.html)
14349	//
14350	//    * ListResolverRules (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverRules.html)
14351	//
14352	// ResourceArn is a required field
14353	ResourceArn *string `min:"1" type:"string" required:"true"`
14354
14355	// The tags that you want to add to the specified resource.
14356	//
14357	// Tags is a required field
14358	Tags []*Tag `type:"list" required:"true"`
14359}
14360
14361// String returns the string representation
14362func (s TagResourceInput) String() string {
14363	return awsutil.Prettify(s)
14364}
14365
14366// GoString returns the string representation
14367func (s TagResourceInput) GoString() string {
14368	return s.String()
14369}
14370
14371// Validate inspects the fields of the type to determine if they are valid.
14372func (s *TagResourceInput) Validate() error {
14373	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
14374	if s.ResourceArn == nil {
14375		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
14376	}
14377	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
14378		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
14379	}
14380	if s.Tags == nil {
14381		invalidParams.Add(request.NewErrParamRequired("Tags"))
14382	}
14383	if s.Tags != nil {
14384		for i, v := range s.Tags {
14385			if v == nil {
14386				continue
14387			}
14388			if err := v.Validate(); err != nil {
14389				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
14390			}
14391		}
14392	}
14393
14394	if invalidParams.Len() > 0 {
14395		return invalidParams
14396	}
14397	return nil
14398}
14399
14400// SetResourceArn sets the ResourceArn field's value.
14401func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
14402	s.ResourceArn = &v
14403	return s
14404}
14405
14406// SetTags sets the Tags field's value.
14407func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
14408	s.Tags = v
14409	return s
14410}
14411
14412type TagResourceOutput struct {
14413	_ struct{} `type:"structure"`
14414}
14415
14416// String returns the string representation
14417func (s TagResourceOutput) String() string {
14418	return awsutil.Prettify(s)
14419}
14420
14421// GoString returns the string representation
14422func (s TagResourceOutput) GoString() string {
14423	return s.String()
14424}
14425
14426// In a CreateResolverRule (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_CreateResolverRule.html)
14427// request, an array of the IPs that you want to forward DNS queries to.
14428type TargetAddress struct {
14429	_ struct{} `type:"structure"`
14430
14431	// One IP address that you want to forward DNS queries to. You can specify only
14432	// IPv4 addresses.
14433	//
14434	// Ip is a required field
14435	Ip *string `min:"7" type:"string" required:"true"`
14436
14437	// The port at Ip that you want to forward DNS queries to.
14438	Port *int64 `type:"integer"`
14439}
14440
14441// String returns the string representation
14442func (s TargetAddress) String() string {
14443	return awsutil.Prettify(s)
14444}
14445
14446// GoString returns the string representation
14447func (s TargetAddress) GoString() string {
14448	return s.String()
14449}
14450
14451// Validate inspects the fields of the type to determine if they are valid.
14452func (s *TargetAddress) Validate() error {
14453	invalidParams := request.ErrInvalidParams{Context: "TargetAddress"}
14454	if s.Ip == nil {
14455		invalidParams.Add(request.NewErrParamRequired("Ip"))
14456	}
14457	if s.Ip != nil && len(*s.Ip) < 7 {
14458		invalidParams.Add(request.NewErrParamMinLen("Ip", 7))
14459	}
14460
14461	if invalidParams.Len() > 0 {
14462		return invalidParams
14463	}
14464	return nil
14465}
14466
14467// SetIp sets the Ip field's value.
14468func (s *TargetAddress) SetIp(v string) *TargetAddress {
14469	s.Ip = &v
14470	return s
14471}
14472
14473// SetPort sets the Port field's value.
14474func (s *TargetAddress) SetPort(v int64) *TargetAddress {
14475	s.Port = &v
14476	return s
14477}
14478
14479// The request was throttled. Try again in a few minutes.
14480type ThrottlingException struct {
14481	_            struct{}                  `type:"structure"`
14482	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
14483
14484	Message_ *string `locationName:"Message" type:"string"`
14485}
14486
14487// String returns the string representation
14488func (s ThrottlingException) String() string {
14489	return awsutil.Prettify(s)
14490}
14491
14492// GoString returns the string representation
14493func (s ThrottlingException) GoString() string {
14494	return s.String()
14495}
14496
14497func newErrorThrottlingException(v protocol.ResponseMetadata) error {
14498	return &ThrottlingException{
14499		RespMetadata: v,
14500	}
14501}
14502
14503// Code returns the exception type name.
14504func (s *ThrottlingException) Code() string {
14505	return "ThrottlingException"
14506}
14507
14508// Message returns the exception's message.
14509func (s *ThrottlingException) Message() string {
14510	if s.Message_ != nil {
14511		return *s.Message_
14512	}
14513	return ""
14514}
14515
14516// OrigErr always returns nil, satisfies awserr.Error interface.
14517func (s *ThrottlingException) OrigErr() error {
14518	return nil
14519}
14520
14521func (s *ThrottlingException) Error() string {
14522	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
14523}
14524
14525// Status code returns the HTTP status code for the request's response error.
14526func (s *ThrottlingException) StatusCode() int {
14527	return s.RespMetadata.StatusCode
14528}
14529
14530// RequestID returns the service's response RequestID for request.
14531func (s *ThrottlingException) RequestID() string {
14532	return s.RespMetadata.RequestID
14533}
14534
14535// The specified resource doesn't exist.
14536type UnknownResourceException struct {
14537	_            struct{}                  `type:"structure"`
14538	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
14539
14540	Message_ *string `locationName:"Message" type:"string"`
14541}
14542
14543// String returns the string representation
14544func (s UnknownResourceException) String() string {
14545	return awsutil.Prettify(s)
14546}
14547
14548// GoString returns the string representation
14549func (s UnknownResourceException) GoString() string {
14550	return s.String()
14551}
14552
14553func newErrorUnknownResourceException(v protocol.ResponseMetadata) error {
14554	return &UnknownResourceException{
14555		RespMetadata: v,
14556	}
14557}
14558
14559// Code returns the exception type name.
14560func (s *UnknownResourceException) Code() string {
14561	return "UnknownResourceException"
14562}
14563
14564// Message returns the exception's message.
14565func (s *UnknownResourceException) Message() string {
14566	if s.Message_ != nil {
14567		return *s.Message_
14568	}
14569	return ""
14570}
14571
14572// OrigErr always returns nil, satisfies awserr.Error interface.
14573func (s *UnknownResourceException) OrigErr() error {
14574	return nil
14575}
14576
14577func (s *UnknownResourceException) Error() string {
14578	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
14579}
14580
14581// Status code returns the HTTP status code for the request's response error.
14582func (s *UnknownResourceException) StatusCode() int {
14583	return s.RespMetadata.StatusCode
14584}
14585
14586// RequestID returns the service's response RequestID for request.
14587func (s *UnknownResourceException) RequestID() string {
14588	return s.RespMetadata.RequestID
14589}
14590
14591type UntagResourceInput struct {
14592	_ struct{} `type:"structure"`
14593
14594	// The Amazon Resource Name (ARN) for the resource that you want to remove tags
14595	// from. To get the ARN for a resource, use the applicable Get or List command:
14596	//
14597	//    * GetResolverEndpoint (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverEndpoint.html)
14598	//
14599	//    * GetResolverRule (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverRule.html)
14600	//
14601	//    * GetResolverRuleAssociation (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverRuleAssociation.html)
14602	//
14603	//    * ListResolverEndpoints (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverEndpoints.html)
14604	//
14605	//    * ListResolverRuleAssociations (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverRuleAssociations.html)
14606	//
14607	//    * ListResolverRules (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverRules.html)
14608	//
14609	// ResourceArn is a required field
14610	ResourceArn *string `min:"1" type:"string" required:"true"`
14611
14612	// The tags that you want to remove to the specified resource.
14613	//
14614	// TagKeys is a required field
14615	TagKeys []*string `type:"list" required:"true"`
14616}
14617
14618// String returns the string representation
14619func (s UntagResourceInput) String() string {
14620	return awsutil.Prettify(s)
14621}
14622
14623// GoString returns the string representation
14624func (s UntagResourceInput) GoString() string {
14625	return s.String()
14626}
14627
14628// Validate inspects the fields of the type to determine if they are valid.
14629func (s *UntagResourceInput) Validate() error {
14630	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
14631	if s.ResourceArn == nil {
14632		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
14633	}
14634	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
14635		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
14636	}
14637	if s.TagKeys == nil {
14638		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
14639	}
14640
14641	if invalidParams.Len() > 0 {
14642		return invalidParams
14643	}
14644	return nil
14645}
14646
14647// SetResourceArn sets the ResourceArn field's value.
14648func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
14649	s.ResourceArn = &v
14650	return s
14651}
14652
14653// SetTagKeys sets the TagKeys field's value.
14654func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
14655	s.TagKeys = v
14656	return s
14657}
14658
14659type UntagResourceOutput struct {
14660	_ struct{} `type:"structure"`
14661}
14662
14663// String returns the string representation
14664func (s UntagResourceOutput) String() string {
14665	return awsutil.Prettify(s)
14666}
14667
14668// GoString returns the string representation
14669func (s UntagResourceOutput) GoString() string {
14670	return s.String()
14671}
14672
14673type UpdateFirewallConfigInput struct {
14674	_ struct{} `type:"structure"`
14675
14676	// Determines how Route 53 Resolver handles queries during failures, for example
14677	// when all traffic that is sent to DNS Firewall fails to receive a reply.
14678	//
14679	//    * By default, fail open is disabled, which means the failure mode is closed.
14680	//    This approach favors security over availability. DNS Firewall blocks queries
14681	//    that it is unable to evaluate properly.
14682	//
14683	//    * If you enable this option, the failure mode is open. This approach favors
14684	//    availability over security. DNS Firewall allows queries to proceed if
14685	//    it is unable to properly evaluate them.
14686	//
14687	// This behavior is only enforced for VPCs that have at least one DNS Firewall
14688	// rule group association.
14689	//
14690	// FirewallFailOpen is a required field
14691	FirewallFailOpen *string `type:"string" required:"true" enum:"FirewallFailOpenStatus"`
14692
14693	// The ID of the VPC that the configuration is for.
14694	//
14695	// ResourceId is a required field
14696	ResourceId *string `min:"1" type:"string" required:"true"`
14697}
14698
14699// String returns the string representation
14700func (s UpdateFirewallConfigInput) String() string {
14701	return awsutil.Prettify(s)
14702}
14703
14704// GoString returns the string representation
14705func (s UpdateFirewallConfigInput) GoString() string {
14706	return s.String()
14707}
14708
14709// Validate inspects the fields of the type to determine if they are valid.
14710func (s *UpdateFirewallConfigInput) Validate() error {
14711	invalidParams := request.ErrInvalidParams{Context: "UpdateFirewallConfigInput"}
14712	if s.FirewallFailOpen == nil {
14713		invalidParams.Add(request.NewErrParamRequired("FirewallFailOpen"))
14714	}
14715	if s.ResourceId == nil {
14716		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
14717	}
14718	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
14719		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
14720	}
14721
14722	if invalidParams.Len() > 0 {
14723		return invalidParams
14724	}
14725	return nil
14726}
14727
14728// SetFirewallFailOpen sets the FirewallFailOpen field's value.
14729func (s *UpdateFirewallConfigInput) SetFirewallFailOpen(v string) *UpdateFirewallConfigInput {
14730	s.FirewallFailOpen = &v
14731	return s
14732}
14733
14734// SetResourceId sets the ResourceId field's value.
14735func (s *UpdateFirewallConfigInput) SetResourceId(v string) *UpdateFirewallConfigInput {
14736	s.ResourceId = &v
14737	return s
14738}
14739
14740type UpdateFirewallConfigOutput struct {
14741	_ struct{} `type:"structure"`
14742
14743	// Configuration of the firewall behavior provided by DNS Firewall for a single
14744	// VPC.
14745	FirewallConfig *FirewallConfig `type:"structure"`
14746}
14747
14748// String returns the string representation
14749func (s UpdateFirewallConfigOutput) String() string {
14750	return awsutil.Prettify(s)
14751}
14752
14753// GoString returns the string representation
14754func (s UpdateFirewallConfigOutput) GoString() string {
14755	return s.String()
14756}
14757
14758// SetFirewallConfig sets the FirewallConfig field's value.
14759func (s *UpdateFirewallConfigOutput) SetFirewallConfig(v *FirewallConfig) *UpdateFirewallConfigOutput {
14760	s.FirewallConfig = v
14761	return s
14762}
14763
14764type UpdateFirewallDomainsInput struct {
14765	_ struct{} `type:"structure"`
14766
14767	// A list of domains to use in the update operation.
14768	//
14769	// Each domain specification in your domain list must satisfy the following
14770	// requirements:
14771	//
14772	//    * It can optionally start with * (asterisk).
14773	//
14774	//    * With the exception of the optional starting asterisk, it must only contain
14775	//    the following characters: A-Z, a-z, 0-9, - (hyphen).
14776	//
14777	//    * It must be from 1-255 characters in length.
14778	//
14779	// Domains is a required field
14780	Domains []*string `type:"list" required:"true"`
14781
14782	// The ID of the domain list whose domains you want to update.
14783	//
14784	// FirewallDomainListId is a required field
14785	FirewallDomainListId *string `min:"1" type:"string" required:"true"`
14786
14787	// What you want DNS Firewall to do with the domains that you are providing:
14788	//
14789	//    * ADD - Add the domains to the ones that are already in the domain list.
14790	//
14791	//    * REMOVE - Search the domain list for the domains and remove them from
14792	//    the list.
14793	//
14794	//    * REPLACE - Update the domain list to exactly match the list that you
14795	//    are providing.
14796	//
14797	// Operation is a required field
14798	Operation *string `type:"string" required:"true" enum:"FirewallDomainUpdateOperation"`
14799}
14800
14801// String returns the string representation
14802func (s UpdateFirewallDomainsInput) String() string {
14803	return awsutil.Prettify(s)
14804}
14805
14806// GoString returns the string representation
14807func (s UpdateFirewallDomainsInput) GoString() string {
14808	return s.String()
14809}
14810
14811// Validate inspects the fields of the type to determine if they are valid.
14812func (s *UpdateFirewallDomainsInput) Validate() error {
14813	invalidParams := request.ErrInvalidParams{Context: "UpdateFirewallDomainsInput"}
14814	if s.Domains == nil {
14815		invalidParams.Add(request.NewErrParamRequired("Domains"))
14816	}
14817	if s.FirewallDomainListId == nil {
14818		invalidParams.Add(request.NewErrParamRequired("FirewallDomainListId"))
14819	}
14820	if s.FirewallDomainListId != nil && len(*s.FirewallDomainListId) < 1 {
14821		invalidParams.Add(request.NewErrParamMinLen("FirewallDomainListId", 1))
14822	}
14823	if s.Operation == nil {
14824		invalidParams.Add(request.NewErrParamRequired("Operation"))
14825	}
14826
14827	if invalidParams.Len() > 0 {
14828		return invalidParams
14829	}
14830	return nil
14831}
14832
14833// SetDomains sets the Domains field's value.
14834func (s *UpdateFirewallDomainsInput) SetDomains(v []*string) *UpdateFirewallDomainsInput {
14835	s.Domains = v
14836	return s
14837}
14838
14839// SetFirewallDomainListId sets the FirewallDomainListId field's value.
14840func (s *UpdateFirewallDomainsInput) SetFirewallDomainListId(v string) *UpdateFirewallDomainsInput {
14841	s.FirewallDomainListId = &v
14842	return s
14843}
14844
14845// SetOperation sets the Operation field's value.
14846func (s *UpdateFirewallDomainsInput) SetOperation(v string) *UpdateFirewallDomainsInput {
14847	s.Operation = &v
14848	return s
14849}
14850
14851type UpdateFirewallDomainsOutput struct {
14852	_ struct{} `type:"structure"`
14853
14854	// The ID of the firewall domain list that DNS Firewall just updated.
14855	Id *string `min:"1" type:"string"`
14856
14857	// The name of the domain list.
14858	Name *string `type:"string"`
14859
14860	Status *string `type:"string" enum:"FirewallDomainListStatus"`
14861
14862	// Additional information about the status of the list, if available.
14863	StatusMessage *string `type:"string"`
14864}
14865
14866// String returns the string representation
14867func (s UpdateFirewallDomainsOutput) String() string {
14868	return awsutil.Prettify(s)
14869}
14870
14871// GoString returns the string representation
14872func (s UpdateFirewallDomainsOutput) GoString() string {
14873	return s.String()
14874}
14875
14876// SetId sets the Id field's value.
14877func (s *UpdateFirewallDomainsOutput) SetId(v string) *UpdateFirewallDomainsOutput {
14878	s.Id = &v
14879	return s
14880}
14881
14882// SetName sets the Name field's value.
14883func (s *UpdateFirewallDomainsOutput) SetName(v string) *UpdateFirewallDomainsOutput {
14884	s.Name = &v
14885	return s
14886}
14887
14888// SetStatus sets the Status field's value.
14889func (s *UpdateFirewallDomainsOutput) SetStatus(v string) *UpdateFirewallDomainsOutput {
14890	s.Status = &v
14891	return s
14892}
14893
14894// SetStatusMessage sets the StatusMessage field's value.
14895func (s *UpdateFirewallDomainsOutput) SetStatusMessage(v string) *UpdateFirewallDomainsOutput {
14896	s.StatusMessage = &v
14897	return s
14898}
14899
14900type UpdateFirewallRuleGroupAssociationInput struct {
14901	_ struct{} `type:"structure"`
14902
14903	// The identifier of the FirewallRuleGroupAssociation.
14904	//
14905	// FirewallRuleGroupAssociationId is a required field
14906	FirewallRuleGroupAssociationId *string `min:"1" type:"string" required:"true"`
14907
14908	// If enabled, this setting disallows modification or removal of the association,
14909	// to help prevent against accidentally altering DNS firewall protections.
14910	MutationProtection *string `type:"string" enum:"MutationProtectionStatus"`
14911
14912	// The name of the rule group association.
14913	Name *string `type:"string"`
14914
14915	// The setting that determines the processing order of the rule group among
14916	// the rule groups that you associate with the specified VPC. DNS Firewall filters
14917	// VPC traffic starting from the rule group with the lowest numeric priority
14918	// setting.
14919	//
14920	// You must specify a unique priority for each rule group that you associate
14921	// with a single VPC. To make it easier to insert rule groups later, leave space
14922	// between the numbers, for example, use 100, 200, and so on. You can change
14923	// the priority setting for a rule group association after you create it.
14924	Priority *int64 `type:"integer"`
14925}
14926
14927// String returns the string representation
14928func (s UpdateFirewallRuleGroupAssociationInput) String() string {
14929	return awsutil.Prettify(s)
14930}
14931
14932// GoString returns the string representation
14933func (s UpdateFirewallRuleGroupAssociationInput) GoString() string {
14934	return s.String()
14935}
14936
14937// Validate inspects the fields of the type to determine if they are valid.
14938func (s *UpdateFirewallRuleGroupAssociationInput) Validate() error {
14939	invalidParams := request.ErrInvalidParams{Context: "UpdateFirewallRuleGroupAssociationInput"}
14940	if s.FirewallRuleGroupAssociationId == nil {
14941		invalidParams.Add(request.NewErrParamRequired("FirewallRuleGroupAssociationId"))
14942	}
14943	if s.FirewallRuleGroupAssociationId != nil && len(*s.FirewallRuleGroupAssociationId) < 1 {
14944		invalidParams.Add(request.NewErrParamMinLen("FirewallRuleGroupAssociationId", 1))
14945	}
14946
14947	if invalidParams.Len() > 0 {
14948		return invalidParams
14949	}
14950	return nil
14951}
14952
14953// SetFirewallRuleGroupAssociationId sets the FirewallRuleGroupAssociationId field's value.
14954func (s *UpdateFirewallRuleGroupAssociationInput) SetFirewallRuleGroupAssociationId(v string) *UpdateFirewallRuleGroupAssociationInput {
14955	s.FirewallRuleGroupAssociationId = &v
14956	return s
14957}
14958
14959// SetMutationProtection sets the MutationProtection field's value.
14960func (s *UpdateFirewallRuleGroupAssociationInput) SetMutationProtection(v string) *UpdateFirewallRuleGroupAssociationInput {
14961	s.MutationProtection = &v
14962	return s
14963}
14964
14965// SetName sets the Name field's value.
14966func (s *UpdateFirewallRuleGroupAssociationInput) SetName(v string) *UpdateFirewallRuleGroupAssociationInput {
14967	s.Name = &v
14968	return s
14969}
14970
14971// SetPriority sets the Priority field's value.
14972func (s *UpdateFirewallRuleGroupAssociationInput) SetPriority(v int64) *UpdateFirewallRuleGroupAssociationInput {
14973	s.Priority = &v
14974	return s
14975}
14976
14977type UpdateFirewallRuleGroupAssociationOutput struct {
14978	_ struct{} `type:"structure"`
14979
14980	// The association that you just updated.
14981	FirewallRuleGroupAssociation *FirewallRuleGroupAssociation `type:"structure"`
14982}
14983
14984// String returns the string representation
14985func (s UpdateFirewallRuleGroupAssociationOutput) String() string {
14986	return awsutil.Prettify(s)
14987}
14988
14989// GoString returns the string representation
14990func (s UpdateFirewallRuleGroupAssociationOutput) GoString() string {
14991	return s.String()
14992}
14993
14994// SetFirewallRuleGroupAssociation sets the FirewallRuleGroupAssociation field's value.
14995func (s *UpdateFirewallRuleGroupAssociationOutput) SetFirewallRuleGroupAssociation(v *FirewallRuleGroupAssociation) *UpdateFirewallRuleGroupAssociationOutput {
14996	s.FirewallRuleGroupAssociation = v
14997	return s
14998}
14999
15000type UpdateFirewallRuleInput struct {
15001	_ struct{} `type:"structure"`
15002
15003	// The action that DNS Firewall should take on a DNS query when it matches one
15004	// of the domains in the rule's domain list:
15005	//
15006	//    * ALLOW - Permit the request to go through.
15007	//
15008	//    * ALERT - Permit the request to go through but send an alert to the logs.
15009	//
15010	//    * BLOCK - Disallow the request. This option requires additional details
15011	//    in the rule's BlockResponse.
15012	Action *string `type:"string" enum:"Action"`
15013
15014	// The DNS record's type. This determines the format of the record value that
15015	// you provided in BlockOverrideDomain. Used for the rule action BLOCK with
15016	// a BlockResponse setting of OVERRIDE.
15017	BlockOverrideDnsType *string `type:"string" enum:"BlockOverrideDnsType"`
15018
15019	// The custom DNS record to send back in response to the query. Used for the
15020	// rule action BLOCK with a BlockResponse setting of OVERRIDE.
15021	BlockOverrideDomain *string `min:"1" type:"string"`
15022
15023	// The recommended amount of time, in seconds, for the DNS resolver or web browser
15024	// to cache the provided override record. Used for the rule action BLOCK with
15025	// a BlockResponse setting of OVERRIDE.
15026	BlockOverrideTtl *int64 `type:"integer"`
15027
15028	// The way that you want DNS Firewall to block the request. Used for the rule
15029	// action setting BLOCK.
15030	//
15031	//    * NODATA - Respond indicating that the query was successful, but no response
15032	//    is available for it.
15033	//
15034	//    * NXDOMAIN - Respond indicating that the domain name that's in the query
15035	//    doesn't exist.
15036	//
15037	//    * OVERRIDE - Provide a custom override in the response. This option requires
15038	//    custom handling details in the rule's BlockOverride* settings.
15039	BlockResponse *string `type:"string" enum:"BlockResponse"`
15040
15041	// The ID of the domain list to use in the rule.
15042	//
15043	// FirewallDomainListId is a required field
15044	FirewallDomainListId *string `min:"1" type:"string" required:"true"`
15045
15046	// The unique identifier of the firewall rule group for the rule.
15047	//
15048	// FirewallRuleGroupId is a required field
15049	FirewallRuleGroupId *string `min:"1" type:"string" required:"true"`
15050
15051	// The name of the rule.
15052	Name *string `type:"string"`
15053
15054	// The setting that determines the processing order of the rule in the rule
15055	// group. DNS Firewall processes the rules in a rule group by order of priority,
15056	// starting from the lowest setting.
15057	//
15058	// You must specify a unique priority for each rule in a rule group. To make
15059	// it easier to insert rules later, leave space between the numbers, for example,
15060	// use 100, 200, and so on. You can change the priority setting for the rules
15061	// in a rule group at any time.
15062	Priority *int64 `type:"integer"`
15063}
15064
15065// String returns the string representation
15066func (s UpdateFirewallRuleInput) String() string {
15067	return awsutil.Prettify(s)
15068}
15069
15070// GoString returns the string representation
15071func (s UpdateFirewallRuleInput) GoString() string {
15072	return s.String()
15073}
15074
15075// Validate inspects the fields of the type to determine if they are valid.
15076func (s *UpdateFirewallRuleInput) Validate() error {
15077	invalidParams := request.ErrInvalidParams{Context: "UpdateFirewallRuleInput"}
15078	if s.BlockOverrideDomain != nil && len(*s.BlockOverrideDomain) < 1 {
15079		invalidParams.Add(request.NewErrParamMinLen("BlockOverrideDomain", 1))
15080	}
15081	if s.FirewallDomainListId == nil {
15082		invalidParams.Add(request.NewErrParamRequired("FirewallDomainListId"))
15083	}
15084	if s.FirewallDomainListId != nil && len(*s.FirewallDomainListId) < 1 {
15085		invalidParams.Add(request.NewErrParamMinLen("FirewallDomainListId", 1))
15086	}
15087	if s.FirewallRuleGroupId == nil {
15088		invalidParams.Add(request.NewErrParamRequired("FirewallRuleGroupId"))
15089	}
15090	if s.FirewallRuleGroupId != nil && len(*s.FirewallRuleGroupId) < 1 {
15091		invalidParams.Add(request.NewErrParamMinLen("FirewallRuleGroupId", 1))
15092	}
15093
15094	if invalidParams.Len() > 0 {
15095		return invalidParams
15096	}
15097	return nil
15098}
15099
15100// SetAction sets the Action field's value.
15101func (s *UpdateFirewallRuleInput) SetAction(v string) *UpdateFirewallRuleInput {
15102	s.Action = &v
15103	return s
15104}
15105
15106// SetBlockOverrideDnsType sets the BlockOverrideDnsType field's value.
15107func (s *UpdateFirewallRuleInput) SetBlockOverrideDnsType(v string) *UpdateFirewallRuleInput {
15108	s.BlockOverrideDnsType = &v
15109	return s
15110}
15111
15112// SetBlockOverrideDomain sets the BlockOverrideDomain field's value.
15113func (s *UpdateFirewallRuleInput) SetBlockOverrideDomain(v string) *UpdateFirewallRuleInput {
15114	s.BlockOverrideDomain = &v
15115	return s
15116}
15117
15118// SetBlockOverrideTtl sets the BlockOverrideTtl field's value.
15119func (s *UpdateFirewallRuleInput) SetBlockOverrideTtl(v int64) *UpdateFirewallRuleInput {
15120	s.BlockOverrideTtl = &v
15121	return s
15122}
15123
15124// SetBlockResponse sets the BlockResponse field's value.
15125func (s *UpdateFirewallRuleInput) SetBlockResponse(v string) *UpdateFirewallRuleInput {
15126	s.BlockResponse = &v
15127	return s
15128}
15129
15130// SetFirewallDomainListId sets the FirewallDomainListId field's value.
15131func (s *UpdateFirewallRuleInput) SetFirewallDomainListId(v string) *UpdateFirewallRuleInput {
15132	s.FirewallDomainListId = &v
15133	return s
15134}
15135
15136// SetFirewallRuleGroupId sets the FirewallRuleGroupId field's value.
15137func (s *UpdateFirewallRuleInput) SetFirewallRuleGroupId(v string) *UpdateFirewallRuleInput {
15138	s.FirewallRuleGroupId = &v
15139	return s
15140}
15141
15142// SetName sets the Name field's value.
15143func (s *UpdateFirewallRuleInput) SetName(v string) *UpdateFirewallRuleInput {
15144	s.Name = &v
15145	return s
15146}
15147
15148// SetPriority sets the Priority field's value.
15149func (s *UpdateFirewallRuleInput) SetPriority(v int64) *UpdateFirewallRuleInput {
15150	s.Priority = &v
15151	return s
15152}
15153
15154type UpdateFirewallRuleOutput struct {
15155	_ struct{} `type:"structure"`
15156
15157	// The firewall rule that you just updated.
15158	FirewallRule *FirewallRule `type:"structure"`
15159}
15160
15161// String returns the string representation
15162func (s UpdateFirewallRuleOutput) String() string {
15163	return awsutil.Prettify(s)
15164}
15165
15166// GoString returns the string representation
15167func (s UpdateFirewallRuleOutput) GoString() string {
15168	return s.String()
15169}
15170
15171// SetFirewallRule sets the FirewallRule field's value.
15172func (s *UpdateFirewallRuleOutput) SetFirewallRule(v *FirewallRule) *UpdateFirewallRuleOutput {
15173	s.FirewallRule = v
15174	return s
15175}
15176
15177type UpdateResolverDnssecConfigInput struct {
15178	_ struct{} `type:"structure"`
15179
15180	// The ID of the virtual private cloud (VPC) that you're updating the DNSSEC
15181	// validation status for.
15182	//
15183	// ResourceId is a required field
15184	ResourceId *string `min:"1" type:"string" required:"true"`
15185
15186	// The new value that you are specifying for DNSSEC validation for the VPC.
15187	// The value can be ENABLE or DISABLE. Be aware that it can take time for a
15188	// validation status change to be completed.
15189	//
15190	// Validation is a required field
15191	Validation *string `type:"string" required:"true" enum:"Validation"`
15192}
15193
15194// String returns the string representation
15195func (s UpdateResolverDnssecConfigInput) String() string {
15196	return awsutil.Prettify(s)
15197}
15198
15199// GoString returns the string representation
15200func (s UpdateResolverDnssecConfigInput) GoString() string {
15201	return s.String()
15202}
15203
15204// Validate inspects the fields of the type to determine if they are valid.
15205func (s *UpdateResolverDnssecConfigInput) Validate() error {
15206	invalidParams := request.ErrInvalidParams{Context: "UpdateResolverDnssecConfigInput"}
15207	if s.ResourceId == nil {
15208		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
15209	}
15210	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
15211		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
15212	}
15213	if s.Validation == nil {
15214		invalidParams.Add(request.NewErrParamRequired("Validation"))
15215	}
15216
15217	if invalidParams.Len() > 0 {
15218		return invalidParams
15219	}
15220	return nil
15221}
15222
15223// SetResourceId sets the ResourceId field's value.
15224func (s *UpdateResolverDnssecConfigInput) SetResourceId(v string) *UpdateResolverDnssecConfigInput {
15225	s.ResourceId = &v
15226	return s
15227}
15228
15229// SetValidation sets the Validation field's value.
15230func (s *UpdateResolverDnssecConfigInput) SetValidation(v string) *UpdateResolverDnssecConfigInput {
15231	s.Validation = &v
15232	return s
15233}
15234
15235type UpdateResolverDnssecConfigOutput struct {
15236	_ struct{} `type:"structure"`
15237
15238	// A complex type that contains settings for the specified DNSSEC configuration.
15239	ResolverDNSSECConfig *ResolverDnssecConfig `type:"structure"`
15240}
15241
15242// String returns the string representation
15243func (s UpdateResolverDnssecConfigOutput) String() string {
15244	return awsutil.Prettify(s)
15245}
15246
15247// GoString returns the string representation
15248func (s UpdateResolverDnssecConfigOutput) GoString() string {
15249	return s.String()
15250}
15251
15252// SetResolverDNSSECConfig sets the ResolverDNSSECConfig field's value.
15253func (s *UpdateResolverDnssecConfigOutput) SetResolverDNSSECConfig(v *ResolverDnssecConfig) *UpdateResolverDnssecConfigOutput {
15254	s.ResolverDNSSECConfig = v
15255	return s
15256}
15257
15258type UpdateResolverEndpointInput struct {
15259	_ struct{} `type:"structure"`
15260
15261	// The name of the Resolver endpoint that you want to update.
15262	Name *string `type:"string"`
15263
15264	// The ID of the Resolver endpoint that you want to update.
15265	//
15266	// ResolverEndpointId is a required field
15267	ResolverEndpointId *string `min:"1" type:"string" required:"true"`
15268}
15269
15270// String returns the string representation
15271func (s UpdateResolverEndpointInput) String() string {
15272	return awsutil.Prettify(s)
15273}
15274
15275// GoString returns the string representation
15276func (s UpdateResolverEndpointInput) GoString() string {
15277	return s.String()
15278}
15279
15280// Validate inspects the fields of the type to determine if they are valid.
15281func (s *UpdateResolverEndpointInput) Validate() error {
15282	invalidParams := request.ErrInvalidParams{Context: "UpdateResolverEndpointInput"}
15283	if s.ResolverEndpointId == nil {
15284		invalidParams.Add(request.NewErrParamRequired("ResolverEndpointId"))
15285	}
15286	if s.ResolverEndpointId != nil && len(*s.ResolverEndpointId) < 1 {
15287		invalidParams.Add(request.NewErrParamMinLen("ResolverEndpointId", 1))
15288	}
15289
15290	if invalidParams.Len() > 0 {
15291		return invalidParams
15292	}
15293	return nil
15294}
15295
15296// SetName sets the Name field's value.
15297func (s *UpdateResolverEndpointInput) SetName(v string) *UpdateResolverEndpointInput {
15298	s.Name = &v
15299	return s
15300}
15301
15302// SetResolverEndpointId sets the ResolverEndpointId field's value.
15303func (s *UpdateResolverEndpointInput) SetResolverEndpointId(v string) *UpdateResolverEndpointInput {
15304	s.ResolverEndpointId = &v
15305	return s
15306}
15307
15308type UpdateResolverEndpointOutput struct {
15309	_ struct{} `type:"structure"`
15310
15311	// The response to an UpdateResolverEndpoint request.
15312	ResolverEndpoint *ResolverEndpoint `type:"structure"`
15313}
15314
15315// String returns the string representation
15316func (s UpdateResolverEndpointOutput) String() string {
15317	return awsutil.Prettify(s)
15318}
15319
15320// GoString returns the string representation
15321func (s UpdateResolverEndpointOutput) GoString() string {
15322	return s.String()
15323}
15324
15325// SetResolverEndpoint sets the ResolverEndpoint field's value.
15326func (s *UpdateResolverEndpointOutput) SetResolverEndpoint(v *ResolverEndpoint) *UpdateResolverEndpointOutput {
15327	s.ResolverEndpoint = v
15328	return s
15329}
15330
15331type UpdateResolverRuleInput struct {
15332	_ struct{} `type:"structure"`
15333
15334	// The new settings for the Resolver rule.
15335	//
15336	// Config is a required field
15337	Config *ResolverRuleConfig `type:"structure" required:"true"`
15338
15339	// The ID of the Resolver rule that you want to update.
15340	//
15341	// ResolverRuleId is a required field
15342	ResolverRuleId *string `min:"1" type:"string" required:"true"`
15343}
15344
15345// String returns the string representation
15346func (s UpdateResolverRuleInput) String() string {
15347	return awsutil.Prettify(s)
15348}
15349
15350// GoString returns the string representation
15351func (s UpdateResolverRuleInput) GoString() string {
15352	return s.String()
15353}
15354
15355// Validate inspects the fields of the type to determine if they are valid.
15356func (s *UpdateResolverRuleInput) Validate() error {
15357	invalidParams := request.ErrInvalidParams{Context: "UpdateResolverRuleInput"}
15358	if s.Config == nil {
15359		invalidParams.Add(request.NewErrParamRequired("Config"))
15360	}
15361	if s.ResolverRuleId == nil {
15362		invalidParams.Add(request.NewErrParamRequired("ResolverRuleId"))
15363	}
15364	if s.ResolverRuleId != nil && len(*s.ResolverRuleId) < 1 {
15365		invalidParams.Add(request.NewErrParamMinLen("ResolverRuleId", 1))
15366	}
15367	if s.Config != nil {
15368		if err := s.Config.Validate(); err != nil {
15369			invalidParams.AddNested("Config", err.(request.ErrInvalidParams))
15370		}
15371	}
15372
15373	if invalidParams.Len() > 0 {
15374		return invalidParams
15375	}
15376	return nil
15377}
15378
15379// SetConfig sets the Config field's value.
15380func (s *UpdateResolverRuleInput) SetConfig(v *ResolverRuleConfig) *UpdateResolverRuleInput {
15381	s.Config = v
15382	return s
15383}
15384
15385// SetResolverRuleId sets the ResolverRuleId field's value.
15386func (s *UpdateResolverRuleInput) SetResolverRuleId(v string) *UpdateResolverRuleInput {
15387	s.ResolverRuleId = &v
15388	return s
15389}
15390
15391type UpdateResolverRuleOutput struct {
15392	_ struct{} `type:"structure"`
15393
15394	// The response to an UpdateResolverRule request.
15395	ResolverRule *ResolverRule `type:"structure"`
15396}
15397
15398// String returns the string representation
15399func (s UpdateResolverRuleOutput) String() string {
15400	return awsutil.Prettify(s)
15401}
15402
15403// GoString returns the string representation
15404func (s UpdateResolverRuleOutput) GoString() string {
15405	return s.String()
15406}
15407
15408// SetResolverRule sets the ResolverRule field's value.
15409func (s *UpdateResolverRuleOutput) SetResolverRule(v *ResolverRule) *UpdateResolverRuleOutput {
15410	s.ResolverRule = v
15411	return s
15412}
15413
15414type ValidationException struct {
15415	_            struct{}                  `type:"structure"`
15416	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
15417
15418	Message_ *string `locationName:"Message" type:"string"`
15419}
15420
15421// String returns the string representation
15422func (s ValidationException) String() string {
15423	return awsutil.Prettify(s)
15424}
15425
15426// GoString returns the string representation
15427func (s ValidationException) GoString() string {
15428	return s.String()
15429}
15430
15431func newErrorValidationException(v protocol.ResponseMetadata) error {
15432	return &ValidationException{
15433		RespMetadata: v,
15434	}
15435}
15436
15437// Code returns the exception type name.
15438func (s *ValidationException) Code() string {
15439	return "ValidationException"
15440}
15441
15442// Message returns the exception's message.
15443func (s *ValidationException) Message() string {
15444	if s.Message_ != nil {
15445		return *s.Message_
15446	}
15447	return ""
15448}
15449
15450// OrigErr always returns nil, satisfies awserr.Error interface.
15451func (s *ValidationException) OrigErr() error {
15452	return nil
15453}
15454
15455func (s *ValidationException) Error() string {
15456	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
15457}
15458
15459// Status code returns the HTTP status code for the request's response error.
15460func (s *ValidationException) StatusCode() int {
15461	return s.RespMetadata.StatusCode
15462}
15463
15464// RequestID returns the service's response RequestID for request.
15465func (s *ValidationException) RequestID() string {
15466	return s.RespMetadata.RequestID
15467}
15468
15469const (
15470	// ActionAllow is a Action enum value
15471	ActionAllow = "ALLOW"
15472
15473	// ActionBlock is a Action enum value
15474	ActionBlock = "BLOCK"
15475
15476	// ActionAlert is a Action enum value
15477	ActionAlert = "ALERT"
15478)
15479
15480// Action_Values returns all elements of the Action enum
15481func Action_Values() []string {
15482	return []string{
15483		ActionAllow,
15484		ActionBlock,
15485		ActionAlert,
15486	}
15487}
15488
15489const (
15490	// BlockOverrideDnsTypeCname is a BlockOverrideDnsType enum value
15491	BlockOverrideDnsTypeCname = "CNAME"
15492)
15493
15494// BlockOverrideDnsType_Values returns all elements of the BlockOverrideDnsType enum
15495func BlockOverrideDnsType_Values() []string {
15496	return []string{
15497		BlockOverrideDnsTypeCname,
15498	}
15499}
15500
15501const (
15502	// BlockResponseNodata is a BlockResponse enum value
15503	BlockResponseNodata = "NODATA"
15504
15505	// BlockResponseNxdomain is a BlockResponse enum value
15506	BlockResponseNxdomain = "NXDOMAIN"
15507
15508	// BlockResponseOverride is a BlockResponse enum value
15509	BlockResponseOverride = "OVERRIDE"
15510)
15511
15512// BlockResponse_Values returns all elements of the BlockResponse enum
15513func BlockResponse_Values() []string {
15514	return []string{
15515		BlockResponseNodata,
15516		BlockResponseNxdomain,
15517		BlockResponseOverride,
15518	}
15519}
15520
15521const (
15522	// FirewallDomainImportOperationReplace is a FirewallDomainImportOperation enum value
15523	FirewallDomainImportOperationReplace = "REPLACE"
15524)
15525
15526// FirewallDomainImportOperation_Values returns all elements of the FirewallDomainImportOperation enum
15527func FirewallDomainImportOperation_Values() []string {
15528	return []string{
15529		FirewallDomainImportOperationReplace,
15530	}
15531}
15532
15533const (
15534	// FirewallDomainListStatusComplete is a FirewallDomainListStatus enum value
15535	FirewallDomainListStatusComplete = "COMPLETE"
15536
15537	// FirewallDomainListStatusCompleteImportFailed is a FirewallDomainListStatus enum value
15538	FirewallDomainListStatusCompleteImportFailed = "COMPLETE_IMPORT_FAILED"
15539
15540	// FirewallDomainListStatusImporting is a FirewallDomainListStatus enum value
15541	FirewallDomainListStatusImporting = "IMPORTING"
15542
15543	// FirewallDomainListStatusDeleting is a FirewallDomainListStatus enum value
15544	FirewallDomainListStatusDeleting = "DELETING"
15545
15546	// FirewallDomainListStatusUpdating is a FirewallDomainListStatus enum value
15547	FirewallDomainListStatusUpdating = "UPDATING"
15548)
15549
15550// FirewallDomainListStatus_Values returns all elements of the FirewallDomainListStatus enum
15551func FirewallDomainListStatus_Values() []string {
15552	return []string{
15553		FirewallDomainListStatusComplete,
15554		FirewallDomainListStatusCompleteImportFailed,
15555		FirewallDomainListStatusImporting,
15556		FirewallDomainListStatusDeleting,
15557		FirewallDomainListStatusUpdating,
15558	}
15559}
15560
15561const (
15562	// FirewallDomainUpdateOperationAdd is a FirewallDomainUpdateOperation enum value
15563	FirewallDomainUpdateOperationAdd = "ADD"
15564
15565	// FirewallDomainUpdateOperationRemove is a FirewallDomainUpdateOperation enum value
15566	FirewallDomainUpdateOperationRemove = "REMOVE"
15567
15568	// FirewallDomainUpdateOperationReplace is a FirewallDomainUpdateOperation enum value
15569	FirewallDomainUpdateOperationReplace = "REPLACE"
15570)
15571
15572// FirewallDomainUpdateOperation_Values returns all elements of the FirewallDomainUpdateOperation enum
15573func FirewallDomainUpdateOperation_Values() []string {
15574	return []string{
15575		FirewallDomainUpdateOperationAdd,
15576		FirewallDomainUpdateOperationRemove,
15577		FirewallDomainUpdateOperationReplace,
15578	}
15579}
15580
15581const (
15582	// FirewallFailOpenStatusEnabled is a FirewallFailOpenStatus enum value
15583	FirewallFailOpenStatusEnabled = "ENABLED"
15584
15585	// FirewallFailOpenStatusDisabled is a FirewallFailOpenStatus enum value
15586	FirewallFailOpenStatusDisabled = "DISABLED"
15587)
15588
15589// FirewallFailOpenStatus_Values returns all elements of the FirewallFailOpenStatus enum
15590func FirewallFailOpenStatus_Values() []string {
15591	return []string{
15592		FirewallFailOpenStatusEnabled,
15593		FirewallFailOpenStatusDisabled,
15594	}
15595}
15596
15597const (
15598	// FirewallRuleGroupAssociationStatusComplete is a FirewallRuleGroupAssociationStatus enum value
15599	FirewallRuleGroupAssociationStatusComplete = "COMPLETE"
15600
15601	// FirewallRuleGroupAssociationStatusDeleting is a FirewallRuleGroupAssociationStatus enum value
15602	FirewallRuleGroupAssociationStatusDeleting = "DELETING"
15603
15604	// FirewallRuleGroupAssociationStatusUpdating is a FirewallRuleGroupAssociationStatus enum value
15605	FirewallRuleGroupAssociationStatusUpdating = "UPDATING"
15606)
15607
15608// FirewallRuleGroupAssociationStatus_Values returns all elements of the FirewallRuleGroupAssociationStatus enum
15609func FirewallRuleGroupAssociationStatus_Values() []string {
15610	return []string{
15611		FirewallRuleGroupAssociationStatusComplete,
15612		FirewallRuleGroupAssociationStatusDeleting,
15613		FirewallRuleGroupAssociationStatusUpdating,
15614	}
15615}
15616
15617const (
15618	// FirewallRuleGroupStatusComplete is a FirewallRuleGroupStatus enum value
15619	FirewallRuleGroupStatusComplete = "COMPLETE"
15620
15621	// FirewallRuleGroupStatusDeleting is a FirewallRuleGroupStatus enum value
15622	FirewallRuleGroupStatusDeleting = "DELETING"
15623
15624	// FirewallRuleGroupStatusUpdating is a FirewallRuleGroupStatus enum value
15625	FirewallRuleGroupStatusUpdating = "UPDATING"
15626)
15627
15628// FirewallRuleGroupStatus_Values returns all elements of the FirewallRuleGroupStatus enum
15629func FirewallRuleGroupStatus_Values() []string {
15630	return []string{
15631		FirewallRuleGroupStatusComplete,
15632		FirewallRuleGroupStatusDeleting,
15633		FirewallRuleGroupStatusUpdating,
15634	}
15635}
15636
15637const (
15638	// IpAddressStatusCreating is a IpAddressStatus enum value
15639	IpAddressStatusCreating = "CREATING"
15640
15641	// IpAddressStatusFailedCreation is a IpAddressStatus enum value
15642	IpAddressStatusFailedCreation = "FAILED_CREATION"
15643
15644	// IpAddressStatusAttaching is a IpAddressStatus enum value
15645	IpAddressStatusAttaching = "ATTACHING"
15646
15647	// IpAddressStatusAttached is a IpAddressStatus enum value
15648	IpAddressStatusAttached = "ATTACHED"
15649
15650	// IpAddressStatusRemapDetaching is a IpAddressStatus enum value
15651	IpAddressStatusRemapDetaching = "REMAP_DETACHING"
15652
15653	// IpAddressStatusRemapAttaching is a IpAddressStatus enum value
15654	IpAddressStatusRemapAttaching = "REMAP_ATTACHING"
15655
15656	// IpAddressStatusDetaching is a IpAddressStatus enum value
15657	IpAddressStatusDetaching = "DETACHING"
15658
15659	// IpAddressStatusFailedResourceGone is a IpAddressStatus enum value
15660	IpAddressStatusFailedResourceGone = "FAILED_RESOURCE_GONE"
15661
15662	// IpAddressStatusDeleting is a IpAddressStatus enum value
15663	IpAddressStatusDeleting = "DELETING"
15664
15665	// IpAddressStatusDeleteFailedFasExpired is a IpAddressStatus enum value
15666	IpAddressStatusDeleteFailedFasExpired = "DELETE_FAILED_FAS_EXPIRED"
15667)
15668
15669// IpAddressStatus_Values returns all elements of the IpAddressStatus enum
15670func IpAddressStatus_Values() []string {
15671	return []string{
15672		IpAddressStatusCreating,
15673		IpAddressStatusFailedCreation,
15674		IpAddressStatusAttaching,
15675		IpAddressStatusAttached,
15676		IpAddressStatusRemapDetaching,
15677		IpAddressStatusRemapAttaching,
15678		IpAddressStatusDetaching,
15679		IpAddressStatusFailedResourceGone,
15680		IpAddressStatusDeleting,
15681		IpAddressStatusDeleteFailedFasExpired,
15682	}
15683}
15684
15685const (
15686	// MutationProtectionStatusEnabled is a MutationProtectionStatus enum value
15687	MutationProtectionStatusEnabled = "ENABLED"
15688
15689	// MutationProtectionStatusDisabled is a MutationProtectionStatus enum value
15690	MutationProtectionStatusDisabled = "DISABLED"
15691)
15692
15693// MutationProtectionStatus_Values returns all elements of the MutationProtectionStatus enum
15694func MutationProtectionStatus_Values() []string {
15695	return []string{
15696		MutationProtectionStatusEnabled,
15697		MutationProtectionStatusDisabled,
15698	}
15699}
15700
15701const (
15702	// ResolverDNSSECValidationStatusEnabling is a ResolverDNSSECValidationStatus enum value
15703	ResolverDNSSECValidationStatusEnabling = "ENABLING"
15704
15705	// ResolverDNSSECValidationStatusEnabled is a ResolverDNSSECValidationStatus enum value
15706	ResolverDNSSECValidationStatusEnabled = "ENABLED"
15707
15708	// ResolverDNSSECValidationStatusDisabling is a ResolverDNSSECValidationStatus enum value
15709	ResolverDNSSECValidationStatusDisabling = "DISABLING"
15710
15711	// ResolverDNSSECValidationStatusDisabled is a ResolverDNSSECValidationStatus enum value
15712	ResolverDNSSECValidationStatusDisabled = "DISABLED"
15713)
15714
15715// ResolverDNSSECValidationStatus_Values returns all elements of the ResolverDNSSECValidationStatus enum
15716func ResolverDNSSECValidationStatus_Values() []string {
15717	return []string{
15718		ResolverDNSSECValidationStatusEnabling,
15719		ResolverDNSSECValidationStatusEnabled,
15720		ResolverDNSSECValidationStatusDisabling,
15721		ResolverDNSSECValidationStatusDisabled,
15722	}
15723}
15724
15725const (
15726	// ResolverEndpointDirectionInbound is a ResolverEndpointDirection enum value
15727	ResolverEndpointDirectionInbound = "INBOUND"
15728
15729	// ResolverEndpointDirectionOutbound is a ResolverEndpointDirection enum value
15730	ResolverEndpointDirectionOutbound = "OUTBOUND"
15731)
15732
15733// ResolverEndpointDirection_Values returns all elements of the ResolverEndpointDirection enum
15734func ResolverEndpointDirection_Values() []string {
15735	return []string{
15736		ResolverEndpointDirectionInbound,
15737		ResolverEndpointDirectionOutbound,
15738	}
15739}
15740
15741const (
15742	// ResolverEndpointStatusCreating is a ResolverEndpointStatus enum value
15743	ResolverEndpointStatusCreating = "CREATING"
15744
15745	// ResolverEndpointStatusOperational is a ResolverEndpointStatus enum value
15746	ResolverEndpointStatusOperational = "OPERATIONAL"
15747
15748	// ResolverEndpointStatusUpdating is a ResolverEndpointStatus enum value
15749	ResolverEndpointStatusUpdating = "UPDATING"
15750
15751	// ResolverEndpointStatusAutoRecovering is a ResolverEndpointStatus enum value
15752	ResolverEndpointStatusAutoRecovering = "AUTO_RECOVERING"
15753
15754	// ResolverEndpointStatusActionNeeded is a ResolverEndpointStatus enum value
15755	ResolverEndpointStatusActionNeeded = "ACTION_NEEDED"
15756
15757	// ResolverEndpointStatusDeleting is a ResolverEndpointStatus enum value
15758	ResolverEndpointStatusDeleting = "DELETING"
15759)
15760
15761// ResolverEndpointStatus_Values returns all elements of the ResolverEndpointStatus enum
15762func ResolverEndpointStatus_Values() []string {
15763	return []string{
15764		ResolverEndpointStatusCreating,
15765		ResolverEndpointStatusOperational,
15766		ResolverEndpointStatusUpdating,
15767		ResolverEndpointStatusAutoRecovering,
15768		ResolverEndpointStatusActionNeeded,
15769		ResolverEndpointStatusDeleting,
15770	}
15771}
15772
15773const (
15774	// ResolverQueryLogConfigAssociationErrorNone is a ResolverQueryLogConfigAssociationError enum value
15775	ResolverQueryLogConfigAssociationErrorNone = "NONE"
15776
15777	// ResolverQueryLogConfigAssociationErrorDestinationNotFound is a ResolverQueryLogConfigAssociationError enum value
15778	ResolverQueryLogConfigAssociationErrorDestinationNotFound = "DESTINATION_NOT_FOUND"
15779
15780	// ResolverQueryLogConfigAssociationErrorAccessDenied is a ResolverQueryLogConfigAssociationError enum value
15781	ResolverQueryLogConfigAssociationErrorAccessDenied = "ACCESS_DENIED"
15782
15783	// ResolverQueryLogConfigAssociationErrorInternalServiceError is a ResolverQueryLogConfigAssociationError enum value
15784	ResolverQueryLogConfigAssociationErrorInternalServiceError = "INTERNAL_SERVICE_ERROR"
15785)
15786
15787// ResolverQueryLogConfigAssociationError_Values returns all elements of the ResolverQueryLogConfigAssociationError enum
15788func ResolverQueryLogConfigAssociationError_Values() []string {
15789	return []string{
15790		ResolverQueryLogConfigAssociationErrorNone,
15791		ResolverQueryLogConfigAssociationErrorDestinationNotFound,
15792		ResolverQueryLogConfigAssociationErrorAccessDenied,
15793		ResolverQueryLogConfigAssociationErrorInternalServiceError,
15794	}
15795}
15796
15797const (
15798	// ResolverQueryLogConfigAssociationStatusCreating is a ResolverQueryLogConfigAssociationStatus enum value
15799	ResolverQueryLogConfigAssociationStatusCreating = "CREATING"
15800
15801	// ResolverQueryLogConfigAssociationStatusActive is a ResolverQueryLogConfigAssociationStatus enum value
15802	ResolverQueryLogConfigAssociationStatusActive = "ACTIVE"
15803
15804	// ResolverQueryLogConfigAssociationStatusActionNeeded is a ResolverQueryLogConfigAssociationStatus enum value
15805	ResolverQueryLogConfigAssociationStatusActionNeeded = "ACTION_NEEDED"
15806
15807	// ResolverQueryLogConfigAssociationStatusDeleting is a ResolverQueryLogConfigAssociationStatus enum value
15808	ResolverQueryLogConfigAssociationStatusDeleting = "DELETING"
15809
15810	// ResolverQueryLogConfigAssociationStatusFailed is a ResolverQueryLogConfigAssociationStatus enum value
15811	ResolverQueryLogConfigAssociationStatusFailed = "FAILED"
15812)
15813
15814// ResolverQueryLogConfigAssociationStatus_Values returns all elements of the ResolverQueryLogConfigAssociationStatus enum
15815func ResolverQueryLogConfigAssociationStatus_Values() []string {
15816	return []string{
15817		ResolverQueryLogConfigAssociationStatusCreating,
15818		ResolverQueryLogConfigAssociationStatusActive,
15819		ResolverQueryLogConfigAssociationStatusActionNeeded,
15820		ResolverQueryLogConfigAssociationStatusDeleting,
15821		ResolverQueryLogConfigAssociationStatusFailed,
15822	}
15823}
15824
15825const (
15826	// ResolverQueryLogConfigStatusCreating is a ResolverQueryLogConfigStatus enum value
15827	ResolverQueryLogConfigStatusCreating = "CREATING"
15828
15829	// ResolverQueryLogConfigStatusCreated is a ResolverQueryLogConfigStatus enum value
15830	ResolverQueryLogConfigStatusCreated = "CREATED"
15831
15832	// ResolverQueryLogConfigStatusDeleting is a ResolverQueryLogConfigStatus enum value
15833	ResolverQueryLogConfigStatusDeleting = "DELETING"
15834
15835	// ResolverQueryLogConfigStatusFailed is a ResolverQueryLogConfigStatus enum value
15836	ResolverQueryLogConfigStatusFailed = "FAILED"
15837)
15838
15839// ResolverQueryLogConfigStatus_Values returns all elements of the ResolverQueryLogConfigStatus enum
15840func ResolverQueryLogConfigStatus_Values() []string {
15841	return []string{
15842		ResolverQueryLogConfigStatusCreating,
15843		ResolverQueryLogConfigStatusCreated,
15844		ResolverQueryLogConfigStatusDeleting,
15845		ResolverQueryLogConfigStatusFailed,
15846	}
15847}
15848
15849const (
15850	// ResolverRuleAssociationStatusCreating is a ResolverRuleAssociationStatus enum value
15851	ResolverRuleAssociationStatusCreating = "CREATING"
15852
15853	// ResolverRuleAssociationStatusComplete is a ResolverRuleAssociationStatus enum value
15854	ResolverRuleAssociationStatusComplete = "COMPLETE"
15855
15856	// ResolverRuleAssociationStatusDeleting is a ResolverRuleAssociationStatus enum value
15857	ResolverRuleAssociationStatusDeleting = "DELETING"
15858
15859	// ResolverRuleAssociationStatusFailed is a ResolverRuleAssociationStatus enum value
15860	ResolverRuleAssociationStatusFailed = "FAILED"
15861
15862	// ResolverRuleAssociationStatusOverridden is a ResolverRuleAssociationStatus enum value
15863	ResolverRuleAssociationStatusOverridden = "OVERRIDDEN"
15864)
15865
15866// ResolverRuleAssociationStatus_Values returns all elements of the ResolverRuleAssociationStatus enum
15867func ResolverRuleAssociationStatus_Values() []string {
15868	return []string{
15869		ResolverRuleAssociationStatusCreating,
15870		ResolverRuleAssociationStatusComplete,
15871		ResolverRuleAssociationStatusDeleting,
15872		ResolverRuleAssociationStatusFailed,
15873		ResolverRuleAssociationStatusOverridden,
15874	}
15875}
15876
15877const (
15878	// ResolverRuleStatusComplete is a ResolverRuleStatus enum value
15879	ResolverRuleStatusComplete = "COMPLETE"
15880
15881	// ResolverRuleStatusDeleting is a ResolverRuleStatus enum value
15882	ResolverRuleStatusDeleting = "DELETING"
15883
15884	// ResolverRuleStatusUpdating is a ResolverRuleStatus enum value
15885	ResolverRuleStatusUpdating = "UPDATING"
15886
15887	// ResolverRuleStatusFailed is a ResolverRuleStatus enum value
15888	ResolverRuleStatusFailed = "FAILED"
15889)
15890
15891// ResolverRuleStatus_Values returns all elements of the ResolverRuleStatus enum
15892func ResolverRuleStatus_Values() []string {
15893	return []string{
15894		ResolverRuleStatusComplete,
15895		ResolverRuleStatusDeleting,
15896		ResolverRuleStatusUpdating,
15897		ResolverRuleStatusFailed,
15898	}
15899}
15900
15901const (
15902	// RuleTypeOptionForward is a RuleTypeOption enum value
15903	RuleTypeOptionForward = "FORWARD"
15904
15905	// RuleTypeOptionSystem is a RuleTypeOption enum value
15906	RuleTypeOptionSystem = "SYSTEM"
15907
15908	// RuleTypeOptionRecursive is a RuleTypeOption enum value
15909	RuleTypeOptionRecursive = "RECURSIVE"
15910)
15911
15912// RuleTypeOption_Values returns all elements of the RuleTypeOption enum
15913func RuleTypeOption_Values() []string {
15914	return []string{
15915		RuleTypeOptionForward,
15916		RuleTypeOptionSystem,
15917		RuleTypeOptionRecursive,
15918	}
15919}
15920
15921const (
15922	// ShareStatusNotShared is a ShareStatus enum value
15923	ShareStatusNotShared = "NOT_SHARED"
15924
15925	// ShareStatusSharedWithMe is a ShareStatus enum value
15926	ShareStatusSharedWithMe = "SHARED_WITH_ME"
15927
15928	// ShareStatusSharedByMe is a ShareStatus enum value
15929	ShareStatusSharedByMe = "SHARED_BY_ME"
15930)
15931
15932// ShareStatus_Values returns all elements of the ShareStatus enum
15933func ShareStatus_Values() []string {
15934	return []string{
15935		ShareStatusNotShared,
15936		ShareStatusSharedWithMe,
15937		ShareStatusSharedByMe,
15938	}
15939}
15940
15941const (
15942	// SortOrderAscending is a SortOrder enum value
15943	SortOrderAscending = "ASCENDING"
15944
15945	// SortOrderDescending is a SortOrder enum value
15946	SortOrderDescending = "DESCENDING"
15947)
15948
15949// SortOrder_Values returns all elements of the SortOrder enum
15950func SortOrder_Values() []string {
15951	return []string{
15952		SortOrderAscending,
15953		SortOrderDescending,
15954	}
15955}
15956
15957const (
15958	// ValidationEnable is a Validation enum value
15959	ValidationEnable = "ENABLE"
15960
15961	// ValidationDisable is a Validation enum value
15962	ValidationDisable = "DISABLE"
15963)
15964
15965// Validation_Values returns all elements of the Validation enum
15966func Validation_Values() []string {
15967	return []string{
15968		ValidationEnable,
15969		ValidationDisable,
15970	}
15971}
15972