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 opGetResolverConfig = "GetResolverConfig"
2446
2447// GetResolverConfigRequest generates a "aws/request.Request" representing the
2448// client's request for the GetResolverConfig 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 GetResolverConfig for more information on using the GetResolverConfig
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 GetResolverConfigRequest method.
2463//    req, resp := client.GetResolverConfigRequest(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/GetResolverConfig
2471func (c *Route53Resolver) GetResolverConfigRequest(input *GetResolverConfigInput) (req *request.Request, output *GetResolverConfigOutput) {
2472	op := &request.Operation{
2473		Name:       opGetResolverConfig,
2474		HTTPMethod: "POST",
2475		HTTPPath:   "/",
2476	}
2477
2478	if input == nil {
2479		input = &GetResolverConfigInput{}
2480	}
2481
2482	output = &GetResolverConfigOutput{}
2483	req = c.newRequest(op, input, output)
2484	return
2485}
2486
2487// GetResolverConfig API operation for Amazon Route 53 Resolver.
2488//
2489// Retrieves the behavior configuration of Route 53 Resolver behavior for a
2490// single VPC from Amazon Virtual Private Cloud.
2491//
2492// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2493// with awserr.Error's Code and Message methods to get detailed information about
2494// the error.
2495//
2496// See the AWS API reference guide for Amazon Route 53 Resolver's
2497// API operation GetResolverConfig for usage and error information.
2498//
2499// Returned Error Types:
2500//   * ResourceNotFoundException
2501//   The specified resource doesn't exist.
2502//
2503//   * InvalidParameterException
2504//   One or more parameters in this request are not valid.
2505//
2506//   * InternalServiceErrorException
2507//   We encountered an unknown error. Try again in a few minutes.
2508//
2509//   * ThrottlingException
2510//   The request was throttled. Try again in a few minutes.
2511//
2512//   * AccessDeniedException
2513//   The current account doesn't have the IAM permissions required to perform
2514//   the specified Resolver operation.
2515//
2516// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverConfig
2517func (c *Route53Resolver) GetResolverConfig(input *GetResolverConfigInput) (*GetResolverConfigOutput, error) {
2518	req, out := c.GetResolverConfigRequest(input)
2519	return out, req.Send()
2520}
2521
2522// GetResolverConfigWithContext is the same as GetResolverConfig with the addition of
2523// the ability to pass a context and additional request options.
2524//
2525// See GetResolverConfig for details on how to use this API operation.
2526//
2527// The context must be non-nil and will be used for request cancellation. If
2528// the context is nil a panic will occur. In the future the SDK may create
2529// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2530// for more information on using Contexts.
2531func (c *Route53Resolver) GetResolverConfigWithContext(ctx aws.Context, input *GetResolverConfigInput, opts ...request.Option) (*GetResolverConfigOutput, error) {
2532	req, out := c.GetResolverConfigRequest(input)
2533	req.SetContext(ctx)
2534	req.ApplyOptions(opts...)
2535	return out, req.Send()
2536}
2537
2538const opGetResolverDnssecConfig = "GetResolverDnssecConfig"
2539
2540// GetResolverDnssecConfigRequest generates a "aws/request.Request" representing the
2541// client's request for the GetResolverDnssecConfig operation. The "output" return
2542// value will be populated with the request's response once the request completes
2543// successfully.
2544//
2545// Use "Send" method on the returned Request to send the API call to the service.
2546// the "output" return value is not valid until after Send returns without error.
2547//
2548// See GetResolverDnssecConfig for more information on using the GetResolverDnssecConfig
2549// API call, and error handling.
2550//
2551// This method is useful when you want to inject custom logic or configuration
2552// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2553//
2554//
2555//    // Example sending a request using the GetResolverDnssecConfigRequest method.
2556//    req, resp := client.GetResolverDnssecConfigRequest(params)
2557//
2558//    err := req.Send()
2559//    if err == nil { // resp is now filled
2560//        fmt.Println(resp)
2561//    }
2562//
2563// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverDnssecConfig
2564func (c *Route53Resolver) GetResolverDnssecConfigRequest(input *GetResolverDnssecConfigInput) (req *request.Request, output *GetResolverDnssecConfigOutput) {
2565	op := &request.Operation{
2566		Name:       opGetResolverDnssecConfig,
2567		HTTPMethod: "POST",
2568		HTTPPath:   "/",
2569	}
2570
2571	if input == nil {
2572		input = &GetResolverDnssecConfigInput{}
2573	}
2574
2575	output = &GetResolverDnssecConfigOutput{}
2576	req = c.newRequest(op, input, output)
2577	return
2578}
2579
2580// GetResolverDnssecConfig API operation for Amazon Route 53 Resolver.
2581//
2582// Gets DNSSEC validation information for a specified resource.
2583//
2584// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2585// with awserr.Error's Code and Message methods to get detailed information about
2586// the error.
2587//
2588// See the AWS API reference guide for Amazon Route 53 Resolver's
2589// API operation GetResolverDnssecConfig for usage and error information.
2590//
2591// Returned Error Types:
2592//   * InvalidParameterException
2593//   One or more parameters in this request are not valid.
2594//
2595//   * ResourceNotFoundException
2596//   The specified resource doesn't exist.
2597//
2598//   * InvalidRequestException
2599//   The request is invalid.
2600//
2601//   * InternalServiceErrorException
2602//   We encountered an unknown error. Try again in a few minutes.
2603//
2604//   * ThrottlingException
2605//   The request was throttled. Try again in a few minutes.
2606//
2607//   * AccessDeniedException
2608//   The current account doesn't have the IAM permissions required to perform
2609//   the specified Resolver operation.
2610//
2611// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverDnssecConfig
2612func (c *Route53Resolver) GetResolverDnssecConfig(input *GetResolverDnssecConfigInput) (*GetResolverDnssecConfigOutput, error) {
2613	req, out := c.GetResolverDnssecConfigRequest(input)
2614	return out, req.Send()
2615}
2616
2617// GetResolverDnssecConfigWithContext is the same as GetResolverDnssecConfig with the addition of
2618// the ability to pass a context and additional request options.
2619//
2620// See GetResolverDnssecConfig for details on how to use this API operation.
2621//
2622// The context must be non-nil and will be used for request cancellation. If
2623// the context is nil a panic will occur. In the future the SDK may create
2624// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2625// for more information on using Contexts.
2626func (c *Route53Resolver) GetResolverDnssecConfigWithContext(ctx aws.Context, input *GetResolverDnssecConfigInput, opts ...request.Option) (*GetResolverDnssecConfigOutput, error) {
2627	req, out := c.GetResolverDnssecConfigRequest(input)
2628	req.SetContext(ctx)
2629	req.ApplyOptions(opts...)
2630	return out, req.Send()
2631}
2632
2633const opGetResolverEndpoint = "GetResolverEndpoint"
2634
2635// GetResolverEndpointRequest generates a "aws/request.Request" representing the
2636// client's request for the GetResolverEndpoint operation. The "output" return
2637// value will be populated with the request's response once the request completes
2638// successfully.
2639//
2640// Use "Send" method on the returned Request to send the API call to the service.
2641// the "output" return value is not valid until after Send returns without error.
2642//
2643// See GetResolverEndpoint for more information on using the GetResolverEndpoint
2644// API call, and error handling.
2645//
2646// This method is useful when you want to inject custom logic or configuration
2647// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2648//
2649//
2650//    // Example sending a request using the GetResolverEndpointRequest method.
2651//    req, resp := client.GetResolverEndpointRequest(params)
2652//
2653//    err := req.Send()
2654//    if err == nil { // resp is now filled
2655//        fmt.Println(resp)
2656//    }
2657//
2658// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverEndpoint
2659func (c *Route53Resolver) GetResolverEndpointRequest(input *GetResolverEndpointInput) (req *request.Request, output *GetResolverEndpointOutput) {
2660	op := &request.Operation{
2661		Name:       opGetResolverEndpoint,
2662		HTTPMethod: "POST",
2663		HTTPPath:   "/",
2664	}
2665
2666	if input == nil {
2667		input = &GetResolverEndpointInput{}
2668	}
2669
2670	output = &GetResolverEndpointOutput{}
2671	req = c.newRequest(op, input, output)
2672	return
2673}
2674
2675// GetResolverEndpoint API operation for Amazon Route 53 Resolver.
2676//
2677// Gets information about a specified Resolver endpoint, such as whether it's
2678// an inbound or an outbound Resolver endpoint, and the current status of the
2679// endpoint.
2680//
2681// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2682// with awserr.Error's Code and Message methods to get detailed information about
2683// the error.
2684//
2685// See the AWS API reference guide for Amazon Route 53 Resolver's
2686// API operation GetResolverEndpoint for usage and error information.
2687//
2688// Returned Error Types:
2689//   * ResourceNotFoundException
2690//   The specified resource doesn't exist.
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// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverEndpoint
2702func (c *Route53Resolver) GetResolverEndpoint(input *GetResolverEndpointInput) (*GetResolverEndpointOutput, error) {
2703	req, out := c.GetResolverEndpointRequest(input)
2704	return out, req.Send()
2705}
2706
2707// GetResolverEndpointWithContext is the same as GetResolverEndpoint with the addition of
2708// the ability to pass a context and additional request options.
2709//
2710// See GetResolverEndpoint for details on how to use this API operation.
2711//
2712// The context must be non-nil and will be used for request cancellation. If
2713// the context is nil a panic will occur. In the future the SDK may create
2714// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2715// for more information on using Contexts.
2716func (c *Route53Resolver) GetResolverEndpointWithContext(ctx aws.Context, input *GetResolverEndpointInput, opts ...request.Option) (*GetResolverEndpointOutput, error) {
2717	req, out := c.GetResolverEndpointRequest(input)
2718	req.SetContext(ctx)
2719	req.ApplyOptions(opts...)
2720	return out, req.Send()
2721}
2722
2723const opGetResolverQueryLogConfig = "GetResolverQueryLogConfig"
2724
2725// GetResolverQueryLogConfigRequest generates a "aws/request.Request" representing the
2726// client's request for the GetResolverQueryLogConfig operation. The "output" return
2727// value will be populated with the request's response once the request completes
2728// successfully.
2729//
2730// Use "Send" method on the returned Request to send the API call to the service.
2731// the "output" return value is not valid until after Send returns without error.
2732//
2733// See GetResolverQueryLogConfig for more information on using the GetResolverQueryLogConfig
2734// API call, and error handling.
2735//
2736// This method is useful when you want to inject custom logic or configuration
2737// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2738//
2739//
2740//    // Example sending a request using the GetResolverQueryLogConfigRequest method.
2741//    req, resp := client.GetResolverQueryLogConfigRequest(params)
2742//
2743//    err := req.Send()
2744//    if err == nil { // resp is now filled
2745//        fmt.Println(resp)
2746//    }
2747//
2748// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverQueryLogConfig
2749func (c *Route53Resolver) GetResolverQueryLogConfigRequest(input *GetResolverQueryLogConfigInput) (req *request.Request, output *GetResolverQueryLogConfigOutput) {
2750	op := &request.Operation{
2751		Name:       opGetResolverQueryLogConfig,
2752		HTTPMethod: "POST",
2753		HTTPPath:   "/",
2754	}
2755
2756	if input == nil {
2757		input = &GetResolverQueryLogConfigInput{}
2758	}
2759
2760	output = &GetResolverQueryLogConfigOutput{}
2761	req = c.newRequest(op, input, output)
2762	return
2763}
2764
2765// GetResolverQueryLogConfig API operation for Amazon Route 53 Resolver.
2766//
2767// Gets information about a specified Resolver query logging configuration,
2768// such as the number of VPCs that the configuration is logging queries for
2769// and the location that logs are sent to.
2770//
2771// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2772// with awserr.Error's Code and Message methods to get detailed information about
2773// the error.
2774//
2775// See the AWS API reference guide for Amazon Route 53 Resolver's
2776// API operation GetResolverQueryLogConfig for usage and error information.
2777//
2778// Returned Error Types:
2779//   * ResourceNotFoundException
2780//   The specified resource doesn't exist.
2781//
2782//   * InvalidRequestException
2783//   The request is invalid.
2784//
2785//   * InvalidParameterException
2786//   One or more parameters in this request are not valid.
2787//
2788//   * InternalServiceErrorException
2789//   We encountered an unknown error. Try again in a few minutes.
2790//
2791//   * ThrottlingException
2792//   The request was throttled. Try again in a few minutes.
2793//
2794//   * AccessDeniedException
2795//   The current account doesn't have the IAM permissions required to perform
2796//   the specified Resolver operation.
2797//
2798// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverQueryLogConfig
2799func (c *Route53Resolver) GetResolverQueryLogConfig(input *GetResolverQueryLogConfigInput) (*GetResolverQueryLogConfigOutput, error) {
2800	req, out := c.GetResolverQueryLogConfigRequest(input)
2801	return out, req.Send()
2802}
2803
2804// GetResolverQueryLogConfigWithContext is the same as GetResolverQueryLogConfig with the addition of
2805// the ability to pass a context and additional request options.
2806//
2807// See GetResolverQueryLogConfig for details on how to use this API operation.
2808//
2809// The context must be non-nil and will be used for request cancellation. If
2810// the context is nil a panic will occur. In the future the SDK may create
2811// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2812// for more information on using Contexts.
2813func (c *Route53Resolver) GetResolverQueryLogConfigWithContext(ctx aws.Context, input *GetResolverQueryLogConfigInput, opts ...request.Option) (*GetResolverQueryLogConfigOutput, error) {
2814	req, out := c.GetResolverQueryLogConfigRequest(input)
2815	req.SetContext(ctx)
2816	req.ApplyOptions(opts...)
2817	return out, req.Send()
2818}
2819
2820const opGetResolverQueryLogConfigAssociation = "GetResolverQueryLogConfigAssociation"
2821
2822// GetResolverQueryLogConfigAssociationRequest generates a "aws/request.Request" representing the
2823// client's request for the GetResolverQueryLogConfigAssociation operation. The "output" return
2824// value will be populated with the request's response once the request completes
2825// successfully.
2826//
2827// Use "Send" method on the returned Request to send the API call to the service.
2828// the "output" return value is not valid until after Send returns without error.
2829//
2830// See GetResolverQueryLogConfigAssociation for more information on using the GetResolverQueryLogConfigAssociation
2831// API call, and error handling.
2832//
2833// This method is useful when you want to inject custom logic or configuration
2834// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2835//
2836//
2837//    // Example sending a request using the GetResolverQueryLogConfigAssociationRequest method.
2838//    req, resp := client.GetResolverQueryLogConfigAssociationRequest(params)
2839//
2840//    err := req.Send()
2841//    if err == nil { // resp is now filled
2842//        fmt.Println(resp)
2843//    }
2844//
2845// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverQueryLogConfigAssociation
2846func (c *Route53Resolver) GetResolverQueryLogConfigAssociationRequest(input *GetResolverQueryLogConfigAssociationInput) (req *request.Request, output *GetResolverQueryLogConfigAssociationOutput) {
2847	op := &request.Operation{
2848		Name:       opGetResolverQueryLogConfigAssociation,
2849		HTTPMethod: "POST",
2850		HTTPPath:   "/",
2851	}
2852
2853	if input == nil {
2854		input = &GetResolverQueryLogConfigAssociationInput{}
2855	}
2856
2857	output = &GetResolverQueryLogConfigAssociationOutput{}
2858	req = c.newRequest(op, input, output)
2859	return
2860}
2861
2862// GetResolverQueryLogConfigAssociation API operation for Amazon Route 53 Resolver.
2863//
2864// Gets information about a specified association between a Resolver query logging
2865// configuration and an Amazon VPC. When you associate a VPC with a query logging
2866// configuration, Resolver logs DNS queries that originate in that VPC.
2867//
2868// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2869// with awserr.Error's Code and Message methods to get detailed information about
2870// the error.
2871//
2872// See the AWS API reference guide for Amazon Route 53 Resolver's
2873// API operation GetResolverQueryLogConfigAssociation for usage and error information.
2874//
2875// Returned Error Types:
2876//   * ResourceNotFoundException
2877//   The specified resource doesn't exist.
2878//
2879//   * InvalidRequestException
2880//   The request is invalid.
2881//
2882//   * InvalidParameterException
2883//   One or more parameters in this request are not valid.
2884//
2885//   * InternalServiceErrorException
2886//   We encountered an unknown error. Try again in a few minutes.
2887//
2888//   * ThrottlingException
2889//   The request was throttled. Try again in a few minutes.
2890//
2891//   * AccessDeniedException
2892//   The current account doesn't have the IAM permissions required to perform
2893//   the specified Resolver operation.
2894//
2895// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverQueryLogConfigAssociation
2896func (c *Route53Resolver) GetResolverQueryLogConfigAssociation(input *GetResolverQueryLogConfigAssociationInput) (*GetResolverQueryLogConfigAssociationOutput, error) {
2897	req, out := c.GetResolverQueryLogConfigAssociationRequest(input)
2898	return out, req.Send()
2899}
2900
2901// GetResolverQueryLogConfigAssociationWithContext is the same as GetResolverQueryLogConfigAssociation with the addition of
2902// the ability to pass a context and additional request options.
2903//
2904// See GetResolverQueryLogConfigAssociation for details on how to use this API operation.
2905//
2906// The context must be non-nil and will be used for request cancellation. If
2907// the context is nil a panic will occur. In the future the SDK may create
2908// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2909// for more information on using Contexts.
2910func (c *Route53Resolver) GetResolverQueryLogConfigAssociationWithContext(ctx aws.Context, input *GetResolverQueryLogConfigAssociationInput, opts ...request.Option) (*GetResolverQueryLogConfigAssociationOutput, error) {
2911	req, out := c.GetResolverQueryLogConfigAssociationRequest(input)
2912	req.SetContext(ctx)
2913	req.ApplyOptions(opts...)
2914	return out, req.Send()
2915}
2916
2917const opGetResolverQueryLogConfigPolicy = "GetResolverQueryLogConfigPolicy"
2918
2919// GetResolverQueryLogConfigPolicyRequest generates a "aws/request.Request" representing the
2920// client's request for the GetResolverQueryLogConfigPolicy operation. The "output" return
2921// value will be populated with the request's response once the request completes
2922// successfully.
2923//
2924// Use "Send" method on the returned Request to send the API call to the service.
2925// the "output" return value is not valid until after Send returns without error.
2926//
2927// See GetResolverQueryLogConfigPolicy for more information on using the GetResolverQueryLogConfigPolicy
2928// API call, and error handling.
2929//
2930// This method is useful when you want to inject custom logic or configuration
2931// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2932//
2933//
2934//    // Example sending a request using the GetResolverQueryLogConfigPolicyRequest method.
2935//    req, resp := client.GetResolverQueryLogConfigPolicyRequest(params)
2936//
2937//    err := req.Send()
2938//    if err == nil { // resp is now filled
2939//        fmt.Println(resp)
2940//    }
2941//
2942// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverQueryLogConfigPolicy
2943func (c *Route53Resolver) GetResolverQueryLogConfigPolicyRequest(input *GetResolverQueryLogConfigPolicyInput) (req *request.Request, output *GetResolverQueryLogConfigPolicyOutput) {
2944	op := &request.Operation{
2945		Name:       opGetResolverQueryLogConfigPolicy,
2946		HTTPMethod: "POST",
2947		HTTPPath:   "/",
2948	}
2949
2950	if input == nil {
2951		input = &GetResolverQueryLogConfigPolicyInput{}
2952	}
2953
2954	output = &GetResolverQueryLogConfigPolicyOutput{}
2955	req = c.newRequest(op, input, output)
2956	return
2957}
2958
2959// GetResolverQueryLogConfigPolicy API operation for Amazon Route 53 Resolver.
2960//
2961// Gets information about a query logging policy. A query logging policy specifies
2962// the Resolver query logging operations and resources that you want to allow
2963// another Amazon Web Services account to be able to use.
2964//
2965// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2966// with awserr.Error's Code and Message methods to get detailed information about
2967// the error.
2968//
2969// See the AWS API reference guide for Amazon Route 53 Resolver's
2970// API operation GetResolverQueryLogConfigPolicy for usage and error information.
2971//
2972// Returned Error Types:
2973//   * InvalidParameterException
2974//   One or more parameters in this request are not valid.
2975//
2976//   * InvalidRequestException
2977//   The request is invalid.
2978//
2979//   * UnknownResourceException
2980//   The specified resource doesn't exist.
2981//
2982//   * InternalServiceErrorException
2983//   We encountered an unknown error. Try again in a few minutes.
2984//
2985//   * AccessDeniedException
2986//   The current account doesn't have the IAM permissions required to perform
2987//   the specified Resolver operation.
2988//
2989// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverQueryLogConfigPolicy
2990func (c *Route53Resolver) GetResolverQueryLogConfigPolicy(input *GetResolverQueryLogConfigPolicyInput) (*GetResolverQueryLogConfigPolicyOutput, error) {
2991	req, out := c.GetResolverQueryLogConfigPolicyRequest(input)
2992	return out, req.Send()
2993}
2994
2995// GetResolverQueryLogConfigPolicyWithContext is the same as GetResolverQueryLogConfigPolicy with the addition of
2996// the ability to pass a context and additional request options.
2997//
2998// See GetResolverQueryLogConfigPolicy for details on how to use this API operation.
2999//
3000// The context must be non-nil and will be used for request cancellation. If
3001// the context is nil a panic will occur. In the future the SDK may create
3002// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3003// for more information on using Contexts.
3004func (c *Route53Resolver) GetResolverQueryLogConfigPolicyWithContext(ctx aws.Context, input *GetResolverQueryLogConfigPolicyInput, opts ...request.Option) (*GetResolverQueryLogConfigPolicyOutput, error) {
3005	req, out := c.GetResolverQueryLogConfigPolicyRequest(input)
3006	req.SetContext(ctx)
3007	req.ApplyOptions(opts...)
3008	return out, req.Send()
3009}
3010
3011const opGetResolverRule = "GetResolverRule"
3012
3013// GetResolverRuleRequest generates a "aws/request.Request" representing the
3014// client's request for the GetResolverRule operation. The "output" return
3015// value will be populated with the request's response once the request completes
3016// successfully.
3017//
3018// Use "Send" method on the returned Request to send the API call to the service.
3019// the "output" return value is not valid until after Send returns without error.
3020//
3021// See GetResolverRule for more information on using the GetResolverRule
3022// API call, and error handling.
3023//
3024// This method is useful when you want to inject custom logic or configuration
3025// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3026//
3027//
3028//    // Example sending a request using the GetResolverRuleRequest method.
3029//    req, resp := client.GetResolverRuleRequest(params)
3030//
3031//    err := req.Send()
3032//    if err == nil { // resp is now filled
3033//        fmt.Println(resp)
3034//    }
3035//
3036// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverRule
3037func (c *Route53Resolver) GetResolverRuleRequest(input *GetResolverRuleInput) (req *request.Request, output *GetResolverRuleOutput) {
3038	op := &request.Operation{
3039		Name:       opGetResolverRule,
3040		HTTPMethod: "POST",
3041		HTTPPath:   "/",
3042	}
3043
3044	if input == nil {
3045		input = &GetResolverRuleInput{}
3046	}
3047
3048	output = &GetResolverRuleOutput{}
3049	req = c.newRequest(op, input, output)
3050	return
3051}
3052
3053// GetResolverRule API operation for Amazon Route 53 Resolver.
3054//
3055// Gets information about a specified Resolver rule, such as the domain name
3056// that the rule forwards DNS queries for and the ID of the outbound Resolver
3057// endpoint that the rule is associated with.
3058//
3059// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3060// with awserr.Error's Code and Message methods to get detailed information about
3061// the error.
3062//
3063// See the AWS API reference guide for Amazon Route 53 Resolver's
3064// API operation GetResolverRule for usage and error information.
3065//
3066// Returned Error Types:
3067//   * ResourceNotFoundException
3068//   The specified resource doesn't exist.
3069//
3070//   * InvalidParameterException
3071//   One or more parameters in this request are not valid.
3072//
3073//   * InternalServiceErrorException
3074//   We encountered an unknown error. Try again in a few minutes.
3075//
3076//   * ThrottlingException
3077//   The request was throttled. Try again in a few minutes.
3078//
3079// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverRule
3080func (c *Route53Resolver) GetResolverRule(input *GetResolverRuleInput) (*GetResolverRuleOutput, error) {
3081	req, out := c.GetResolverRuleRequest(input)
3082	return out, req.Send()
3083}
3084
3085// GetResolverRuleWithContext is the same as GetResolverRule with the addition of
3086// the ability to pass a context and additional request options.
3087//
3088// See GetResolverRule for details on how to use this API operation.
3089//
3090// The context must be non-nil and will be used for request cancellation. If
3091// the context is nil a panic will occur. In the future the SDK may create
3092// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3093// for more information on using Contexts.
3094func (c *Route53Resolver) GetResolverRuleWithContext(ctx aws.Context, input *GetResolverRuleInput, opts ...request.Option) (*GetResolverRuleOutput, error) {
3095	req, out := c.GetResolverRuleRequest(input)
3096	req.SetContext(ctx)
3097	req.ApplyOptions(opts...)
3098	return out, req.Send()
3099}
3100
3101const opGetResolverRuleAssociation = "GetResolverRuleAssociation"
3102
3103// GetResolverRuleAssociationRequest generates a "aws/request.Request" representing the
3104// client's request for the GetResolverRuleAssociation operation. The "output" return
3105// value will be populated with the request's response once the request completes
3106// successfully.
3107//
3108// Use "Send" method on the returned Request to send the API call to the service.
3109// the "output" return value is not valid until after Send returns without error.
3110//
3111// See GetResolverRuleAssociation for more information on using the GetResolverRuleAssociation
3112// API call, and error handling.
3113//
3114// This method is useful when you want to inject custom logic or configuration
3115// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3116//
3117//
3118//    // Example sending a request using the GetResolverRuleAssociationRequest method.
3119//    req, resp := client.GetResolverRuleAssociationRequest(params)
3120//
3121//    err := req.Send()
3122//    if err == nil { // resp is now filled
3123//        fmt.Println(resp)
3124//    }
3125//
3126// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverRuleAssociation
3127func (c *Route53Resolver) GetResolverRuleAssociationRequest(input *GetResolverRuleAssociationInput) (req *request.Request, output *GetResolverRuleAssociationOutput) {
3128	op := &request.Operation{
3129		Name:       opGetResolverRuleAssociation,
3130		HTTPMethod: "POST",
3131		HTTPPath:   "/",
3132	}
3133
3134	if input == nil {
3135		input = &GetResolverRuleAssociationInput{}
3136	}
3137
3138	output = &GetResolverRuleAssociationOutput{}
3139	req = c.newRequest(op, input, output)
3140	return
3141}
3142
3143// GetResolverRuleAssociation API operation for Amazon Route 53 Resolver.
3144//
3145// Gets information about an association between a specified Resolver rule and
3146// a VPC. You associate a Resolver rule and a VPC using AssociateResolverRule
3147// (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_AssociateResolverRule.html).
3148//
3149// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3150// with awserr.Error's Code and Message methods to get detailed information about
3151// the error.
3152//
3153// See the AWS API reference guide for Amazon Route 53 Resolver's
3154// API operation GetResolverRuleAssociation for usage and error information.
3155//
3156// Returned Error Types:
3157//   * ResourceNotFoundException
3158//   The specified resource doesn't exist.
3159//
3160//   * InvalidParameterException
3161//   One or more parameters in this request are not valid.
3162//
3163//   * InternalServiceErrorException
3164//   We encountered an unknown error. Try again in a few minutes.
3165//
3166//   * ThrottlingException
3167//   The request was throttled. Try again in a few minutes.
3168//
3169// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverRuleAssociation
3170func (c *Route53Resolver) GetResolverRuleAssociation(input *GetResolverRuleAssociationInput) (*GetResolverRuleAssociationOutput, error) {
3171	req, out := c.GetResolverRuleAssociationRequest(input)
3172	return out, req.Send()
3173}
3174
3175// GetResolverRuleAssociationWithContext is the same as GetResolverRuleAssociation with the addition of
3176// the ability to pass a context and additional request options.
3177//
3178// See GetResolverRuleAssociation for details on how to use this API operation.
3179//
3180// The context must be non-nil and will be used for request cancellation. If
3181// the context is nil a panic will occur. In the future the SDK may create
3182// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3183// for more information on using Contexts.
3184func (c *Route53Resolver) GetResolverRuleAssociationWithContext(ctx aws.Context, input *GetResolverRuleAssociationInput, opts ...request.Option) (*GetResolverRuleAssociationOutput, error) {
3185	req, out := c.GetResolverRuleAssociationRequest(input)
3186	req.SetContext(ctx)
3187	req.ApplyOptions(opts...)
3188	return out, req.Send()
3189}
3190
3191const opGetResolverRulePolicy = "GetResolverRulePolicy"
3192
3193// GetResolverRulePolicyRequest generates a "aws/request.Request" representing the
3194// client's request for the GetResolverRulePolicy operation. The "output" return
3195// value will be populated with the request's response once the request completes
3196// successfully.
3197//
3198// Use "Send" method on the returned Request to send the API call to the service.
3199// the "output" return value is not valid until after Send returns without error.
3200//
3201// See GetResolverRulePolicy for more information on using the GetResolverRulePolicy
3202// API call, and error handling.
3203//
3204// This method is useful when you want to inject custom logic or configuration
3205// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3206//
3207//
3208//    // Example sending a request using the GetResolverRulePolicyRequest method.
3209//    req, resp := client.GetResolverRulePolicyRequest(params)
3210//
3211//    err := req.Send()
3212//    if err == nil { // resp is now filled
3213//        fmt.Println(resp)
3214//    }
3215//
3216// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverRulePolicy
3217func (c *Route53Resolver) GetResolverRulePolicyRequest(input *GetResolverRulePolicyInput) (req *request.Request, output *GetResolverRulePolicyOutput) {
3218	op := &request.Operation{
3219		Name:       opGetResolverRulePolicy,
3220		HTTPMethod: "POST",
3221		HTTPPath:   "/",
3222	}
3223
3224	if input == nil {
3225		input = &GetResolverRulePolicyInput{}
3226	}
3227
3228	output = &GetResolverRulePolicyOutput{}
3229	req = c.newRequest(op, input, output)
3230	return
3231}
3232
3233// GetResolverRulePolicy API operation for Amazon Route 53 Resolver.
3234//
3235// Gets information about the Resolver rule policy for a specified rule. A Resolver
3236// rule policy includes the rule that you want to share with another account,
3237// the account that you want to share the rule with, and the Resolver operations
3238// that you want to allow the account to use.
3239//
3240// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3241// with awserr.Error's Code and Message methods to get detailed information about
3242// the error.
3243//
3244// See the AWS API reference guide for Amazon Route 53 Resolver's
3245// API operation GetResolverRulePolicy for usage and error information.
3246//
3247// Returned Error Types:
3248//   * InvalidParameterException
3249//   One or more parameters in this request are not valid.
3250//
3251//   * UnknownResourceException
3252//   The specified resource doesn't exist.
3253//
3254//   * InternalServiceErrorException
3255//   We encountered an unknown error. Try again in a few minutes.
3256//
3257// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverRulePolicy
3258func (c *Route53Resolver) GetResolverRulePolicy(input *GetResolverRulePolicyInput) (*GetResolverRulePolicyOutput, error) {
3259	req, out := c.GetResolverRulePolicyRequest(input)
3260	return out, req.Send()
3261}
3262
3263// GetResolverRulePolicyWithContext is the same as GetResolverRulePolicy with the addition of
3264// the ability to pass a context and additional request options.
3265//
3266// See GetResolverRulePolicy for details on how to use this API operation.
3267//
3268// The context must be non-nil and will be used for request cancellation. If
3269// the context is nil a panic will occur. In the future the SDK may create
3270// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3271// for more information on using Contexts.
3272func (c *Route53Resolver) GetResolverRulePolicyWithContext(ctx aws.Context, input *GetResolverRulePolicyInput, opts ...request.Option) (*GetResolverRulePolicyOutput, error) {
3273	req, out := c.GetResolverRulePolicyRequest(input)
3274	req.SetContext(ctx)
3275	req.ApplyOptions(opts...)
3276	return out, req.Send()
3277}
3278
3279const opImportFirewallDomains = "ImportFirewallDomains"
3280
3281// ImportFirewallDomainsRequest generates a "aws/request.Request" representing the
3282// client's request for the ImportFirewallDomains operation. The "output" return
3283// value will be populated with the request's response once the request completes
3284// successfully.
3285//
3286// Use "Send" method on the returned Request to send the API call to the service.
3287// the "output" return value is not valid until after Send returns without error.
3288//
3289// See ImportFirewallDomains for more information on using the ImportFirewallDomains
3290// API call, and error handling.
3291//
3292// This method is useful when you want to inject custom logic or configuration
3293// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3294//
3295//
3296//    // Example sending a request using the ImportFirewallDomainsRequest method.
3297//    req, resp := client.ImportFirewallDomainsRequest(params)
3298//
3299//    err := req.Send()
3300//    if err == nil { // resp is now filled
3301//        fmt.Println(resp)
3302//    }
3303//
3304// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ImportFirewallDomains
3305func (c *Route53Resolver) ImportFirewallDomainsRequest(input *ImportFirewallDomainsInput) (req *request.Request, output *ImportFirewallDomainsOutput) {
3306	op := &request.Operation{
3307		Name:       opImportFirewallDomains,
3308		HTTPMethod: "POST",
3309		HTTPPath:   "/",
3310	}
3311
3312	if input == nil {
3313		input = &ImportFirewallDomainsInput{}
3314	}
3315
3316	output = &ImportFirewallDomainsOutput{}
3317	req = c.newRequest(op, input, output)
3318	return
3319}
3320
3321// ImportFirewallDomains API operation for Amazon Route 53 Resolver.
3322//
3323// Imports domain names from a file into a domain list, for use in a DNS firewall
3324// rule group.
3325//
3326// Each domain specification in your domain list must satisfy the following
3327// requirements:
3328//
3329//    * It can optionally start with * (asterisk).
3330//
3331//    * With the exception of the optional starting asterisk, it must only contain
3332//    the following characters: A-Z, a-z, 0-9, - (hyphen).
3333//
3334//    * It must be from 1-255 characters in length.
3335//
3336// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3337// with awserr.Error's Code and Message methods to get detailed information about
3338// the error.
3339//
3340// See the AWS API reference guide for Amazon Route 53 Resolver's
3341// API operation ImportFirewallDomains for usage and error information.
3342//
3343// Returned Error Types:
3344//   * ValidationException
3345//
3346//   * AccessDeniedException
3347//   The current account doesn't have the IAM permissions required to perform
3348//   the specified Resolver operation.
3349//
3350//   * ResourceNotFoundException
3351//   The specified resource doesn't exist.
3352//
3353//   * LimitExceededException
3354//   The request caused one or more limits to be exceeded.
3355//
3356//   * ConflictException
3357//
3358//   * InternalServiceErrorException
3359//   We encountered an unknown error. Try again in a few minutes.
3360//
3361//   * ThrottlingException
3362//   The request was throttled. Try again in a few minutes.
3363//
3364// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ImportFirewallDomains
3365func (c *Route53Resolver) ImportFirewallDomains(input *ImportFirewallDomainsInput) (*ImportFirewallDomainsOutput, error) {
3366	req, out := c.ImportFirewallDomainsRequest(input)
3367	return out, req.Send()
3368}
3369
3370// ImportFirewallDomainsWithContext is the same as ImportFirewallDomains with the addition of
3371// the ability to pass a context and additional request options.
3372//
3373// See ImportFirewallDomains for details on how to use this API operation.
3374//
3375// The context must be non-nil and will be used for request cancellation. If
3376// the context is nil a panic will occur. In the future the SDK may create
3377// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3378// for more information on using Contexts.
3379func (c *Route53Resolver) ImportFirewallDomainsWithContext(ctx aws.Context, input *ImportFirewallDomainsInput, opts ...request.Option) (*ImportFirewallDomainsOutput, error) {
3380	req, out := c.ImportFirewallDomainsRequest(input)
3381	req.SetContext(ctx)
3382	req.ApplyOptions(opts...)
3383	return out, req.Send()
3384}
3385
3386const opListFirewallConfigs = "ListFirewallConfigs"
3387
3388// ListFirewallConfigsRequest generates a "aws/request.Request" representing the
3389// client's request for the ListFirewallConfigs operation. The "output" return
3390// value will be populated with the request's response once the request completes
3391// successfully.
3392//
3393// Use "Send" method on the returned Request to send the API call to the service.
3394// the "output" return value is not valid until after Send returns without error.
3395//
3396// See ListFirewallConfigs for more information on using the ListFirewallConfigs
3397// API call, and error handling.
3398//
3399// This method is useful when you want to inject custom logic or configuration
3400// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3401//
3402//
3403//    // Example sending a request using the ListFirewallConfigsRequest method.
3404//    req, resp := client.ListFirewallConfigsRequest(params)
3405//
3406//    err := req.Send()
3407//    if err == nil { // resp is now filled
3408//        fmt.Println(resp)
3409//    }
3410//
3411// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListFirewallConfigs
3412func (c *Route53Resolver) ListFirewallConfigsRequest(input *ListFirewallConfigsInput) (req *request.Request, output *ListFirewallConfigsOutput) {
3413	op := &request.Operation{
3414		Name:       opListFirewallConfigs,
3415		HTTPMethod: "POST",
3416		HTTPPath:   "/",
3417		Paginator: &request.Paginator{
3418			InputTokens:     []string{"NextToken"},
3419			OutputTokens:    []string{"NextToken"},
3420			LimitToken:      "MaxResults",
3421			TruncationToken: "",
3422		},
3423	}
3424
3425	if input == nil {
3426		input = &ListFirewallConfigsInput{}
3427	}
3428
3429	output = &ListFirewallConfigsOutput{}
3430	req = c.newRequest(op, input, output)
3431	return
3432}
3433
3434// ListFirewallConfigs API operation for Amazon Route 53 Resolver.
3435//
3436// Retrieves the firewall configurations that you have defined. DNS Firewall
3437// uses the configurations to manage firewall behavior for your VPCs.
3438//
3439// A single call might return only a partial list of the configurations. For
3440// information, see MaxResults.
3441//
3442// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3443// with awserr.Error's Code and Message methods to get detailed information about
3444// the error.
3445//
3446// See the AWS API reference guide for Amazon Route 53 Resolver's
3447// API operation ListFirewallConfigs for usage and error information.
3448//
3449// Returned Error Types:
3450//   * ValidationException
3451//
3452//   * AccessDeniedException
3453//   The current account doesn't have the IAM permissions required to perform
3454//   the specified Resolver operation.
3455//
3456//   * InternalServiceErrorException
3457//   We encountered an unknown error. Try again in a few minutes.
3458//
3459//   * ThrottlingException
3460//   The request was throttled. Try again in a few minutes.
3461//
3462// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListFirewallConfigs
3463func (c *Route53Resolver) ListFirewallConfigs(input *ListFirewallConfigsInput) (*ListFirewallConfigsOutput, error) {
3464	req, out := c.ListFirewallConfigsRequest(input)
3465	return out, req.Send()
3466}
3467
3468// ListFirewallConfigsWithContext is the same as ListFirewallConfigs with the addition of
3469// the ability to pass a context and additional request options.
3470//
3471// See ListFirewallConfigs for details on how to use this API operation.
3472//
3473// The context must be non-nil and will be used for request cancellation. If
3474// the context is nil a panic will occur. In the future the SDK may create
3475// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3476// for more information on using Contexts.
3477func (c *Route53Resolver) ListFirewallConfigsWithContext(ctx aws.Context, input *ListFirewallConfigsInput, opts ...request.Option) (*ListFirewallConfigsOutput, error) {
3478	req, out := c.ListFirewallConfigsRequest(input)
3479	req.SetContext(ctx)
3480	req.ApplyOptions(opts...)
3481	return out, req.Send()
3482}
3483
3484// ListFirewallConfigsPages iterates over the pages of a ListFirewallConfigs operation,
3485// calling the "fn" function with the response data for each page. To stop
3486// iterating, return false from the fn function.
3487//
3488// See ListFirewallConfigs method for more information on how to use this operation.
3489//
3490// Note: This operation can generate multiple requests to a service.
3491//
3492//    // Example iterating over at most 3 pages of a ListFirewallConfigs operation.
3493//    pageNum := 0
3494//    err := client.ListFirewallConfigsPages(params,
3495//        func(page *route53resolver.ListFirewallConfigsOutput, lastPage bool) bool {
3496//            pageNum++
3497//            fmt.Println(page)
3498//            return pageNum <= 3
3499//        })
3500//
3501func (c *Route53Resolver) ListFirewallConfigsPages(input *ListFirewallConfigsInput, fn func(*ListFirewallConfigsOutput, bool) bool) error {
3502	return c.ListFirewallConfigsPagesWithContext(aws.BackgroundContext(), input, fn)
3503}
3504
3505// ListFirewallConfigsPagesWithContext same as ListFirewallConfigsPages except
3506// it takes a Context and allows setting request options on the pages.
3507//
3508// The context must be non-nil and will be used for request cancellation. If
3509// the context is nil a panic will occur. In the future the SDK may create
3510// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3511// for more information on using Contexts.
3512func (c *Route53Resolver) ListFirewallConfigsPagesWithContext(ctx aws.Context, input *ListFirewallConfigsInput, fn func(*ListFirewallConfigsOutput, bool) bool, opts ...request.Option) error {
3513	p := request.Pagination{
3514		NewRequest: func() (*request.Request, error) {
3515			var inCpy *ListFirewallConfigsInput
3516			if input != nil {
3517				tmp := *input
3518				inCpy = &tmp
3519			}
3520			req, _ := c.ListFirewallConfigsRequest(inCpy)
3521			req.SetContext(ctx)
3522			req.ApplyOptions(opts...)
3523			return req, nil
3524		},
3525	}
3526
3527	for p.Next() {
3528		if !fn(p.Page().(*ListFirewallConfigsOutput), !p.HasNextPage()) {
3529			break
3530		}
3531	}
3532
3533	return p.Err()
3534}
3535
3536const opListFirewallDomainLists = "ListFirewallDomainLists"
3537
3538// ListFirewallDomainListsRequest generates a "aws/request.Request" representing the
3539// client's request for the ListFirewallDomainLists operation. The "output" return
3540// value will be populated with the request's response once the request completes
3541// successfully.
3542//
3543// Use "Send" method on the returned Request to send the API call to the service.
3544// the "output" return value is not valid until after Send returns without error.
3545//
3546// See ListFirewallDomainLists for more information on using the ListFirewallDomainLists
3547// API call, and error handling.
3548//
3549// This method is useful when you want to inject custom logic or configuration
3550// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3551//
3552//
3553//    // Example sending a request using the ListFirewallDomainListsRequest method.
3554//    req, resp := client.ListFirewallDomainListsRequest(params)
3555//
3556//    err := req.Send()
3557//    if err == nil { // resp is now filled
3558//        fmt.Println(resp)
3559//    }
3560//
3561// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListFirewallDomainLists
3562func (c *Route53Resolver) ListFirewallDomainListsRequest(input *ListFirewallDomainListsInput) (req *request.Request, output *ListFirewallDomainListsOutput) {
3563	op := &request.Operation{
3564		Name:       opListFirewallDomainLists,
3565		HTTPMethod: "POST",
3566		HTTPPath:   "/",
3567		Paginator: &request.Paginator{
3568			InputTokens:     []string{"NextToken"},
3569			OutputTokens:    []string{"NextToken"},
3570			LimitToken:      "MaxResults",
3571			TruncationToken: "",
3572		},
3573	}
3574
3575	if input == nil {
3576		input = &ListFirewallDomainListsInput{}
3577	}
3578
3579	output = &ListFirewallDomainListsOutput{}
3580	req = c.newRequest(op, input, output)
3581	return
3582}
3583
3584// ListFirewallDomainLists API operation for Amazon Route 53 Resolver.
3585//
3586// Retrieves the firewall domain lists that you have defined. For each firewall
3587// domain list, you can retrieve the domains that are defined for a list by
3588// calling ListFirewallDomains.
3589//
3590// A single call to this list operation might return only a partial list of
3591// the domain lists. For information, see MaxResults.
3592//
3593// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3594// with awserr.Error's Code and Message methods to get detailed information about
3595// the error.
3596//
3597// See the AWS API reference guide for Amazon Route 53 Resolver's
3598// API operation ListFirewallDomainLists for usage and error information.
3599//
3600// Returned Error Types:
3601//   * ValidationException
3602//
3603//   * AccessDeniedException
3604//   The current account doesn't have the IAM permissions required to perform
3605//   the specified Resolver operation.
3606//
3607//   * InternalServiceErrorException
3608//   We encountered an unknown error. Try again in a few minutes.
3609//
3610//   * ThrottlingException
3611//   The request was throttled. Try again in a few minutes.
3612//
3613// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListFirewallDomainLists
3614func (c *Route53Resolver) ListFirewallDomainLists(input *ListFirewallDomainListsInput) (*ListFirewallDomainListsOutput, error) {
3615	req, out := c.ListFirewallDomainListsRequest(input)
3616	return out, req.Send()
3617}
3618
3619// ListFirewallDomainListsWithContext is the same as ListFirewallDomainLists with the addition of
3620// the ability to pass a context and additional request options.
3621//
3622// See ListFirewallDomainLists for details on how to use this API operation.
3623//
3624// The context must be non-nil and will be used for request cancellation. If
3625// the context is nil a panic will occur. In the future the SDK may create
3626// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3627// for more information on using Contexts.
3628func (c *Route53Resolver) ListFirewallDomainListsWithContext(ctx aws.Context, input *ListFirewallDomainListsInput, opts ...request.Option) (*ListFirewallDomainListsOutput, error) {
3629	req, out := c.ListFirewallDomainListsRequest(input)
3630	req.SetContext(ctx)
3631	req.ApplyOptions(opts...)
3632	return out, req.Send()
3633}
3634
3635// ListFirewallDomainListsPages iterates over the pages of a ListFirewallDomainLists operation,
3636// calling the "fn" function with the response data for each page. To stop
3637// iterating, return false from the fn function.
3638//
3639// See ListFirewallDomainLists method for more information on how to use this operation.
3640//
3641// Note: This operation can generate multiple requests to a service.
3642//
3643//    // Example iterating over at most 3 pages of a ListFirewallDomainLists operation.
3644//    pageNum := 0
3645//    err := client.ListFirewallDomainListsPages(params,
3646//        func(page *route53resolver.ListFirewallDomainListsOutput, lastPage bool) bool {
3647//            pageNum++
3648//            fmt.Println(page)
3649//            return pageNum <= 3
3650//        })
3651//
3652func (c *Route53Resolver) ListFirewallDomainListsPages(input *ListFirewallDomainListsInput, fn func(*ListFirewallDomainListsOutput, bool) bool) error {
3653	return c.ListFirewallDomainListsPagesWithContext(aws.BackgroundContext(), input, fn)
3654}
3655
3656// ListFirewallDomainListsPagesWithContext same as ListFirewallDomainListsPages except
3657// it takes a Context and allows setting request options on the pages.
3658//
3659// The context must be non-nil and will be used for request cancellation. If
3660// the context is nil a panic will occur. In the future the SDK may create
3661// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3662// for more information on using Contexts.
3663func (c *Route53Resolver) ListFirewallDomainListsPagesWithContext(ctx aws.Context, input *ListFirewallDomainListsInput, fn func(*ListFirewallDomainListsOutput, bool) bool, opts ...request.Option) error {
3664	p := request.Pagination{
3665		NewRequest: func() (*request.Request, error) {
3666			var inCpy *ListFirewallDomainListsInput
3667			if input != nil {
3668				tmp := *input
3669				inCpy = &tmp
3670			}
3671			req, _ := c.ListFirewallDomainListsRequest(inCpy)
3672			req.SetContext(ctx)
3673			req.ApplyOptions(opts...)
3674			return req, nil
3675		},
3676	}
3677
3678	for p.Next() {
3679		if !fn(p.Page().(*ListFirewallDomainListsOutput), !p.HasNextPage()) {
3680			break
3681		}
3682	}
3683
3684	return p.Err()
3685}
3686
3687const opListFirewallDomains = "ListFirewallDomains"
3688
3689// ListFirewallDomainsRequest generates a "aws/request.Request" representing the
3690// client's request for the ListFirewallDomains operation. The "output" return
3691// value will be populated with the request's response once the request completes
3692// successfully.
3693//
3694// Use "Send" method on the returned Request to send the API call to the service.
3695// the "output" return value is not valid until after Send returns without error.
3696//
3697// See ListFirewallDomains for more information on using the ListFirewallDomains
3698// API call, and error handling.
3699//
3700// This method is useful when you want to inject custom logic or configuration
3701// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3702//
3703//
3704//    // Example sending a request using the ListFirewallDomainsRequest method.
3705//    req, resp := client.ListFirewallDomainsRequest(params)
3706//
3707//    err := req.Send()
3708//    if err == nil { // resp is now filled
3709//        fmt.Println(resp)
3710//    }
3711//
3712// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListFirewallDomains
3713func (c *Route53Resolver) ListFirewallDomainsRequest(input *ListFirewallDomainsInput) (req *request.Request, output *ListFirewallDomainsOutput) {
3714	op := &request.Operation{
3715		Name:       opListFirewallDomains,
3716		HTTPMethod: "POST",
3717		HTTPPath:   "/",
3718		Paginator: &request.Paginator{
3719			InputTokens:     []string{"NextToken"},
3720			OutputTokens:    []string{"NextToken"},
3721			LimitToken:      "MaxResults",
3722			TruncationToken: "",
3723		},
3724	}
3725
3726	if input == nil {
3727		input = &ListFirewallDomainsInput{}
3728	}
3729
3730	output = &ListFirewallDomainsOutput{}
3731	req = c.newRequest(op, input, output)
3732	return
3733}
3734
3735// ListFirewallDomains API operation for Amazon Route 53 Resolver.
3736//
3737// Retrieves the domains that you have defined for the specified firewall domain
3738// list.
3739//
3740// A single call might return only a partial list of the domains. For information,
3741// see MaxResults.
3742//
3743// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3744// with awserr.Error's Code and Message methods to get detailed information about
3745// the error.
3746//
3747// See the AWS API reference guide for Amazon Route 53 Resolver's
3748// API operation ListFirewallDomains for usage and error information.
3749//
3750// Returned Error Types:
3751//   * ResourceNotFoundException
3752//   The specified resource doesn't exist.
3753//
3754//   * ValidationException
3755//
3756//   * AccessDeniedException
3757//   The current account doesn't have the IAM permissions required to perform
3758//   the specified Resolver operation.
3759//
3760//   * InternalServiceErrorException
3761//   We encountered an unknown error. Try again in a few minutes.
3762//
3763//   * ThrottlingException
3764//   The request was throttled. Try again in a few minutes.
3765//
3766// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListFirewallDomains
3767func (c *Route53Resolver) ListFirewallDomains(input *ListFirewallDomainsInput) (*ListFirewallDomainsOutput, error) {
3768	req, out := c.ListFirewallDomainsRequest(input)
3769	return out, req.Send()
3770}
3771
3772// ListFirewallDomainsWithContext is the same as ListFirewallDomains with the addition of
3773// the ability to pass a context and additional request options.
3774//
3775// See ListFirewallDomains for details on how to use this API operation.
3776//
3777// The context must be non-nil and will be used for request cancellation. If
3778// the context is nil a panic will occur. In the future the SDK may create
3779// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3780// for more information on using Contexts.
3781func (c *Route53Resolver) ListFirewallDomainsWithContext(ctx aws.Context, input *ListFirewallDomainsInput, opts ...request.Option) (*ListFirewallDomainsOutput, error) {
3782	req, out := c.ListFirewallDomainsRequest(input)
3783	req.SetContext(ctx)
3784	req.ApplyOptions(opts...)
3785	return out, req.Send()
3786}
3787
3788// ListFirewallDomainsPages iterates over the pages of a ListFirewallDomains operation,
3789// calling the "fn" function with the response data for each page. To stop
3790// iterating, return false from the fn function.
3791//
3792// See ListFirewallDomains method for more information on how to use this operation.
3793//
3794// Note: This operation can generate multiple requests to a service.
3795//
3796//    // Example iterating over at most 3 pages of a ListFirewallDomains operation.
3797//    pageNum := 0
3798//    err := client.ListFirewallDomainsPages(params,
3799//        func(page *route53resolver.ListFirewallDomainsOutput, lastPage bool) bool {
3800//            pageNum++
3801//            fmt.Println(page)
3802//            return pageNum <= 3
3803//        })
3804//
3805func (c *Route53Resolver) ListFirewallDomainsPages(input *ListFirewallDomainsInput, fn func(*ListFirewallDomainsOutput, bool) bool) error {
3806	return c.ListFirewallDomainsPagesWithContext(aws.BackgroundContext(), input, fn)
3807}
3808
3809// ListFirewallDomainsPagesWithContext same as ListFirewallDomainsPages except
3810// it takes a Context and allows setting request options on the pages.
3811//
3812// The context must be non-nil and will be used for request cancellation. If
3813// the context is nil a panic will occur. In the future the SDK may create
3814// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3815// for more information on using Contexts.
3816func (c *Route53Resolver) ListFirewallDomainsPagesWithContext(ctx aws.Context, input *ListFirewallDomainsInput, fn func(*ListFirewallDomainsOutput, bool) bool, opts ...request.Option) error {
3817	p := request.Pagination{
3818		NewRequest: func() (*request.Request, error) {
3819			var inCpy *ListFirewallDomainsInput
3820			if input != nil {
3821				tmp := *input
3822				inCpy = &tmp
3823			}
3824			req, _ := c.ListFirewallDomainsRequest(inCpy)
3825			req.SetContext(ctx)
3826			req.ApplyOptions(opts...)
3827			return req, nil
3828		},
3829	}
3830
3831	for p.Next() {
3832		if !fn(p.Page().(*ListFirewallDomainsOutput), !p.HasNextPage()) {
3833			break
3834		}
3835	}
3836
3837	return p.Err()
3838}
3839
3840const opListFirewallRuleGroupAssociations = "ListFirewallRuleGroupAssociations"
3841
3842// ListFirewallRuleGroupAssociationsRequest generates a "aws/request.Request" representing the
3843// client's request for the ListFirewallRuleGroupAssociations operation. The "output" return
3844// value will be populated with the request's response once the request completes
3845// successfully.
3846//
3847// Use "Send" method on the returned Request to send the API call to the service.
3848// the "output" return value is not valid until after Send returns without error.
3849//
3850// See ListFirewallRuleGroupAssociations for more information on using the ListFirewallRuleGroupAssociations
3851// API call, and error handling.
3852//
3853// This method is useful when you want to inject custom logic or configuration
3854// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3855//
3856//
3857//    // Example sending a request using the ListFirewallRuleGroupAssociationsRequest method.
3858//    req, resp := client.ListFirewallRuleGroupAssociationsRequest(params)
3859//
3860//    err := req.Send()
3861//    if err == nil { // resp is now filled
3862//        fmt.Println(resp)
3863//    }
3864//
3865// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListFirewallRuleGroupAssociations
3866func (c *Route53Resolver) ListFirewallRuleGroupAssociationsRequest(input *ListFirewallRuleGroupAssociationsInput) (req *request.Request, output *ListFirewallRuleGroupAssociationsOutput) {
3867	op := &request.Operation{
3868		Name:       opListFirewallRuleGroupAssociations,
3869		HTTPMethod: "POST",
3870		HTTPPath:   "/",
3871		Paginator: &request.Paginator{
3872			InputTokens:     []string{"NextToken"},
3873			OutputTokens:    []string{"NextToken"},
3874			LimitToken:      "MaxResults",
3875			TruncationToken: "",
3876		},
3877	}
3878
3879	if input == nil {
3880		input = &ListFirewallRuleGroupAssociationsInput{}
3881	}
3882
3883	output = &ListFirewallRuleGroupAssociationsOutput{}
3884	req = c.newRequest(op, input, output)
3885	return
3886}
3887
3888// ListFirewallRuleGroupAssociations API operation for Amazon Route 53 Resolver.
3889//
3890// Retrieves the firewall rule group associations that you have defined. Each
3891// association enables DNS filtering for a VPC with one rule group.
3892//
3893// A single call might return only a partial list of the associations. For information,
3894// see MaxResults.
3895//
3896// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3897// with awserr.Error's Code and Message methods to get detailed information about
3898// the error.
3899//
3900// See the AWS API reference guide for Amazon Route 53 Resolver's
3901// API operation ListFirewallRuleGroupAssociations for usage and error information.
3902//
3903// Returned Error Types:
3904//   * ValidationException
3905//
3906//   * AccessDeniedException
3907//   The current account doesn't have the IAM permissions required to perform
3908//   the specified Resolver operation.
3909//
3910//   * InternalServiceErrorException
3911//   We encountered an unknown error. Try again in a few minutes.
3912//
3913//   * ThrottlingException
3914//   The request was throttled. Try again in a few minutes.
3915//
3916// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListFirewallRuleGroupAssociations
3917func (c *Route53Resolver) ListFirewallRuleGroupAssociations(input *ListFirewallRuleGroupAssociationsInput) (*ListFirewallRuleGroupAssociationsOutput, error) {
3918	req, out := c.ListFirewallRuleGroupAssociationsRequest(input)
3919	return out, req.Send()
3920}
3921
3922// ListFirewallRuleGroupAssociationsWithContext is the same as ListFirewallRuleGroupAssociations with the addition of
3923// the ability to pass a context and additional request options.
3924//
3925// See ListFirewallRuleGroupAssociations for details on how to use this API operation.
3926//
3927// The context must be non-nil and will be used for request cancellation. If
3928// the context is nil a panic will occur. In the future the SDK may create
3929// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3930// for more information on using Contexts.
3931func (c *Route53Resolver) ListFirewallRuleGroupAssociationsWithContext(ctx aws.Context, input *ListFirewallRuleGroupAssociationsInput, opts ...request.Option) (*ListFirewallRuleGroupAssociationsOutput, error) {
3932	req, out := c.ListFirewallRuleGroupAssociationsRequest(input)
3933	req.SetContext(ctx)
3934	req.ApplyOptions(opts...)
3935	return out, req.Send()
3936}
3937
3938// ListFirewallRuleGroupAssociationsPages iterates over the pages of a ListFirewallRuleGroupAssociations operation,
3939// calling the "fn" function with the response data for each page. To stop
3940// iterating, return false from the fn function.
3941//
3942// See ListFirewallRuleGroupAssociations method for more information on how to use this operation.
3943//
3944// Note: This operation can generate multiple requests to a service.
3945//
3946//    // Example iterating over at most 3 pages of a ListFirewallRuleGroupAssociations operation.
3947//    pageNum := 0
3948//    err := client.ListFirewallRuleGroupAssociationsPages(params,
3949//        func(page *route53resolver.ListFirewallRuleGroupAssociationsOutput, lastPage bool) bool {
3950//            pageNum++
3951//            fmt.Println(page)
3952//            return pageNum <= 3
3953//        })
3954//
3955func (c *Route53Resolver) ListFirewallRuleGroupAssociationsPages(input *ListFirewallRuleGroupAssociationsInput, fn func(*ListFirewallRuleGroupAssociationsOutput, bool) bool) error {
3956	return c.ListFirewallRuleGroupAssociationsPagesWithContext(aws.BackgroundContext(), input, fn)
3957}
3958
3959// ListFirewallRuleGroupAssociationsPagesWithContext same as ListFirewallRuleGroupAssociationsPages except
3960// it takes a Context and allows setting request options on the pages.
3961//
3962// The context must be non-nil and will be used for request cancellation. If
3963// the context is nil a panic will occur. In the future the SDK may create
3964// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3965// for more information on using Contexts.
3966func (c *Route53Resolver) ListFirewallRuleGroupAssociationsPagesWithContext(ctx aws.Context, input *ListFirewallRuleGroupAssociationsInput, fn func(*ListFirewallRuleGroupAssociationsOutput, bool) bool, opts ...request.Option) error {
3967	p := request.Pagination{
3968		NewRequest: func() (*request.Request, error) {
3969			var inCpy *ListFirewallRuleGroupAssociationsInput
3970			if input != nil {
3971				tmp := *input
3972				inCpy = &tmp
3973			}
3974			req, _ := c.ListFirewallRuleGroupAssociationsRequest(inCpy)
3975			req.SetContext(ctx)
3976			req.ApplyOptions(opts...)
3977			return req, nil
3978		},
3979	}
3980
3981	for p.Next() {
3982		if !fn(p.Page().(*ListFirewallRuleGroupAssociationsOutput), !p.HasNextPage()) {
3983			break
3984		}
3985	}
3986
3987	return p.Err()
3988}
3989
3990const opListFirewallRuleGroups = "ListFirewallRuleGroups"
3991
3992// ListFirewallRuleGroupsRequest generates a "aws/request.Request" representing the
3993// client's request for the ListFirewallRuleGroups operation. The "output" return
3994// value will be populated with the request's response once the request completes
3995// successfully.
3996//
3997// Use "Send" method on the returned Request to send the API call to the service.
3998// the "output" return value is not valid until after Send returns without error.
3999//
4000// See ListFirewallRuleGroups for more information on using the ListFirewallRuleGroups
4001// API call, and error handling.
4002//
4003// This method is useful when you want to inject custom logic or configuration
4004// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4005//
4006//
4007//    // Example sending a request using the ListFirewallRuleGroupsRequest method.
4008//    req, resp := client.ListFirewallRuleGroupsRequest(params)
4009//
4010//    err := req.Send()
4011//    if err == nil { // resp is now filled
4012//        fmt.Println(resp)
4013//    }
4014//
4015// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListFirewallRuleGroups
4016func (c *Route53Resolver) ListFirewallRuleGroupsRequest(input *ListFirewallRuleGroupsInput) (req *request.Request, output *ListFirewallRuleGroupsOutput) {
4017	op := &request.Operation{
4018		Name:       opListFirewallRuleGroups,
4019		HTTPMethod: "POST",
4020		HTTPPath:   "/",
4021		Paginator: &request.Paginator{
4022			InputTokens:     []string{"NextToken"},
4023			OutputTokens:    []string{"NextToken"},
4024			LimitToken:      "MaxResults",
4025			TruncationToken: "",
4026		},
4027	}
4028
4029	if input == nil {
4030		input = &ListFirewallRuleGroupsInput{}
4031	}
4032
4033	output = &ListFirewallRuleGroupsOutput{}
4034	req = c.newRequest(op, input, output)
4035	return
4036}
4037
4038// ListFirewallRuleGroups API operation for Amazon Route 53 Resolver.
4039//
4040// Retrieves the minimal high-level information for the rule groups that you
4041// have defined.
4042//
4043// A single call might return only a partial list of the rule groups. For information,
4044// see MaxResults.
4045//
4046// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4047// with awserr.Error's Code and Message methods to get detailed information about
4048// the error.
4049//
4050// See the AWS API reference guide for Amazon Route 53 Resolver's
4051// API operation ListFirewallRuleGroups for usage and error information.
4052//
4053// Returned Error Types:
4054//   * ValidationException
4055//
4056//   * AccessDeniedException
4057//   The current account doesn't have the IAM permissions required to perform
4058//   the specified Resolver operation.
4059//
4060//   * InternalServiceErrorException
4061//   We encountered an unknown error. Try again in a few minutes.
4062//
4063//   * ThrottlingException
4064//   The request was throttled. Try again in a few minutes.
4065//
4066// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListFirewallRuleGroups
4067func (c *Route53Resolver) ListFirewallRuleGroups(input *ListFirewallRuleGroupsInput) (*ListFirewallRuleGroupsOutput, error) {
4068	req, out := c.ListFirewallRuleGroupsRequest(input)
4069	return out, req.Send()
4070}
4071
4072// ListFirewallRuleGroupsWithContext is the same as ListFirewallRuleGroups with the addition of
4073// the ability to pass a context and additional request options.
4074//
4075// See ListFirewallRuleGroups for details on how to use this API operation.
4076//
4077// The context must be non-nil and will be used for request cancellation. If
4078// the context is nil a panic will occur. In the future the SDK may create
4079// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4080// for more information on using Contexts.
4081func (c *Route53Resolver) ListFirewallRuleGroupsWithContext(ctx aws.Context, input *ListFirewallRuleGroupsInput, opts ...request.Option) (*ListFirewallRuleGroupsOutput, error) {
4082	req, out := c.ListFirewallRuleGroupsRequest(input)
4083	req.SetContext(ctx)
4084	req.ApplyOptions(opts...)
4085	return out, req.Send()
4086}
4087
4088// ListFirewallRuleGroupsPages iterates over the pages of a ListFirewallRuleGroups operation,
4089// calling the "fn" function with the response data for each page. To stop
4090// iterating, return false from the fn function.
4091//
4092// See ListFirewallRuleGroups method for more information on how to use this operation.
4093//
4094// Note: This operation can generate multiple requests to a service.
4095//
4096//    // Example iterating over at most 3 pages of a ListFirewallRuleGroups operation.
4097//    pageNum := 0
4098//    err := client.ListFirewallRuleGroupsPages(params,
4099//        func(page *route53resolver.ListFirewallRuleGroupsOutput, lastPage bool) bool {
4100//            pageNum++
4101//            fmt.Println(page)
4102//            return pageNum <= 3
4103//        })
4104//
4105func (c *Route53Resolver) ListFirewallRuleGroupsPages(input *ListFirewallRuleGroupsInput, fn func(*ListFirewallRuleGroupsOutput, bool) bool) error {
4106	return c.ListFirewallRuleGroupsPagesWithContext(aws.BackgroundContext(), input, fn)
4107}
4108
4109// ListFirewallRuleGroupsPagesWithContext same as ListFirewallRuleGroupsPages except
4110// it takes a Context and allows setting request options on the pages.
4111//
4112// The context must be non-nil and will be used for request cancellation. If
4113// the context is nil a panic will occur. In the future the SDK may create
4114// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4115// for more information on using Contexts.
4116func (c *Route53Resolver) ListFirewallRuleGroupsPagesWithContext(ctx aws.Context, input *ListFirewallRuleGroupsInput, fn func(*ListFirewallRuleGroupsOutput, bool) bool, opts ...request.Option) error {
4117	p := request.Pagination{
4118		NewRequest: func() (*request.Request, error) {
4119			var inCpy *ListFirewallRuleGroupsInput
4120			if input != nil {
4121				tmp := *input
4122				inCpy = &tmp
4123			}
4124			req, _ := c.ListFirewallRuleGroupsRequest(inCpy)
4125			req.SetContext(ctx)
4126			req.ApplyOptions(opts...)
4127			return req, nil
4128		},
4129	}
4130
4131	for p.Next() {
4132		if !fn(p.Page().(*ListFirewallRuleGroupsOutput), !p.HasNextPage()) {
4133			break
4134		}
4135	}
4136
4137	return p.Err()
4138}
4139
4140const opListFirewallRules = "ListFirewallRules"
4141
4142// ListFirewallRulesRequest generates a "aws/request.Request" representing the
4143// client's request for the ListFirewallRules operation. The "output" return
4144// value will be populated with the request's response once the request completes
4145// successfully.
4146//
4147// Use "Send" method on the returned Request to send the API call to the service.
4148// the "output" return value is not valid until after Send returns without error.
4149//
4150// See ListFirewallRules for more information on using the ListFirewallRules
4151// API call, and error handling.
4152//
4153// This method is useful when you want to inject custom logic or configuration
4154// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4155//
4156//
4157//    // Example sending a request using the ListFirewallRulesRequest method.
4158//    req, resp := client.ListFirewallRulesRequest(params)
4159//
4160//    err := req.Send()
4161//    if err == nil { // resp is now filled
4162//        fmt.Println(resp)
4163//    }
4164//
4165// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListFirewallRules
4166func (c *Route53Resolver) ListFirewallRulesRequest(input *ListFirewallRulesInput) (req *request.Request, output *ListFirewallRulesOutput) {
4167	op := &request.Operation{
4168		Name:       opListFirewallRules,
4169		HTTPMethod: "POST",
4170		HTTPPath:   "/",
4171		Paginator: &request.Paginator{
4172			InputTokens:     []string{"NextToken"},
4173			OutputTokens:    []string{"NextToken"},
4174			LimitToken:      "MaxResults",
4175			TruncationToken: "",
4176		},
4177	}
4178
4179	if input == nil {
4180		input = &ListFirewallRulesInput{}
4181	}
4182
4183	output = &ListFirewallRulesOutput{}
4184	req = c.newRequest(op, input, output)
4185	return
4186}
4187
4188// ListFirewallRules API operation for Amazon Route 53 Resolver.
4189//
4190// Retrieves the firewall rules that you have defined for the specified firewall
4191// rule group. DNS Firewall uses the rules in a rule group to filter DNS network
4192// traffic for a VPC.
4193//
4194// A single call might return only a partial list of the rules. For information,
4195// see MaxResults.
4196//
4197// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4198// with awserr.Error's Code and Message methods to get detailed information about
4199// the error.
4200//
4201// See the AWS API reference guide for Amazon Route 53 Resolver's
4202// API operation ListFirewallRules for usage and error information.
4203//
4204// Returned Error Types:
4205//   * ResourceNotFoundException
4206//   The specified resource doesn't exist.
4207//
4208//   * ValidationException
4209//
4210//   * AccessDeniedException
4211//   The current account doesn't have the IAM permissions required to perform
4212//   the specified Resolver operation.
4213//
4214//   * InternalServiceErrorException
4215//   We encountered an unknown error. Try again in a few minutes.
4216//
4217//   * ThrottlingException
4218//   The request was throttled. Try again in a few minutes.
4219//
4220// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListFirewallRules
4221func (c *Route53Resolver) ListFirewallRules(input *ListFirewallRulesInput) (*ListFirewallRulesOutput, error) {
4222	req, out := c.ListFirewallRulesRequest(input)
4223	return out, req.Send()
4224}
4225
4226// ListFirewallRulesWithContext is the same as ListFirewallRules with the addition of
4227// the ability to pass a context and additional request options.
4228//
4229// See ListFirewallRules for details on how to use this API operation.
4230//
4231// The context must be non-nil and will be used for request cancellation. If
4232// the context is nil a panic will occur. In the future the SDK may create
4233// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4234// for more information on using Contexts.
4235func (c *Route53Resolver) ListFirewallRulesWithContext(ctx aws.Context, input *ListFirewallRulesInput, opts ...request.Option) (*ListFirewallRulesOutput, error) {
4236	req, out := c.ListFirewallRulesRequest(input)
4237	req.SetContext(ctx)
4238	req.ApplyOptions(opts...)
4239	return out, req.Send()
4240}
4241
4242// ListFirewallRulesPages iterates over the pages of a ListFirewallRules operation,
4243// calling the "fn" function with the response data for each page. To stop
4244// iterating, return false from the fn function.
4245//
4246// See ListFirewallRules method for more information on how to use this operation.
4247//
4248// Note: This operation can generate multiple requests to a service.
4249//
4250//    // Example iterating over at most 3 pages of a ListFirewallRules operation.
4251//    pageNum := 0
4252//    err := client.ListFirewallRulesPages(params,
4253//        func(page *route53resolver.ListFirewallRulesOutput, lastPage bool) bool {
4254//            pageNum++
4255//            fmt.Println(page)
4256//            return pageNum <= 3
4257//        })
4258//
4259func (c *Route53Resolver) ListFirewallRulesPages(input *ListFirewallRulesInput, fn func(*ListFirewallRulesOutput, bool) bool) error {
4260	return c.ListFirewallRulesPagesWithContext(aws.BackgroundContext(), input, fn)
4261}
4262
4263// ListFirewallRulesPagesWithContext same as ListFirewallRulesPages except
4264// it takes a Context and allows setting request options on the pages.
4265//
4266// The context must be non-nil and will be used for request cancellation. If
4267// the context is nil a panic will occur. In the future the SDK may create
4268// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4269// for more information on using Contexts.
4270func (c *Route53Resolver) ListFirewallRulesPagesWithContext(ctx aws.Context, input *ListFirewallRulesInput, fn func(*ListFirewallRulesOutput, bool) bool, opts ...request.Option) error {
4271	p := request.Pagination{
4272		NewRequest: func() (*request.Request, error) {
4273			var inCpy *ListFirewallRulesInput
4274			if input != nil {
4275				tmp := *input
4276				inCpy = &tmp
4277			}
4278			req, _ := c.ListFirewallRulesRequest(inCpy)
4279			req.SetContext(ctx)
4280			req.ApplyOptions(opts...)
4281			return req, nil
4282		},
4283	}
4284
4285	for p.Next() {
4286		if !fn(p.Page().(*ListFirewallRulesOutput), !p.HasNextPage()) {
4287			break
4288		}
4289	}
4290
4291	return p.Err()
4292}
4293
4294const opListResolverConfigs = "ListResolverConfigs"
4295
4296// ListResolverConfigsRequest generates a "aws/request.Request" representing the
4297// client's request for the ListResolverConfigs operation. The "output" return
4298// value will be populated with the request's response once the request completes
4299// successfully.
4300//
4301// Use "Send" method on the returned Request to send the API call to the service.
4302// the "output" return value is not valid until after Send returns without error.
4303//
4304// See ListResolverConfigs for more information on using the ListResolverConfigs
4305// API call, and error handling.
4306//
4307// This method is useful when you want to inject custom logic or configuration
4308// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4309//
4310//
4311//    // Example sending a request using the ListResolverConfigsRequest method.
4312//    req, resp := client.ListResolverConfigsRequest(params)
4313//
4314//    err := req.Send()
4315//    if err == nil { // resp is now filled
4316//        fmt.Println(resp)
4317//    }
4318//
4319// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListResolverConfigs
4320func (c *Route53Resolver) ListResolverConfigsRequest(input *ListResolverConfigsInput) (req *request.Request, output *ListResolverConfigsOutput) {
4321	op := &request.Operation{
4322		Name:       opListResolverConfigs,
4323		HTTPMethod: "POST",
4324		HTTPPath:   "/",
4325		Paginator: &request.Paginator{
4326			InputTokens:     []string{"NextToken"},
4327			OutputTokens:    []string{"NextToken"},
4328			LimitToken:      "MaxResults",
4329			TruncationToken: "",
4330		},
4331	}
4332
4333	if input == nil {
4334		input = &ListResolverConfigsInput{}
4335	}
4336
4337	output = &ListResolverConfigsOutput{}
4338	req = c.newRequest(op, input, output)
4339	return
4340}
4341
4342// ListResolverConfigs API operation for Amazon Route 53 Resolver.
4343//
4344// Retrieves the Resolver configurations that you have defined. Route 53 Resolver
4345// uses the configurations to manage DNS resolution behavior for your VPCs.
4346//
4347// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4348// with awserr.Error's Code and Message methods to get detailed information about
4349// the error.
4350//
4351// See the AWS API reference guide for Amazon Route 53 Resolver's
4352// API operation ListResolverConfigs for usage and error information.
4353//
4354// Returned Error Types:
4355//   * InvalidNextTokenException
4356//   The value that you specified for NextToken in a List request isn't valid.
4357//
4358//   * InvalidRequestException
4359//   The request is invalid.
4360//
4361//   * InvalidParameterException
4362//   One or more parameters in this request are not valid.
4363//
4364//   * InternalServiceErrorException
4365//   We encountered an unknown error. Try again in a few minutes.
4366//
4367//   * ThrottlingException
4368//   The request was throttled. Try again in a few minutes.
4369//
4370//   * AccessDeniedException
4371//   The current account doesn't have the IAM permissions required to perform
4372//   the specified Resolver operation.
4373//
4374// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListResolverConfigs
4375func (c *Route53Resolver) ListResolverConfigs(input *ListResolverConfigsInput) (*ListResolverConfigsOutput, error) {
4376	req, out := c.ListResolverConfigsRequest(input)
4377	return out, req.Send()
4378}
4379
4380// ListResolverConfigsWithContext is the same as ListResolverConfigs with the addition of
4381// the ability to pass a context and additional request options.
4382//
4383// See ListResolverConfigs for details on how to use this API operation.
4384//
4385// The context must be non-nil and will be used for request cancellation. If
4386// the context is nil a panic will occur. In the future the SDK may create
4387// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4388// for more information on using Contexts.
4389func (c *Route53Resolver) ListResolverConfigsWithContext(ctx aws.Context, input *ListResolverConfigsInput, opts ...request.Option) (*ListResolverConfigsOutput, error) {
4390	req, out := c.ListResolverConfigsRequest(input)
4391	req.SetContext(ctx)
4392	req.ApplyOptions(opts...)
4393	return out, req.Send()
4394}
4395
4396// ListResolverConfigsPages iterates over the pages of a ListResolverConfigs operation,
4397// calling the "fn" function with the response data for each page. To stop
4398// iterating, return false from the fn function.
4399//
4400// See ListResolverConfigs method for more information on how to use this operation.
4401//
4402// Note: This operation can generate multiple requests to a service.
4403//
4404//    // Example iterating over at most 3 pages of a ListResolverConfigs operation.
4405//    pageNum := 0
4406//    err := client.ListResolverConfigsPages(params,
4407//        func(page *route53resolver.ListResolverConfigsOutput, lastPage bool) bool {
4408//            pageNum++
4409//            fmt.Println(page)
4410//            return pageNum <= 3
4411//        })
4412//
4413func (c *Route53Resolver) ListResolverConfigsPages(input *ListResolverConfigsInput, fn func(*ListResolverConfigsOutput, bool) bool) error {
4414	return c.ListResolverConfigsPagesWithContext(aws.BackgroundContext(), input, fn)
4415}
4416
4417// ListResolverConfigsPagesWithContext same as ListResolverConfigsPages except
4418// it takes a Context and allows setting request options on the pages.
4419//
4420// The context must be non-nil and will be used for request cancellation. If
4421// the context is nil a panic will occur. In the future the SDK may create
4422// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4423// for more information on using Contexts.
4424func (c *Route53Resolver) ListResolverConfigsPagesWithContext(ctx aws.Context, input *ListResolverConfigsInput, fn func(*ListResolverConfigsOutput, bool) bool, opts ...request.Option) error {
4425	p := request.Pagination{
4426		NewRequest: func() (*request.Request, error) {
4427			var inCpy *ListResolverConfigsInput
4428			if input != nil {
4429				tmp := *input
4430				inCpy = &tmp
4431			}
4432			req, _ := c.ListResolverConfigsRequest(inCpy)
4433			req.SetContext(ctx)
4434			req.ApplyOptions(opts...)
4435			return req, nil
4436		},
4437	}
4438
4439	for p.Next() {
4440		if !fn(p.Page().(*ListResolverConfigsOutput), !p.HasNextPage()) {
4441			break
4442		}
4443	}
4444
4445	return p.Err()
4446}
4447
4448const opListResolverDnssecConfigs = "ListResolverDnssecConfigs"
4449
4450// ListResolverDnssecConfigsRequest generates a "aws/request.Request" representing the
4451// client's request for the ListResolverDnssecConfigs operation. The "output" return
4452// value will be populated with the request's response once the request completes
4453// successfully.
4454//
4455// Use "Send" method on the returned Request to send the API call to the service.
4456// the "output" return value is not valid until after Send returns without error.
4457//
4458// See ListResolverDnssecConfigs for more information on using the ListResolverDnssecConfigs
4459// API call, and error handling.
4460//
4461// This method is useful when you want to inject custom logic or configuration
4462// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4463//
4464//
4465//    // Example sending a request using the ListResolverDnssecConfigsRequest method.
4466//    req, resp := client.ListResolverDnssecConfigsRequest(params)
4467//
4468//    err := req.Send()
4469//    if err == nil { // resp is now filled
4470//        fmt.Println(resp)
4471//    }
4472//
4473// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListResolverDnssecConfigs
4474func (c *Route53Resolver) ListResolverDnssecConfigsRequest(input *ListResolverDnssecConfigsInput) (req *request.Request, output *ListResolverDnssecConfigsOutput) {
4475	op := &request.Operation{
4476		Name:       opListResolverDnssecConfigs,
4477		HTTPMethod: "POST",
4478		HTTPPath:   "/",
4479		Paginator: &request.Paginator{
4480			InputTokens:     []string{"NextToken"},
4481			OutputTokens:    []string{"NextToken"},
4482			LimitToken:      "MaxResults",
4483			TruncationToken: "",
4484		},
4485	}
4486
4487	if input == nil {
4488		input = &ListResolverDnssecConfigsInput{}
4489	}
4490
4491	output = &ListResolverDnssecConfigsOutput{}
4492	req = c.newRequest(op, input, output)
4493	return
4494}
4495
4496// ListResolverDnssecConfigs API operation for Amazon Route 53 Resolver.
4497//
4498// Lists the configurations for DNSSEC validation that are associated with the
4499// current Amazon Web Services account.
4500//
4501// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4502// with awserr.Error's Code and Message methods to get detailed information about
4503// the error.
4504//
4505// See the AWS API reference guide for Amazon Route 53 Resolver's
4506// API operation ListResolverDnssecConfigs for usage and error information.
4507//
4508// Returned Error Types:
4509//   * InvalidNextTokenException
4510//   The value that you specified for NextToken in a List request isn't valid.
4511//
4512//   * InvalidParameterException
4513//   One or more parameters in this request are not valid.
4514//
4515//   * InvalidRequestException
4516//   The request is invalid.
4517//
4518//   * InternalServiceErrorException
4519//   We encountered an unknown error. Try again in a few minutes.
4520//
4521//   * ThrottlingException
4522//   The request was throttled. Try again in a few minutes.
4523//
4524//   * AccessDeniedException
4525//   The current account doesn't have the IAM permissions required to perform
4526//   the specified Resolver operation.
4527//
4528// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListResolverDnssecConfigs
4529func (c *Route53Resolver) ListResolverDnssecConfigs(input *ListResolverDnssecConfigsInput) (*ListResolverDnssecConfigsOutput, error) {
4530	req, out := c.ListResolverDnssecConfigsRequest(input)
4531	return out, req.Send()
4532}
4533
4534// ListResolverDnssecConfigsWithContext is the same as ListResolverDnssecConfigs with the addition of
4535// the ability to pass a context and additional request options.
4536//
4537// See ListResolverDnssecConfigs for details on how to use this API operation.
4538//
4539// The context must be non-nil and will be used for request cancellation. If
4540// the context is nil a panic will occur. In the future the SDK may create
4541// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4542// for more information on using Contexts.
4543func (c *Route53Resolver) ListResolverDnssecConfigsWithContext(ctx aws.Context, input *ListResolverDnssecConfigsInput, opts ...request.Option) (*ListResolverDnssecConfigsOutput, error) {
4544	req, out := c.ListResolverDnssecConfigsRequest(input)
4545	req.SetContext(ctx)
4546	req.ApplyOptions(opts...)
4547	return out, req.Send()
4548}
4549
4550// ListResolverDnssecConfigsPages iterates over the pages of a ListResolverDnssecConfigs operation,
4551// calling the "fn" function with the response data for each page. To stop
4552// iterating, return false from the fn function.
4553//
4554// See ListResolverDnssecConfigs method for more information on how to use this operation.
4555//
4556// Note: This operation can generate multiple requests to a service.
4557//
4558//    // Example iterating over at most 3 pages of a ListResolverDnssecConfigs operation.
4559//    pageNum := 0
4560//    err := client.ListResolverDnssecConfigsPages(params,
4561//        func(page *route53resolver.ListResolverDnssecConfigsOutput, lastPage bool) bool {
4562//            pageNum++
4563//            fmt.Println(page)
4564//            return pageNum <= 3
4565//        })
4566//
4567func (c *Route53Resolver) ListResolverDnssecConfigsPages(input *ListResolverDnssecConfigsInput, fn func(*ListResolverDnssecConfigsOutput, bool) bool) error {
4568	return c.ListResolverDnssecConfigsPagesWithContext(aws.BackgroundContext(), input, fn)
4569}
4570
4571// ListResolverDnssecConfigsPagesWithContext same as ListResolverDnssecConfigsPages except
4572// it takes a Context and allows setting request options on the pages.
4573//
4574// The context must be non-nil and will be used for request cancellation. If
4575// the context is nil a panic will occur. In the future the SDK may create
4576// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4577// for more information on using Contexts.
4578func (c *Route53Resolver) ListResolverDnssecConfigsPagesWithContext(ctx aws.Context, input *ListResolverDnssecConfigsInput, fn func(*ListResolverDnssecConfigsOutput, bool) bool, opts ...request.Option) error {
4579	p := request.Pagination{
4580		NewRequest: func() (*request.Request, error) {
4581			var inCpy *ListResolverDnssecConfigsInput
4582			if input != nil {
4583				tmp := *input
4584				inCpy = &tmp
4585			}
4586			req, _ := c.ListResolverDnssecConfigsRequest(inCpy)
4587			req.SetContext(ctx)
4588			req.ApplyOptions(opts...)
4589			return req, nil
4590		},
4591	}
4592
4593	for p.Next() {
4594		if !fn(p.Page().(*ListResolverDnssecConfigsOutput), !p.HasNextPage()) {
4595			break
4596		}
4597	}
4598
4599	return p.Err()
4600}
4601
4602const opListResolverEndpointIpAddresses = "ListResolverEndpointIpAddresses"
4603
4604// ListResolverEndpointIpAddressesRequest generates a "aws/request.Request" representing the
4605// client's request for the ListResolverEndpointIpAddresses operation. The "output" return
4606// value will be populated with the request's response once the request completes
4607// successfully.
4608//
4609// Use "Send" method on the returned Request to send the API call to the service.
4610// the "output" return value is not valid until after Send returns without error.
4611//
4612// See ListResolverEndpointIpAddresses for more information on using the ListResolverEndpointIpAddresses
4613// API call, and error handling.
4614//
4615// This method is useful when you want to inject custom logic or configuration
4616// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4617//
4618//
4619//    // Example sending a request using the ListResolverEndpointIpAddressesRequest method.
4620//    req, resp := client.ListResolverEndpointIpAddressesRequest(params)
4621//
4622//    err := req.Send()
4623//    if err == nil { // resp is now filled
4624//        fmt.Println(resp)
4625//    }
4626//
4627// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListResolverEndpointIpAddresses
4628func (c *Route53Resolver) ListResolverEndpointIpAddressesRequest(input *ListResolverEndpointIpAddressesInput) (req *request.Request, output *ListResolverEndpointIpAddressesOutput) {
4629	op := &request.Operation{
4630		Name:       opListResolverEndpointIpAddresses,
4631		HTTPMethod: "POST",
4632		HTTPPath:   "/",
4633		Paginator: &request.Paginator{
4634			InputTokens:     []string{"NextToken"},
4635			OutputTokens:    []string{"NextToken"},
4636			LimitToken:      "MaxResults",
4637			TruncationToken: "",
4638		},
4639	}
4640
4641	if input == nil {
4642		input = &ListResolverEndpointIpAddressesInput{}
4643	}
4644
4645	output = &ListResolverEndpointIpAddressesOutput{}
4646	req = c.newRequest(op, input, output)
4647	return
4648}
4649
4650// ListResolverEndpointIpAddresses API operation for Amazon Route 53 Resolver.
4651//
4652// Gets the IP addresses for a specified Resolver endpoint.
4653//
4654// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4655// with awserr.Error's Code and Message methods to get detailed information about
4656// the error.
4657//
4658// See the AWS API reference guide for Amazon Route 53 Resolver's
4659// API operation ListResolverEndpointIpAddresses for usage and error information.
4660//
4661// Returned Error Types:
4662//   * ResourceNotFoundException
4663//   The specified resource doesn't exist.
4664//
4665//   * InvalidParameterException
4666//   One or more parameters in this request are not valid.
4667//
4668//   * InternalServiceErrorException
4669//   We encountered an unknown error. Try again in a few minutes.
4670//
4671//   * InvalidNextTokenException
4672//   The value that you specified for NextToken in a List request isn't valid.
4673//
4674//   * ThrottlingException
4675//   The request was throttled. Try again in a few minutes.
4676//
4677// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListResolverEndpointIpAddresses
4678func (c *Route53Resolver) ListResolverEndpointIpAddresses(input *ListResolverEndpointIpAddressesInput) (*ListResolverEndpointIpAddressesOutput, error) {
4679	req, out := c.ListResolverEndpointIpAddressesRequest(input)
4680	return out, req.Send()
4681}
4682
4683// ListResolverEndpointIpAddressesWithContext is the same as ListResolverEndpointIpAddresses with the addition of
4684// the ability to pass a context and additional request options.
4685//
4686// See ListResolverEndpointIpAddresses for details on how to use this API operation.
4687//
4688// The context must be non-nil and will be used for request cancellation. If
4689// the context is nil a panic will occur. In the future the SDK may create
4690// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4691// for more information on using Contexts.
4692func (c *Route53Resolver) ListResolverEndpointIpAddressesWithContext(ctx aws.Context, input *ListResolverEndpointIpAddressesInput, opts ...request.Option) (*ListResolverEndpointIpAddressesOutput, error) {
4693	req, out := c.ListResolverEndpointIpAddressesRequest(input)
4694	req.SetContext(ctx)
4695	req.ApplyOptions(opts...)
4696	return out, req.Send()
4697}
4698
4699// ListResolverEndpointIpAddressesPages iterates over the pages of a ListResolverEndpointIpAddresses operation,
4700// calling the "fn" function with the response data for each page. To stop
4701// iterating, return false from the fn function.
4702//
4703// See ListResolverEndpointIpAddresses method for more information on how to use this operation.
4704//
4705// Note: This operation can generate multiple requests to a service.
4706//
4707//    // Example iterating over at most 3 pages of a ListResolverEndpointIpAddresses operation.
4708//    pageNum := 0
4709//    err := client.ListResolverEndpointIpAddressesPages(params,
4710//        func(page *route53resolver.ListResolverEndpointIpAddressesOutput, lastPage bool) bool {
4711//            pageNum++
4712//            fmt.Println(page)
4713//            return pageNum <= 3
4714//        })
4715//
4716func (c *Route53Resolver) ListResolverEndpointIpAddressesPages(input *ListResolverEndpointIpAddressesInput, fn func(*ListResolverEndpointIpAddressesOutput, bool) bool) error {
4717	return c.ListResolverEndpointIpAddressesPagesWithContext(aws.BackgroundContext(), input, fn)
4718}
4719
4720// ListResolverEndpointIpAddressesPagesWithContext same as ListResolverEndpointIpAddressesPages except
4721// it takes a Context and allows setting request options on the pages.
4722//
4723// The context must be non-nil and will be used for request cancellation. If
4724// the context is nil a panic will occur. In the future the SDK may create
4725// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4726// for more information on using Contexts.
4727func (c *Route53Resolver) ListResolverEndpointIpAddressesPagesWithContext(ctx aws.Context, input *ListResolverEndpointIpAddressesInput, fn func(*ListResolverEndpointIpAddressesOutput, bool) bool, opts ...request.Option) error {
4728	p := request.Pagination{
4729		NewRequest: func() (*request.Request, error) {
4730			var inCpy *ListResolverEndpointIpAddressesInput
4731			if input != nil {
4732				tmp := *input
4733				inCpy = &tmp
4734			}
4735			req, _ := c.ListResolverEndpointIpAddressesRequest(inCpy)
4736			req.SetContext(ctx)
4737			req.ApplyOptions(opts...)
4738			return req, nil
4739		},
4740	}
4741
4742	for p.Next() {
4743		if !fn(p.Page().(*ListResolverEndpointIpAddressesOutput), !p.HasNextPage()) {
4744			break
4745		}
4746	}
4747
4748	return p.Err()
4749}
4750
4751const opListResolverEndpoints = "ListResolverEndpoints"
4752
4753// ListResolverEndpointsRequest generates a "aws/request.Request" representing the
4754// client's request for the ListResolverEndpoints operation. The "output" return
4755// value will be populated with the request's response once the request completes
4756// successfully.
4757//
4758// Use "Send" method on the returned Request to send the API call to the service.
4759// the "output" return value is not valid until after Send returns without error.
4760//
4761// See ListResolverEndpoints for more information on using the ListResolverEndpoints
4762// API call, and error handling.
4763//
4764// This method is useful when you want to inject custom logic or configuration
4765// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4766//
4767//
4768//    // Example sending a request using the ListResolverEndpointsRequest method.
4769//    req, resp := client.ListResolverEndpointsRequest(params)
4770//
4771//    err := req.Send()
4772//    if err == nil { // resp is now filled
4773//        fmt.Println(resp)
4774//    }
4775//
4776// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListResolverEndpoints
4777func (c *Route53Resolver) ListResolverEndpointsRequest(input *ListResolverEndpointsInput) (req *request.Request, output *ListResolverEndpointsOutput) {
4778	op := &request.Operation{
4779		Name:       opListResolverEndpoints,
4780		HTTPMethod: "POST",
4781		HTTPPath:   "/",
4782		Paginator: &request.Paginator{
4783			InputTokens:     []string{"NextToken"},
4784			OutputTokens:    []string{"NextToken"},
4785			LimitToken:      "MaxResults",
4786			TruncationToken: "",
4787		},
4788	}
4789
4790	if input == nil {
4791		input = &ListResolverEndpointsInput{}
4792	}
4793
4794	output = &ListResolverEndpointsOutput{}
4795	req = c.newRequest(op, input, output)
4796	return
4797}
4798
4799// ListResolverEndpoints API operation for Amazon Route 53 Resolver.
4800//
4801// Lists all the Resolver endpoints that were created using the current Amazon
4802// Web Services account.
4803//
4804// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4805// with awserr.Error's Code and Message methods to get detailed information about
4806// the error.
4807//
4808// See the AWS API reference guide for Amazon Route 53 Resolver's
4809// API operation ListResolverEndpoints for usage and error information.
4810//
4811// Returned Error Types:
4812//   * InvalidNextTokenException
4813//   The value that you specified for NextToken in a List request isn't valid.
4814//
4815//   * InvalidRequestException
4816//   The request is invalid.
4817//
4818//   * InvalidParameterException
4819//   One or more parameters in this request are not valid.
4820//
4821//   * InternalServiceErrorException
4822//   We encountered an unknown error. Try again in a few minutes.
4823//
4824//   * ThrottlingException
4825//   The request was throttled. Try again in a few minutes.
4826//
4827// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListResolverEndpoints
4828func (c *Route53Resolver) ListResolverEndpoints(input *ListResolverEndpointsInput) (*ListResolverEndpointsOutput, error) {
4829	req, out := c.ListResolverEndpointsRequest(input)
4830	return out, req.Send()
4831}
4832
4833// ListResolverEndpointsWithContext is the same as ListResolverEndpoints with the addition of
4834// the ability to pass a context and additional request options.
4835//
4836// See ListResolverEndpoints for details on how to use this API operation.
4837//
4838// The context must be non-nil and will be used for request cancellation. If
4839// the context is nil a panic will occur. In the future the SDK may create
4840// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4841// for more information on using Contexts.
4842func (c *Route53Resolver) ListResolverEndpointsWithContext(ctx aws.Context, input *ListResolverEndpointsInput, opts ...request.Option) (*ListResolverEndpointsOutput, error) {
4843	req, out := c.ListResolverEndpointsRequest(input)
4844	req.SetContext(ctx)
4845	req.ApplyOptions(opts...)
4846	return out, req.Send()
4847}
4848
4849// ListResolverEndpointsPages iterates over the pages of a ListResolverEndpoints operation,
4850// calling the "fn" function with the response data for each page. To stop
4851// iterating, return false from the fn function.
4852//
4853// See ListResolverEndpoints method for more information on how to use this operation.
4854//
4855// Note: This operation can generate multiple requests to a service.
4856//
4857//    // Example iterating over at most 3 pages of a ListResolverEndpoints operation.
4858//    pageNum := 0
4859//    err := client.ListResolverEndpointsPages(params,
4860//        func(page *route53resolver.ListResolverEndpointsOutput, lastPage bool) bool {
4861//            pageNum++
4862//            fmt.Println(page)
4863//            return pageNum <= 3
4864//        })
4865//
4866func (c *Route53Resolver) ListResolverEndpointsPages(input *ListResolverEndpointsInput, fn func(*ListResolverEndpointsOutput, bool) bool) error {
4867	return c.ListResolverEndpointsPagesWithContext(aws.BackgroundContext(), input, fn)
4868}
4869
4870// ListResolverEndpointsPagesWithContext same as ListResolverEndpointsPages except
4871// it takes a Context and allows setting request options on the pages.
4872//
4873// The context must be non-nil and will be used for request cancellation. If
4874// the context is nil a panic will occur. In the future the SDK may create
4875// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4876// for more information on using Contexts.
4877func (c *Route53Resolver) ListResolverEndpointsPagesWithContext(ctx aws.Context, input *ListResolverEndpointsInput, fn func(*ListResolverEndpointsOutput, bool) bool, opts ...request.Option) error {
4878	p := request.Pagination{
4879		NewRequest: func() (*request.Request, error) {
4880			var inCpy *ListResolverEndpointsInput
4881			if input != nil {
4882				tmp := *input
4883				inCpy = &tmp
4884			}
4885			req, _ := c.ListResolverEndpointsRequest(inCpy)
4886			req.SetContext(ctx)
4887			req.ApplyOptions(opts...)
4888			return req, nil
4889		},
4890	}
4891
4892	for p.Next() {
4893		if !fn(p.Page().(*ListResolverEndpointsOutput), !p.HasNextPage()) {
4894			break
4895		}
4896	}
4897
4898	return p.Err()
4899}
4900
4901const opListResolverQueryLogConfigAssociations = "ListResolverQueryLogConfigAssociations"
4902
4903// ListResolverQueryLogConfigAssociationsRequest generates a "aws/request.Request" representing the
4904// client's request for the ListResolverQueryLogConfigAssociations operation. The "output" return
4905// value will be populated with the request's response once the request completes
4906// successfully.
4907//
4908// Use "Send" method on the returned Request to send the API call to the service.
4909// the "output" return value is not valid until after Send returns without error.
4910//
4911// See ListResolverQueryLogConfigAssociations for more information on using the ListResolverQueryLogConfigAssociations
4912// API call, and error handling.
4913//
4914// This method is useful when you want to inject custom logic or configuration
4915// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4916//
4917//
4918//    // Example sending a request using the ListResolverQueryLogConfigAssociationsRequest method.
4919//    req, resp := client.ListResolverQueryLogConfigAssociationsRequest(params)
4920//
4921//    err := req.Send()
4922//    if err == nil { // resp is now filled
4923//        fmt.Println(resp)
4924//    }
4925//
4926// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListResolverQueryLogConfigAssociations
4927func (c *Route53Resolver) ListResolverQueryLogConfigAssociationsRequest(input *ListResolverQueryLogConfigAssociationsInput) (req *request.Request, output *ListResolverQueryLogConfigAssociationsOutput) {
4928	op := &request.Operation{
4929		Name:       opListResolverQueryLogConfigAssociations,
4930		HTTPMethod: "POST",
4931		HTTPPath:   "/",
4932		Paginator: &request.Paginator{
4933			InputTokens:     []string{"NextToken"},
4934			OutputTokens:    []string{"NextToken"},
4935			LimitToken:      "MaxResults",
4936			TruncationToken: "",
4937		},
4938	}
4939
4940	if input == nil {
4941		input = &ListResolverQueryLogConfigAssociationsInput{}
4942	}
4943
4944	output = &ListResolverQueryLogConfigAssociationsOutput{}
4945	req = c.newRequest(op, input, output)
4946	return
4947}
4948
4949// ListResolverQueryLogConfigAssociations API operation for Amazon Route 53 Resolver.
4950//
4951// Lists information about associations between Amazon VPCs and query logging
4952// configurations.
4953//
4954// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4955// with awserr.Error's Code and Message methods to get detailed information about
4956// the error.
4957//
4958// See the AWS API reference guide for Amazon Route 53 Resolver's
4959// API operation ListResolverQueryLogConfigAssociations for usage and error information.
4960//
4961// Returned Error Types:
4962//   * InvalidParameterException
4963//   One or more parameters in this request are not valid.
4964//
4965//   * InvalidRequestException
4966//   The request is invalid.
4967//
4968//   * LimitExceededException
4969//   The request caused one or more limits to be exceeded.
4970//
4971//   * InternalServiceErrorException
4972//   We encountered an unknown error. Try again in a few minutes.
4973//
4974//   * ThrottlingException
4975//   The request was throttled. Try again in a few minutes.
4976//
4977//   * AccessDeniedException
4978//   The current account doesn't have the IAM permissions required to perform
4979//   the specified Resolver operation.
4980//
4981// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListResolverQueryLogConfigAssociations
4982func (c *Route53Resolver) ListResolverQueryLogConfigAssociations(input *ListResolverQueryLogConfigAssociationsInput) (*ListResolverQueryLogConfigAssociationsOutput, error) {
4983	req, out := c.ListResolverQueryLogConfigAssociationsRequest(input)
4984	return out, req.Send()
4985}
4986
4987// ListResolverQueryLogConfigAssociationsWithContext is the same as ListResolverQueryLogConfigAssociations with the addition of
4988// the ability to pass a context and additional request options.
4989//
4990// See ListResolverQueryLogConfigAssociations for details on how to use this API operation.
4991//
4992// The context must be non-nil and will be used for request cancellation. If
4993// the context is nil a panic will occur. In the future the SDK may create
4994// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4995// for more information on using Contexts.
4996func (c *Route53Resolver) ListResolverQueryLogConfigAssociationsWithContext(ctx aws.Context, input *ListResolverQueryLogConfigAssociationsInput, opts ...request.Option) (*ListResolverQueryLogConfigAssociationsOutput, error) {
4997	req, out := c.ListResolverQueryLogConfigAssociationsRequest(input)
4998	req.SetContext(ctx)
4999	req.ApplyOptions(opts...)
5000	return out, req.Send()
5001}
5002
5003// ListResolverQueryLogConfigAssociationsPages iterates over the pages of a ListResolverQueryLogConfigAssociations operation,
5004// calling the "fn" function with the response data for each page. To stop
5005// iterating, return false from the fn function.
5006//
5007// See ListResolverQueryLogConfigAssociations method for more information on how to use this operation.
5008//
5009// Note: This operation can generate multiple requests to a service.
5010//
5011//    // Example iterating over at most 3 pages of a ListResolverQueryLogConfigAssociations operation.
5012//    pageNum := 0
5013//    err := client.ListResolverQueryLogConfigAssociationsPages(params,
5014//        func(page *route53resolver.ListResolverQueryLogConfigAssociationsOutput, lastPage bool) bool {
5015//            pageNum++
5016//            fmt.Println(page)
5017//            return pageNum <= 3
5018//        })
5019//
5020func (c *Route53Resolver) ListResolverQueryLogConfigAssociationsPages(input *ListResolverQueryLogConfigAssociationsInput, fn func(*ListResolverQueryLogConfigAssociationsOutput, bool) bool) error {
5021	return c.ListResolverQueryLogConfigAssociationsPagesWithContext(aws.BackgroundContext(), input, fn)
5022}
5023
5024// ListResolverQueryLogConfigAssociationsPagesWithContext same as ListResolverQueryLogConfigAssociationsPages except
5025// it takes a Context and allows setting request options on the pages.
5026//
5027// The context must be non-nil and will be used for request cancellation. If
5028// the context is nil a panic will occur. In the future the SDK may create
5029// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5030// for more information on using Contexts.
5031func (c *Route53Resolver) ListResolverQueryLogConfigAssociationsPagesWithContext(ctx aws.Context, input *ListResolverQueryLogConfigAssociationsInput, fn func(*ListResolverQueryLogConfigAssociationsOutput, bool) bool, opts ...request.Option) error {
5032	p := request.Pagination{
5033		NewRequest: func() (*request.Request, error) {
5034			var inCpy *ListResolverQueryLogConfigAssociationsInput
5035			if input != nil {
5036				tmp := *input
5037				inCpy = &tmp
5038			}
5039			req, _ := c.ListResolverQueryLogConfigAssociationsRequest(inCpy)
5040			req.SetContext(ctx)
5041			req.ApplyOptions(opts...)
5042			return req, nil
5043		},
5044	}
5045
5046	for p.Next() {
5047		if !fn(p.Page().(*ListResolverQueryLogConfigAssociationsOutput), !p.HasNextPage()) {
5048			break
5049		}
5050	}
5051
5052	return p.Err()
5053}
5054
5055const opListResolverQueryLogConfigs = "ListResolverQueryLogConfigs"
5056
5057// ListResolverQueryLogConfigsRequest generates a "aws/request.Request" representing the
5058// client's request for the ListResolverQueryLogConfigs operation. The "output" return
5059// value will be populated with the request's response once the request completes
5060// successfully.
5061//
5062// Use "Send" method on the returned Request to send the API call to the service.
5063// the "output" return value is not valid until after Send returns without error.
5064//
5065// See ListResolverQueryLogConfigs for more information on using the ListResolverQueryLogConfigs
5066// API call, and error handling.
5067//
5068// This method is useful when you want to inject custom logic or configuration
5069// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5070//
5071//
5072//    // Example sending a request using the ListResolverQueryLogConfigsRequest method.
5073//    req, resp := client.ListResolverQueryLogConfigsRequest(params)
5074//
5075//    err := req.Send()
5076//    if err == nil { // resp is now filled
5077//        fmt.Println(resp)
5078//    }
5079//
5080// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListResolverQueryLogConfigs
5081func (c *Route53Resolver) ListResolverQueryLogConfigsRequest(input *ListResolverQueryLogConfigsInput) (req *request.Request, output *ListResolverQueryLogConfigsOutput) {
5082	op := &request.Operation{
5083		Name:       opListResolverQueryLogConfigs,
5084		HTTPMethod: "POST",
5085		HTTPPath:   "/",
5086		Paginator: &request.Paginator{
5087			InputTokens:     []string{"NextToken"},
5088			OutputTokens:    []string{"NextToken"},
5089			LimitToken:      "MaxResults",
5090			TruncationToken: "",
5091		},
5092	}
5093
5094	if input == nil {
5095		input = &ListResolverQueryLogConfigsInput{}
5096	}
5097
5098	output = &ListResolverQueryLogConfigsOutput{}
5099	req = c.newRequest(op, input, output)
5100	return
5101}
5102
5103// ListResolverQueryLogConfigs API operation for Amazon Route 53 Resolver.
5104//
5105// Lists information about the specified query logging configurations. Each
5106// configuration defines where you want Resolver to save DNS query logs and
5107// specifies the VPCs that you want to log queries for.
5108//
5109// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5110// with awserr.Error's Code and Message methods to get detailed information about
5111// the error.
5112//
5113// See the AWS API reference guide for Amazon Route 53 Resolver's
5114// API operation ListResolverQueryLogConfigs for usage and error information.
5115//
5116// Returned Error Types:
5117//   * InvalidNextTokenException
5118//   The value that you specified for NextToken in a List request isn't valid.
5119//
5120//   * InvalidRequestException
5121//   The request is invalid.
5122//
5123//   * InvalidParameterException
5124//   One or more parameters in this request are not valid.
5125//
5126//   * InternalServiceErrorException
5127//   We encountered an unknown error. Try again in a few minutes.
5128//
5129//   * ThrottlingException
5130//   The request was throttled. Try again in a few minutes.
5131//
5132//   * AccessDeniedException
5133//   The current account doesn't have the IAM permissions required to perform
5134//   the specified Resolver operation.
5135//
5136// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListResolverQueryLogConfigs
5137func (c *Route53Resolver) ListResolverQueryLogConfigs(input *ListResolverQueryLogConfigsInput) (*ListResolverQueryLogConfigsOutput, error) {
5138	req, out := c.ListResolverQueryLogConfigsRequest(input)
5139	return out, req.Send()
5140}
5141
5142// ListResolverQueryLogConfigsWithContext is the same as ListResolverQueryLogConfigs with the addition of
5143// the ability to pass a context and additional request options.
5144//
5145// See ListResolverQueryLogConfigs for details on how to use this API operation.
5146//
5147// The context must be non-nil and will be used for request cancellation. If
5148// the context is nil a panic will occur. In the future the SDK may create
5149// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5150// for more information on using Contexts.
5151func (c *Route53Resolver) ListResolverQueryLogConfigsWithContext(ctx aws.Context, input *ListResolverQueryLogConfigsInput, opts ...request.Option) (*ListResolverQueryLogConfigsOutput, error) {
5152	req, out := c.ListResolverQueryLogConfigsRequest(input)
5153	req.SetContext(ctx)
5154	req.ApplyOptions(opts...)
5155	return out, req.Send()
5156}
5157
5158// ListResolverQueryLogConfigsPages iterates over the pages of a ListResolverQueryLogConfigs operation,
5159// calling the "fn" function with the response data for each page. To stop
5160// iterating, return false from the fn function.
5161//
5162// See ListResolverQueryLogConfigs method for more information on how to use this operation.
5163//
5164// Note: This operation can generate multiple requests to a service.
5165//
5166//    // Example iterating over at most 3 pages of a ListResolverQueryLogConfigs operation.
5167//    pageNum := 0
5168//    err := client.ListResolverQueryLogConfigsPages(params,
5169//        func(page *route53resolver.ListResolverQueryLogConfigsOutput, lastPage bool) bool {
5170//            pageNum++
5171//            fmt.Println(page)
5172//            return pageNum <= 3
5173//        })
5174//
5175func (c *Route53Resolver) ListResolverQueryLogConfigsPages(input *ListResolverQueryLogConfigsInput, fn func(*ListResolverQueryLogConfigsOutput, bool) bool) error {
5176	return c.ListResolverQueryLogConfigsPagesWithContext(aws.BackgroundContext(), input, fn)
5177}
5178
5179// ListResolverQueryLogConfigsPagesWithContext same as ListResolverQueryLogConfigsPages except
5180// it takes a Context and allows setting request options on the pages.
5181//
5182// The context must be non-nil and will be used for request cancellation. If
5183// the context is nil a panic will occur. In the future the SDK may create
5184// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5185// for more information on using Contexts.
5186func (c *Route53Resolver) ListResolverQueryLogConfigsPagesWithContext(ctx aws.Context, input *ListResolverQueryLogConfigsInput, fn func(*ListResolverQueryLogConfigsOutput, bool) bool, opts ...request.Option) error {
5187	p := request.Pagination{
5188		NewRequest: func() (*request.Request, error) {
5189			var inCpy *ListResolverQueryLogConfigsInput
5190			if input != nil {
5191				tmp := *input
5192				inCpy = &tmp
5193			}
5194			req, _ := c.ListResolverQueryLogConfigsRequest(inCpy)
5195			req.SetContext(ctx)
5196			req.ApplyOptions(opts...)
5197			return req, nil
5198		},
5199	}
5200
5201	for p.Next() {
5202		if !fn(p.Page().(*ListResolverQueryLogConfigsOutput), !p.HasNextPage()) {
5203			break
5204		}
5205	}
5206
5207	return p.Err()
5208}
5209
5210const opListResolverRuleAssociations = "ListResolverRuleAssociations"
5211
5212// ListResolverRuleAssociationsRequest generates a "aws/request.Request" representing the
5213// client's request for the ListResolverRuleAssociations operation. The "output" return
5214// value will be populated with the request's response once the request completes
5215// successfully.
5216//
5217// Use "Send" method on the returned Request to send the API call to the service.
5218// the "output" return value is not valid until after Send returns without error.
5219//
5220// See ListResolverRuleAssociations for more information on using the ListResolverRuleAssociations
5221// API call, and error handling.
5222//
5223// This method is useful when you want to inject custom logic or configuration
5224// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5225//
5226//
5227//    // Example sending a request using the ListResolverRuleAssociationsRequest method.
5228//    req, resp := client.ListResolverRuleAssociationsRequest(params)
5229//
5230//    err := req.Send()
5231//    if err == nil { // resp is now filled
5232//        fmt.Println(resp)
5233//    }
5234//
5235// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListResolverRuleAssociations
5236func (c *Route53Resolver) ListResolverRuleAssociationsRequest(input *ListResolverRuleAssociationsInput) (req *request.Request, output *ListResolverRuleAssociationsOutput) {
5237	op := &request.Operation{
5238		Name:       opListResolverRuleAssociations,
5239		HTTPMethod: "POST",
5240		HTTPPath:   "/",
5241		Paginator: &request.Paginator{
5242			InputTokens:     []string{"NextToken"},
5243			OutputTokens:    []string{"NextToken"},
5244			LimitToken:      "MaxResults",
5245			TruncationToken: "",
5246		},
5247	}
5248
5249	if input == nil {
5250		input = &ListResolverRuleAssociationsInput{}
5251	}
5252
5253	output = &ListResolverRuleAssociationsOutput{}
5254	req = c.newRequest(op, input, output)
5255	return
5256}
5257
5258// ListResolverRuleAssociations API operation for Amazon Route 53 Resolver.
5259//
5260// Lists the associations that were created between Resolver rules and VPCs
5261// using the current Amazon Web Services account.
5262//
5263// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5264// with awserr.Error's Code and Message methods to get detailed information about
5265// the error.
5266//
5267// See the AWS API reference guide for Amazon Route 53 Resolver's
5268// API operation ListResolverRuleAssociations for usage and error information.
5269//
5270// Returned Error Types:
5271//   * InvalidNextTokenException
5272//   The value that you specified for NextToken in a List request isn't valid.
5273//
5274//   * InvalidRequestException
5275//   The request is invalid.
5276//
5277//   * InvalidParameterException
5278//   One or more parameters in this request are not valid.
5279//
5280//   * InternalServiceErrorException
5281//   We encountered an unknown error. Try again in a few minutes.
5282//
5283//   * ThrottlingException
5284//   The request was throttled. Try again in a few minutes.
5285//
5286// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListResolverRuleAssociations
5287func (c *Route53Resolver) ListResolverRuleAssociations(input *ListResolverRuleAssociationsInput) (*ListResolverRuleAssociationsOutput, error) {
5288	req, out := c.ListResolverRuleAssociationsRequest(input)
5289	return out, req.Send()
5290}
5291
5292// ListResolverRuleAssociationsWithContext is the same as ListResolverRuleAssociations with the addition of
5293// the ability to pass a context and additional request options.
5294//
5295// See ListResolverRuleAssociations for details on how to use this API operation.
5296//
5297// The context must be non-nil and will be used for request cancellation. If
5298// the context is nil a panic will occur. In the future the SDK may create
5299// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5300// for more information on using Contexts.
5301func (c *Route53Resolver) ListResolverRuleAssociationsWithContext(ctx aws.Context, input *ListResolverRuleAssociationsInput, opts ...request.Option) (*ListResolverRuleAssociationsOutput, error) {
5302	req, out := c.ListResolverRuleAssociationsRequest(input)
5303	req.SetContext(ctx)
5304	req.ApplyOptions(opts...)
5305	return out, req.Send()
5306}
5307
5308// ListResolverRuleAssociationsPages iterates over the pages of a ListResolverRuleAssociations operation,
5309// calling the "fn" function with the response data for each page. To stop
5310// iterating, return false from the fn function.
5311//
5312// See ListResolverRuleAssociations method for more information on how to use this operation.
5313//
5314// Note: This operation can generate multiple requests to a service.
5315//
5316//    // Example iterating over at most 3 pages of a ListResolverRuleAssociations operation.
5317//    pageNum := 0
5318//    err := client.ListResolverRuleAssociationsPages(params,
5319//        func(page *route53resolver.ListResolverRuleAssociationsOutput, lastPage bool) bool {
5320//            pageNum++
5321//            fmt.Println(page)
5322//            return pageNum <= 3
5323//        })
5324//
5325func (c *Route53Resolver) ListResolverRuleAssociationsPages(input *ListResolverRuleAssociationsInput, fn func(*ListResolverRuleAssociationsOutput, bool) bool) error {
5326	return c.ListResolverRuleAssociationsPagesWithContext(aws.BackgroundContext(), input, fn)
5327}
5328
5329// ListResolverRuleAssociationsPagesWithContext same as ListResolverRuleAssociationsPages except
5330// it takes a Context and allows setting request options on the pages.
5331//
5332// The context must be non-nil and will be used for request cancellation. If
5333// the context is nil a panic will occur. In the future the SDK may create
5334// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5335// for more information on using Contexts.
5336func (c *Route53Resolver) ListResolverRuleAssociationsPagesWithContext(ctx aws.Context, input *ListResolverRuleAssociationsInput, fn func(*ListResolverRuleAssociationsOutput, bool) bool, opts ...request.Option) error {
5337	p := request.Pagination{
5338		NewRequest: func() (*request.Request, error) {
5339			var inCpy *ListResolverRuleAssociationsInput
5340			if input != nil {
5341				tmp := *input
5342				inCpy = &tmp
5343			}
5344			req, _ := c.ListResolverRuleAssociationsRequest(inCpy)
5345			req.SetContext(ctx)
5346			req.ApplyOptions(opts...)
5347			return req, nil
5348		},
5349	}
5350
5351	for p.Next() {
5352		if !fn(p.Page().(*ListResolverRuleAssociationsOutput), !p.HasNextPage()) {
5353			break
5354		}
5355	}
5356
5357	return p.Err()
5358}
5359
5360const opListResolverRules = "ListResolverRules"
5361
5362// ListResolverRulesRequest generates a "aws/request.Request" representing the
5363// client's request for the ListResolverRules operation. The "output" return
5364// value will be populated with the request's response once the request completes
5365// successfully.
5366//
5367// Use "Send" method on the returned Request to send the API call to the service.
5368// the "output" return value is not valid until after Send returns without error.
5369//
5370// See ListResolverRules for more information on using the ListResolverRules
5371// API call, and error handling.
5372//
5373// This method is useful when you want to inject custom logic or configuration
5374// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5375//
5376//
5377//    // Example sending a request using the ListResolverRulesRequest method.
5378//    req, resp := client.ListResolverRulesRequest(params)
5379//
5380//    err := req.Send()
5381//    if err == nil { // resp is now filled
5382//        fmt.Println(resp)
5383//    }
5384//
5385// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListResolverRules
5386func (c *Route53Resolver) ListResolverRulesRequest(input *ListResolverRulesInput) (req *request.Request, output *ListResolverRulesOutput) {
5387	op := &request.Operation{
5388		Name:       opListResolverRules,
5389		HTTPMethod: "POST",
5390		HTTPPath:   "/",
5391		Paginator: &request.Paginator{
5392			InputTokens:     []string{"NextToken"},
5393			OutputTokens:    []string{"NextToken"},
5394			LimitToken:      "MaxResults",
5395			TruncationToken: "",
5396		},
5397	}
5398
5399	if input == nil {
5400		input = &ListResolverRulesInput{}
5401	}
5402
5403	output = &ListResolverRulesOutput{}
5404	req = c.newRequest(op, input, output)
5405	return
5406}
5407
5408// ListResolverRules API operation for Amazon Route 53 Resolver.
5409//
5410// Lists the Resolver rules that were created using the current Amazon Web Services
5411// account.
5412//
5413// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5414// with awserr.Error's Code and Message methods to get detailed information about
5415// the error.
5416//
5417// See the AWS API reference guide for Amazon Route 53 Resolver's
5418// API operation ListResolverRules for usage and error information.
5419//
5420// Returned Error Types:
5421//   * InvalidNextTokenException
5422//   The value that you specified for NextToken in a List request isn't valid.
5423//
5424//   * InvalidRequestException
5425//   The request is invalid.
5426//
5427//   * InvalidParameterException
5428//   One or more parameters in this request are not valid.
5429//
5430//   * InternalServiceErrorException
5431//   We encountered an unknown error. Try again in a few minutes.
5432//
5433//   * ThrottlingException
5434//   The request was throttled. Try again in a few minutes.
5435//
5436// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListResolverRules
5437func (c *Route53Resolver) ListResolverRules(input *ListResolverRulesInput) (*ListResolverRulesOutput, error) {
5438	req, out := c.ListResolverRulesRequest(input)
5439	return out, req.Send()
5440}
5441
5442// ListResolverRulesWithContext is the same as ListResolverRules with the addition of
5443// the ability to pass a context and additional request options.
5444//
5445// See ListResolverRules for details on how to use this API operation.
5446//
5447// The context must be non-nil and will be used for request cancellation. If
5448// the context is nil a panic will occur. In the future the SDK may create
5449// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5450// for more information on using Contexts.
5451func (c *Route53Resolver) ListResolverRulesWithContext(ctx aws.Context, input *ListResolverRulesInput, opts ...request.Option) (*ListResolverRulesOutput, error) {
5452	req, out := c.ListResolverRulesRequest(input)
5453	req.SetContext(ctx)
5454	req.ApplyOptions(opts...)
5455	return out, req.Send()
5456}
5457
5458// ListResolverRulesPages iterates over the pages of a ListResolverRules operation,
5459// calling the "fn" function with the response data for each page. To stop
5460// iterating, return false from the fn function.
5461//
5462// See ListResolverRules method for more information on how to use this operation.
5463//
5464// Note: This operation can generate multiple requests to a service.
5465//
5466//    // Example iterating over at most 3 pages of a ListResolverRules operation.
5467//    pageNum := 0
5468//    err := client.ListResolverRulesPages(params,
5469//        func(page *route53resolver.ListResolverRulesOutput, lastPage bool) bool {
5470//            pageNum++
5471//            fmt.Println(page)
5472//            return pageNum <= 3
5473//        })
5474//
5475func (c *Route53Resolver) ListResolverRulesPages(input *ListResolverRulesInput, fn func(*ListResolverRulesOutput, bool) bool) error {
5476	return c.ListResolverRulesPagesWithContext(aws.BackgroundContext(), input, fn)
5477}
5478
5479// ListResolverRulesPagesWithContext same as ListResolverRulesPages except
5480// it takes a Context and allows setting request options on the pages.
5481//
5482// The context must be non-nil and will be used for request cancellation. If
5483// the context is nil a panic will occur. In the future the SDK may create
5484// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5485// for more information on using Contexts.
5486func (c *Route53Resolver) ListResolverRulesPagesWithContext(ctx aws.Context, input *ListResolverRulesInput, fn func(*ListResolverRulesOutput, bool) bool, opts ...request.Option) error {
5487	p := request.Pagination{
5488		NewRequest: func() (*request.Request, error) {
5489			var inCpy *ListResolverRulesInput
5490			if input != nil {
5491				tmp := *input
5492				inCpy = &tmp
5493			}
5494			req, _ := c.ListResolverRulesRequest(inCpy)
5495			req.SetContext(ctx)
5496			req.ApplyOptions(opts...)
5497			return req, nil
5498		},
5499	}
5500
5501	for p.Next() {
5502		if !fn(p.Page().(*ListResolverRulesOutput), !p.HasNextPage()) {
5503			break
5504		}
5505	}
5506
5507	return p.Err()
5508}
5509
5510const opListTagsForResource = "ListTagsForResource"
5511
5512// ListTagsForResourceRequest generates a "aws/request.Request" representing the
5513// client's request for the ListTagsForResource operation. The "output" return
5514// value will be populated with the request's response once the request completes
5515// successfully.
5516//
5517// Use "Send" method on the returned Request to send the API call to the service.
5518// the "output" return value is not valid until after Send returns without error.
5519//
5520// See ListTagsForResource for more information on using the ListTagsForResource
5521// API call, and error handling.
5522//
5523// This method is useful when you want to inject custom logic or configuration
5524// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5525//
5526//
5527//    // Example sending a request using the ListTagsForResourceRequest method.
5528//    req, resp := client.ListTagsForResourceRequest(params)
5529//
5530//    err := req.Send()
5531//    if err == nil { // resp is now filled
5532//        fmt.Println(resp)
5533//    }
5534//
5535// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListTagsForResource
5536func (c *Route53Resolver) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
5537	op := &request.Operation{
5538		Name:       opListTagsForResource,
5539		HTTPMethod: "POST",
5540		HTTPPath:   "/",
5541		Paginator: &request.Paginator{
5542			InputTokens:     []string{"NextToken"},
5543			OutputTokens:    []string{"NextToken"},
5544			LimitToken:      "MaxResults",
5545			TruncationToken: "",
5546		},
5547	}
5548
5549	if input == nil {
5550		input = &ListTagsForResourceInput{}
5551	}
5552
5553	output = &ListTagsForResourceOutput{}
5554	req = c.newRequest(op, input, output)
5555	return
5556}
5557
5558// ListTagsForResource API operation for Amazon Route 53 Resolver.
5559//
5560// Lists the tags that you associated with the specified resource.
5561//
5562// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5563// with awserr.Error's Code and Message methods to get detailed information about
5564// the error.
5565//
5566// See the AWS API reference guide for Amazon Route 53 Resolver's
5567// API operation ListTagsForResource for usage and error information.
5568//
5569// Returned Error Types:
5570//   * ResourceNotFoundException
5571//   The specified resource doesn't exist.
5572//
5573//   * InvalidParameterException
5574//   One or more parameters in this request are not valid.
5575//
5576//   * InvalidNextTokenException
5577//   The value that you specified for NextToken in a List request isn't valid.
5578//
5579//   * InvalidRequestException
5580//   The request is invalid.
5581//
5582//   * InternalServiceErrorException
5583//   We encountered an unknown error. Try again in a few minutes.
5584//
5585//   * ThrottlingException
5586//   The request was throttled. Try again in a few minutes.
5587//
5588// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListTagsForResource
5589func (c *Route53Resolver) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
5590	req, out := c.ListTagsForResourceRequest(input)
5591	return out, req.Send()
5592}
5593
5594// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
5595// the ability to pass a context and additional request options.
5596//
5597// See ListTagsForResource for details on how to use this API operation.
5598//
5599// The context must be non-nil and will be used for request cancellation. If
5600// the context is nil a panic will occur. In the future the SDK may create
5601// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5602// for more information on using Contexts.
5603func (c *Route53Resolver) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
5604	req, out := c.ListTagsForResourceRequest(input)
5605	req.SetContext(ctx)
5606	req.ApplyOptions(opts...)
5607	return out, req.Send()
5608}
5609
5610// ListTagsForResourcePages iterates over the pages of a ListTagsForResource operation,
5611// calling the "fn" function with the response data for each page. To stop
5612// iterating, return false from the fn function.
5613//
5614// See ListTagsForResource method for more information on how to use this operation.
5615//
5616// Note: This operation can generate multiple requests to a service.
5617//
5618//    // Example iterating over at most 3 pages of a ListTagsForResource operation.
5619//    pageNum := 0
5620//    err := client.ListTagsForResourcePages(params,
5621//        func(page *route53resolver.ListTagsForResourceOutput, lastPage bool) bool {
5622//            pageNum++
5623//            fmt.Println(page)
5624//            return pageNum <= 3
5625//        })
5626//
5627func (c *Route53Resolver) ListTagsForResourcePages(input *ListTagsForResourceInput, fn func(*ListTagsForResourceOutput, bool) bool) error {
5628	return c.ListTagsForResourcePagesWithContext(aws.BackgroundContext(), input, fn)
5629}
5630
5631// ListTagsForResourcePagesWithContext same as ListTagsForResourcePages except
5632// it takes a Context and allows setting request options on the pages.
5633//
5634// The context must be non-nil and will be used for request cancellation. If
5635// the context is nil a panic will occur. In the future the SDK may create
5636// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5637// for more information on using Contexts.
5638func (c *Route53Resolver) ListTagsForResourcePagesWithContext(ctx aws.Context, input *ListTagsForResourceInput, fn func(*ListTagsForResourceOutput, bool) bool, opts ...request.Option) error {
5639	p := request.Pagination{
5640		NewRequest: func() (*request.Request, error) {
5641			var inCpy *ListTagsForResourceInput
5642			if input != nil {
5643				tmp := *input
5644				inCpy = &tmp
5645			}
5646			req, _ := c.ListTagsForResourceRequest(inCpy)
5647			req.SetContext(ctx)
5648			req.ApplyOptions(opts...)
5649			return req, nil
5650		},
5651	}
5652
5653	for p.Next() {
5654		if !fn(p.Page().(*ListTagsForResourceOutput), !p.HasNextPage()) {
5655			break
5656		}
5657	}
5658
5659	return p.Err()
5660}
5661
5662const opPutFirewallRuleGroupPolicy = "PutFirewallRuleGroupPolicy"
5663
5664// PutFirewallRuleGroupPolicyRequest generates a "aws/request.Request" representing the
5665// client's request for the PutFirewallRuleGroupPolicy operation. The "output" return
5666// value will be populated with the request's response once the request completes
5667// successfully.
5668//
5669// Use "Send" method on the returned Request to send the API call to the service.
5670// the "output" return value is not valid until after Send returns without error.
5671//
5672// See PutFirewallRuleGroupPolicy for more information on using the PutFirewallRuleGroupPolicy
5673// API call, and error handling.
5674//
5675// This method is useful when you want to inject custom logic or configuration
5676// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5677//
5678//
5679//    // Example sending a request using the PutFirewallRuleGroupPolicyRequest method.
5680//    req, resp := client.PutFirewallRuleGroupPolicyRequest(params)
5681//
5682//    err := req.Send()
5683//    if err == nil { // resp is now filled
5684//        fmt.Println(resp)
5685//    }
5686//
5687// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/PutFirewallRuleGroupPolicy
5688func (c *Route53Resolver) PutFirewallRuleGroupPolicyRequest(input *PutFirewallRuleGroupPolicyInput) (req *request.Request, output *PutFirewallRuleGroupPolicyOutput) {
5689	op := &request.Operation{
5690		Name:       opPutFirewallRuleGroupPolicy,
5691		HTTPMethod: "POST",
5692		HTTPPath:   "/",
5693	}
5694
5695	if input == nil {
5696		input = &PutFirewallRuleGroupPolicyInput{}
5697	}
5698
5699	output = &PutFirewallRuleGroupPolicyOutput{}
5700	req = c.newRequest(op, input, output)
5701	return
5702}
5703
5704// PutFirewallRuleGroupPolicy API operation for Amazon Route 53 Resolver.
5705//
5706// Attaches an Identity and Access Management (Amazon Web Services IAM) policy
5707// for sharing the rule group. You can use the policy to share the rule group
5708// using Resource Access Manager (RAM).
5709//
5710// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5711// with awserr.Error's Code and Message methods to get detailed information about
5712// the error.
5713//
5714// See the AWS API reference guide for Amazon Route 53 Resolver's
5715// API operation PutFirewallRuleGroupPolicy for usage and error information.
5716//
5717// Returned Error Types:
5718//   * ValidationException
5719//
5720//   * ResourceNotFoundException
5721//   The specified resource doesn't exist.
5722//
5723//   * AccessDeniedException
5724//   The current account doesn't have the IAM permissions required to perform
5725//   the specified Resolver operation.
5726//
5727//   * InternalServiceErrorException
5728//   We encountered an unknown error. Try again in a few minutes.
5729//
5730//   * ThrottlingException
5731//   The request was throttled. Try again in a few minutes.
5732//
5733// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/PutFirewallRuleGroupPolicy
5734func (c *Route53Resolver) PutFirewallRuleGroupPolicy(input *PutFirewallRuleGroupPolicyInput) (*PutFirewallRuleGroupPolicyOutput, error) {
5735	req, out := c.PutFirewallRuleGroupPolicyRequest(input)
5736	return out, req.Send()
5737}
5738
5739// PutFirewallRuleGroupPolicyWithContext is the same as PutFirewallRuleGroupPolicy with the addition of
5740// the ability to pass a context and additional request options.
5741//
5742// See PutFirewallRuleGroupPolicy for details on how to use this API operation.
5743//
5744// The context must be non-nil and will be used for request cancellation. If
5745// the context is nil a panic will occur. In the future the SDK may create
5746// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5747// for more information on using Contexts.
5748func (c *Route53Resolver) PutFirewallRuleGroupPolicyWithContext(ctx aws.Context, input *PutFirewallRuleGroupPolicyInput, opts ...request.Option) (*PutFirewallRuleGroupPolicyOutput, error) {
5749	req, out := c.PutFirewallRuleGroupPolicyRequest(input)
5750	req.SetContext(ctx)
5751	req.ApplyOptions(opts...)
5752	return out, req.Send()
5753}
5754
5755const opPutResolverQueryLogConfigPolicy = "PutResolverQueryLogConfigPolicy"
5756
5757// PutResolverQueryLogConfigPolicyRequest generates a "aws/request.Request" representing the
5758// client's request for the PutResolverQueryLogConfigPolicy operation. The "output" return
5759// value will be populated with the request's response once the request completes
5760// successfully.
5761//
5762// Use "Send" method on the returned Request to send the API call to the service.
5763// the "output" return value is not valid until after Send returns without error.
5764//
5765// See PutResolverQueryLogConfigPolicy for more information on using the PutResolverQueryLogConfigPolicy
5766// API call, and error handling.
5767//
5768// This method is useful when you want to inject custom logic or configuration
5769// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5770//
5771//
5772//    // Example sending a request using the PutResolverQueryLogConfigPolicyRequest method.
5773//    req, resp := client.PutResolverQueryLogConfigPolicyRequest(params)
5774//
5775//    err := req.Send()
5776//    if err == nil { // resp is now filled
5777//        fmt.Println(resp)
5778//    }
5779//
5780// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/PutResolverQueryLogConfigPolicy
5781func (c *Route53Resolver) PutResolverQueryLogConfigPolicyRequest(input *PutResolverQueryLogConfigPolicyInput) (req *request.Request, output *PutResolverQueryLogConfigPolicyOutput) {
5782	op := &request.Operation{
5783		Name:       opPutResolverQueryLogConfigPolicy,
5784		HTTPMethod: "POST",
5785		HTTPPath:   "/",
5786	}
5787
5788	if input == nil {
5789		input = &PutResolverQueryLogConfigPolicyInput{}
5790	}
5791
5792	output = &PutResolverQueryLogConfigPolicyOutput{}
5793	req = c.newRequest(op, input, output)
5794	return
5795}
5796
5797// PutResolverQueryLogConfigPolicy API operation for Amazon Route 53 Resolver.
5798//
5799// Specifies an Amazon Web Services account that you want to share a query logging
5800// configuration with, the query logging configuration that you want to share,
5801// and the operations that you want the account to be able to perform on the
5802// configuration.
5803//
5804// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5805// with awserr.Error's Code and Message methods to get detailed information about
5806// the error.
5807//
5808// See the AWS API reference guide for Amazon Route 53 Resolver's
5809// API operation PutResolverQueryLogConfigPolicy for usage and error information.
5810//
5811// Returned Error Types:
5812//   * InvalidPolicyDocument
5813//   The specified Resolver rule policy is invalid.
5814//
5815//   * InvalidParameterException
5816//   One or more parameters in this request are not valid.
5817//
5818//   * InvalidRequestException
5819//   The request is invalid.
5820//
5821//   * UnknownResourceException
5822//   The specified resource doesn't exist.
5823//
5824//   * InternalServiceErrorException
5825//   We encountered an unknown error. Try again in a few minutes.
5826//
5827//   * AccessDeniedException
5828//   The current account doesn't have the IAM permissions required to perform
5829//   the specified Resolver operation.
5830//
5831// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/PutResolverQueryLogConfigPolicy
5832func (c *Route53Resolver) PutResolverQueryLogConfigPolicy(input *PutResolverQueryLogConfigPolicyInput) (*PutResolverQueryLogConfigPolicyOutput, error) {
5833	req, out := c.PutResolverQueryLogConfigPolicyRequest(input)
5834	return out, req.Send()
5835}
5836
5837// PutResolverQueryLogConfigPolicyWithContext is the same as PutResolverQueryLogConfigPolicy with the addition of
5838// the ability to pass a context and additional request options.
5839//
5840// See PutResolverQueryLogConfigPolicy for details on how to use this API operation.
5841//
5842// The context must be non-nil and will be used for request cancellation. If
5843// the context is nil a panic will occur. In the future the SDK may create
5844// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5845// for more information on using Contexts.
5846func (c *Route53Resolver) PutResolverQueryLogConfigPolicyWithContext(ctx aws.Context, input *PutResolverQueryLogConfigPolicyInput, opts ...request.Option) (*PutResolverQueryLogConfigPolicyOutput, error) {
5847	req, out := c.PutResolverQueryLogConfigPolicyRequest(input)
5848	req.SetContext(ctx)
5849	req.ApplyOptions(opts...)
5850	return out, req.Send()
5851}
5852
5853const opPutResolverRulePolicy = "PutResolverRulePolicy"
5854
5855// PutResolverRulePolicyRequest generates a "aws/request.Request" representing the
5856// client's request for the PutResolverRulePolicy operation. The "output" return
5857// value will be populated with the request's response once the request completes
5858// successfully.
5859//
5860// Use "Send" method on the returned Request to send the API call to the service.
5861// the "output" return value is not valid until after Send returns without error.
5862//
5863// See PutResolverRulePolicy for more information on using the PutResolverRulePolicy
5864// API call, and error handling.
5865//
5866// This method is useful when you want to inject custom logic or configuration
5867// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5868//
5869//
5870//    // Example sending a request using the PutResolverRulePolicyRequest method.
5871//    req, resp := client.PutResolverRulePolicyRequest(params)
5872//
5873//    err := req.Send()
5874//    if err == nil { // resp is now filled
5875//        fmt.Println(resp)
5876//    }
5877//
5878// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/PutResolverRulePolicy
5879func (c *Route53Resolver) PutResolverRulePolicyRequest(input *PutResolverRulePolicyInput) (req *request.Request, output *PutResolverRulePolicyOutput) {
5880	op := &request.Operation{
5881		Name:       opPutResolverRulePolicy,
5882		HTTPMethod: "POST",
5883		HTTPPath:   "/",
5884	}
5885
5886	if input == nil {
5887		input = &PutResolverRulePolicyInput{}
5888	}
5889
5890	output = &PutResolverRulePolicyOutput{}
5891	req = c.newRequest(op, input, output)
5892	return
5893}
5894
5895// PutResolverRulePolicy API operation for Amazon Route 53 Resolver.
5896//
5897// Specifies an Amazon Web Services rule that you want to share with another
5898// account, the account that you want to share the rule with, and the operations
5899// that you want the account to be able to perform on the rule.
5900//
5901// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5902// with awserr.Error's Code and Message methods to get detailed information about
5903// the error.
5904//
5905// See the AWS API reference guide for Amazon Route 53 Resolver's
5906// API operation PutResolverRulePolicy for usage and error information.
5907//
5908// Returned Error Types:
5909//   * InvalidPolicyDocument
5910//   The specified Resolver rule policy is invalid.
5911//
5912//   * InvalidParameterException
5913//   One or more parameters in this request are not valid.
5914//
5915//   * UnknownResourceException
5916//   The specified resource doesn't exist.
5917//
5918//   * InternalServiceErrorException
5919//   We encountered an unknown error. Try again in a few minutes.
5920//
5921// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/PutResolverRulePolicy
5922func (c *Route53Resolver) PutResolverRulePolicy(input *PutResolverRulePolicyInput) (*PutResolverRulePolicyOutput, error) {
5923	req, out := c.PutResolverRulePolicyRequest(input)
5924	return out, req.Send()
5925}
5926
5927// PutResolverRulePolicyWithContext is the same as PutResolverRulePolicy with the addition of
5928// the ability to pass a context and additional request options.
5929//
5930// See PutResolverRulePolicy for details on how to use this API operation.
5931//
5932// The context must be non-nil and will be used for request cancellation. If
5933// the context is nil a panic will occur. In the future the SDK may create
5934// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5935// for more information on using Contexts.
5936func (c *Route53Resolver) PutResolverRulePolicyWithContext(ctx aws.Context, input *PutResolverRulePolicyInput, opts ...request.Option) (*PutResolverRulePolicyOutput, error) {
5937	req, out := c.PutResolverRulePolicyRequest(input)
5938	req.SetContext(ctx)
5939	req.ApplyOptions(opts...)
5940	return out, req.Send()
5941}
5942
5943const opTagResource = "TagResource"
5944
5945// TagResourceRequest generates a "aws/request.Request" representing the
5946// client's request for the TagResource operation. The "output" return
5947// value will be populated with the request's response once the request completes
5948// successfully.
5949//
5950// Use "Send" method on the returned Request to send the API call to the service.
5951// the "output" return value is not valid until after Send returns without error.
5952//
5953// See TagResource for more information on using the TagResource
5954// API call, and error handling.
5955//
5956// This method is useful when you want to inject custom logic or configuration
5957// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5958//
5959//
5960//    // Example sending a request using the TagResourceRequest method.
5961//    req, resp := client.TagResourceRequest(params)
5962//
5963//    err := req.Send()
5964//    if err == nil { // resp is now filled
5965//        fmt.Println(resp)
5966//    }
5967//
5968// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/TagResource
5969func (c *Route53Resolver) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
5970	op := &request.Operation{
5971		Name:       opTagResource,
5972		HTTPMethod: "POST",
5973		HTTPPath:   "/",
5974	}
5975
5976	if input == nil {
5977		input = &TagResourceInput{}
5978	}
5979
5980	output = &TagResourceOutput{}
5981	req = c.newRequest(op, input, output)
5982	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5983	return
5984}
5985
5986// TagResource API operation for Amazon Route 53 Resolver.
5987//
5988// Adds one or more tags to a specified resource.
5989//
5990// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5991// with awserr.Error's Code and Message methods to get detailed information about
5992// the error.
5993//
5994// See the AWS API reference guide for Amazon Route 53 Resolver's
5995// API operation TagResource for usage and error information.
5996//
5997// Returned Error Types:
5998//   * LimitExceededException
5999//   The request caused one or more limits to be exceeded.
6000//
6001//   * ResourceNotFoundException
6002//   The specified resource doesn't exist.
6003//
6004//   * InvalidParameterException
6005//   One or more parameters in this request are not valid.
6006//
6007//   * InvalidRequestException
6008//   The request is invalid.
6009//
6010//   * InvalidTagException
6011//   The specified tag is invalid.
6012//
6013//   * InternalServiceErrorException
6014//   We encountered an unknown error. Try again in a few minutes.
6015//
6016//   * ThrottlingException
6017//   The request was throttled. Try again in a few minutes.
6018//
6019// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/TagResource
6020func (c *Route53Resolver) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
6021	req, out := c.TagResourceRequest(input)
6022	return out, req.Send()
6023}
6024
6025// TagResourceWithContext is the same as TagResource with the addition of
6026// the ability to pass a context and additional request options.
6027//
6028// See TagResource for details on how to use this API operation.
6029//
6030// The context must be non-nil and will be used for request cancellation. If
6031// the context is nil a panic will occur. In the future the SDK may create
6032// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6033// for more information on using Contexts.
6034func (c *Route53Resolver) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
6035	req, out := c.TagResourceRequest(input)
6036	req.SetContext(ctx)
6037	req.ApplyOptions(opts...)
6038	return out, req.Send()
6039}
6040
6041const opUntagResource = "UntagResource"
6042
6043// UntagResourceRequest generates a "aws/request.Request" representing the
6044// client's request for the UntagResource operation. The "output" return
6045// value will be populated with the request's response once the request completes
6046// successfully.
6047//
6048// Use "Send" method on the returned Request to send the API call to the service.
6049// the "output" return value is not valid until after Send returns without error.
6050//
6051// See UntagResource for more information on using the UntagResource
6052// API call, and error handling.
6053//
6054// This method is useful when you want to inject custom logic or configuration
6055// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6056//
6057//
6058//    // Example sending a request using the UntagResourceRequest method.
6059//    req, resp := client.UntagResourceRequest(params)
6060//
6061//    err := req.Send()
6062//    if err == nil { // resp is now filled
6063//        fmt.Println(resp)
6064//    }
6065//
6066// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UntagResource
6067func (c *Route53Resolver) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
6068	op := &request.Operation{
6069		Name:       opUntagResource,
6070		HTTPMethod: "POST",
6071		HTTPPath:   "/",
6072	}
6073
6074	if input == nil {
6075		input = &UntagResourceInput{}
6076	}
6077
6078	output = &UntagResourceOutput{}
6079	req = c.newRequest(op, input, output)
6080	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
6081	return
6082}
6083
6084// UntagResource API operation for Amazon Route 53 Resolver.
6085//
6086// Removes one or more tags from a specified resource.
6087//
6088// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6089// with awserr.Error's Code and Message methods to get detailed information about
6090// the error.
6091//
6092// See the AWS API reference guide for Amazon Route 53 Resolver's
6093// API operation UntagResource for usage and error information.
6094//
6095// Returned Error Types:
6096//   * ResourceNotFoundException
6097//   The specified resource doesn't exist.
6098//
6099//   * InvalidParameterException
6100//   One or more parameters in this request are not valid.
6101//
6102//   * InvalidRequestException
6103//   The request is invalid.
6104//
6105//   * InternalServiceErrorException
6106//   We encountered an unknown error. Try again in a few minutes.
6107//
6108//   * ThrottlingException
6109//   The request was throttled. Try again in a few minutes.
6110//
6111// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UntagResource
6112func (c *Route53Resolver) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
6113	req, out := c.UntagResourceRequest(input)
6114	return out, req.Send()
6115}
6116
6117// UntagResourceWithContext is the same as UntagResource with the addition of
6118// the ability to pass a context and additional request options.
6119//
6120// See UntagResource for details on how to use this API operation.
6121//
6122// The context must be non-nil and will be used for request cancellation. If
6123// the context is nil a panic will occur. In the future the SDK may create
6124// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6125// for more information on using Contexts.
6126func (c *Route53Resolver) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
6127	req, out := c.UntagResourceRequest(input)
6128	req.SetContext(ctx)
6129	req.ApplyOptions(opts...)
6130	return out, req.Send()
6131}
6132
6133const opUpdateFirewallConfig = "UpdateFirewallConfig"
6134
6135// UpdateFirewallConfigRequest generates a "aws/request.Request" representing the
6136// client's request for the UpdateFirewallConfig operation. The "output" return
6137// value will be populated with the request's response once the request completes
6138// successfully.
6139//
6140// Use "Send" method on the returned Request to send the API call to the service.
6141// the "output" return value is not valid until after Send returns without error.
6142//
6143// See UpdateFirewallConfig for more information on using the UpdateFirewallConfig
6144// API call, and error handling.
6145//
6146// This method is useful when you want to inject custom logic or configuration
6147// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6148//
6149//
6150//    // Example sending a request using the UpdateFirewallConfigRequest method.
6151//    req, resp := client.UpdateFirewallConfigRequest(params)
6152//
6153//    err := req.Send()
6154//    if err == nil { // resp is now filled
6155//        fmt.Println(resp)
6156//    }
6157//
6158// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UpdateFirewallConfig
6159func (c *Route53Resolver) UpdateFirewallConfigRequest(input *UpdateFirewallConfigInput) (req *request.Request, output *UpdateFirewallConfigOutput) {
6160	op := &request.Operation{
6161		Name:       opUpdateFirewallConfig,
6162		HTTPMethod: "POST",
6163		HTTPPath:   "/",
6164	}
6165
6166	if input == nil {
6167		input = &UpdateFirewallConfigInput{}
6168	}
6169
6170	output = &UpdateFirewallConfigOutput{}
6171	req = c.newRequest(op, input, output)
6172	return
6173}
6174
6175// UpdateFirewallConfig API operation for Amazon Route 53 Resolver.
6176//
6177// Updates the configuration of the firewall behavior provided by DNS Firewall
6178// for a single VPC from Amazon Virtual Private Cloud (Amazon VPC).
6179//
6180// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6181// with awserr.Error's Code and Message methods to get detailed information about
6182// the error.
6183//
6184// See the AWS API reference guide for Amazon Route 53 Resolver's
6185// API operation UpdateFirewallConfig for usage and error information.
6186//
6187// Returned Error Types:
6188//   * ValidationException
6189//
6190//   * ResourceNotFoundException
6191//   The specified resource doesn't exist.
6192//
6193//   * AccessDeniedException
6194//   The current account doesn't have the IAM permissions required to perform
6195//   the specified Resolver operation.
6196//
6197//   * InternalServiceErrorException
6198//   We encountered an unknown error. Try again in a few minutes.
6199//
6200//   * ThrottlingException
6201//   The request was throttled. Try again in a few minutes.
6202//
6203// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UpdateFirewallConfig
6204func (c *Route53Resolver) UpdateFirewallConfig(input *UpdateFirewallConfigInput) (*UpdateFirewallConfigOutput, error) {
6205	req, out := c.UpdateFirewallConfigRequest(input)
6206	return out, req.Send()
6207}
6208
6209// UpdateFirewallConfigWithContext is the same as UpdateFirewallConfig with the addition of
6210// the ability to pass a context and additional request options.
6211//
6212// See UpdateFirewallConfig for details on how to use this API operation.
6213//
6214// The context must be non-nil and will be used for request cancellation. If
6215// the context is nil a panic will occur. In the future the SDK may create
6216// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6217// for more information on using Contexts.
6218func (c *Route53Resolver) UpdateFirewallConfigWithContext(ctx aws.Context, input *UpdateFirewallConfigInput, opts ...request.Option) (*UpdateFirewallConfigOutput, error) {
6219	req, out := c.UpdateFirewallConfigRequest(input)
6220	req.SetContext(ctx)
6221	req.ApplyOptions(opts...)
6222	return out, req.Send()
6223}
6224
6225const opUpdateFirewallDomains = "UpdateFirewallDomains"
6226
6227// UpdateFirewallDomainsRequest generates a "aws/request.Request" representing the
6228// client's request for the UpdateFirewallDomains operation. The "output" return
6229// value will be populated with the request's response once the request completes
6230// successfully.
6231//
6232// Use "Send" method on the returned Request to send the API call to the service.
6233// the "output" return value is not valid until after Send returns without error.
6234//
6235// See UpdateFirewallDomains for more information on using the UpdateFirewallDomains
6236// API call, and error handling.
6237//
6238// This method is useful when you want to inject custom logic or configuration
6239// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6240//
6241//
6242//    // Example sending a request using the UpdateFirewallDomainsRequest method.
6243//    req, resp := client.UpdateFirewallDomainsRequest(params)
6244//
6245//    err := req.Send()
6246//    if err == nil { // resp is now filled
6247//        fmt.Println(resp)
6248//    }
6249//
6250// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UpdateFirewallDomains
6251func (c *Route53Resolver) UpdateFirewallDomainsRequest(input *UpdateFirewallDomainsInput) (req *request.Request, output *UpdateFirewallDomainsOutput) {
6252	op := &request.Operation{
6253		Name:       opUpdateFirewallDomains,
6254		HTTPMethod: "POST",
6255		HTTPPath:   "/",
6256	}
6257
6258	if input == nil {
6259		input = &UpdateFirewallDomainsInput{}
6260	}
6261
6262	output = &UpdateFirewallDomainsOutput{}
6263	req = c.newRequest(op, input, output)
6264	return
6265}
6266
6267// UpdateFirewallDomains API operation for Amazon Route 53 Resolver.
6268//
6269// Updates the firewall domain list from an array of domain specifications.
6270//
6271// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6272// with awserr.Error's Code and Message methods to get detailed information about
6273// the error.
6274//
6275// See the AWS API reference guide for Amazon Route 53 Resolver's
6276// API operation UpdateFirewallDomains for usage and error information.
6277//
6278// Returned Error Types:
6279//   * ValidationException
6280//
6281//   * AccessDeniedException
6282//   The current account doesn't have the IAM permissions required to perform
6283//   the specified Resolver operation.
6284//
6285//   * ResourceNotFoundException
6286//   The specified resource doesn't exist.
6287//
6288//   * LimitExceededException
6289//   The request caused one or more limits to be exceeded.
6290//
6291//   * ConflictException
6292//
6293//   * InternalServiceErrorException
6294//   We encountered an unknown error. Try again in a few minutes.
6295//
6296//   * ThrottlingException
6297//   The request was throttled. Try again in a few minutes.
6298//
6299// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UpdateFirewallDomains
6300func (c *Route53Resolver) UpdateFirewallDomains(input *UpdateFirewallDomainsInput) (*UpdateFirewallDomainsOutput, error) {
6301	req, out := c.UpdateFirewallDomainsRequest(input)
6302	return out, req.Send()
6303}
6304
6305// UpdateFirewallDomainsWithContext is the same as UpdateFirewallDomains with the addition of
6306// the ability to pass a context and additional request options.
6307//
6308// See UpdateFirewallDomains for details on how to use this API operation.
6309//
6310// The context must be non-nil and will be used for request cancellation. If
6311// the context is nil a panic will occur. In the future the SDK may create
6312// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6313// for more information on using Contexts.
6314func (c *Route53Resolver) UpdateFirewallDomainsWithContext(ctx aws.Context, input *UpdateFirewallDomainsInput, opts ...request.Option) (*UpdateFirewallDomainsOutput, error) {
6315	req, out := c.UpdateFirewallDomainsRequest(input)
6316	req.SetContext(ctx)
6317	req.ApplyOptions(opts...)
6318	return out, req.Send()
6319}
6320
6321const opUpdateFirewallRule = "UpdateFirewallRule"
6322
6323// UpdateFirewallRuleRequest generates a "aws/request.Request" representing the
6324// client's request for the UpdateFirewallRule operation. The "output" return
6325// value will be populated with the request's response once the request completes
6326// successfully.
6327//
6328// Use "Send" method on the returned Request to send the API call to the service.
6329// the "output" return value is not valid until after Send returns without error.
6330//
6331// See UpdateFirewallRule for more information on using the UpdateFirewallRule
6332// API call, and error handling.
6333//
6334// This method is useful when you want to inject custom logic or configuration
6335// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6336//
6337//
6338//    // Example sending a request using the UpdateFirewallRuleRequest method.
6339//    req, resp := client.UpdateFirewallRuleRequest(params)
6340//
6341//    err := req.Send()
6342//    if err == nil { // resp is now filled
6343//        fmt.Println(resp)
6344//    }
6345//
6346// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UpdateFirewallRule
6347func (c *Route53Resolver) UpdateFirewallRuleRequest(input *UpdateFirewallRuleInput) (req *request.Request, output *UpdateFirewallRuleOutput) {
6348	op := &request.Operation{
6349		Name:       opUpdateFirewallRule,
6350		HTTPMethod: "POST",
6351		HTTPPath:   "/",
6352	}
6353
6354	if input == nil {
6355		input = &UpdateFirewallRuleInput{}
6356	}
6357
6358	output = &UpdateFirewallRuleOutput{}
6359	req = c.newRequest(op, input, output)
6360	return
6361}
6362
6363// UpdateFirewallRule API operation for Amazon Route 53 Resolver.
6364//
6365// Updates the specified firewall rule.
6366//
6367// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6368// with awserr.Error's Code and Message methods to get detailed information about
6369// the error.
6370//
6371// See the AWS API reference guide for Amazon Route 53 Resolver's
6372// API operation UpdateFirewallRule for usage and error information.
6373//
6374// Returned Error Types:
6375//   * ResourceNotFoundException
6376//   The specified resource doesn't exist.
6377//
6378//   * ValidationException
6379//
6380//   * ConflictException
6381//
6382//   * AccessDeniedException
6383//   The current account doesn't have the IAM permissions required to perform
6384//   the specified Resolver operation.
6385//
6386//   * InternalServiceErrorException
6387//   We encountered an unknown error. Try again in a few minutes.
6388//
6389//   * ThrottlingException
6390//   The request was throttled. Try again in a few minutes.
6391//
6392// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UpdateFirewallRule
6393func (c *Route53Resolver) UpdateFirewallRule(input *UpdateFirewallRuleInput) (*UpdateFirewallRuleOutput, error) {
6394	req, out := c.UpdateFirewallRuleRequest(input)
6395	return out, req.Send()
6396}
6397
6398// UpdateFirewallRuleWithContext is the same as UpdateFirewallRule with the addition of
6399// the ability to pass a context and additional request options.
6400//
6401// See UpdateFirewallRule for details on how to use this API operation.
6402//
6403// The context must be non-nil and will be used for request cancellation. If
6404// the context is nil a panic will occur. In the future the SDK may create
6405// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6406// for more information on using Contexts.
6407func (c *Route53Resolver) UpdateFirewallRuleWithContext(ctx aws.Context, input *UpdateFirewallRuleInput, opts ...request.Option) (*UpdateFirewallRuleOutput, error) {
6408	req, out := c.UpdateFirewallRuleRequest(input)
6409	req.SetContext(ctx)
6410	req.ApplyOptions(opts...)
6411	return out, req.Send()
6412}
6413
6414const opUpdateFirewallRuleGroupAssociation = "UpdateFirewallRuleGroupAssociation"
6415
6416// UpdateFirewallRuleGroupAssociationRequest generates a "aws/request.Request" representing the
6417// client's request for the UpdateFirewallRuleGroupAssociation operation. The "output" return
6418// value will be populated with the request's response once the request completes
6419// successfully.
6420//
6421// Use "Send" method on the returned Request to send the API call to the service.
6422// the "output" return value is not valid until after Send returns without error.
6423//
6424// See UpdateFirewallRuleGroupAssociation for more information on using the UpdateFirewallRuleGroupAssociation
6425// API call, and error handling.
6426//
6427// This method is useful when you want to inject custom logic or configuration
6428// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6429//
6430//
6431//    // Example sending a request using the UpdateFirewallRuleGroupAssociationRequest method.
6432//    req, resp := client.UpdateFirewallRuleGroupAssociationRequest(params)
6433//
6434//    err := req.Send()
6435//    if err == nil { // resp is now filled
6436//        fmt.Println(resp)
6437//    }
6438//
6439// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UpdateFirewallRuleGroupAssociation
6440func (c *Route53Resolver) UpdateFirewallRuleGroupAssociationRequest(input *UpdateFirewallRuleGroupAssociationInput) (req *request.Request, output *UpdateFirewallRuleGroupAssociationOutput) {
6441	op := &request.Operation{
6442		Name:       opUpdateFirewallRuleGroupAssociation,
6443		HTTPMethod: "POST",
6444		HTTPPath:   "/",
6445	}
6446
6447	if input == nil {
6448		input = &UpdateFirewallRuleGroupAssociationInput{}
6449	}
6450
6451	output = &UpdateFirewallRuleGroupAssociationOutput{}
6452	req = c.newRequest(op, input, output)
6453	return
6454}
6455
6456// UpdateFirewallRuleGroupAssociation API operation for Amazon Route 53 Resolver.
6457//
6458// Changes the association of a FirewallRuleGroup with a VPC. The association
6459// enables DNS filtering for the VPC.
6460//
6461// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6462// with awserr.Error's Code and Message methods to get detailed information about
6463// the error.
6464//
6465// See the AWS API reference guide for Amazon Route 53 Resolver's
6466// API operation UpdateFirewallRuleGroupAssociation for usage and error information.
6467//
6468// Returned Error Types:
6469//   * ResourceNotFoundException
6470//   The specified resource doesn't exist.
6471//
6472//   * ValidationException
6473//
6474//   * ConflictException
6475//
6476//   * AccessDeniedException
6477//   The current account doesn't have the IAM permissions required to perform
6478//   the specified Resolver operation.
6479//
6480//   * InternalServiceErrorException
6481//   We encountered an unknown error. Try again in a few minutes.
6482//
6483//   * ThrottlingException
6484//   The request was throttled. Try again in a few minutes.
6485//
6486// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UpdateFirewallRuleGroupAssociation
6487func (c *Route53Resolver) UpdateFirewallRuleGroupAssociation(input *UpdateFirewallRuleGroupAssociationInput) (*UpdateFirewallRuleGroupAssociationOutput, error) {
6488	req, out := c.UpdateFirewallRuleGroupAssociationRequest(input)
6489	return out, req.Send()
6490}
6491
6492// UpdateFirewallRuleGroupAssociationWithContext is the same as UpdateFirewallRuleGroupAssociation with the addition of
6493// the ability to pass a context and additional request options.
6494//
6495// See UpdateFirewallRuleGroupAssociation for details on how to use this API operation.
6496//
6497// The context must be non-nil and will be used for request cancellation. If
6498// the context is nil a panic will occur. In the future the SDK may create
6499// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6500// for more information on using Contexts.
6501func (c *Route53Resolver) UpdateFirewallRuleGroupAssociationWithContext(ctx aws.Context, input *UpdateFirewallRuleGroupAssociationInput, opts ...request.Option) (*UpdateFirewallRuleGroupAssociationOutput, error) {
6502	req, out := c.UpdateFirewallRuleGroupAssociationRequest(input)
6503	req.SetContext(ctx)
6504	req.ApplyOptions(opts...)
6505	return out, req.Send()
6506}
6507
6508const opUpdateResolverConfig = "UpdateResolverConfig"
6509
6510// UpdateResolverConfigRequest generates a "aws/request.Request" representing the
6511// client's request for the UpdateResolverConfig operation. The "output" return
6512// value will be populated with the request's response once the request completes
6513// successfully.
6514//
6515// Use "Send" method on the returned Request to send the API call to the service.
6516// the "output" return value is not valid until after Send returns without error.
6517//
6518// See UpdateResolverConfig for more information on using the UpdateResolverConfig
6519// API call, and error handling.
6520//
6521// This method is useful when you want to inject custom logic or configuration
6522// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6523//
6524//
6525//    // Example sending a request using the UpdateResolverConfigRequest method.
6526//    req, resp := client.UpdateResolverConfigRequest(params)
6527//
6528//    err := req.Send()
6529//    if err == nil { // resp is now filled
6530//        fmt.Println(resp)
6531//    }
6532//
6533// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UpdateResolverConfig
6534func (c *Route53Resolver) UpdateResolverConfigRequest(input *UpdateResolverConfigInput) (req *request.Request, output *UpdateResolverConfigOutput) {
6535	op := &request.Operation{
6536		Name:       opUpdateResolverConfig,
6537		HTTPMethod: "POST",
6538		HTTPPath:   "/",
6539	}
6540
6541	if input == nil {
6542		input = &UpdateResolverConfigInput{}
6543	}
6544
6545	output = &UpdateResolverConfigOutput{}
6546	req = c.newRequest(op, input, output)
6547	return
6548}
6549
6550// UpdateResolverConfig API operation for Amazon Route 53 Resolver.
6551//
6552// Updates the behavior configuration of Route 53 Resolver behavior for a single
6553// VPC from Amazon Virtual Private Cloud.
6554//
6555// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6556// with awserr.Error's Code and Message methods to get detailed information about
6557// the error.
6558//
6559// See the AWS API reference guide for Amazon Route 53 Resolver's
6560// API operation UpdateResolverConfig for usage and error information.
6561//
6562// Returned Error Types:
6563//   * InvalidRequestException
6564//   The request is invalid.
6565//
6566//   * InvalidParameterException
6567//   One or more parameters in this request are not valid.
6568//
6569//   * ResourceNotFoundException
6570//   The specified resource doesn't exist.
6571//
6572//   * ResourceUnavailableException
6573//   The specified resource isn't available.
6574//
6575//   * LimitExceededException
6576//   The request caused one or more limits to be exceeded.
6577//
6578//   * InternalServiceErrorException
6579//   We encountered an unknown error. Try again in a few minutes.
6580//
6581//   * ThrottlingException
6582//   The request was throttled. Try again in a few minutes.
6583//
6584//   * AccessDeniedException
6585//   The current account doesn't have the IAM permissions required to perform
6586//   the specified Resolver operation.
6587//
6588// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UpdateResolverConfig
6589func (c *Route53Resolver) UpdateResolverConfig(input *UpdateResolverConfigInput) (*UpdateResolverConfigOutput, error) {
6590	req, out := c.UpdateResolverConfigRequest(input)
6591	return out, req.Send()
6592}
6593
6594// UpdateResolverConfigWithContext is the same as UpdateResolverConfig with the addition of
6595// the ability to pass a context and additional request options.
6596//
6597// See UpdateResolverConfig for details on how to use this API operation.
6598//
6599// The context must be non-nil and will be used for request cancellation. If
6600// the context is nil a panic will occur. In the future the SDK may create
6601// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6602// for more information on using Contexts.
6603func (c *Route53Resolver) UpdateResolverConfigWithContext(ctx aws.Context, input *UpdateResolverConfigInput, opts ...request.Option) (*UpdateResolverConfigOutput, error) {
6604	req, out := c.UpdateResolverConfigRequest(input)
6605	req.SetContext(ctx)
6606	req.ApplyOptions(opts...)
6607	return out, req.Send()
6608}
6609
6610const opUpdateResolverDnssecConfig = "UpdateResolverDnssecConfig"
6611
6612// UpdateResolverDnssecConfigRequest generates a "aws/request.Request" representing the
6613// client's request for the UpdateResolverDnssecConfig operation. The "output" return
6614// value will be populated with the request's response once the request completes
6615// successfully.
6616//
6617// Use "Send" method on the returned Request to send the API call to the service.
6618// the "output" return value is not valid until after Send returns without error.
6619//
6620// See UpdateResolverDnssecConfig for more information on using the UpdateResolverDnssecConfig
6621// API call, and error handling.
6622//
6623// This method is useful when you want to inject custom logic or configuration
6624// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6625//
6626//
6627//    // Example sending a request using the UpdateResolverDnssecConfigRequest method.
6628//    req, resp := client.UpdateResolverDnssecConfigRequest(params)
6629//
6630//    err := req.Send()
6631//    if err == nil { // resp is now filled
6632//        fmt.Println(resp)
6633//    }
6634//
6635// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UpdateResolverDnssecConfig
6636func (c *Route53Resolver) UpdateResolverDnssecConfigRequest(input *UpdateResolverDnssecConfigInput) (req *request.Request, output *UpdateResolverDnssecConfigOutput) {
6637	op := &request.Operation{
6638		Name:       opUpdateResolverDnssecConfig,
6639		HTTPMethod: "POST",
6640		HTTPPath:   "/",
6641	}
6642
6643	if input == nil {
6644		input = &UpdateResolverDnssecConfigInput{}
6645	}
6646
6647	output = &UpdateResolverDnssecConfigOutput{}
6648	req = c.newRequest(op, input, output)
6649	return
6650}
6651
6652// UpdateResolverDnssecConfig API operation for Amazon Route 53 Resolver.
6653//
6654// Updates an existing DNSSEC validation configuration. If there is no existing
6655// DNSSEC validation configuration, one is created.
6656//
6657// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6658// with awserr.Error's Code and Message methods to get detailed information about
6659// the error.
6660//
6661// See the AWS API reference guide for Amazon Route 53 Resolver's
6662// API operation UpdateResolverDnssecConfig for usage and error information.
6663//
6664// Returned Error Types:
6665//   * InvalidParameterException
6666//   One or more parameters in this request are not valid.
6667//
6668//   * ResourceNotFoundException
6669//   The specified resource doesn't exist.
6670//
6671//   * InvalidRequestException
6672//   The request is invalid.
6673//
6674//   * InternalServiceErrorException
6675//   We encountered an unknown error. Try again in a few minutes.
6676//
6677//   * ThrottlingException
6678//   The request was throttled. Try again in a few minutes.
6679//
6680//   * AccessDeniedException
6681//   The current account doesn't have the IAM permissions required to perform
6682//   the specified Resolver operation.
6683//
6684// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UpdateResolverDnssecConfig
6685func (c *Route53Resolver) UpdateResolverDnssecConfig(input *UpdateResolverDnssecConfigInput) (*UpdateResolverDnssecConfigOutput, error) {
6686	req, out := c.UpdateResolverDnssecConfigRequest(input)
6687	return out, req.Send()
6688}
6689
6690// UpdateResolverDnssecConfigWithContext is the same as UpdateResolverDnssecConfig with the addition of
6691// the ability to pass a context and additional request options.
6692//
6693// See UpdateResolverDnssecConfig for details on how to use this API operation.
6694//
6695// The context must be non-nil and will be used for request cancellation. If
6696// the context is nil a panic will occur. In the future the SDK may create
6697// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6698// for more information on using Contexts.
6699func (c *Route53Resolver) UpdateResolverDnssecConfigWithContext(ctx aws.Context, input *UpdateResolverDnssecConfigInput, opts ...request.Option) (*UpdateResolverDnssecConfigOutput, error) {
6700	req, out := c.UpdateResolverDnssecConfigRequest(input)
6701	req.SetContext(ctx)
6702	req.ApplyOptions(opts...)
6703	return out, req.Send()
6704}
6705
6706const opUpdateResolverEndpoint = "UpdateResolverEndpoint"
6707
6708// UpdateResolverEndpointRequest generates a "aws/request.Request" representing the
6709// client's request for the UpdateResolverEndpoint operation. The "output" return
6710// value will be populated with the request's response once the request completes
6711// successfully.
6712//
6713// Use "Send" method on the returned Request to send the API call to the service.
6714// the "output" return value is not valid until after Send returns without error.
6715//
6716// See UpdateResolverEndpoint for more information on using the UpdateResolverEndpoint
6717// API call, and error handling.
6718//
6719// This method is useful when you want to inject custom logic or configuration
6720// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6721//
6722//
6723//    // Example sending a request using the UpdateResolverEndpointRequest method.
6724//    req, resp := client.UpdateResolverEndpointRequest(params)
6725//
6726//    err := req.Send()
6727//    if err == nil { // resp is now filled
6728//        fmt.Println(resp)
6729//    }
6730//
6731// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UpdateResolverEndpoint
6732func (c *Route53Resolver) UpdateResolverEndpointRequest(input *UpdateResolverEndpointInput) (req *request.Request, output *UpdateResolverEndpointOutput) {
6733	op := &request.Operation{
6734		Name:       opUpdateResolverEndpoint,
6735		HTTPMethod: "POST",
6736		HTTPPath:   "/",
6737	}
6738
6739	if input == nil {
6740		input = &UpdateResolverEndpointInput{}
6741	}
6742
6743	output = &UpdateResolverEndpointOutput{}
6744	req = c.newRequest(op, input, output)
6745	return
6746}
6747
6748// UpdateResolverEndpoint API operation for Amazon Route 53 Resolver.
6749//
6750// Updates the name of an inbound or an outbound Resolver endpoint.
6751//
6752// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6753// with awserr.Error's Code and Message methods to get detailed information about
6754// the error.
6755//
6756// See the AWS API reference guide for Amazon Route 53 Resolver's
6757// API operation UpdateResolverEndpoint for usage and error information.
6758//
6759// Returned Error Types:
6760//   * ResourceNotFoundException
6761//   The specified resource doesn't exist.
6762//
6763//   * InvalidParameterException
6764//   One or more parameters in this request are not valid.
6765//
6766//   * InvalidRequestException
6767//   The request is invalid.
6768//
6769//   * InternalServiceErrorException
6770//   We encountered an unknown error. Try again in a few minutes.
6771//
6772//   * ThrottlingException
6773//   The request was throttled. Try again in a few minutes.
6774//
6775// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UpdateResolverEndpoint
6776func (c *Route53Resolver) UpdateResolverEndpoint(input *UpdateResolverEndpointInput) (*UpdateResolverEndpointOutput, error) {
6777	req, out := c.UpdateResolverEndpointRequest(input)
6778	return out, req.Send()
6779}
6780
6781// UpdateResolverEndpointWithContext is the same as UpdateResolverEndpoint with the addition of
6782// the ability to pass a context and additional request options.
6783//
6784// See UpdateResolverEndpoint for details on how to use this API operation.
6785//
6786// The context must be non-nil and will be used for request cancellation. If
6787// the context is nil a panic will occur. In the future the SDK may create
6788// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6789// for more information on using Contexts.
6790func (c *Route53Resolver) UpdateResolverEndpointWithContext(ctx aws.Context, input *UpdateResolverEndpointInput, opts ...request.Option) (*UpdateResolverEndpointOutput, error) {
6791	req, out := c.UpdateResolverEndpointRequest(input)
6792	req.SetContext(ctx)
6793	req.ApplyOptions(opts...)
6794	return out, req.Send()
6795}
6796
6797const opUpdateResolverRule = "UpdateResolverRule"
6798
6799// UpdateResolverRuleRequest generates a "aws/request.Request" representing the
6800// client's request for the UpdateResolverRule operation. The "output" return
6801// value will be populated with the request's response once the request completes
6802// successfully.
6803//
6804// Use "Send" method on the returned Request to send the API call to the service.
6805// the "output" return value is not valid until after Send returns without error.
6806//
6807// See UpdateResolverRule for more information on using the UpdateResolverRule
6808// API call, and error handling.
6809//
6810// This method is useful when you want to inject custom logic or configuration
6811// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6812//
6813//
6814//    // Example sending a request using the UpdateResolverRuleRequest method.
6815//    req, resp := client.UpdateResolverRuleRequest(params)
6816//
6817//    err := req.Send()
6818//    if err == nil { // resp is now filled
6819//        fmt.Println(resp)
6820//    }
6821//
6822// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UpdateResolverRule
6823func (c *Route53Resolver) UpdateResolverRuleRequest(input *UpdateResolverRuleInput) (req *request.Request, output *UpdateResolverRuleOutput) {
6824	op := &request.Operation{
6825		Name:       opUpdateResolverRule,
6826		HTTPMethod: "POST",
6827		HTTPPath:   "/",
6828	}
6829
6830	if input == nil {
6831		input = &UpdateResolverRuleInput{}
6832	}
6833
6834	output = &UpdateResolverRuleOutput{}
6835	req = c.newRequest(op, input, output)
6836	return
6837}
6838
6839// UpdateResolverRule API operation for Amazon Route 53 Resolver.
6840//
6841// Updates settings for a specified Resolver rule. ResolverRuleId is required,
6842// and all other parameters are optional. If you don't specify a parameter,
6843// it retains its current value.
6844//
6845// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6846// with awserr.Error's Code and Message methods to get detailed information about
6847// the error.
6848//
6849// See the AWS API reference guide for Amazon Route 53 Resolver's
6850// API operation UpdateResolverRule for usage and error information.
6851//
6852// Returned Error Types:
6853//   * InvalidRequestException
6854//   The request is invalid.
6855//
6856//   * InvalidParameterException
6857//   One or more parameters in this request are not valid.
6858//
6859//   * ResourceNotFoundException
6860//   The specified resource doesn't exist.
6861//
6862//   * ResourceUnavailableException
6863//   The specified resource isn't available.
6864//
6865//   * LimitExceededException
6866//   The request caused one or more limits to be exceeded.
6867//
6868//   * InternalServiceErrorException
6869//   We encountered an unknown error. Try again in a few minutes.
6870//
6871//   * ThrottlingException
6872//   The request was throttled. Try again in a few minutes.
6873//
6874// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UpdateResolverRule
6875func (c *Route53Resolver) UpdateResolverRule(input *UpdateResolverRuleInput) (*UpdateResolverRuleOutput, error) {
6876	req, out := c.UpdateResolverRuleRequest(input)
6877	return out, req.Send()
6878}
6879
6880// UpdateResolverRuleWithContext is the same as UpdateResolverRule with the addition of
6881// the ability to pass a context and additional request options.
6882//
6883// See UpdateResolverRule for details on how to use this API operation.
6884//
6885// The context must be non-nil and will be used for request cancellation. If
6886// the context is nil a panic will occur. In the future the SDK may create
6887// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6888// for more information on using Contexts.
6889func (c *Route53Resolver) UpdateResolverRuleWithContext(ctx aws.Context, input *UpdateResolverRuleInput, opts ...request.Option) (*UpdateResolverRuleOutput, error) {
6890	req, out := c.UpdateResolverRuleRequest(input)
6891	req.SetContext(ctx)
6892	req.ApplyOptions(opts...)
6893	return out, req.Send()
6894}
6895
6896// The current account doesn't have the IAM permissions required to perform
6897// the specified Resolver operation.
6898type AccessDeniedException struct {
6899	_            struct{}                  `type:"structure"`
6900	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6901
6902	Message_ *string `locationName:"Message" type:"string"`
6903}
6904
6905// String returns the string representation.
6906//
6907// API parameter values that are decorated as "sensitive" in the API will not
6908// be included in the string output. The member name will be present, but the
6909// value will be replaced with "sensitive".
6910func (s AccessDeniedException) String() string {
6911	return awsutil.Prettify(s)
6912}
6913
6914// GoString returns the string representation.
6915//
6916// API parameter values that are decorated as "sensitive" in the API will not
6917// be included in the string output. The member name will be present, but the
6918// value will be replaced with "sensitive".
6919func (s AccessDeniedException) GoString() string {
6920	return s.String()
6921}
6922
6923func newErrorAccessDeniedException(v protocol.ResponseMetadata) error {
6924	return &AccessDeniedException{
6925		RespMetadata: v,
6926	}
6927}
6928
6929// Code returns the exception type name.
6930func (s *AccessDeniedException) Code() string {
6931	return "AccessDeniedException"
6932}
6933
6934// Message returns the exception's message.
6935func (s *AccessDeniedException) Message() string {
6936	if s.Message_ != nil {
6937		return *s.Message_
6938	}
6939	return ""
6940}
6941
6942// OrigErr always returns nil, satisfies awserr.Error interface.
6943func (s *AccessDeniedException) OrigErr() error {
6944	return nil
6945}
6946
6947func (s *AccessDeniedException) Error() string {
6948	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6949}
6950
6951// Status code returns the HTTP status code for the request's response error.
6952func (s *AccessDeniedException) StatusCode() int {
6953	return s.RespMetadata.StatusCode
6954}
6955
6956// RequestID returns the service's response RequestID for request.
6957func (s *AccessDeniedException) RequestID() string {
6958	return s.RespMetadata.RequestID
6959}
6960
6961type AssociateFirewallRuleGroupInput struct {
6962	_ struct{} `type:"structure"`
6963
6964	// A unique string that identifies the request and that allows failed requests
6965	// to be retried without the risk of running the operation twice. CreatorRequestId
6966	// can be any unique string, for example, a date/time stamp.
6967	CreatorRequestId *string `min:"1" type:"string" idempotencyToken:"true"`
6968
6969	// The unique identifier of the firewall rule group.
6970	//
6971	// FirewallRuleGroupId is a required field
6972	FirewallRuleGroupId *string `min:"1" type:"string" required:"true"`
6973
6974	// If enabled, this setting disallows modification or removal of the association,
6975	// to help prevent against accidentally altering DNS firewall protections. When
6976	// you create the association, the default setting is DISABLED.
6977	MutationProtection *string `type:"string" enum:"MutationProtectionStatus"`
6978
6979	// A name that lets you identify the association, to manage and use it.
6980	//
6981	// Name is a required field
6982	Name *string `type:"string" required:"true"`
6983
6984	// The setting that determines the processing order of the rule group among
6985	// the rule groups that you associate with the specified VPC. DNS Firewall filters
6986	// VPC traffic starting from the rule group with the lowest numeric priority
6987	// setting.
6988	//
6989	// You must specify a unique priority for each rule group that you associate
6990	// with a single VPC. To make it easier to insert rule groups later, leave space
6991	// between the numbers, for example, use 101, 200, and so on. You can change
6992	// the priority setting for a rule group association after you create it.
6993	//
6994	// The allowed values for Priority are between 100 and 9900.
6995	//
6996	// Priority is a required field
6997	Priority *int64 `type:"integer" required:"true"`
6998
6999	// A list of the tag keys and values that you want to associate with the rule
7000	// group association.
7001	Tags []*Tag `type:"list"`
7002
7003	// The unique identifier of the VPC that you want to associate with the rule
7004	// group.
7005	//
7006	// VpcId is a required field
7007	VpcId *string `min:"1" type:"string" required:"true"`
7008}
7009
7010// String returns the string representation.
7011//
7012// API parameter values that are decorated as "sensitive" in the API will not
7013// be included in the string output. The member name will be present, but the
7014// value will be replaced with "sensitive".
7015func (s AssociateFirewallRuleGroupInput) String() string {
7016	return awsutil.Prettify(s)
7017}
7018
7019// GoString returns the string representation.
7020//
7021// API parameter values that are decorated as "sensitive" in the API will not
7022// be included in the string output. The member name will be present, but the
7023// value will be replaced with "sensitive".
7024func (s AssociateFirewallRuleGroupInput) GoString() string {
7025	return s.String()
7026}
7027
7028// Validate inspects the fields of the type to determine if they are valid.
7029func (s *AssociateFirewallRuleGroupInput) Validate() error {
7030	invalidParams := request.ErrInvalidParams{Context: "AssociateFirewallRuleGroupInput"}
7031	if s.CreatorRequestId != nil && len(*s.CreatorRequestId) < 1 {
7032		invalidParams.Add(request.NewErrParamMinLen("CreatorRequestId", 1))
7033	}
7034	if s.FirewallRuleGroupId == nil {
7035		invalidParams.Add(request.NewErrParamRequired("FirewallRuleGroupId"))
7036	}
7037	if s.FirewallRuleGroupId != nil && len(*s.FirewallRuleGroupId) < 1 {
7038		invalidParams.Add(request.NewErrParamMinLen("FirewallRuleGroupId", 1))
7039	}
7040	if s.Name == nil {
7041		invalidParams.Add(request.NewErrParamRequired("Name"))
7042	}
7043	if s.Priority == nil {
7044		invalidParams.Add(request.NewErrParamRequired("Priority"))
7045	}
7046	if s.VpcId == nil {
7047		invalidParams.Add(request.NewErrParamRequired("VpcId"))
7048	}
7049	if s.VpcId != nil && len(*s.VpcId) < 1 {
7050		invalidParams.Add(request.NewErrParamMinLen("VpcId", 1))
7051	}
7052	if s.Tags != nil {
7053		for i, v := range s.Tags {
7054			if v == nil {
7055				continue
7056			}
7057			if err := v.Validate(); err != nil {
7058				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
7059			}
7060		}
7061	}
7062
7063	if invalidParams.Len() > 0 {
7064		return invalidParams
7065	}
7066	return nil
7067}
7068
7069// SetCreatorRequestId sets the CreatorRequestId field's value.
7070func (s *AssociateFirewallRuleGroupInput) SetCreatorRequestId(v string) *AssociateFirewallRuleGroupInput {
7071	s.CreatorRequestId = &v
7072	return s
7073}
7074
7075// SetFirewallRuleGroupId sets the FirewallRuleGroupId field's value.
7076func (s *AssociateFirewallRuleGroupInput) SetFirewallRuleGroupId(v string) *AssociateFirewallRuleGroupInput {
7077	s.FirewallRuleGroupId = &v
7078	return s
7079}
7080
7081// SetMutationProtection sets the MutationProtection field's value.
7082func (s *AssociateFirewallRuleGroupInput) SetMutationProtection(v string) *AssociateFirewallRuleGroupInput {
7083	s.MutationProtection = &v
7084	return s
7085}
7086
7087// SetName sets the Name field's value.
7088func (s *AssociateFirewallRuleGroupInput) SetName(v string) *AssociateFirewallRuleGroupInput {
7089	s.Name = &v
7090	return s
7091}
7092
7093// SetPriority sets the Priority field's value.
7094func (s *AssociateFirewallRuleGroupInput) SetPriority(v int64) *AssociateFirewallRuleGroupInput {
7095	s.Priority = &v
7096	return s
7097}
7098
7099// SetTags sets the Tags field's value.
7100func (s *AssociateFirewallRuleGroupInput) SetTags(v []*Tag) *AssociateFirewallRuleGroupInput {
7101	s.Tags = v
7102	return s
7103}
7104
7105// SetVpcId sets the VpcId field's value.
7106func (s *AssociateFirewallRuleGroupInput) SetVpcId(v string) *AssociateFirewallRuleGroupInput {
7107	s.VpcId = &v
7108	return s
7109}
7110
7111type AssociateFirewallRuleGroupOutput struct {
7112	_ struct{} `type:"structure"`
7113
7114	// The association that you just created. The association has an ID that you
7115	// can use to identify it in other requests, like update and delete.
7116	FirewallRuleGroupAssociation *FirewallRuleGroupAssociation `type:"structure"`
7117}
7118
7119// String returns the string representation.
7120//
7121// API parameter values that are decorated as "sensitive" in the API will not
7122// be included in the string output. The member name will be present, but the
7123// value will be replaced with "sensitive".
7124func (s AssociateFirewallRuleGroupOutput) String() string {
7125	return awsutil.Prettify(s)
7126}
7127
7128// GoString returns the string representation.
7129//
7130// API parameter values that are decorated as "sensitive" in the API will not
7131// be included in the string output. The member name will be present, but the
7132// value will be replaced with "sensitive".
7133func (s AssociateFirewallRuleGroupOutput) GoString() string {
7134	return s.String()
7135}
7136
7137// SetFirewallRuleGroupAssociation sets the FirewallRuleGroupAssociation field's value.
7138func (s *AssociateFirewallRuleGroupOutput) SetFirewallRuleGroupAssociation(v *FirewallRuleGroupAssociation) *AssociateFirewallRuleGroupOutput {
7139	s.FirewallRuleGroupAssociation = v
7140	return s
7141}
7142
7143type AssociateResolverEndpointIpAddressInput struct {
7144	_ struct{} `type:"structure"`
7145
7146	// Either the IPv4 address that you want to add to a Resolver endpoint or a
7147	// subnet ID. If you specify a subnet ID, Resolver chooses an IP address for
7148	// you from the available IPs in the specified subnet.
7149	//
7150	// IpAddress is a required field
7151	IpAddress *IpAddressUpdate `type:"structure" required:"true"`
7152
7153	// The ID of the Resolver endpoint that you want to associate IP addresses with.
7154	//
7155	// ResolverEndpointId is a required field
7156	ResolverEndpointId *string `min:"1" type:"string" required:"true"`
7157}
7158
7159// String returns the string representation.
7160//
7161// API parameter values that are decorated as "sensitive" in the API will not
7162// be included in the string output. The member name will be present, but the
7163// value will be replaced with "sensitive".
7164func (s AssociateResolverEndpointIpAddressInput) String() string {
7165	return awsutil.Prettify(s)
7166}
7167
7168// GoString returns the string representation.
7169//
7170// API parameter values that are decorated as "sensitive" in the API will not
7171// be included in the string output. The member name will be present, but the
7172// value will be replaced with "sensitive".
7173func (s AssociateResolverEndpointIpAddressInput) GoString() string {
7174	return s.String()
7175}
7176
7177// Validate inspects the fields of the type to determine if they are valid.
7178func (s *AssociateResolverEndpointIpAddressInput) Validate() error {
7179	invalidParams := request.ErrInvalidParams{Context: "AssociateResolverEndpointIpAddressInput"}
7180	if s.IpAddress == nil {
7181		invalidParams.Add(request.NewErrParamRequired("IpAddress"))
7182	}
7183	if s.ResolverEndpointId == nil {
7184		invalidParams.Add(request.NewErrParamRequired("ResolverEndpointId"))
7185	}
7186	if s.ResolverEndpointId != nil && len(*s.ResolverEndpointId) < 1 {
7187		invalidParams.Add(request.NewErrParamMinLen("ResolverEndpointId", 1))
7188	}
7189	if s.IpAddress != nil {
7190		if err := s.IpAddress.Validate(); err != nil {
7191			invalidParams.AddNested("IpAddress", err.(request.ErrInvalidParams))
7192		}
7193	}
7194
7195	if invalidParams.Len() > 0 {
7196		return invalidParams
7197	}
7198	return nil
7199}
7200
7201// SetIpAddress sets the IpAddress field's value.
7202func (s *AssociateResolverEndpointIpAddressInput) SetIpAddress(v *IpAddressUpdate) *AssociateResolverEndpointIpAddressInput {
7203	s.IpAddress = v
7204	return s
7205}
7206
7207// SetResolverEndpointId sets the ResolverEndpointId field's value.
7208func (s *AssociateResolverEndpointIpAddressInput) SetResolverEndpointId(v string) *AssociateResolverEndpointIpAddressInput {
7209	s.ResolverEndpointId = &v
7210	return s
7211}
7212
7213type AssociateResolverEndpointIpAddressOutput struct {
7214	_ struct{} `type:"structure"`
7215
7216	// The response to an AssociateResolverEndpointIpAddress request.
7217	ResolverEndpoint *ResolverEndpoint `type:"structure"`
7218}
7219
7220// String returns the string representation.
7221//
7222// API parameter values that are decorated as "sensitive" in the API will not
7223// be included in the string output. The member name will be present, but the
7224// value will be replaced with "sensitive".
7225func (s AssociateResolverEndpointIpAddressOutput) String() string {
7226	return awsutil.Prettify(s)
7227}
7228
7229// GoString returns the string representation.
7230//
7231// API parameter values that are decorated as "sensitive" in the API will not
7232// be included in the string output. The member name will be present, but the
7233// value will be replaced with "sensitive".
7234func (s AssociateResolverEndpointIpAddressOutput) GoString() string {
7235	return s.String()
7236}
7237
7238// SetResolverEndpoint sets the ResolverEndpoint field's value.
7239func (s *AssociateResolverEndpointIpAddressOutput) SetResolverEndpoint(v *ResolverEndpoint) *AssociateResolverEndpointIpAddressOutput {
7240	s.ResolverEndpoint = v
7241	return s
7242}
7243
7244type AssociateResolverQueryLogConfigInput struct {
7245	_ struct{} `type:"structure"`
7246
7247	// The ID of the query logging configuration that you want to associate a VPC
7248	// with.
7249	//
7250	// ResolverQueryLogConfigId is a required field
7251	ResolverQueryLogConfigId *string `min:"1" type:"string" required:"true"`
7252
7253	// The ID of an Amazon VPC that you want this query logging configuration to
7254	// log queries for.
7255	//
7256	// The VPCs and the query logging configuration must be in the same Region.
7257	//
7258	// ResourceId is a required field
7259	ResourceId *string `min:"1" type:"string" required:"true"`
7260}
7261
7262// String returns the string representation.
7263//
7264// API parameter values that are decorated as "sensitive" in the API will not
7265// be included in the string output. The member name will be present, but the
7266// value will be replaced with "sensitive".
7267func (s AssociateResolverQueryLogConfigInput) String() string {
7268	return awsutil.Prettify(s)
7269}
7270
7271// GoString returns the string representation.
7272//
7273// API parameter values that are decorated as "sensitive" in the API will not
7274// be included in the string output. The member name will be present, but the
7275// value will be replaced with "sensitive".
7276func (s AssociateResolverQueryLogConfigInput) GoString() string {
7277	return s.String()
7278}
7279
7280// Validate inspects the fields of the type to determine if they are valid.
7281func (s *AssociateResolverQueryLogConfigInput) Validate() error {
7282	invalidParams := request.ErrInvalidParams{Context: "AssociateResolverQueryLogConfigInput"}
7283	if s.ResolverQueryLogConfigId == nil {
7284		invalidParams.Add(request.NewErrParamRequired("ResolverQueryLogConfigId"))
7285	}
7286	if s.ResolverQueryLogConfigId != nil && len(*s.ResolverQueryLogConfigId) < 1 {
7287		invalidParams.Add(request.NewErrParamMinLen("ResolverQueryLogConfigId", 1))
7288	}
7289	if s.ResourceId == nil {
7290		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
7291	}
7292	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
7293		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
7294	}
7295
7296	if invalidParams.Len() > 0 {
7297		return invalidParams
7298	}
7299	return nil
7300}
7301
7302// SetResolverQueryLogConfigId sets the ResolverQueryLogConfigId field's value.
7303func (s *AssociateResolverQueryLogConfigInput) SetResolverQueryLogConfigId(v string) *AssociateResolverQueryLogConfigInput {
7304	s.ResolverQueryLogConfigId = &v
7305	return s
7306}
7307
7308// SetResourceId sets the ResourceId field's value.
7309func (s *AssociateResolverQueryLogConfigInput) SetResourceId(v string) *AssociateResolverQueryLogConfigInput {
7310	s.ResourceId = &v
7311	return s
7312}
7313
7314type AssociateResolverQueryLogConfigOutput struct {
7315	_ struct{} `type:"structure"`
7316
7317	// A complex type that contains settings for a specified association between
7318	// an Amazon VPC and a query logging configuration.
7319	ResolverQueryLogConfigAssociation *ResolverQueryLogConfigAssociation `type:"structure"`
7320}
7321
7322// String returns the string representation.
7323//
7324// API parameter values that are decorated as "sensitive" in the API will not
7325// be included in the string output. The member name will be present, but the
7326// value will be replaced with "sensitive".
7327func (s AssociateResolverQueryLogConfigOutput) String() string {
7328	return awsutil.Prettify(s)
7329}
7330
7331// GoString returns the string representation.
7332//
7333// API parameter values that are decorated as "sensitive" in the API will not
7334// be included in the string output. The member name will be present, but the
7335// value will be replaced with "sensitive".
7336func (s AssociateResolverQueryLogConfigOutput) GoString() string {
7337	return s.String()
7338}
7339
7340// SetResolverQueryLogConfigAssociation sets the ResolverQueryLogConfigAssociation field's value.
7341func (s *AssociateResolverQueryLogConfigOutput) SetResolverQueryLogConfigAssociation(v *ResolverQueryLogConfigAssociation) *AssociateResolverQueryLogConfigOutput {
7342	s.ResolverQueryLogConfigAssociation = v
7343	return s
7344}
7345
7346type AssociateResolverRuleInput struct {
7347	_ struct{} `type:"structure"`
7348
7349	// A name for the association that you're creating between a Resolver rule and
7350	// a VPC.
7351	Name *string `type:"string"`
7352
7353	// The ID of the Resolver rule that you want to associate with the VPC. To list
7354	// the existing Resolver rules, use ListResolverRules (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverRules.html).
7355	//
7356	// ResolverRuleId is a required field
7357	ResolverRuleId *string `min:"1" type:"string" required:"true"`
7358
7359	// The ID of the VPC that you want to associate the Resolver rule with.
7360	//
7361	// VPCId is a required field
7362	VPCId *string `min:"1" type:"string" required:"true"`
7363}
7364
7365// String returns the string representation.
7366//
7367// API parameter values that are decorated as "sensitive" in the API will not
7368// be included in the string output. The member name will be present, but the
7369// value will be replaced with "sensitive".
7370func (s AssociateResolverRuleInput) String() string {
7371	return awsutil.Prettify(s)
7372}
7373
7374// GoString returns the string representation.
7375//
7376// API parameter values that are decorated as "sensitive" in the API will not
7377// be included in the string output. The member name will be present, but the
7378// value will be replaced with "sensitive".
7379func (s AssociateResolverRuleInput) GoString() string {
7380	return s.String()
7381}
7382
7383// Validate inspects the fields of the type to determine if they are valid.
7384func (s *AssociateResolverRuleInput) Validate() error {
7385	invalidParams := request.ErrInvalidParams{Context: "AssociateResolverRuleInput"}
7386	if s.ResolverRuleId == nil {
7387		invalidParams.Add(request.NewErrParamRequired("ResolverRuleId"))
7388	}
7389	if s.ResolverRuleId != nil && len(*s.ResolverRuleId) < 1 {
7390		invalidParams.Add(request.NewErrParamMinLen("ResolverRuleId", 1))
7391	}
7392	if s.VPCId == nil {
7393		invalidParams.Add(request.NewErrParamRequired("VPCId"))
7394	}
7395	if s.VPCId != nil && len(*s.VPCId) < 1 {
7396		invalidParams.Add(request.NewErrParamMinLen("VPCId", 1))
7397	}
7398
7399	if invalidParams.Len() > 0 {
7400		return invalidParams
7401	}
7402	return nil
7403}
7404
7405// SetName sets the Name field's value.
7406func (s *AssociateResolverRuleInput) SetName(v string) *AssociateResolverRuleInput {
7407	s.Name = &v
7408	return s
7409}
7410
7411// SetResolverRuleId sets the ResolverRuleId field's value.
7412func (s *AssociateResolverRuleInput) SetResolverRuleId(v string) *AssociateResolverRuleInput {
7413	s.ResolverRuleId = &v
7414	return s
7415}
7416
7417// SetVPCId sets the VPCId field's value.
7418func (s *AssociateResolverRuleInput) SetVPCId(v string) *AssociateResolverRuleInput {
7419	s.VPCId = &v
7420	return s
7421}
7422
7423type AssociateResolverRuleOutput struct {
7424	_ struct{} `type:"structure"`
7425
7426	// Information about the AssociateResolverRule request, including the status
7427	// of the request.
7428	ResolverRuleAssociation *ResolverRuleAssociation `type:"structure"`
7429}
7430
7431// String returns the string representation.
7432//
7433// API parameter values that are decorated as "sensitive" in the API will not
7434// be included in the string output. The member name will be present, but the
7435// value will be replaced with "sensitive".
7436func (s AssociateResolverRuleOutput) String() string {
7437	return awsutil.Prettify(s)
7438}
7439
7440// GoString returns the string representation.
7441//
7442// API parameter values that are decorated as "sensitive" in the API will not
7443// be included in the string output. The member name will be present, but the
7444// value will be replaced with "sensitive".
7445func (s AssociateResolverRuleOutput) GoString() string {
7446	return s.String()
7447}
7448
7449// SetResolverRuleAssociation sets the ResolverRuleAssociation field's value.
7450func (s *AssociateResolverRuleOutput) SetResolverRuleAssociation(v *ResolverRuleAssociation) *AssociateResolverRuleOutput {
7451	s.ResolverRuleAssociation = v
7452	return s
7453}
7454
7455type ConflictException struct {
7456	_            struct{}                  `type:"structure"`
7457	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
7458
7459	Message_ *string `locationName:"Message" type:"string"`
7460}
7461
7462// String returns the string representation.
7463//
7464// API parameter values that are decorated as "sensitive" in the API will not
7465// be included in the string output. The member name will be present, but the
7466// value will be replaced with "sensitive".
7467func (s ConflictException) String() string {
7468	return awsutil.Prettify(s)
7469}
7470
7471// GoString returns the string representation.
7472//
7473// API parameter values that are decorated as "sensitive" in the API will not
7474// be included in the string output. The member name will be present, but the
7475// value will be replaced with "sensitive".
7476func (s ConflictException) GoString() string {
7477	return s.String()
7478}
7479
7480func newErrorConflictException(v protocol.ResponseMetadata) error {
7481	return &ConflictException{
7482		RespMetadata: v,
7483	}
7484}
7485
7486// Code returns the exception type name.
7487func (s *ConflictException) Code() string {
7488	return "ConflictException"
7489}
7490
7491// Message returns the exception's message.
7492func (s *ConflictException) Message() string {
7493	if s.Message_ != nil {
7494		return *s.Message_
7495	}
7496	return ""
7497}
7498
7499// OrigErr always returns nil, satisfies awserr.Error interface.
7500func (s *ConflictException) OrigErr() error {
7501	return nil
7502}
7503
7504func (s *ConflictException) Error() string {
7505	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
7506}
7507
7508// Status code returns the HTTP status code for the request's response error.
7509func (s *ConflictException) StatusCode() int {
7510	return s.RespMetadata.StatusCode
7511}
7512
7513// RequestID returns the service's response RequestID for request.
7514func (s *ConflictException) RequestID() string {
7515	return s.RespMetadata.RequestID
7516}
7517
7518type CreateFirewallDomainListInput struct {
7519	_ struct{} `type:"structure"`
7520
7521	// A unique string that identifies the request and that allows you to retry
7522	// failed requests without the risk of running the operation twice. CreatorRequestId
7523	// can be any unique string, for example, a date/time stamp.
7524	CreatorRequestId *string `min:"1" type:"string" idempotencyToken:"true"`
7525
7526	// A name that lets you identify the domain list to manage and use it.
7527	//
7528	// Name is a required field
7529	Name *string `type:"string" required:"true"`
7530
7531	// A list of the tag keys and values that you want to associate with the domain
7532	// list.
7533	Tags []*Tag `type:"list"`
7534}
7535
7536// String returns the string representation.
7537//
7538// API parameter values that are decorated as "sensitive" in the API will not
7539// be included in the string output. The member name will be present, but the
7540// value will be replaced with "sensitive".
7541func (s CreateFirewallDomainListInput) String() string {
7542	return awsutil.Prettify(s)
7543}
7544
7545// GoString returns the string representation.
7546//
7547// API parameter values that are decorated as "sensitive" in the API will not
7548// be included in the string output. The member name will be present, but the
7549// value will be replaced with "sensitive".
7550func (s CreateFirewallDomainListInput) GoString() string {
7551	return s.String()
7552}
7553
7554// Validate inspects the fields of the type to determine if they are valid.
7555func (s *CreateFirewallDomainListInput) Validate() error {
7556	invalidParams := request.ErrInvalidParams{Context: "CreateFirewallDomainListInput"}
7557	if s.CreatorRequestId != nil && len(*s.CreatorRequestId) < 1 {
7558		invalidParams.Add(request.NewErrParamMinLen("CreatorRequestId", 1))
7559	}
7560	if s.Name == nil {
7561		invalidParams.Add(request.NewErrParamRequired("Name"))
7562	}
7563	if s.Tags != nil {
7564		for i, v := range s.Tags {
7565			if v == nil {
7566				continue
7567			}
7568			if err := v.Validate(); err != nil {
7569				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
7570			}
7571		}
7572	}
7573
7574	if invalidParams.Len() > 0 {
7575		return invalidParams
7576	}
7577	return nil
7578}
7579
7580// SetCreatorRequestId sets the CreatorRequestId field's value.
7581func (s *CreateFirewallDomainListInput) SetCreatorRequestId(v string) *CreateFirewallDomainListInput {
7582	s.CreatorRequestId = &v
7583	return s
7584}
7585
7586// SetName sets the Name field's value.
7587func (s *CreateFirewallDomainListInput) SetName(v string) *CreateFirewallDomainListInput {
7588	s.Name = &v
7589	return s
7590}
7591
7592// SetTags sets the Tags field's value.
7593func (s *CreateFirewallDomainListInput) SetTags(v []*Tag) *CreateFirewallDomainListInput {
7594	s.Tags = v
7595	return s
7596}
7597
7598type CreateFirewallDomainListOutput struct {
7599	_ struct{} `type:"structure"`
7600
7601	// The domain list that you just created.
7602	FirewallDomainList *FirewallDomainList `type:"structure"`
7603}
7604
7605// String returns the string representation.
7606//
7607// API parameter values that are decorated as "sensitive" in the API will not
7608// be included in the string output. The member name will be present, but the
7609// value will be replaced with "sensitive".
7610func (s CreateFirewallDomainListOutput) String() string {
7611	return awsutil.Prettify(s)
7612}
7613
7614// GoString returns the string representation.
7615//
7616// API parameter values that are decorated as "sensitive" in the API will not
7617// be included in the string output. The member name will be present, but the
7618// value will be replaced with "sensitive".
7619func (s CreateFirewallDomainListOutput) GoString() string {
7620	return s.String()
7621}
7622
7623// SetFirewallDomainList sets the FirewallDomainList field's value.
7624func (s *CreateFirewallDomainListOutput) SetFirewallDomainList(v *FirewallDomainList) *CreateFirewallDomainListOutput {
7625	s.FirewallDomainList = v
7626	return s
7627}
7628
7629type CreateFirewallRuleGroupInput struct {
7630	_ struct{} `type:"structure"`
7631
7632	// A unique string defined by you to identify the request. This allows you to
7633	// retry failed requests without the risk of running the operation twice. This
7634	// can be any unique string, for example, a timestamp.
7635	CreatorRequestId *string `min:"1" type:"string" idempotencyToken:"true"`
7636
7637	// A name that lets you identify the rule group, to manage and use it.
7638	//
7639	// Name is a required field
7640	Name *string `type:"string" required:"true"`
7641
7642	// A list of the tag keys and values that you want to associate with the rule
7643	// group.
7644	Tags []*Tag `type:"list"`
7645}
7646
7647// String returns the string representation.
7648//
7649// API parameter values that are decorated as "sensitive" in the API will not
7650// be included in the string output. The member name will be present, but the
7651// value will be replaced with "sensitive".
7652func (s CreateFirewallRuleGroupInput) String() string {
7653	return awsutil.Prettify(s)
7654}
7655
7656// GoString returns the string representation.
7657//
7658// API parameter values that are decorated as "sensitive" in the API will not
7659// be included in the string output. The member name will be present, but the
7660// value will be replaced with "sensitive".
7661func (s CreateFirewallRuleGroupInput) GoString() string {
7662	return s.String()
7663}
7664
7665// Validate inspects the fields of the type to determine if they are valid.
7666func (s *CreateFirewallRuleGroupInput) Validate() error {
7667	invalidParams := request.ErrInvalidParams{Context: "CreateFirewallRuleGroupInput"}
7668	if s.CreatorRequestId != nil && len(*s.CreatorRequestId) < 1 {
7669		invalidParams.Add(request.NewErrParamMinLen("CreatorRequestId", 1))
7670	}
7671	if s.Name == nil {
7672		invalidParams.Add(request.NewErrParamRequired("Name"))
7673	}
7674	if s.Tags != nil {
7675		for i, v := range s.Tags {
7676			if v == nil {
7677				continue
7678			}
7679			if err := v.Validate(); err != nil {
7680				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
7681			}
7682		}
7683	}
7684
7685	if invalidParams.Len() > 0 {
7686		return invalidParams
7687	}
7688	return nil
7689}
7690
7691// SetCreatorRequestId sets the CreatorRequestId field's value.
7692func (s *CreateFirewallRuleGroupInput) SetCreatorRequestId(v string) *CreateFirewallRuleGroupInput {
7693	s.CreatorRequestId = &v
7694	return s
7695}
7696
7697// SetName sets the Name field's value.
7698func (s *CreateFirewallRuleGroupInput) SetName(v string) *CreateFirewallRuleGroupInput {
7699	s.Name = &v
7700	return s
7701}
7702
7703// SetTags sets the Tags field's value.
7704func (s *CreateFirewallRuleGroupInput) SetTags(v []*Tag) *CreateFirewallRuleGroupInput {
7705	s.Tags = v
7706	return s
7707}
7708
7709type CreateFirewallRuleGroupOutput struct {
7710	_ struct{} `type:"structure"`
7711
7712	// A collection of rules used to filter DNS network traffic.
7713	FirewallRuleGroup *FirewallRuleGroup `type:"structure"`
7714}
7715
7716// String returns the string representation.
7717//
7718// API parameter values that are decorated as "sensitive" in the API will not
7719// be included in the string output. The member name will be present, but the
7720// value will be replaced with "sensitive".
7721func (s CreateFirewallRuleGroupOutput) String() string {
7722	return awsutil.Prettify(s)
7723}
7724
7725// GoString returns the string representation.
7726//
7727// API parameter values that are decorated as "sensitive" in the API will not
7728// be included in the string output. The member name will be present, but the
7729// value will be replaced with "sensitive".
7730func (s CreateFirewallRuleGroupOutput) GoString() string {
7731	return s.String()
7732}
7733
7734// SetFirewallRuleGroup sets the FirewallRuleGroup field's value.
7735func (s *CreateFirewallRuleGroupOutput) SetFirewallRuleGroup(v *FirewallRuleGroup) *CreateFirewallRuleGroupOutput {
7736	s.FirewallRuleGroup = v
7737	return s
7738}
7739
7740type CreateFirewallRuleInput struct {
7741	_ struct{} `type:"structure"`
7742
7743	// The action that DNS Firewall should take on a DNS query when it matches one
7744	// of the domains in the rule's domain list:
7745	//
7746	//    * ALLOW - Permit the request to go through.
7747	//
7748	//    * ALERT - Permit the request and send metrics and logs to Cloud Watch.
7749	//
7750	//    * BLOCK - Disallow the request. This option requires additional details
7751	//    in the rule's BlockResponse.
7752	//
7753	// Action is a required field
7754	Action *string `type:"string" required:"true" enum:"Action"`
7755
7756	// The DNS record's type. This determines the format of the record value that
7757	// you provided in BlockOverrideDomain. Used for the rule action BLOCK with
7758	// a BlockResponse setting of OVERRIDE.
7759	//
7760	// This setting is required if the BlockResponse setting is OVERRIDE.
7761	BlockOverrideDnsType *string `type:"string" enum:"BlockOverrideDnsType"`
7762
7763	// The custom DNS record to send back in response to the query. Used for the
7764	// rule action BLOCK with a BlockResponse setting of OVERRIDE.
7765	//
7766	// This setting is required if the BlockResponse setting is OVERRIDE.
7767	BlockOverrideDomain *string `min:"1" type:"string"`
7768
7769	// The recommended amount of time, in seconds, for the DNS resolver or web browser
7770	// to cache the provided override record. Used for the rule action BLOCK with
7771	// a BlockResponse setting of OVERRIDE.
7772	//
7773	// This setting is required if the BlockResponse setting is OVERRIDE.
7774	BlockOverrideTtl *int64 `type:"integer"`
7775
7776	// The way that you want DNS Firewall to block the request, used with the rule
7777	// action setting BLOCK.
7778	//
7779	//    * NODATA - Respond indicating that the query was successful, but no response
7780	//    is available for it.
7781	//
7782	//    * NXDOMAIN - Respond indicating that the domain name that's in the query
7783	//    doesn't exist.
7784	//
7785	//    * OVERRIDE - Provide a custom override in the response. This option requires
7786	//    custom handling details in the rule's BlockOverride* settings.
7787	//
7788	// This setting is required if the rule action setting is BLOCK.
7789	BlockResponse *string `type:"string" enum:"BlockResponse"`
7790
7791	// A unique string that identifies the request and that allows you to retry
7792	// failed requests without the risk of running the operation twice. CreatorRequestId
7793	// can be any unique string, for example, a date/time stamp.
7794	CreatorRequestId *string `min:"1" type:"string" idempotencyToken:"true"`
7795
7796	// The ID of the domain list that you want to use in the rule.
7797	//
7798	// FirewallDomainListId is a required field
7799	FirewallDomainListId *string `min:"1" type:"string" required:"true"`
7800
7801	// The unique identifier of the firewall rule group where you want to create
7802	// the rule.
7803	//
7804	// FirewallRuleGroupId is a required field
7805	FirewallRuleGroupId *string `min:"1" type:"string" required:"true"`
7806
7807	// A name that lets you identify the rule in the rule group.
7808	//
7809	// Name is a required field
7810	Name *string `type:"string" required:"true"`
7811
7812	// The setting that determines the processing order of the rule in the rule
7813	// group. DNS Firewall processes the rules in a rule group by order of priority,
7814	// starting from the lowest setting.
7815	//
7816	// You must specify a unique priority for each rule in a rule group. To make
7817	// it easier to insert rules later, leave space between the numbers, for example,
7818	// use 100, 200, and so on. You can change the priority setting for the rules
7819	// in a rule group at any time.
7820	//
7821	// Priority is a required field
7822	Priority *int64 `type:"integer" required:"true"`
7823}
7824
7825// String returns the string representation.
7826//
7827// API parameter values that are decorated as "sensitive" in the API will not
7828// be included in the string output. The member name will be present, but the
7829// value will be replaced with "sensitive".
7830func (s CreateFirewallRuleInput) String() string {
7831	return awsutil.Prettify(s)
7832}
7833
7834// GoString returns the string representation.
7835//
7836// API parameter values that are decorated as "sensitive" in the API will not
7837// be included in the string output. The member name will be present, but the
7838// value will be replaced with "sensitive".
7839func (s CreateFirewallRuleInput) GoString() string {
7840	return s.String()
7841}
7842
7843// Validate inspects the fields of the type to determine if they are valid.
7844func (s *CreateFirewallRuleInput) Validate() error {
7845	invalidParams := request.ErrInvalidParams{Context: "CreateFirewallRuleInput"}
7846	if s.Action == nil {
7847		invalidParams.Add(request.NewErrParamRequired("Action"))
7848	}
7849	if s.BlockOverrideDomain != nil && len(*s.BlockOverrideDomain) < 1 {
7850		invalidParams.Add(request.NewErrParamMinLen("BlockOverrideDomain", 1))
7851	}
7852	if s.CreatorRequestId != nil && len(*s.CreatorRequestId) < 1 {
7853		invalidParams.Add(request.NewErrParamMinLen("CreatorRequestId", 1))
7854	}
7855	if s.FirewallDomainListId == nil {
7856		invalidParams.Add(request.NewErrParamRequired("FirewallDomainListId"))
7857	}
7858	if s.FirewallDomainListId != nil && len(*s.FirewallDomainListId) < 1 {
7859		invalidParams.Add(request.NewErrParamMinLen("FirewallDomainListId", 1))
7860	}
7861	if s.FirewallRuleGroupId == nil {
7862		invalidParams.Add(request.NewErrParamRequired("FirewallRuleGroupId"))
7863	}
7864	if s.FirewallRuleGroupId != nil && len(*s.FirewallRuleGroupId) < 1 {
7865		invalidParams.Add(request.NewErrParamMinLen("FirewallRuleGroupId", 1))
7866	}
7867	if s.Name == nil {
7868		invalidParams.Add(request.NewErrParamRequired("Name"))
7869	}
7870	if s.Priority == nil {
7871		invalidParams.Add(request.NewErrParamRequired("Priority"))
7872	}
7873
7874	if invalidParams.Len() > 0 {
7875		return invalidParams
7876	}
7877	return nil
7878}
7879
7880// SetAction sets the Action field's value.
7881func (s *CreateFirewallRuleInput) SetAction(v string) *CreateFirewallRuleInput {
7882	s.Action = &v
7883	return s
7884}
7885
7886// SetBlockOverrideDnsType sets the BlockOverrideDnsType field's value.
7887func (s *CreateFirewallRuleInput) SetBlockOverrideDnsType(v string) *CreateFirewallRuleInput {
7888	s.BlockOverrideDnsType = &v
7889	return s
7890}
7891
7892// SetBlockOverrideDomain sets the BlockOverrideDomain field's value.
7893func (s *CreateFirewallRuleInput) SetBlockOverrideDomain(v string) *CreateFirewallRuleInput {
7894	s.BlockOverrideDomain = &v
7895	return s
7896}
7897
7898// SetBlockOverrideTtl sets the BlockOverrideTtl field's value.
7899func (s *CreateFirewallRuleInput) SetBlockOverrideTtl(v int64) *CreateFirewallRuleInput {
7900	s.BlockOverrideTtl = &v
7901	return s
7902}
7903
7904// SetBlockResponse sets the BlockResponse field's value.
7905func (s *CreateFirewallRuleInput) SetBlockResponse(v string) *CreateFirewallRuleInput {
7906	s.BlockResponse = &v
7907	return s
7908}
7909
7910// SetCreatorRequestId sets the CreatorRequestId field's value.
7911func (s *CreateFirewallRuleInput) SetCreatorRequestId(v string) *CreateFirewallRuleInput {
7912	s.CreatorRequestId = &v
7913	return s
7914}
7915
7916// SetFirewallDomainListId sets the FirewallDomainListId field's value.
7917func (s *CreateFirewallRuleInput) SetFirewallDomainListId(v string) *CreateFirewallRuleInput {
7918	s.FirewallDomainListId = &v
7919	return s
7920}
7921
7922// SetFirewallRuleGroupId sets the FirewallRuleGroupId field's value.
7923func (s *CreateFirewallRuleInput) SetFirewallRuleGroupId(v string) *CreateFirewallRuleInput {
7924	s.FirewallRuleGroupId = &v
7925	return s
7926}
7927
7928// SetName sets the Name field's value.
7929func (s *CreateFirewallRuleInput) SetName(v string) *CreateFirewallRuleInput {
7930	s.Name = &v
7931	return s
7932}
7933
7934// SetPriority sets the Priority field's value.
7935func (s *CreateFirewallRuleInput) SetPriority(v int64) *CreateFirewallRuleInput {
7936	s.Priority = &v
7937	return s
7938}
7939
7940type CreateFirewallRuleOutput struct {
7941	_ struct{} `type:"structure"`
7942
7943	// The firewall rule that you just created.
7944	FirewallRule *FirewallRule `type:"structure"`
7945}
7946
7947// String returns the string representation.
7948//
7949// API parameter values that are decorated as "sensitive" in the API will not
7950// be included in the string output. The member name will be present, but the
7951// value will be replaced with "sensitive".
7952func (s CreateFirewallRuleOutput) String() string {
7953	return awsutil.Prettify(s)
7954}
7955
7956// GoString returns the string representation.
7957//
7958// API parameter values that are decorated as "sensitive" in the API will not
7959// be included in the string output. The member name will be present, but the
7960// value will be replaced with "sensitive".
7961func (s CreateFirewallRuleOutput) GoString() string {
7962	return s.String()
7963}
7964
7965// SetFirewallRule sets the FirewallRule field's value.
7966func (s *CreateFirewallRuleOutput) SetFirewallRule(v *FirewallRule) *CreateFirewallRuleOutput {
7967	s.FirewallRule = v
7968	return s
7969}
7970
7971type CreateResolverEndpointInput struct {
7972	_ struct{} `type:"structure"`
7973
7974	// A unique string that identifies the request and that allows failed requests
7975	// to be retried without the risk of running the operation twice. CreatorRequestId
7976	// can be any unique string, for example, a date/time stamp.
7977	//
7978	// CreatorRequestId is a required field
7979	CreatorRequestId *string `min:"1" type:"string" required:"true"`
7980
7981	// Specify the applicable value:
7982	//
7983	//    * INBOUND: Resolver forwards DNS queries to the DNS service for a VPC
7984	//    from your network
7985	//
7986	//    * OUTBOUND: Resolver forwards DNS queries from the DNS service for a VPC
7987	//    to your network
7988	//
7989	// Direction is a required field
7990	Direction *string `type:"string" required:"true" enum:"ResolverEndpointDirection"`
7991
7992	// The subnets and IP addresses in your VPC that DNS queries originate from
7993	// (for outbound endpoints) or that you forward DNS queries to (for inbound
7994	// endpoints). The subnet ID uniquely identifies a VPC.
7995	//
7996	// IpAddresses is a required field
7997	IpAddresses []*IpAddressRequest `min:"1" type:"list" required:"true"`
7998
7999	// A friendly name that lets you easily find a configuration in the Resolver
8000	// dashboard in the Route 53 console.
8001	Name *string `type:"string"`
8002
8003	// The ID of one or more security groups that you want to use to control access
8004	// to this VPC. The security group that you specify must include one or more
8005	// inbound rules (for inbound Resolver endpoints) or outbound rules (for outbound
8006	// Resolver endpoints). Inbound and outbound rules must allow TCP and UDP access.
8007	// For inbound access, open port 53. For outbound access, open the port that
8008	// you're using for DNS queries on your network.
8009	//
8010	// SecurityGroupIds is a required field
8011	SecurityGroupIds []*string `type:"list" required:"true"`
8012
8013	// A list of the tag keys and values that you want to associate with the endpoint.
8014	Tags []*Tag `type:"list"`
8015}
8016
8017// String returns the string representation.
8018//
8019// API parameter values that are decorated as "sensitive" in the API will not
8020// be included in the string output. The member name will be present, but the
8021// value will be replaced with "sensitive".
8022func (s CreateResolverEndpointInput) String() string {
8023	return awsutil.Prettify(s)
8024}
8025
8026// GoString returns the string representation.
8027//
8028// API parameter values that are decorated as "sensitive" in the API will not
8029// be included in the string output. The member name will be present, but the
8030// value will be replaced with "sensitive".
8031func (s CreateResolverEndpointInput) GoString() string {
8032	return s.String()
8033}
8034
8035// Validate inspects the fields of the type to determine if they are valid.
8036func (s *CreateResolverEndpointInput) Validate() error {
8037	invalidParams := request.ErrInvalidParams{Context: "CreateResolverEndpointInput"}
8038	if s.CreatorRequestId == nil {
8039		invalidParams.Add(request.NewErrParamRequired("CreatorRequestId"))
8040	}
8041	if s.CreatorRequestId != nil && len(*s.CreatorRequestId) < 1 {
8042		invalidParams.Add(request.NewErrParamMinLen("CreatorRequestId", 1))
8043	}
8044	if s.Direction == nil {
8045		invalidParams.Add(request.NewErrParamRequired("Direction"))
8046	}
8047	if s.IpAddresses == nil {
8048		invalidParams.Add(request.NewErrParamRequired("IpAddresses"))
8049	}
8050	if s.IpAddresses != nil && len(s.IpAddresses) < 1 {
8051		invalidParams.Add(request.NewErrParamMinLen("IpAddresses", 1))
8052	}
8053	if s.SecurityGroupIds == nil {
8054		invalidParams.Add(request.NewErrParamRequired("SecurityGroupIds"))
8055	}
8056	if s.IpAddresses != nil {
8057		for i, v := range s.IpAddresses {
8058			if v == nil {
8059				continue
8060			}
8061			if err := v.Validate(); err != nil {
8062				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "IpAddresses", i), err.(request.ErrInvalidParams))
8063			}
8064		}
8065	}
8066	if s.Tags != nil {
8067		for i, v := range s.Tags {
8068			if v == nil {
8069				continue
8070			}
8071			if err := v.Validate(); err != nil {
8072				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
8073			}
8074		}
8075	}
8076
8077	if invalidParams.Len() > 0 {
8078		return invalidParams
8079	}
8080	return nil
8081}
8082
8083// SetCreatorRequestId sets the CreatorRequestId field's value.
8084func (s *CreateResolverEndpointInput) SetCreatorRequestId(v string) *CreateResolverEndpointInput {
8085	s.CreatorRequestId = &v
8086	return s
8087}
8088
8089// SetDirection sets the Direction field's value.
8090func (s *CreateResolverEndpointInput) SetDirection(v string) *CreateResolverEndpointInput {
8091	s.Direction = &v
8092	return s
8093}
8094
8095// SetIpAddresses sets the IpAddresses field's value.
8096func (s *CreateResolverEndpointInput) SetIpAddresses(v []*IpAddressRequest) *CreateResolverEndpointInput {
8097	s.IpAddresses = v
8098	return s
8099}
8100
8101// SetName sets the Name field's value.
8102func (s *CreateResolverEndpointInput) SetName(v string) *CreateResolverEndpointInput {
8103	s.Name = &v
8104	return s
8105}
8106
8107// SetSecurityGroupIds sets the SecurityGroupIds field's value.
8108func (s *CreateResolverEndpointInput) SetSecurityGroupIds(v []*string) *CreateResolverEndpointInput {
8109	s.SecurityGroupIds = v
8110	return s
8111}
8112
8113// SetTags sets the Tags field's value.
8114func (s *CreateResolverEndpointInput) SetTags(v []*Tag) *CreateResolverEndpointInput {
8115	s.Tags = v
8116	return s
8117}
8118
8119type CreateResolverEndpointOutput struct {
8120	_ struct{} `type:"structure"`
8121
8122	// Information about the CreateResolverEndpoint request, including the status
8123	// of the request.
8124	ResolverEndpoint *ResolverEndpoint `type:"structure"`
8125}
8126
8127// String returns the string representation.
8128//
8129// API parameter values that are decorated as "sensitive" in the API will not
8130// be included in the string output. The member name will be present, but the
8131// value will be replaced with "sensitive".
8132func (s CreateResolverEndpointOutput) String() string {
8133	return awsutil.Prettify(s)
8134}
8135
8136// GoString returns the string representation.
8137//
8138// API parameter values that are decorated as "sensitive" in the API will not
8139// be included in the string output. The member name will be present, but the
8140// value will be replaced with "sensitive".
8141func (s CreateResolverEndpointOutput) GoString() string {
8142	return s.String()
8143}
8144
8145// SetResolverEndpoint sets the ResolverEndpoint field's value.
8146func (s *CreateResolverEndpointOutput) SetResolverEndpoint(v *ResolverEndpoint) *CreateResolverEndpointOutput {
8147	s.ResolverEndpoint = v
8148	return s
8149}
8150
8151type CreateResolverQueryLogConfigInput struct {
8152	_ struct{} `type:"structure"`
8153
8154	// A unique string that identifies the request and that allows failed requests
8155	// to be retried without the risk of running the operation twice. CreatorRequestId
8156	// can be any unique string, for example, a date/time stamp.
8157	CreatorRequestId *string `min:"1" type:"string" idempotencyToken:"true"`
8158
8159	// The ARN of the resource that you want Resolver to send query logs. You can
8160	// send query logs to an S3 bucket, a CloudWatch Logs log group, or a Kinesis
8161	// Data Firehose delivery stream. Examples of valid values include the following:
8162	//
8163	//    * S3 bucket: arn:aws:s3:::examplebucket You can optionally append a file
8164	//    prefix to the end of the ARN. arn:aws:s3:::examplebucket/development/
8165	//
8166	//    * CloudWatch Logs log group: arn:aws:logs:us-west-1:123456789012:log-group:/mystack-testgroup-12ABC1AB12A1:*
8167	//
8168	//    * Kinesis Data Firehose delivery stream: arn:aws:kinesis:us-east-2:0123456789:stream/my_stream_name
8169	//
8170	// DestinationArn is a required field
8171	DestinationArn *string `min:"1" type:"string" required:"true"`
8172
8173	// The name that you want to give the query logging configuration.
8174	//
8175	// Name is a required field
8176	Name *string `min:"1" type:"string" required:"true"`
8177
8178	// A list of the tag keys and values that you want to associate with the query
8179	// logging configuration.
8180	Tags []*Tag `type:"list"`
8181}
8182
8183// String returns the string representation.
8184//
8185// API parameter values that are decorated as "sensitive" in the API will not
8186// be included in the string output. The member name will be present, but the
8187// value will be replaced with "sensitive".
8188func (s CreateResolverQueryLogConfigInput) String() string {
8189	return awsutil.Prettify(s)
8190}
8191
8192// GoString returns the string representation.
8193//
8194// API parameter values that are decorated as "sensitive" in the API will not
8195// be included in the string output. The member name will be present, but the
8196// value will be replaced with "sensitive".
8197func (s CreateResolverQueryLogConfigInput) GoString() string {
8198	return s.String()
8199}
8200
8201// Validate inspects the fields of the type to determine if they are valid.
8202func (s *CreateResolverQueryLogConfigInput) Validate() error {
8203	invalidParams := request.ErrInvalidParams{Context: "CreateResolverQueryLogConfigInput"}
8204	if s.CreatorRequestId != nil && len(*s.CreatorRequestId) < 1 {
8205		invalidParams.Add(request.NewErrParamMinLen("CreatorRequestId", 1))
8206	}
8207	if s.DestinationArn == nil {
8208		invalidParams.Add(request.NewErrParamRequired("DestinationArn"))
8209	}
8210	if s.DestinationArn != nil && len(*s.DestinationArn) < 1 {
8211		invalidParams.Add(request.NewErrParamMinLen("DestinationArn", 1))
8212	}
8213	if s.Name == nil {
8214		invalidParams.Add(request.NewErrParamRequired("Name"))
8215	}
8216	if s.Name != nil && len(*s.Name) < 1 {
8217		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
8218	}
8219	if s.Tags != nil {
8220		for i, v := range s.Tags {
8221			if v == nil {
8222				continue
8223			}
8224			if err := v.Validate(); err != nil {
8225				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
8226			}
8227		}
8228	}
8229
8230	if invalidParams.Len() > 0 {
8231		return invalidParams
8232	}
8233	return nil
8234}
8235
8236// SetCreatorRequestId sets the CreatorRequestId field's value.
8237func (s *CreateResolverQueryLogConfigInput) SetCreatorRequestId(v string) *CreateResolverQueryLogConfigInput {
8238	s.CreatorRequestId = &v
8239	return s
8240}
8241
8242// SetDestinationArn sets the DestinationArn field's value.
8243func (s *CreateResolverQueryLogConfigInput) SetDestinationArn(v string) *CreateResolverQueryLogConfigInput {
8244	s.DestinationArn = &v
8245	return s
8246}
8247
8248// SetName sets the Name field's value.
8249func (s *CreateResolverQueryLogConfigInput) SetName(v string) *CreateResolverQueryLogConfigInput {
8250	s.Name = &v
8251	return s
8252}
8253
8254// SetTags sets the Tags field's value.
8255func (s *CreateResolverQueryLogConfigInput) SetTags(v []*Tag) *CreateResolverQueryLogConfigInput {
8256	s.Tags = v
8257	return s
8258}
8259
8260type CreateResolverQueryLogConfigOutput struct {
8261	_ struct{} `type:"structure"`
8262
8263	// Information about the CreateResolverQueryLogConfig request, including the
8264	// status of the request.
8265	ResolverQueryLogConfig *ResolverQueryLogConfig `type:"structure"`
8266}
8267
8268// String returns the string representation.
8269//
8270// API parameter values that are decorated as "sensitive" in the API will not
8271// be included in the string output. The member name will be present, but the
8272// value will be replaced with "sensitive".
8273func (s CreateResolverQueryLogConfigOutput) String() string {
8274	return awsutil.Prettify(s)
8275}
8276
8277// GoString returns the string representation.
8278//
8279// API parameter values that are decorated as "sensitive" in the API will not
8280// be included in the string output. The member name will be present, but the
8281// value will be replaced with "sensitive".
8282func (s CreateResolverQueryLogConfigOutput) GoString() string {
8283	return s.String()
8284}
8285
8286// SetResolverQueryLogConfig sets the ResolverQueryLogConfig field's value.
8287func (s *CreateResolverQueryLogConfigOutput) SetResolverQueryLogConfig(v *ResolverQueryLogConfig) *CreateResolverQueryLogConfigOutput {
8288	s.ResolverQueryLogConfig = v
8289	return s
8290}
8291
8292type CreateResolverRuleInput struct {
8293	_ struct{} `type:"structure"`
8294
8295	// A unique string that identifies the request and that allows failed requests
8296	// to be retried without the risk of running the operation twice. CreatorRequestId
8297	// can be any unique string, for example, a date/time stamp.
8298	//
8299	// CreatorRequestId is a required field
8300	CreatorRequestId *string `min:"1" type:"string" required:"true"`
8301
8302	// DNS queries for this domain name are forwarded to the IP addresses that you
8303	// specify in TargetIps. If a query matches multiple Resolver rules (example.com
8304	// and www.example.com), outbound DNS queries are routed using the Resolver
8305	// rule that contains the most specific domain name (www.example.com).
8306	//
8307	// DomainName is a required field
8308	DomainName *string `min:"1" type:"string" required:"true"`
8309
8310	// A friendly name that lets you easily find a rule in the Resolver dashboard
8311	// in the Route 53 console.
8312	Name *string `type:"string"`
8313
8314	// The ID of the outbound Resolver endpoint that you want to use to route DNS
8315	// queries to the IP addresses that you specify in TargetIps.
8316	ResolverEndpointId *string `min:"1" type:"string"`
8317
8318	// When you want to forward DNS queries for specified domain name to resolvers
8319	// on your network, specify FORWARD.
8320	//
8321	// When you have a forwarding rule to forward DNS queries for a domain to your
8322	// network and you want Resolver to process queries for a subdomain of that
8323	// domain, specify SYSTEM.
8324	//
8325	// For example, to forward DNS queries for example.com to resolvers on your
8326	// network, you create a rule and specify FORWARD for RuleType. To then have
8327	// Resolver process queries for apex.example.com, you create a rule and specify
8328	// SYSTEM for RuleType.
8329	//
8330	// Currently, only Resolver can create rules that have a value of RECURSIVE
8331	// for RuleType.
8332	//
8333	// RuleType is a required field
8334	RuleType *string `type:"string" required:"true" enum:"RuleTypeOption"`
8335
8336	// A list of the tag keys and values that you want to associate with the endpoint.
8337	Tags []*Tag `type:"list"`
8338
8339	// The IPs that you want Resolver to forward DNS queries to. You can specify
8340	// only IPv4 addresses. Separate IP addresses with a space.
8341	//
8342	// TargetIps is available only when the value of Rule type is FORWARD.
8343	TargetIps []*TargetAddress `min:"1" type:"list"`
8344}
8345
8346// String returns the string representation.
8347//
8348// API parameter values that are decorated as "sensitive" in the API will not
8349// be included in the string output. The member name will be present, but the
8350// value will be replaced with "sensitive".
8351func (s CreateResolverRuleInput) String() string {
8352	return awsutil.Prettify(s)
8353}
8354
8355// GoString returns the string representation.
8356//
8357// API parameter values that are decorated as "sensitive" in the API will not
8358// be included in the string output. The member name will be present, but the
8359// value will be replaced with "sensitive".
8360func (s CreateResolverRuleInput) GoString() string {
8361	return s.String()
8362}
8363
8364// Validate inspects the fields of the type to determine if they are valid.
8365func (s *CreateResolverRuleInput) Validate() error {
8366	invalidParams := request.ErrInvalidParams{Context: "CreateResolverRuleInput"}
8367	if s.CreatorRequestId == nil {
8368		invalidParams.Add(request.NewErrParamRequired("CreatorRequestId"))
8369	}
8370	if s.CreatorRequestId != nil && len(*s.CreatorRequestId) < 1 {
8371		invalidParams.Add(request.NewErrParamMinLen("CreatorRequestId", 1))
8372	}
8373	if s.DomainName == nil {
8374		invalidParams.Add(request.NewErrParamRequired("DomainName"))
8375	}
8376	if s.DomainName != nil && len(*s.DomainName) < 1 {
8377		invalidParams.Add(request.NewErrParamMinLen("DomainName", 1))
8378	}
8379	if s.ResolverEndpointId != nil && len(*s.ResolverEndpointId) < 1 {
8380		invalidParams.Add(request.NewErrParamMinLen("ResolverEndpointId", 1))
8381	}
8382	if s.RuleType == nil {
8383		invalidParams.Add(request.NewErrParamRequired("RuleType"))
8384	}
8385	if s.TargetIps != nil && len(s.TargetIps) < 1 {
8386		invalidParams.Add(request.NewErrParamMinLen("TargetIps", 1))
8387	}
8388	if s.Tags != nil {
8389		for i, v := range s.Tags {
8390			if v == nil {
8391				continue
8392			}
8393			if err := v.Validate(); err != nil {
8394				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
8395			}
8396		}
8397	}
8398	if s.TargetIps != nil {
8399		for i, v := range s.TargetIps {
8400			if v == nil {
8401				continue
8402			}
8403			if err := v.Validate(); err != nil {
8404				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TargetIps", i), err.(request.ErrInvalidParams))
8405			}
8406		}
8407	}
8408
8409	if invalidParams.Len() > 0 {
8410		return invalidParams
8411	}
8412	return nil
8413}
8414
8415// SetCreatorRequestId sets the CreatorRequestId field's value.
8416func (s *CreateResolverRuleInput) SetCreatorRequestId(v string) *CreateResolverRuleInput {
8417	s.CreatorRequestId = &v
8418	return s
8419}
8420
8421// SetDomainName sets the DomainName field's value.
8422func (s *CreateResolverRuleInput) SetDomainName(v string) *CreateResolverRuleInput {
8423	s.DomainName = &v
8424	return s
8425}
8426
8427// SetName sets the Name field's value.
8428func (s *CreateResolverRuleInput) SetName(v string) *CreateResolverRuleInput {
8429	s.Name = &v
8430	return s
8431}
8432
8433// SetResolverEndpointId sets the ResolverEndpointId field's value.
8434func (s *CreateResolverRuleInput) SetResolverEndpointId(v string) *CreateResolverRuleInput {
8435	s.ResolverEndpointId = &v
8436	return s
8437}
8438
8439// SetRuleType sets the RuleType field's value.
8440func (s *CreateResolverRuleInput) SetRuleType(v string) *CreateResolverRuleInput {
8441	s.RuleType = &v
8442	return s
8443}
8444
8445// SetTags sets the Tags field's value.
8446func (s *CreateResolverRuleInput) SetTags(v []*Tag) *CreateResolverRuleInput {
8447	s.Tags = v
8448	return s
8449}
8450
8451// SetTargetIps sets the TargetIps field's value.
8452func (s *CreateResolverRuleInput) SetTargetIps(v []*TargetAddress) *CreateResolverRuleInput {
8453	s.TargetIps = v
8454	return s
8455}
8456
8457type CreateResolverRuleOutput struct {
8458	_ struct{} `type:"structure"`
8459
8460	// Information about the CreateResolverRule request, including the status of
8461	// the request.
8462	ResolverRule *ResolverRule `type:"structure"`
8463}
8464
8465// String returns the string representation.
8466//
8467// API parameter values that are decorated as "sensitive" in the API will not
8468// be included in the string output. The member name will be present, but the
8469// value will be replaced with "sensitive".
8470func (s CreateResolverRuleOutput) String() string {
8471	return awsutil.Prettify(s)
8472}
8473
8474// GoString returns the string representation.
8475//
8476// API parameter values that are decorated as "sensitive" in the API will not
8477// be included in the string output. The member name will be present, but the
8478// value will be replaced with "sensitive".
8479func (s CreateResolverRuleOutput) GoString() string {
8480	return s.String()
8481}
8482
8483// SetResolverRule sets the ResolverRule field's value.
8484func (s *CreateResolverRuleOutput) SetResolverRule(v *ResolverRule) *CreateResolverRuleOutput {
8485	s.ResolverRule = v
8486	return s
8487}
8488
8489type DeleteFirewallDomainListInput struct {
8490	_ struct{} `type:"structure"`
8491
8492	// The ID of the domain list that you want to delete.
8493	//
8494	// FirewallDomainListId is a required field
8495	FirewallDomainListId *string `min:"1" type:"string" required:"true"`
8496}
8497
8498// String returns the string representation.
8499//
8500// API parameter values that are decorated as "sensitive" in the API will not
8501// be included in the string output. The member name will be present, but the
8502// value will be replaced with "sensitive".
8503func (s DeleteFirewallDomainListInput) String() string {
8504	return awsutil.Prettify(s)
8505}
8506
8507// GoString returns the string representation.
8508//
8509// API parameter values that are decorated as "sensitive" in the API will not
8510// be included in the string output. The member name will be present, but the
8511// value will be replaced with "sensitive".
8512func (s DeleteFirewallDomainListInput) GoString() string {
8513	return s.String()
8514}
8515
8516// Validate inspects the fields of the type to determine if they are valid.
8517func (s *DeleteFirewallDomainListInput) Validate() error {
8518	invalidParams := request.ErrInvalidParams{Context: "DeleteFirewallDomainListInput"}
8519	if s.FirewallDomainListId == nil {
8520		invalidParams.Add(request.NewErrParamRequired("FirewallDomainListId"))
8521	}
8522	if s.FirewallDomainListId != nil && len(*s.FirewallDomainListId) < 1 {
8523		invalidParams.Add(request.NewErrParamMinLen("FirewallDomainListId", 1))
8524	}
8525
8526	if invalidParams.Len() > 0 {
8527		return invalidParams
8528	}
8529	return nil
8530}
8531
8532// SetFirewallDomainListId sets the FirewallDomainListId field's value.
8533func (s *DeleteFirewallDomainListInput) SetFirewallDomainListId(v string) *DeleteFirewallDomainListInput {
8534	s.FirewallDomainListId = &v
8535	return s
8536}
8537
8538type DeleteFirewallDomainListOutput struct {
8539	_ struct{} `type:"structure"`
8540
8541	// The domain list that you just deleted.
8542	FirewallDomainList *FirewallDomainList `type:"structure"`
8543}
8544
8545// String returns the string representation.
8546//
8547// API parameter values that are decorated as "sensitive" in the API will not
8548// be included in the string output. The member name will be present, but the
8549// value will be replaced with "sensitive".
8550func (s DeleteFirewallDomainListOutput) String() string {
8551	return awsutil.Prettify(s)
8552}
8553
8554// GoString returns the string representation.
8555//
8556// API parameter values that are decorated as "sensitive" in the API will not
8557// be included in the string output. The member name will be present, but the
8558// value will be replaced with "sensitive".
8559func (s DeleteFirewallDomainListOutput) GoString() string {
8560	return s.String()
8561}
8562
8563// SetFirewallDomainList sets the FirewallDomainList field's value.
8564func (s *DeleteFirewallDomainListOutput) SetFirewallDomainList(v *FirewallDomainList) *DeleteFirewallDomainListOutput {
8565	s.FirewallDomainList = v
8566	return s
8567}
8568
8569type DeleteFirewallRuleGroupInput struct {
8570	_ struct{} `type:"structure"`
8571
8572	// The unique identifier of the firewall rule group that you want to delete.
8573	//
8574	// FirewallRuleGroupId is a required field
8575	FirewallRuleGroupId *string `min:"1" type:"string" required:"true"`
8576}
8577
8578// String returns the string representation.
8579//
8580// API parameter values that are decorated as "sensitive" in the API will not
8581// be included in the string output. The member name will be present, but the
8582// value will be replaced with "sensitive".
8583func (s DeleteFirewallRuleGroupInput) String() string {
8584	return awsutil.Prettify(s)
8585}
8586
8587// GoString returns the string representation.
8588//
8589// API parameter values that are decorated as "sensitive" in the API will not
8590// be included in the string output. The member name will be present, but the
8591// value will be replaced with "sensitive".
8592func (s DeleteFirewallRuleGroupInput) GoString() string {
8593	return s.String()
8594}
8595
8596// Validate inspects the fields of the type to determine if they are valid.
8597func (s *DeleteFirewallRuleGroupInput) Validate() error {
8598	invalidParams := request.ErrInvalidParams{Context: "DeleteFirewallRuleGroupInput"}
8599	if s.FirewallRuleGroupId == nil {
8600		invalidParams.Add(request.NewErrParamRequired("FirewallRuleGroupId"))
8601	}
8602	if s.FirewallRuleGroupId != nil && len(*s.FirewallRuleGroupId) < 1 {
8603		invalidParams.Add(request.NewErrParamMinLen("FirewallRuleGroupId", 1))
8604	}
8605
8606	if invalidParams.Len() > 0 {
8607		return invalidParams
8608	}
8609	return nil
8610}
8611
8612// SetFirewallRuleGroupId sets the FirewallRuleGroupId field's value.
8613func (s *DeleteFirewallRuleGroupInput) SetFirewallRuleGroupId(v string) *DeleteFirewallRuleGroupInput {
8614	s.FirewallRuleGroupId = &v
8615	return s
8616}
8617
8618type DeleteFirewallRuleGroupOutput struct {
8619	_ struct{} `type:"structure"`
8620
8621	// A collection of rules used to filter DNS network traffic.
8622	FirewallRuleGroup *FirewallRuleGroup `type:"structure"`
8623}
8624
8625// String returns the string representation.
8626//
8627// API parameter values that are decorated as "sensitive" in the API will not
8628// be included in the string output. The member name will be present, but the
8629// value will be replaced with "sensitive".
8630func (s DeleteFirewallRuleGroupOutput) String() string {
8631	return awsutil.Prettify(s)
8632}
8633
8634// GoString returns the string representation.
8635//
8636// API parameter values that are decorated as "sensitive" in the API will not
8637// be included in the string output. The member name will be present, but the
8638// value will be replaced with "sensitive".
8639func (s DeleteFirewallRuleGroupOutput) GoString() string {
8640	return s.String()
8641}
8642
8643// SetFirewallRuleGroup sets the FirewallRuleGroup field's value.
8644func (s *DeleteFirewallRuleGroupOutput) SetFirewallRuleGroup(v *FirewallRuleGroup) *DeleteFirewallRuleGroupOutput {
8645	s.FirewallRuleGroup = v
8646	return s
8647}
8648
8649type DeleteFirewallRuleInput struct {
8650	_ struct{} `type:"structure"`
8651
8652	// The ID of the domain list that's used in the rule.
8653	//
8654	// FirewallDomainListId is a required field
8655	FirewallDomainListId *string `min:"1" type:"string" required:"true"`
8656
8657	// The unique identifier of the firewall rule group that you want to delete
8658	// the rule from.
8659	//
8660	// FirewallRuleGroupId is a required field
8661	FirewallRuleGroupId *string `min:"1" type:"string" required:"true"`
8662}
8663
8664// String returns the string representation.
8665//
8666// API parameter values that are decorated as "sensitive" in the API will not
8667// be included in the string output. The member name will be present, but the
8668// value will be replaced with "sensitive".
8669func (s DeleteFirewallRuleInput) String() string {
8670	return awsutil.Prettify(s)
8671}
8672
8673// GoString returns the string representation.
8674//
8675// API parameter values that are decorated as "sensitive" in the API will not
8676// be included in the string output. The member name will be present, but the
8677// value will be replaced with "sensitive".
8678func (s DeleteFirewallRuleInput) GoString() string {
8679	return s.String()
8680}
8681
8682// Validate inspects the fields of the type to determine if they are valid.
8683func (s *DeleteFirewallRuleInput) Validate() error {
8684	invalidParams := request.ErrInvalidParams{Context: "DeleteFirewallRuleInput"}
8685	if s.FirewallDomainListId == nil {
8686		invalidParams.Add(request.NewErrParamRequired("FirewallDomainListId"))
8687	}
8688	if s.FirewallDomainListId != nil && len(*s.FirewallDomainListId) < 1 {
8689		invalidParams.Add(request.NewErrParamMinLen("FirewallDomainListId", 1))
8690	}
8691	if s.FirewallRuleGroupId == nil {
8692		invalidParams.Add(request.NewErrParamRequired("FirewallRuleGroupId"))
8693	}
8694	if s.FirewallRuleGroupId != nil && len(*s.FirewallRuleGroupId) < 1 {
8695		invalidParams.Add(request.NewErrParamMinLen("FirewallRuleGroupId", 1))
8696	}
8697
8698	if invalidParams.Len() > 0 {
8699		return invalidParams
8700	}
8701	return nil
8702}
8703
8704// SetFirewallDomainListId sets the FirewallDomainListId field's value.
8705func (s *DeleteFirewallRuleInput) SetFirewallDomainListId(v string) *DeleteFirewallRuleInput {
8706	s.FirewallDomainListId = &v
8707	return s
8708}
8709
8710// SetFirewallRuleGroupId sets the FirewallRuleGroupId field's value.
8711func (s *DeleteFirewallRuleInput) SetFirewallRuleGroupId(v string) *DeleteFirewallRuleInput {
8712	s.FirewallRuleGroupId = &v
8713	return s
8714}
8715
8716type DeleteFirewallRuleOutput struct {
8717	_ struct{} `type:"structure"`
8718
8719	// The specification for the firewall rule that you just deleted.
8720	FirewallRule *FirewallRule `type:"structure"`
8721}
8722
8723// String returns the string representation.
8724//
8725// API parameter values that are decorated as "sensitive" in the API will not
8726// be included in the string output. The member name will be present, but the
8727// value will be replaced with "sensitive".
8728func (s DeleteFirewallRuleOutput) String() string {
8729	return awsutil.Prettify(s)
8730}
8731
8732// GoString returns the string representation.
8733//
8734// API parameter values that are decorated as "sensitive" in the API will not
8735// be included in the string output. The member name will be present, but the
8736// value will be replaced with "sensitive".
8737func (s DeleteFirewallRuleOutput) GoString() string {
8738	return s.String()
8739}
8740
8741// SetFirewallRule sets the FirewallRule field's value.
8742func (s *DeleteFirewallRuleOutput) SetFirewallRule(v *FirewallRule) *DeleteFirewallRuleOutput {
8743	s.FirewallRule = v
8744	return s
8745}
8746
8747type DeleteResolverEndpointInput struct {
8748	_ struct{} `type:"structure"`
8749
8750	// The ID of the Resolver endpoint that you want to delete.
8751	//
8752	// ResolverEndpointId is a required field
8753	ResolverEndpointId *string `min:"1" type:"string" required:"true"`
8754}
8755
8756// String returns the string representation.
8757//
8758// API parameter values that are decorated as "sensitive" in the API will not
8759// be included in the string output. The member name will be present, but the
8760// value will be replaced with "sensitive".
8761func (s DeleteResolverEndpointInput) String() string {
8762	return awsutil.Prettify(s)
8763}
8764
8765// GoString returns the string representation.
8766//
8767// API parameter values that are decorated as "sensitive" in the API will not
8768// be included in the string output. The member name will be present, but the
8769// value will be replaced with "sensitive".
8770func (s DeleteResolverEndpointInput) GoString() string {
8771	return s.String()
8772}
8773
8774// Validate inspects the fields of the type to determine if they are valid.
8775func (s *DeleteResolverEndpointInput) Validate() error {
8776	invalidParams := request.ErrInvalidParams{Context: "DeleteResolverEndpointInput"}
8777	if s.ResolverEndpointId == nil {
8778		invalidParams.Add(request.NewErrParamRequired("ResolverEndpointId"))
8779	}
8780	if s.ResolverEndpointId != nil && len(*s.ResolverEndpointId) < 1 {
8781		invalidParams.Add(request.NewErrParamMinLen("ResolverEndpointId", 1))
8782	}
8783
8784	if invalidParams.Len() > 0 {
8785		return invalidParams
8786	}
8787	return nil
8788}
8789
8790// SetResolverEndpointId sets the ResolverEndpointId field's value.
8791func (s *DeleteResolverEndpointInput) SetResolverEndpointId(v string) *DeleteResolverEndpointInput {
8792	s.ResolverEndpointId = &v
8793	return s
8794}
8795
8796type DeleteResolverEndpointOutput struct {
8797	_ struct{} `type:"structure"`
8798
8799	// Information about the DeleteResolverEndpoint request, including the status
8800	// of the request.
8801	ResolverEndpoint *ResolverEndpoint `type:"structure"`
8802}
8803
8804// String returns the string representation.
8805//
8806// API parameter values that are decorated as "sensitive" in the API will not
8807// be included in the string output. The member name will be present, but the
8808// value will be replaced with "sensitive".
8809func (s DeleteResolverEndpointOutput) String() string {
8810	return awsutil.Prettify(s)
8811}
8812
8813// GoString returns the string representation.
8814//
8815// API parameter values that are decorated as "sensitive" in the API will not
8816// be included in the string output. The member name will be present, but the
8817// value will be replaced with "sensitive".
8818func (s DeleteResolverEndpointOutput) GoString() string {
8819	return s.String()
8820}
8821
8822// SetResolverEndpoint sets the ResolverEndpoint field's value.
8823func (s *DeleteResolverEndpointOutput) SetResolverEndpoint(v *ResolverEndpoint) *DeleteResolverEndpointOutput {
8824	s.ResolverEndpoint = v
8825	return s
8826}
8827
8828type DeleteResolverQueryLogConfigInput struct {
8829	_ struct{} `type:"structure"`
8830
8831	// The ID of the query logging configuration that you want to delete.
8832	//
8833	// ResolverQueryLogConfigId is a required field
8834	ResolverQueryLogConfigId *string `min:"1" type:"string" required:"true"`
8835}
8836
8837// String returns the string representation.
8838//
8839// API parameter values that are decorated as "sensitive" in the API will not
8840// be included in the string output. The member name will be present, but the
8841// value will be replaced with "sensitive".
8842func (s DeleteResolverQueryLogConfigInput) String() string {
8843	return awsutil.Prettify(s)
8844}
8845
8846// GoString returns the string representation.
8847//
8848// API parameter values that are decorated as "sensitive" in the API will not
8849// be included in the string output. The member name will be present, but the
8850// value will be replaced with "sensitive".
8851func (s DeleteResolverQueryLogConfigInput) GoString() string {
8852	return s.String()
8853}
8854
8855// Validate inspects the fields of the type to determine if they are valid.
8856func (s *DeleteResolverQueryLogConfigInput) Validate() error {
8857	invalidParams := request.ErrInvalidParams{Context: "DeleteResolverQueryLogConfigInput"}
8858	if s.ResolverQueryLogConfigId == nil {
8859		invalidParams.Add(request.NewErrParamRequired("ResolverQueryLogConfigId"))
8860	}
8861	if s.ResolverQueryLogConfigId != nil && len(*s.ResolverQueryLogConfigId) < 1 {
8862		invalidParams.Add(request.NewErrParamMinLen("ResolverQueryLogConfigId", 1))
8863	}
8864
8865	if invalidParams.Len() > 0 {
8866		return invalidParams
8867	}
8868	return nil
8869}
8870
8871// SetResolverQueryLogConfigId sets the ResolverQueryLogConfigId field's value.
8872func (s *DeleteResolverQueryLogConfigInput) SetResolverQueryLogConfigId(v string) *DeleteResolverQueryLogConfigInput {
8873	s.ResolverQueryLogConfigId = &v
8874	return s
8875}
8876
8877type DeleteResolverQueryLogConfigOutput struct {
8878	_ struct{} `type:"structure"`
8879
8880	// Information about the query logging configuration that you deleted, including
8881	// the status of the request.
8882	ResolverQueryLogConfig *ResolverQueryLogConfig `type:"structure"`
8883}
8884
8885// String returns the string representation.
8886//
8887// API parameter values that are decorated as "sensitive" in the API will not
8888// be included in the string output. The member name will be present, but the
8889// value will be replaced with "sensitive".
8890func (s DeleteResolverQueryLogConfigOutput) String() string {
8891	return awsutil.Prettify(s)
8892}
8893
8894// GoString returns the string representation.
8895//
8896// API parameter values that are decorated as "sensitive" in the API will not
8897// be included in the string output. The member name will be present, but the
8898// value will be replaced with "sensitive".
8899func (s DeleteResolverQueryLogConfigOutput) GoString() string {
8900	return s.String()
8901}
8902
8903// SetResolverQueryLogConfig sets the ResolverQueryLogConfig field's value.
8904func (s *DeleteResolverQueryLogConfigOutput) SetResolverQueryLogConfig(v *ResolverQueryLogConfig) *DeleteResolverQueryLogConfigOutput {
8905	s.ResolverQueryLogConfig = v
8906	return s
8907}
8908
8909type DeleteResolverRuleInput struct {
8910	_ struct{} `type:"structure"`
8911
8912	// The ID of the Resolver rule that you want to delete.
8913	//
8914	// ResolverRuleId is a required field
8915	ResolverRuleId *string `min:"1" type:"string" required:"true"`
8916}
8917
8918// String returns the string representation.
8919//
8920// API parameter values that are decorated as "sensitive" in the API will not
8921// be included in the string output. The member name will be present, but the
8922// value will be replaced with "sensitive".
8923func (s DeleteResolverRuleInput) String() string {
8924	return awsutil.Prettify(s)
8925}
8926
8927// GoString returns the string representation.
8928//
8929// API parameter values that are decorated as "sensitive" in the API will not
8930// be included in the string output. The member name will be present, but the
8931// value will be replaced with "sensitive".
8932func (s DeleteResolverRuleInput) GoString() string {
8933	return s.String()
8934}
8935
8936// Validate inspects the fields of the type to determine if they are valid.
8937func (s *DeleteResolverRuleInput) Validate() error {
8938	invalidParams := request.ErrInvalidParams{Context: "DeleteResolverRuleInput"}
8939	if s.ResolverRuleId == nil {
8940		invalidParams.Add(request.NewErrParamRequired("ResolverRuleId"))
8941	}
8942	if s.ResolverRuleId != nil && len(*s.ResolverRuleId) < 1 {
8943		invalidParams.Add(request.NewErrParamMinLen("ResolverRuleId", 1))
8944	}
8945
8946	if invalidParams.Len() > 0 {
8947		return invalidParams
8948	}
8949	return nil
8950}
8951
8952// SetResolverRuleId sets the ResolverRuleId field's value.
8953func (s *DeleteResolverRuleInput) SetResolverRuleId(v string) *DeleteResolverRuleInput {
8954	s.ResolverRuleId = &v
8955	return s
8956}
8957
8958type DeleteResolverRuleOutput struct {
8959	_ struct{} `type:"structure"`
8960
8961	// Information about the DeleteResolverRule request, including the status of
8962	// the request.
8963	ResolverRule *ResolverRule `type:"structure"`
8964}
8965
8966// String returns the string representation.
8967//
8968// API parameter values that are decorated as "sensitive" in the API will not
8969// be included in the string output. The member name will be present, but the
8970// value will be replaced with "sensitive".
8971func (s DeleteResolverRuleOutput) String() string {
8972	return awsutil.Prettify(s)
8973}
8974
8975// GoString returns the string representation.
8976//
8977// API parameter values that are decorated as "sensitive" in the API will not
8978// be included in the string output. The member name will be present, but the
8979// value will be replaced with "sensitive".
8980func (s DeleteResolverRuleOutput) GoString() string {
8981	return s.String()
8982}
8983
8984// SetResolverRule sets the ResolverRule field's value.
8985func (s *DeleteResolverRuleOutput) SetResolverRule(v *ResolverRule) *DeleteResolverRuleOutput {
8986	s.ResolverRule = v
8987	return s
8988}
8989
8990type DisassociateFirewallRuleGroupInput struct {
8991	_ struct{} `type:"structure"`
8992
8993	// The identifier of the FirewallRuleGroupAssociation.
8994	//
8995	// FirewallRuleGroupAssociationId is a required field
8996	FirewallRuleGroupAssociationId *string `min:"1" type:"string" required:"true"`
8997}
8998
8999// String returns the string representation.
9000//
9001// API parameter values that are decorated as "sensitive" in the API will not
9002// be included in the string output. The member name will be present, but the
9003// value will be replaced with "sensitive".
9004func (s DisassociateFirewallRuleGroupInput) String() string {
9005	return awsutil.Prettify(s)
9006}
9007
9008// GoString returns the string representation.
9009//
9010// API parameter values that are decorated as "sensitive" in the API will not
9011// be included in the string output. The member name will be present, but the
9012// value will be replaced with "sensitive".
9013func (s DisassociateFirewallRuleGroupInput) GoString() string {
9014	return s.String()
9015}
9016
9017// Validate inspects the fields of the type to determine if they are valid.
9018func (s *DisassociateFirewallRuleGroupInput) Validate() error {
9019	invalidParams := request.ErrInvalidParams{Context: "DisassociateFirewallRuleGroupInput"}
9020	if s.FirewallRuleGroupAssociationId == nil {
9021		invalidParams.Add(request.NewErrParamRequired("FirewallRuleGroupAssociationId"))
9022	}
9023	if s.FirewallRuleGroupAssociationId != nil && len(*s.FirewallRuleGroupAssociationId) < 1 {
9024		invalidParams.Add(request.NewErrParamMinLen("FirewallRuleGroupAssociationId", 1))
9025	}
9026
9027	if invalidParams.Len() > 0 {
9028		return invalidParams
9029	}
9030	return nil
9031}
9032
9033// SetFirewallRuleGroupAssociationId sets the FirewallRuleGroupAssociationId field's value.
9034func (s *DisassociateFirewallRuleGroupInput) SetFirewallRuleGroupAssociationId(v string) *DisassociateFirewallRuleGroupInput {
9035	s.FirewallRuleGroupAssociationId = &v
9036	return s
9037}
9038
9039type DisassociateFirewallRuleGroupOutput struct {
9040	_ struct{} `type:"structure"`
9041
9042	// The firewall rule group association that you just removed.
9043	FirewallRuleGroupAssociation *FirewallRuleGroupAssociation `type:"structure"`
9044}
9045
9046// String returns the string representation.
9047//
9048// API parameter values that are decorated as "sensitive" in the API will not
9049// be included in the string output. The member name will be present, but the
9050// value will be replaced with "sensitive".
9051func (s DisassociateFirewallRuleGroupOutput) String() string {
9052	return awsutil.Prettify(s)
9053}
9054
9055// GoString returns the string representation.
9056//
9057// API parameter values that are decorated as "sensitive" in the API will not
9058// be included in the string output. The member name will be present, but the
9059// value will be replaced with "sensitive".
9060func (s DisassociateFirewallRuleGroupOutput) GoString() string {
9061	return s.String()
9062}
9063
9064// SetFirewallRuleGroupAssociation sets the FirewallRuleGroupAssociation field's value.
9065func (s *DisassociateFirewallRuleGroupOutput) SetFirewallRuleGroupAssociation(v *FirewallRuleGroupAssociation) *DisassociateFirewallRuleGroupOutput {
9066	s.FirewallRuleGroupAssociation = v
9067	return s
9068}
9069
9070type DisassociateResolverEndpointIpAddressInput struct {
9071	_ struct{} `type:"structure"`
9072
9073	// The IPv4 address that you want to remove from a Resolver endpoint.
9074	//
9075	// IpAddress is a required field
9076	IpAddress *IpAddressUpdate `type:"structure" required:"true"`
9077
9078	// The ID of the Resolver endpoint that you want to disassociate an IP address
9079	// from.
9080	//
9081	// ResolverEndpointId is a required field
9082	ResolverEndpointId *string `min:"1" type:"string" required:"true"`
9083}
9084
9085// String returns the string representation.
9086//
9087// API parameter values that are decorated as "sensitive" in the API will not
9088// be included in the string output. The member name will be present, but the
9089// value will be replaced with "sensitive".
9090func (s DisassociateResolverEndpointIpAddressInput) String() string {
9091	return awsutil.Prettify(s)
9092}
9093
9094// GoString returns the string representation.
9095//
9096// API parameter values that are decorated as "sensitive" in the API will not
9097// be included in the string output. The member name will be present, but the
9098// value will be replaced with "sensitive".
9099func (s DisassociateResolverEndpointIpAddressInput) GoString() string {
9100	return s.String()
9101}
9102
9103// Validate inspects the fields of the type to determine if they are valid.
9104func (s *DisassociateResolverEndpointIpAddressInput) Validate() error {
9105	invalidParams := request.ErrInvalidParams{Context: "DisassociateResolverEndpointIpAddressInput"}
9106	if s.IpAddress == nil {
9107		invalidParams.Add(request.NewErrParamRequired("IpAddress"))
9108	}
9109	if s.ResolverEndpointId == nil {
9110		invalidParams.Add(request.NewErrParamRequired("ResolverEndpointId"))
9111	}
9112	if s.ResolverEndpointId != nil && len(*s.ResolverEndpointId) < 1 {
9113		invalidParams.Add(request.NewErrParamMinLen("ResolverEndpointId", 1))
9114	}
9115	if s.IpAddress != nil {
9116		if err := s.IpAddress.Validate(); err != nil {
9117			invalidParams.AddNested("IpAddress", err.(request.ErrInvalidParams))
9118		}
9119	}
9120
9121	if invalidParams.Len() > 0 {
9122		return invalidParams
9123	}
9124	return nil
9125}
9126
9127// SetIpAddress sets the IpAddress field's value.
9128func (s *DisassociateResolverEndpointIpAddressInput) SetIpAddress(v *IpAddressUpdate) *DisassociateResolverEndpointIpAddressInput {
9129	s.IpAddress = v
9130	return s
9131}
9132
9133// SetResolverEndpointId sets the ResolverEndpointId field's value.
9134func (s *DisassociateResolverEndpointIpAddressInput) SetResolverEndpointId(v string) *DisassociateResolverEndpointIpAddressInput {
9135	s.ResolverEndpointId = &v
9136	return s
9137}
9138
9139type DisassociateResolverEndpointIpAddressOutput struct {
9140	_ struct{} `type:"structure"`
9141
9142	// The response to an DisassociateResolverEndpointIpAddress request.
9143	ResolverEndpoint *ResolverEndpoint `type:"structure"`
9144}
9145
9146// String returns the string representation.
9147//
9148// API parameter values that are decorated as "sensitive" in the API will not
9149// be included in the string output. The member name will be present, but the
9150// value will be replaced with "sensitive".
9151func (s DisassociateResolverEndpointIpAddressOutput) String() string {
9152	return awsutil.Prettify(s)
9153}
9154
9155// GoString returns the string representation.
9156//
9157// API parameter values that are decorated as "sensitive" in the API will not
9158// be included in the string output. The member name will be present, but the
9159// value will be replaced with "sensitive".
9160func (s DisassociateResolverEndpointIpAddressOutput) GoString() string {
9161	return s.String()
9162}
9163
9164// SetResolverEndpoint sets the ResolverEndpoint field's value.
9165func (s *DisassociateResolverEndpointIpAddressOutput) SetResolverEndpoint(v *ResolverEndpoint) *DisassociateResolverEndpointIpAddressOutput {
9166	s.ResolverEndpoint = v
9167	return s
9168}
9169
9170type DisassociateResolverQueryLogConfigInput struct {
9171	_ struct{} `type:"structure"`
9172
9173	// The ID of the query logging configuration that you want to disassociate a
9174	// specified VPC from.
9175	//
9176	// ResolverQueryLogConfigId is a required field
9177	ResolverQueryLogConfigId *string `min:"1" type:"string" required:"true"`
9178
9179	// The ID of the Amazon VPC that you want to disassociate from a specified query
9180	// logging configuration.
9181	//
9182	// ResourceId is a required field
9183	ResourceId *string `min:"1" type:"string" required:"true"`
9184}
9185
9186// String returns the string representation.
9187//
9188// API parameter values that are decorated as "sensitive" in the API will not
9189// be included in the string output. The member name will be present, but the
9190// value will be replaced with "sensitive".
9191func (s DisassociateResolverQueryLogConfigInput) String() string {
9192	return awsutil.Prettify(s)
9193}
9194
9195// GoString returns the string representation.
9196//
9197// API parameter values that are decorated as "sensitive" in the API will not
9198// be included in the string output. The member name will be present, but the
9199// value will be replaced with "sensitive".
9200func (s DisassociateResolverQueryLogConfigInput) GoString() string {
9201	return s.String()
9202}
9203
9204// Validate inspects the fields of the type to determine if they are valid.
9205func (s *DisassociateResolverQueryLogConfigInput) Validate() error {
9206	invalidParams := request.ErrInvalidParams{Context: "DisassociateResolverQueryLogConfigInput"}
9207	if s.ResolverQueryLogConfigId == nil {
9208		invalidParams.Add(request.NewErrParamRequired("ResolverQueryLogConfigId"))
9209	}
9210	if s.ResolverQueryLogConfigId != nil && len(*s.ResolverQueryLogConfigId) < 1 {
9211		invalidParams.Add(request.NewErrParamMinLen("ResolverQueryLogConfigId", 1))
9212	}
9213	if s.ResourceId == nil {
9214		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
9215	}
9216	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
9217		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
9218	}
9219
9220	if invalidParams.Len() > 0 {
9221		return invalidParams
9222	}
9223	return nil
9224}
9225
9226// SetResolverQueryLogConfigId sets the ResolverQueryLogConfigId field's value.
9227func (s *DisassociateResolverQueryLogConfigInput) SetResolverQueryLogConfigId(v string) *DisassociateResolverQueryLogConfigInput {
9228	s.ResolverQueryLogConfigId = &v
9229	return s
9230}
9231
9232// SetResourceId sets the ResourceId field's value.
9233func (s *DisassociateResolverQueryLogConfigInput) SetResourceId(v string) *DisassociateResolverQueryLogConfigInput {
9234	s.ResourceId = &v
9235	return s
9236}
9237
9238type DisassociateResolverQueryLogConfigOutput struct {
9239	_ struct{} `type:"structure"`
9240
9241	// A complex type that contains settings for the association that you deleted
9242	// between an Amazon VPC and a query logging configuration.
9243	ResolverQueryLogConfigAssociation *ResolverQueryLogConfigAssociation `type:"structure"`
9244}
9245
9246// String returns the string representation.
9247//
9248// API parameter values that are decorated as "sensitive" in the API will not
9249// be included in the string output. The member name will be present, but the
9250// value will be replaced with "sensitive".
9251func (s DisassociateResolverQueryLogConfigOutput) String() string {
9252	return awsutil.Prettify(s)
9253}
9254
9255// GoString returns the string representation.
9256//
9257// API parameter values that are decorated as "sensitive" in the API will not
9258// be included in the string output. The member name will be present, but the
9259// value will be replaced with "sensitive".
9260func (s DisassociateResolverQueryLogConfigOutput) GoString() string {
9261	return s.String()
9262}
9263
9264// SetResolverQueryLogConfigAssociation sets the ResolverQueryLogConfigAssociation field's value.
9265func (s *DisassociateResolverQueryLogConfigOutput) SetResolverQueryLogConfigAssociation(v *ResolverQueryLogConfigAssociation) *DisassociateResolverQueryLogConfigOutput {
9266	s.ResolverQueryLogConfigAssociation = v
9267	return s
9268}
9269
9270type DisassociateResolverRuleInput struct {
9271	_ struct{} `type:"structure"`
9272
9273	// The ID of the Resolver rule that you want to disassociate from the specified
9274	// VPC.
9275	//
9276	// ResolverRuleId is a required field
9277	ResolverRuleId *string `min:"1" type:"string" required:"true"`
9278
9279	// The ID of the VPC that you want to disassociate the Resolver rule from.
9280	//
9281	// VPCId is a required field
9282	VPCId *string `min:"1" type:"string" required:"true"`
9283}
9284
9285// String returns the string representation.
9286//
9287// API parameter values that are decorated as "sensitive" in the API will not
9288// be included in the string output. The member name will be present, but the
9289// value will be replaced with "sensitive".
9290func (s DisassociateResolverRuleInput) String() string {
9291	return awsutil.Prettify(s)
9292}
9293
9294// GoString returns the string representation.
9295//
9296// API parameter values that are decorated as "sensitive" in the API will not
9297// be included in the string output. The member name will be present, but the
9298// value will be replaced with "sensitive".
9299func (s DisassociateResolverRuleInput) GoString() string {
9300	return s.String()
9301}
9302
9303// Validate inspects the fields of the type to determine if they are valid.
9304func (s *DisassociateResolverRuleInput) Validate() error {
9305	invalidParams := request.ErrInvalidParams{Context: "DisassociateResolverRuleInput"}
9306	if s.ResolverRuleId == nil {
9307		invalidParams.Add(request.NewErrParamRequired("ResolverRuleId"))
9308	}
9309	if s.ResolverRuleId != nil && len(*s.ResolverRuleId) < 1 {
9310		invalidParams.Add(request.NewErrParamMinLen("ResolverRuleId", 1))
9311	}
9312	if s.VPCId == nil {
9313		invalidParams.Add(request.NewErrParamRequired("VPCId"))
9314	}
9315	if s.VPCId != nil && len(*s.VPCId) < 1 {
9316		invalidParams.Add(request.NewErrParamMinLen("VPCId", 1))
9317	}
9318
9319	if invalidParams.Len() > 0 {
9320		return invalidParams
9321	}
9322	return nil
9323}
9324
9325// SetResolverRuleId sets the ResolverRuleId field's value.
9326func (s *DisassociateResolverRuleInput) SetResolverRuleId(v string) *DisassociateResolverRuleInput {
9327	s.ResolverRuleId = &v
9328	return s
9329}
9330
9331// SetVPCId sets the VPCId field's value.
9332func (s *DisassociateResolverRuleInput) SetVPCId(v string) *DisassociateResolverRuleInput {
9333	s.VPCId = &v
9334	return s
9335}
9336
9337type DisassociateResolverRuleOutput struct {
9338	_ struct{} `type:"structure"`
9339
9340	// Information about the DisassociateResolverRule request, including the status
9341	// of the request.
9342	ResolverRuleAssociation *ResolverRuleAssociation `type:"structure"`
9343}
9344
9345// String returns the string representation.
9346//
9347// API parameter values that are decorated as "sensitive" in the API will not
9348// be included in the string output. The member name will be present, but the
9349// value will be replaced with "sensitive".
9350func (s DisassociateResolverRuleOutput) String() string {
9351	return awsutil.Prettify(s)
9352}
9353
9354// GoString returns the string representation.
9355//
9356// API parameter values that are decorated as "sensitive" in the API will not
9357// be included in the string output. The member name will be present, but the
9358// value will be replaced with "sensitive".
9359func (s DisassociateResolverRuleOutput) GoString() string {
9360	return s.String()
9361}
9362
9363// SetResolverRuleAssociation sets the ResolverRuleAssociation field's value.
9364func (s *DisassociateResolverRuleOutput) SetResolverRuleAssociation(v *ResolverRuleAssociation) *DisassociateResolverRuleOutput {
9365	s.ResolverRuleAssociation = v
9366	return s
9367}
9368
9369// For Resolver list operations (ListResolverEndpoints (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverEndpoints.html),
9370// ListResolverRules (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverRules.html),
9371// ListResolverRuleAssociations (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverRuleAssociations.html),
9372// ListResolverQueryLogConfigs (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverQueryLogConfigs.html),
9373// ListResolverQueryLogConfigAssociations (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverQueryLogConfigAssociations.html)),
9374// and ListResolverDnssecConfigs (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverDnssecConfigs.html)),
9375// an optional specification to return a subset of objects.
9376//
9377// To filter objects, such as Resolver endpoints or Resolver rules, you specify
9378// Name and Values. For example, to list only inbound Resolver endpoints, specify
9379// Direction for Name and specify INBOUND for Values.
9380type Filter struct {
9381	_ struct{} `type:"structure"`
9382
9383	// The name of the parameter that you want to use to filter objects.
9384	//
9385	// The valid values for Name depend on the action that you're including the
9386	// filter in, ListResolverEndpoints (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverEndpoints.html),
9387	// ListResolverRules (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverRules.html),
9388	// ListResolverRuleAssociations (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverRuleAssociations.html),
9389	// ListResolverQueryLogConfigs (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverQueryLogConfigs.html),
9390	// or ListResolverQueryLogConfigAssociations (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverQueryLogConfigAssociations.html).
9391	//
9392	// In early versions of Resolver, values for Name were listed as uppercase,
9393	// with underscore (_) delimiters. For example, CreatorRequestId was originally
9394	// listed as CREATOR_REQUEST_ID. Uppercase values for Name are still supported.
9395	//
9396	// ListResolverEndpoints
9397	//
9398	// Valid values for Name include the following:
9399	//
9400	//    * CreatorRequestId: The value that you specified when you created the
9401	//    Resolver endpoint.
9402	//
9403	//    * Direction: Whether you want to return inbound or outbound Resolver endpoints.
9404	//    If you specify DIRECTION for Name, specify INBOUND or OUTBOUND for Values.
9405	//
9406	//    * HostVPCId: The ID of the VPC that inbound DNS queries pass through on
9407	//    the way from your network to your VPCs in a region, or the VPC that outbound
9408	//    queries pass through on the way from your VPCs to your network. In a CreateResolverEndpoint
9409	//    (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_CreateResolverEndpoint.html)
9410	//    request, SubnetId indirectly identifies the VPC. In a GetResolverEndpoint
9411	//    (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverEndpoint.html)
9412	//    request, the VPC ID for a Resolver endpoint is returned in the HostVPCId
9413	//    element.
9414	//
9415	//    * IpAddressCount: The number of IP addresses that you have associated
9416	//    with the Resolver endpoint.
9417	//
9418	//    * Name: The name of the Resolver endpoint.
9419	//
9420	//    * SecurityGroupIds: The IDs of the VPC security groups that you specified
9421	//    when you created the Resolver endpoint.
9422	//
9423	//    * Status: The status of the Resolver endpoint. If you specify Status for
9424	//    Name, specify one of the following status codes for Values: CREATING,
9425	//    OPERATIONAL, UPDATING, AUTO_RECOVERING, ACTION_NEEDED, or DELETING. For
9426	//    more information, see Status in ResolverEndpoint (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ResolverEndpoint.html).
9427	//
9428	// ListResolverRules
9429	//
9430	// Valid values for Name include the following:
9431	//
9432	//    * CreatorRequestId: The value that you specified when you created the
9433	//    Resolver rule.
9434	//
9435	//    * DomainName: The domain name for which Resolver is forwarding DNS queries
9436	//    to your network. In the value that you specify for Values, include a trailing
9437	//    dot (.) after the domain name. For example, if the domain name is example.com,
9438	//    specify the following value. Note the "." after com: example.com.
9439	//
9440	//    * Name: The name of the Resolver rule.
9441	//
9442	//    * ResolverEndpointId: The ID of the Resolver endpoint that the Resolver
9443	//    rule is associated with. You can filter on the Resolver endpoint only
9444	//    for rules that have a value of FORWARD for RuleType.
9445	//
9446	//    * Status: The status of the Resolver rule. If you specify Status for Name,
9447	//    specify one of the following status codes for Values: COMPLETE, DELETING,
9448	//    UPDATING, or FAILED.
9449	//
9450	//    * Type: The type of the Resolver rule. If you specify TYPE for Name, specify
9451	//    FORWARD or SYSTEM for Values.
9452	//
9453	// ListResolverRuleAssociations
9454	//
9455	// Valid values for Name include the following:
9456	//
9457	//    * Name: The name of the Resolver rule association.
9458	//
9459	//    * ResolverRuleId: The ID of the Resolver rule that is associated with
9460	//    one or more VPCs.
9461	//
9462	//    * Status: The status of the Resolver rule association. If you specify
9463	//    Status for Name, specify one of the following status codes for Values:
9464	//    CREATING, COMPLETE, DELETING, or FAILED.
9465	//
9466	//    * VPCId: The ID of the VPC that the Resolver rule is associated with.
9467	//
9468	// ListResolverQueryLogConfigs
9469	//
9470	// Valid values for Name include the following:
9471	//
9472	//    * Arn: The ARN for the query logging configuration.
9473	//
9474	//    * AssociationCount: The number of VPCs that are associated with the query
9475	//    logging configuration.
9476	//
9477	//    * CreationTime: The date and time that the query logging configuration
9478	//    was created, in Unix time format and Coordinated Universal Time (UTC).
9479	//
9480	//    * CreatorRequestId: A unique string that identifies the request that created
9481	//    the query logging configuration.
9482	//
9483	//    * Destination: The Amazon Web Services service that you want to forward
9484	//    query logs to. Valid values include the following: S3 CloudWatchLogs KinesisFirehose
9485	//
9486	//    * DestinationArn: The ARN of the location that Resolver is sending query
9487	//    logs to. This value can be the ARN for an S3 bucket, a CloudWatch Logs
9488	//    log group, or a Kinesis Data Firehose delivery stream.
9489	//
9490	//    * Id: The ID of the query logging configuration
9491	//
9492	//    * Name: The name of the query logging configuration
9493	//
9494	//    * OwnerId: The Amazon Web Services account ID for the account that created
9495	//    the query logging configuration.
9496	//
9497	//    * ShareStatus: An indication of whether the query logging configuration
9498	//    is shared with other Amazon Web Services accounts, or was shared with
9499	//    the current account by another Amazon Web Services account. Valid values
9500	//    include: NOT_SHARED, SHARED_WITH_ME, or SHARED_BY_ME.
9501	//
9502	//    * Status: The status of the query logging configuration. If you specify
9503	//    Status for Name, specify the applicable status code for Values: CREATING,
9504	//    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).
9505	//
9506	// ListResolverQueryLogConfigAssociations
9507	//
9508	// Valid values for Name include the following:
9509	//
9510	//    * CreationTime: The date and time that the VPC was associated with the
9511	//    query logging configuration, in Unix time format and Coordinated Universal
9512	//    Time (UTC).
9513	//
9514	//    * Error: If the value of Status is FAILED, specify the cause: DESTINATION_NOT_FOUND
9515	//    or ACCESS_DENIED.
9516	//
9517	//    * Id: The ID of the query logging association.
9518	//
9519	//    * ResolverQueryLogConfigId: The ID of the query logging configuration
9520	//    that a VPC is associated with.
9521	//
9522	//    * ResourceId: The ID of the Amazon VPC that is associated with the query
9523	//    logging configuration.
9524	//
9525	//    * Status: The status of the query logging association. If you specify
9526	//    Status for Name, specify the applicable status code for Values: CREATING,
9527	//    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).
9528	Name *string `min:"1" type:"string"`
9529
9530	// When you're using a List operation and you want the operation to return a
9531	// subset of objects, such as Resolver endpoints or Resolver rules, the value
9532	// of the parameter that you want to use to filter objects. For example, to
9533	// list only inbound Resolver endpoints, specify Direction for Name and specify
9534	// INBOUND for Values.
9535	Values []*string `type:"list"`
9536}
9537
9538// String returns the string representation.
9539//
9540// API parameter values that are decorated as "sensitive" in the API will not
9541// be included in the string output. The member name will be present, but the
9542// value will be replaced with "sensitive".
9543func (s Filter) String() string {
9544	return awsutil.Prettify(s)
9545}
9546
9547// GoString returns the string representation.
9548//
9549// API parameter values that are decorated as "sensitive" in the API will not
9550// be included in the string output. The member name will be present, but the
9551// value will be replaced with "sensitive".
9552func (s Filter) GoString() string {
9553	return s.String()
9554}
9555
9556// Validate inspects the fields of the type to determine if they are valid.
9557func (s *Filter) Validate() error {
9558	invalidParams := request.ErrInvalidParams{Context: "Filter"}
9559	if s.Name != nil && len(*s.Name) < 1 {
9560		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
9561	}
9562
9563	if invalidParams.Len() > 0 {
9564		return invalidParams
9565	}
9566	return nil
9567}
9568
9569// SetName sets the Name field's value.
9570func (s *Filter) SetName(v string) *Filter {
9571	s.Name = &v
9572	return s
9573}
9574
9575// SetValues sets the Values field's value.
9576func (s *Filter) SetValues(v []*string) *Filter {
9577	s.Values = v
9578	return s
9579}
9580
9581// Configuration of the firewall behavior provided by DNS Firewall for a single
9582// VPC from Amazon Virtual Private Cloud (Amazon VPC).
9583type FirewallConfig struct {
9584	_ struct{} `type:"structure"`
9585
9586	// Determines how DNS Firewall operates during failures, for example when all
9587	// traffic that is sent to DNS Firewall fails to receive a reply.
9588	//
9589	//    * By default, fail open is disabled, which means the failure mode is closed.
9590	//    This approach favors security over availability. DNS Firewall returns
9591	//    a failure error when it is unable to properly evaluate a query.
9592	//
9593	//    * If you enable this option, the failure mode is open. This approach favors
9594	//    availability over security. DNS Firewall allows queries to proceed if
9595	//    it is unable to properly evaluate them.
9596	//
9597	// This behavior is only enforced for VPCs that have at least one DNS Firewall
9598	// rule group association.
9599	FirewallFailOpen *string `type:"string" enum:"FirewallFailOpenStatus"`
9600
9601	// The ID of the firewall configuration.
9602	Id *string `min:"1" type:"string"`
9603
9604	// The Amazon Web Services account ID of the owner of the VPC that this firewall
9605	// configuration applies to.
9606	OwnerId *string `min:"12" type:"string"`
9607
9608	// The ID of the VPC that this firewall configuration applies to.
9609	ResourceId *string `min:"1" type:"string"`
9610}
9611
9612// String returns the string representation.
9613//
9614// API parameter values that are decorated as "sensitive" in the API will not
9615// be included in the string output. The member name will be present, but the
9616// value will be replaced with "sensitive".
9617func (s FirewallConfig) String() string {
9618	return awsutil.Prettify(s)
9619}
9620
9621// GoString returns the string representation.
9622//
9623// API parameter values that are decorated as "sensitive" in the API will not
9624// be included in the string output. The member name will be present, but the
9625// value will be replaced with "sensitive".
9626func (s FirewallConfig) GoString() string {
9627	return s.String()
9628}
9629
9630// SetFirewallFailOpen sets the FirewallFailOpen field's value.
9631func (s *FirewallConfig) SetFirewallFailOpen(v string) *FirewallConfig {
9632	s.FirewallFailOpen = &v
9633	return s
9634}
9635
9636// SetId sets the Id field's value.
9637func (s *FirewallConfig) SetId(v string) *FirewallConfig {
9638	s.Id = &v
9639	return s
9640}
9641
9642// SetOwnerId sets the OwnerId field's value.
9643func (s *FirewallConfig) SetOwnerId(v string) *FirewallConfig {
9644	s.OwnerId = &v
9645	return s
9646}
9647
9648// SetResourceId sets the ResourceId field's value.
9649func (s *FirewallConfig) SetResourceId(v string) *FirewallConfig {
9650	s.ResourceId = &v
9651	return s
9652}
9653
9654// High-level information about a list of firewall domains for use in a FirewallRule.
9655// This is returned by GetFirewallDomainList.
9656//
9657// To retrieve the domains that are defined for this domain list, call ListFirewallDomains.
9658type FirewallDomainList struct {
9659	_ struct{} `type:"structure"`
9660
9661	// The Amazon Resource Name (ARN) of the firewall domain list.
9662	Arn *string `min:"1" type:"string"`
9663
9664	// The date and time that the domain list was created, in Unix time format and
9665	// Coordinated Universal Time (UTC).
9666	CreationTime *string `min:"20" type:"string"`
9667
9668	// A unique string defined by you to identify the request. This allows you to
9669	// retry failed requests without the risk of running the operation twice. This
9670	// can be any unique string, for example, a timestamp.
9671	CreatorRequestId *string `min:"1" type:"string"`
9672
9673	// The number of domain names that are specified in the domain list.
9674	DomainCount *int64 `type:"integer"`
9675
9676	// The ID of the domain list.
9677	Id *string `min:"1" type:"string"`
9678
9679	// The owner of the list, used only for lists that are not managed by you. For
9680	// example, the managed domain list AWSManagedDomainsMalwareDomainList has the
9681	// managed owner name Route 53 Resolver DNS Firewall.
9682	ManagedOwnerName *string `min:"1" type:"string"`
9683
9684	// The date and time that the domain list was last modified, in Unix time format
9685	// and Coordinated Universal Time (UTC).
9686	ModificationTime *string `min:"20" type:"string"`
9687
9688	// The name of the domain list.
9689	Name *string `type:"string"`
9690
9691	// The status of the domain list.
9692	Status *string `type:"string" enum:"FirewallDomainListStatus"`
9693
9694	// Additional information about the status of the list, if available.
9695	StatusMessage *string `type:"string"`
9696}
9697
9698// String returns the string representation.
9699//
9700// API parameter values that are decorated as "sensitive" in the API will not
9701// be included in the string output. The member name will be present, but the
9702// value will be replaced with "sensitive".
9703func (s FirewallDomainList) String() string {
9704	return awsutil.Prettify(s)
9705}
9706
9707// GoString returns the string representation.
9708//
9709// API parameter values that are decorated as "sensitive" in the API will not
9710// be included in the string output. The member name will be present, but the
9711// value will be replaced with "sensitive".
9712func (s FirewallDomainList) GoString() string {
9713	return s.String()
9714}
9715
9716// SetArn sets the Arn field's value.
9717func (s *FirewallDomainList) SetArn(v string) *FirewallDomainList {
9718	s.Arn = &v
9719	return s
9720}
9721
9722// SetCreationTime sets the CreationTime field's value.
9723func (s *FirewallDomainList) SetCreationTime(v string) *FirewallDomainList {
9724	s.CreationTime = &v
9725	return s
9726}
9727
9728// SetCreatorRequestId sets the CreatorRequestId field's value.
9729func (s *FirewallDomainList) SetCreatorRequestId(v string) *FirewallDomainList {
9730	s.CreatorRequestId = &v
9731	return s
9732}
9733
9734// SetDomainCount sets the DomainCount field's value.
9735func (s *FirewallDomainList) SetDomainCount(v int64) *FirewallDomainList {
9736	s.DomainCount = &v
9737	return s
9738}
9739
9740// SetId sets the Id field's value.
9741func (s *FirewallDomainList) SetId(v string) *FirewallDomainList {
9742	s.Id = &v
9743	return s
9744}
9745
9746// SetManagedOwnerName sets the ManagedOwnerName field's value.
9747func (s *FirewallDomainList) SetManagedOwnerName(v string) *FirewallDomainList {
9748	s.ManagedOwnerName = &v
9749	return s
9750}
9751
9752// SetModificationTime sets the ModificationTime field's value.
9753func (s *FirewallDomainList) SetModificationTime(v string) *FirewallDomainList {
9754	s.ModificationTime = &v
9755	return s
9756}
9757
9758// SetName sets the Name field's value.
9759func (s *FirewallDomainList) SetName(v string) *FirewallDomainList {
9760	s.Name = &v
9761	return s
9762}
9763
9764// SetStatus sets the Status field's value.
9765func (s *FirewallDomainList) SetStatus(v string) *FirewallDomainList {
9766	s.Status = &v
9767	return s
9768}
9769
9770// SetStatusMessage sets the StatusMessage field's value.
9771func (s *FirewallDomainList) SetStatusMessage(v string) *FirewallDomainList {
9772	s.StatusMessage = &v
9773	return s
9774}
9775
9776// Minimal high-level information for a firewall domain list. The action ListFirewallDomainLists
9777// returns an array of these objects.
9778//
9779// To retrieve full information for a firewall domain list, call GetFirewallDomainList
9780// and ListFirewallDomains.
9781type FirewallDomainListMetadata struct {
9782	_ struct{} `type:"structure"`
9783
9784	// The Amazon Resource Name (ARN) of the firewall domain list metadata.
9785	Arn *string `min:"1" type:"string"`
9786
9787	// A unique string defined by you to identify the request. This allows you to
9788	// retry failed requests without the risk of running the operation twice. This
9789	// can be any unique string, for example, a timestamp.
9790	CreatorRequestId *string `min:"1" type:"string"`
9791
9792	// The ID of the domain list.
9793	Id *string `min:"1" type:"string"`
9794
9795	// The owner of the list, used only for lists that are not managed by you. For
9796	// example, the managed domain list AWSManagedDomainsMalwareDomainList has the
9797	// managed owner name Route 53 Resolver DNS Firewall.
9798	ManagedOwnerName *string `min:"1" type:"string"`
9799
9800	// The name of the domain list.
9801	Name *string `type:"string"`
9802}
9803
9804// String returns the string representation.
9805//
9806// API parameter values that are decorated as "sensitive" in the API will not
9807// be included in the string output. The member name will be present, but the
9808// value will be replaced with "sensitive".
9809func (s FirewallDomainListMetadata) String() string {
9810	return awsutil.Prettify(s)
9811}
9812
9813// GoString returns the string representation.
9814//
9815// API parameter values that are decorated as "sensitive" in the API will not
9816// be included in the string output. The member name will be present, but the
9817// value will be replaced with "sensitive".
9818func (s FirewallDomainListMetadata) GoString() string {
9819	return s.String()
9820}
9821
9822// SetArn sets the Arn field's value.
9823func (s *FirewallDomainListMetadata) SetArn(v string) *FirewallDomainListMetadata {
9824	s.Arn = &v
9825	return s
9826}
9827
9828// SetCreatorRequestId sets the CreatorRequestId field's value.
9829func (s *FirewallDomainListMetadata) SetCreatorRequestId(v string) *FirewallDomainListMetadata {
9830	s.CreatorRequestId = &v
9831	return s
9832}
9833
9834// SetId sets the Id field's value.
9835func (s *FirewallDomainListMetadata) SetId(v string) *FirewallDomainListMetadata {
9836	s.Id = &v
9837	return s
9838}
9839
9840// SetManagedOwnerName sets the ManagedOwnerName field's value.
9841func (s *FirewallDomainListMetadata) SetManagedOwnerName(v string) *FirewallDomainListMetadata {
9842	s.ManagedOwnerName = &v
9843	return s
9844}
9845
9846// SetName sets the Name field's value.
9847func (s *FirewallDomainListMetadata) SetName(v string) *FirewallDomainListMetadata {
9848	s.Name = &v
9849	return s
9850}
9851
9852// A single firewall rule in a rule group.
9853type FirewallRule struct {
9854	_ struct{} `type:"structure"`
9855
9856	// The action that DNS Firewall should take on a DNS query when it matches one
9857	// of the domains in the rule's domain list:
9858	//
9859	//    * ALLOW - Permit the request to go through.
9860	//
9861	//    * ALERT - Permit the request to go through but send an alert to the logs.
9862	//
9863	//    * BLOCK - Disallow the request. If this is specified, additional handling
9864	//    details are provided in the rule's BlockResponse setting.
9865	Action *string `type:"string" enum:"Action"`
9866
9867	// The DNS record's type. This determines the format of the record value that
9868	// you provided in BlockOverrideDomain. Used for the rule action BLOCK with
9869	// a BlockResponse setting of OVERRIDE.
9870	BlockOverrideDnsType *string `type:"string" enum:"BlockOverrideDnsType"`
9871
9872	// The custom DNS record to send back in response to the query. Used for the
9873	// rule action BLOCK with a BlockResponse setting of OVERRIDE.
9874	BlockOverrideDomain *string `min:"1" type:"string"`
9875
9876	// The recommended amount of time, in seconds, for the DNS resolver or web browser
9877	// to cache the provided override record. Used for the rule action BLOCK with
9878	// a BlockResponse setting of OVERRIDE.
9879	BlockOverrideTtl *int64 `type:"integer"`
9880
9881	// The way that you want DNS Firewall to block the request. Used for the rule
9882	// action setting BLOCK.
9883	//
9884	//    * NODATA - Respond indicating that the query was successful, but no response
9885	//    is available for it.
9886	//
9887	//    * NXDOMAIN - Respond indicating that the domain name that's in the query
9888	//    doesn't exist.
9889	//
9890	//    * OVERRIDE - Provide a custom override in the response. This option requires
9891	//    custom handling details in the rule's BlockOverride* settings.
9892	BlockResponse *string `type:"string" enum:"BlockResponse"`
9893
9894	// The date and time that the rule was created, in Unix time format and Coordinated
9895	// Universal Time (UTC).
9896	CreationTime *string `min:"20" type:"string"`
9897
9898	// A unique string defined by you to identify the request. This allows you to
9899	// retry failed requests without the risk of executing the operation twice.
9900	// This can be any unique string, for example, a timestamp.
9901	CreatorRequestId *string `min:"1" type:"string"`
9902
9903	// The ID of the domain list that's used in the rule.
9904	FirewallDomainListId *string `min:"1" type:"string"`
9905
9906	// The unique identifier of the firewall rule group of the rule.
9907	FirewallRuleGroupId *string `min:"1" type:"string"`
9908
9909	// The date and time that the rule was last modified, in Unix time format and
9910	// Coordinated Universal Time (UTC).
9911	ModificationTime *string `min:"20" type:"string"`
9912
9913	// The name of the rule.
9914	Name *string `type:"string"`
9915
9916	// The priority of the rule in the rule group. This value must be unique within
9917	// the rule group. DNS Firewall processes the rules in a rule group by order
9918	// of priority, starting from the lowest setting.
9919	Priority *int64 `type:"integer"`
9920}
9921
9922// String returns the string representation.
9923//
9924// API parameter values that are decorated as "sensitive" in the API will not
9925// be included in the string output. The member name will be present, but the
9926// value will be replaced with "sensitive".
9927func (s FirewallRule) String() string {
9928	return awsutil.Prettify(s)
9929}
9930
9931// GoString returns the string representation.
9932//
9933// API parameter values that are decorated as "sensitive" in the API will not
9934// be included in the string output. The member name will be present, but the
9935// value will be replaced with "sensitive".
9936func (s FirewallRule) GoString() string {
9937	return s.String()
9938}
9939
9940// SetAction sets the Action field's value.
9941func (s *FirewallRule) SetAction(v string) *FirewallRule {
9942	s.Action = &v
9943	return s
9944}
9945
9946// SetBlockOverrideDnsType sets the BlockOverrideDnsType field's value.
9947func (s *FirewallRule) SetBlockOverrideDnsType(v string) *FirewallRule {
9948	s.BlockOverrideDnsType = &v
9949	return s
9950}
9951
9952// SetBlockOverrideDomain sets the BlockOverrideDomain field's value.
9953func (s *FirewallRule) SetBlockOverrideDomain(v string) *FirewallRule {
9954	s.BlockOverrideDomain = &v
9955	return s
9956}
9957
9958// SetBlockOverrideTtl sets the BlockOverrideTtl field's value.
9959func (s *FirewallRule) SetBlockOverrideTtl(v int64) *FirewallRule {
9960	s.BlockOverrideTtl = &v
9961	return s
9962}
9963
9964// SetBlockResponse sets the BlockResponse field's value.
9965func (s *FirewallRule) SetBlockResponse(v string) *FirewallRule {
9966	s.BlockResponse = &v
9967	return s
9968}
9969
9970// SetCreationTime sets the CreationTime field's value.
9971func (s *FirewallRule) SetCreationTime(v string) *FirewallRule {
9972	s.CreationTime = &v
9973	return s
9974}
9975
9976// SetCreatorRequestId sets the CreatorRequestId field's value.
9977func (s *FirewallRule) SetCreatorRequestId(v string) *FirewallRule {
9978	s.CreatorRequestId = &v
9979	return s
9980}
9981
9982// SetFirewallDomainListId sets the FirewallDomainListId field's value.
9983func (s *FirewallRule) SetFirewallDomainListId(v string) *FirewallRule {
9984	s.FirewallDomainListId = &v
9985	return s
9986}
9987
9988// SetFirewallRuleGroupId sets the FirewallRuleGroupId field's value.
9989func (s *FirewallRule) SetFirewallRuleGroupId(v string) *FirewallRule {
9990	s.FirewallRuleGroupId = &v
9991	return s
9992}
9993
9994// SetModificationTime sets the ModificationTime field's value.
9995func (s *FirewallRule) SetModificationTime(v string) *FirewallRule {
9996	s.ModificationTime = &v
9997	return s
9998}
9999
10000// SetName sets the Name field's value.
10001func (s *FirewallRule) SetName(v string) *FirewallRule {
10002	s.Name = &v
10003	return s
10004}
10005
10006// SetPriority sets the Priority field's value.
10007func (s *FirewallRule) SetPriority(v int64) *FirewallRule {
10008	s.Priority = &v
10009	return s
10010}
10011
10012// High-level information for a firewall rule group. A firewall rule group is
10013// a collection of rules that DNS Firewall uses to filter DNS network traffic
10014// for a VPC. To retrieve the rules for the rule group, call ListFirewallRules.
10015type FirewallRuleGroup struct {
10016	_ struct{} `type:"structure"`
10017
10018	// The ARN (Amazon Resource Name) of the rule group.
10019	Arn *string `min:"1" type:"string"`
10020
10021	// The date and time that the rule group was created, in Unix time format and
10022	// Coordinated Universal Time (UTC).
10023	CreationTime *string `min:"20" type:"string"`
10024
10025	// A unique string defined by you to identify the request. This allows you to
10026	// retry failed requests without the risk of running the operation twice. This
10027	// can be any unique string, for example, a timestamp.
10028	CreatorRequestId *string `min:"1" type:"string"`
10029
10030	// The ID of the rule group.
10031	Id *string `min:"1" type:"string"`
10032
10033	// The date and time that the rule group was last modified, in Unix time format
10034	// and Coordinated Universal Time (UTC).
10035	ModificationTime *string `min:"20" type:"string"`
10036
10037	// The name of the rule group.
10038	Name *string `type:"string"`
10039
10040	// The Amazon Web Services account ID for the account that created the rule
10041	// group. When a rule group is shared with your account, this is the account
10042	// that has shared the rule group with you.
10043	OwnerId *string `min:"12" type:"string"`
10044
10045	// The number of rules in the rule group.
10046	RuleCount *int64 `type:"integer"`
10047
10048	// Whether the rule group is shared with other Amazon Web Services accounts,
10049	// or was shared with the current account by another Amazon Web Services account.
10050	// Sharing is configured through Resource Access Manager (RAM).
10051	ShareStatus *string `type:"string" enum:"ShareStatus"`
10052
10053	// The status of the domain list.
10054	Status *string `type:"string" enum:"FirewallRuleGroupStatus"`
10055
10056	// Additional information about the status of the rule group, if available.
10057	StatusMessage *string `type:"string"`
10058}
10059
10060// String returns the string representation.
10061//
10062// API parameter values that are decorated as "sensitive" in the API will not
10063// be included in the string output. The member name will be present, but the
10064// value will be replaced with "sensitive".
10065func (s FirewallRuleGroup) String() string {
10066	return awsutil.Prettify(s)
10067}
10068
10069// GoString returns the string representation.
10070//
10071// API parameter values that are decorated as "sensitive" in the API will not
10072// be included in the string output. The member name will be present, but the
10073// value will be replaced with "sensitive".
10074func (s FirewallRuleGroup) GoString() string {
10075	return s.String()
10076}
10077
10078// SetArn sets the Arn field's value.
10079func (s *FirewallRuleGroup) SetArn(v string) *FirewallRuleGroup {
10080	s.Arn = &v
10081	return s
10082}
10083
10084// SetCreationTime sets the CreationTime field's value.
10085func (s *FirewallRuleGroup) SetCreationTime(v string) *FirewallRuleGroup {
10086	s.CreationTime = &v
10087	return s
10088}
10089
10090// SetCreatorRequestId sets the CreatorRequestId field's value.
10091func (s *FirewallRuleGroup) SetCreatorRequestId(v string) *FirewallRuleGroup {
10092	s.CreatorRequestId = &v
10093	return s
10094}
10095
10096// SetId sets the Id field's value.
10097func (s *FirewallRuleGroup) SetId(v string) *FirewallRuleGroup {
10098	s.Id = &v
10099	return s
10100}
10101
10102// SetModificationTime sets the ModificationTime field's value.
10103func (s *FirewallRuleGroup) SetModificationTime(v string) *FirewallRuleGroup {
10104	s.ModificationTime = &v
10105	return s
10106}
10107
10108// SetName sets the Name field's value.
10109func (s *FirewallRuleGroup) SetName(v string) *FirewallRuleGroup {
10110	s.Name = &v
10111	return s
10112}
10113
10114// SetOwnerId sets the OwnerId field's value.
10115func (s *FirewallRuleGroup) SetOwnerId(v string) *FirewallRuleGroup {
10116	s.OwnerId = &v
10117	return s
10118}
10119
10120// SetRuleCount sets the RuleCount field's value.
10121func (s *FirewallRuleGroup) SetRuleCount(v int64) *FirewallRuleGroup {
10122	s.RuleCount = &v
10123	return s
10124}
10125
10126// SetShareStatus sets the ShareStatus field's value.
10127func (s *FirewallRuleGroup) SetShareStatus(v string) *FirewallRuleGroup {
10128	s.ShareStatus = &v
10129	return s
10130}
10131
10132// SetStatus sets the Status field's value.
10133func (s *FirewallRuleGroup) SetStatus(v string) *FirewallRuleGroup {
10134	s.Status = &v
10135	return s
10136}
10137
10138// SetStatusMessage sets the StatusMessage field's value.
10139func (s *FirewallRuleGroup) SetStatusMessage(v string) *FirewallRuleGroup {
10140	s.StatusMessage = &v
10141	return s
10142}
10143
10144// An association between a firewall rule group and a VPC, which enables DNS
10145// filtering for the VPC.
10146type FirewallRuleGroupAssociation struct {
10147	_ struct{} `type:"structure"`
10148
10149	// The Amazon Resource Name (ARN) of the firewall rule group association.
10150	Arn *string `min:"1" type:"string"`
10151
10152	// The date and time that the association was created, in Unix time format and
10153	// Coordinated Universal Time (UTC).
10154	CreationTime *string `min:"20" type:"string"`
10155
10156	// A unique string defined by you to identify the request. This allows you to
10157	// retry failed requests without the risk of running the operation twice. This
10158	// can be any unique string, for example, a timestamp.
10159	CreatorRequestId *string `min:"1" type:"string"`
10160
10161	// The unique identifier of the firewall rule group.
10162	FirewallRuleGroupId *string `min:"1" type:"string"`
10163
10164	// The identifier for the association.
10165	Id *string `min:"1" type:"string"`
10166
10167	// The owner of the association, used only for associations that are not managed
10168	// by you. If you use Firewall Manager to manage your DNS Firewalls, then this
10169	// reports Firewall Manager as the managed owner.
10170	ManagedOwnerName *string `min:"1" type:"string"`
10171
10172	// The date and time that the association was last modified, in Unix time format
10173	// and Coordinated Universal Time (UTC).
10174	ModificationTime *string `min:"20" type:"string"`
10175
10176	// If enabled, this setting disallows modification or removal of the association,
10177	// to help prevent against accidentally altering DNS firewall protections.
10178	MutationProtection *string `type:"string" enum:"MutationProtectionStatus"`
10179
10180	// The name of the association.
10181	Name *string `type:"string"`
10182
10183	// The setting that determines the processing order of the rule group among
10184	// the rule groups that are associated with a single VPC. DNS Firewall filters
10185	// VPC traffic starting from rule group with the lowest numeric priority setting.
10186	Priority *int64 `type:"integer"`
10187
10188	// The current status of the association.
10189	Status *string `type:"string" enum:"FirewallRuleGroupAssociationStatus"`
10190
10191	// Additional information about the status of the response, if available.
10192	StatusMessage *string `type:"string"`
10193
10194	// The unique identifier of the VPC that is associated with the rule group.
10195	VpcId *string `min:"1" type:"string"`
10196}
10197
10198// String returns the string representation.
10199//
10200// API parameter values that are decorated as "sensitive" in the API will not
10201// be included in the string output. The member name will be present, but the
10202// value will be replaced with "sensitive".
10203func (s FirewallRuleGroupAssociation) String() string {
10204	return awsutil.Prettify(s)
10205}
10206
10207// GoString returns the string representation.
10208//
10209// API parameter values that are decorated as "sensitive" in the API will not
10210// be included in the string output. The member name will be present, but the
10211// value will be replaced with "sensitive".
10212func (s FirewallRuleGroupAssociation) GoString() string {
10213	return s.String()
10214}
10215
10216// SetArn sets the Arn field's value.
10217func (s *FirewallRuleGroupAssociation) SetArn(v string) *FirewallRuleGroupAssociation {
10218	s.Arn = &v
10219	return s
10220}
10221
10222// SetCreationTime sets the CreationTime field's value.
10223func (s *FirewallRuleGroupAssociation) SetCreationTime(v string) *FirewallRuleGroupAssociation {
10224	s.CreationTime = &v
10225	return s
10226}
10227
10228// SetCreatorRequestId sets the CreatorRequestId field's value.
10229func (s *FirewallRuleGroupAssociation) SetCreatorRequestId(v string) *FirewallRuleGroupAssociation {
10230	s.CreatorRequestId = &v
10231	return s
10232}
10233
10234// SetFirewallRuleGroupId sets the FirewallRuleGroupId field's value.
10235func (s *FirewallRuleGroupAssociation) SetFirewallRuleGroupId(v string) *FirewallRuleGroupAssociation {
10236	s.FirewallRuleGroupId = &v
10237	return s
10238}
10239
10240// SetId sets the Id field's value.
10241func (s *FirewallRuleGroupAssociation) SetId(v string) *FirewallRuleGroupAssociation {
10242	s.Id = &v
10243	return s
10244}
10245
10246// SetManagedOwnerName sets the ManagedOwnerName field's value.
10247func (s *FirewallRuleGroupAssociation) SetManagedOwnerName(v string) *FirewallRuleGroupAssociation {
10248	s.ManagedOwnerName = &v
10249	return s
10250}
10251
10252// SetModificationTime sets the ModificationTime field's value.
10253func (s *FirewallRuleGroupAssociation) SetModificationTime(v string) *FirewallRuleGroupAssociation {
10254	s.ModificationTime = &v
10255	return s
10256}
10257
10258// SetMutationProtection sets the MutationProtection field's value.
10259func (s *FirewallRuleGroupAssociation) SetMutationProtection(v string) *FirewallRuleGroupAssociation {
10260	s.MutationProtection = &v
10261	return s
10262}
10263
10264// SetName sets the Name field's value.
10265func (s *FirewallRuleGroupAssociation) SetName(v string) *FirewallRuleGroupAssociation {
10266	s.Name = &v
10267	return s
10268}
10269
10270// SetPriority sets the Priority field's value.
10271func (s *FirewallRuleGroupAssociation) SetPriority(v int64) *FirewallRuleGroupAssociation {
10272	s.Priority = &v
10273	return s
10274}
10275
10276// SetStatus sets the Status field's value.
10277func (s *FirewallRuleGroupAssociation) SetStatus(v string) *FirewallRuleGroupAssociation {
10278	s.Status = &v
10279	return s
10280}
10281
10282// SetStatusMessage sets the StatusMessage field's value.
10283func (s *FirewallRuleGroupAssociation) SetStatusMessage(v string) *FirewallRuleGroupAssociation {
10284	s.StatusMessage = &v
10285	return s
10286}
10287
10288// SetVpcId sets the VpcId field's value.
10289func (s *FirewallRuleGroupAssociation) SetVpcId(v string) *FirewallRuleGroupAssociation {
10290	s.VpcId = &v
10291	return s
10292}
10293
10294// Minimal high-level information for a firewall rule group. The action ListFirewallRuleGroups
10295// returns an array of these objects.
10296//
10297// To retrieve full information for a firewall rule group, call GetFirewallRuleGroup
10298// and ListFirewallRules.
10299type FirewallRuleGroupMetadata struct {
10300	_ struct{} `type:"structure"`
10301
10302	// The ARN (Amazon Resource Name) of the rule group.
10303	Arn *string `min:"1" type:"string"`
10304
10305	// A unique string defined by you to identify the request. This allows you to
10306	// retry failed requests without the risk of running the operation twice. This
10307	// can be any unique string, for example, a timestamp.
10308	CreatorRequestId *string `min:"1" type:"string"`
10309
10310	// The ID of the rule group.
10311	Id *string `min:"1" type:"string"`
10312
10313	// The name of the rule group.
10314	Name *string `type:"string"`
10315
10316	// The Amazon Web Services account ID for the account that created the rule
10317	// group. When a rule group is shared with your account, this is the account
10318	// that has shared the rule group with you.
10319	OwnerId *string `min:"12" type:"string"`
10320
10321	// Whether the rule group is shared with other Amazon Web Services accounts,
10322	// or was shared with the current account by another Amazon Web Services account.
10323	// Sharing is configured through Resource Access Manager (RAM).
10324	ShareStatus *string `type:"string" enum:"ShareStatus"`
10325}
10326
10327// String returns the string representation.
10328//
10329// API parameter values that are decorated as "sensitive" in the API will not
10330// be included in the string output. The member name will be present, but the
10331// value will be replaced with "sensitive".
10332func (s FirewallRuleGroupMetadata) String() string {
10333	return awsutil.Prettify(s)
10334}
10335
10336// GoString returns the string representation.
10337//
10338// API parameter values that are decorated as "sensitive" in the API will not
10339// be included in the string output. The member name will be present, but the
10340// value will be replaced with "sensitive".
10341func (s FirewallRuleGroupMetadata) GoString() string {
10342	return s.String()
10343}
10344
10345// SetArn sets the Arn field's value.
10346func (s *FirewallRuleGroupMetadata) SetArn(v string) *FirewallRuleGroupMetadata {
10347	s.Arn = &v
10348	return s
10349}
10350
10351// SetCreatorRequestId sets the CreatorRequestId field's value.
10352func (s *FirewallRuleGroupMetadata) SetCreatorRequestId(v string) *FirewallRuleGroupMetadata {
10353	s.CreatorRequestId = &v
10354	return s
10355}
10356
10357// SetId sets the Id field's value.
10358func (s *FirewallRuleGroupMetadata) SetId(v string) *FirewallRuleGroupMetadata {
10359	s.Id = &v
10360	return s
10361}
10362
10363// SetName sets the Name field's value.
10364func (s *FirewallRuleGroupMetadata) SetName(v string) *FirewallRuleGroupMetadata {
10365	s.Name = &v
10366	return s
10367}
10368
10369// SetOwnerId sets the OwnerId field's value.
10370func (s *FirewallRuleGroupMetadata) SetOwnerId(v string) *FirewallRuleGroupMetadata {
10371	s.OwnerId = &v
10372	return s
10373}
10374
10375// SetShareStatus sets the ShareStatus field's value.
10376func (s *FirewallRuleGroupMetadata) SetShareStatus(v string) *FirewallRuleGroupMetadata {
10377	s.ShareStatus = &v
10378	return s
10379}
10380
10381type GetFirewallConfigInput struct {
10382	_ struct{} `type:"structure"`
10383
10384	// The ID of the VPC from Amazon VPC that the configuration is for.
10385	//
10386	// ResourceId is a required field
10387	ResourceId *string `min:"1" type:"string" required:"true"`
10388}
10389
10390// String returns the string representation.
10391//
10392// API parameter values that are decorated as "sensitive" in the API will not
10393// be included in the string output. The member name will be present, but the
10394// value will be replaced with "sensitive".
10395func (s GetFirewallConfigInput) String() string {
10396	return awsutil.Prettify(s)
10397}
10398
10399// GoString returns the string representation.
10400//
10401// API parameter values that are decorated as "sensitive" in the API will not
10402// be included in the string output. The member name will be present, but the
10403// value will be replaced with "sensitive".
10404func (s GetFirewallConfigInput) GoString() string {
10405	return s.String()
10406}
10407
10408// Validate inspects the fields of the type to determine if they are valid.
10409func (s *GetFirewallConfigInput) Validate() error {
10410	invalidParams := request.ErrInvalidParams{Context: "GetFirewallConfigInput"}
10411	if s.ResourceId == nil {
10412		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
10413	}
10414	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
10415		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
10416	}
10417
10418	if invalidParams.Len() > 0 {
10419		return invalidParams
10420	}
10421	return nil
10422}
10423
10424// SetResourceId sets the ResourceId field's value.
10425func (s *GetFirewallConfigInput) SetResourceId(v string) *GetFirewallConfigInput {
10426	s.ResourceId = &v
10427	return s
10428}
10429
10430type GetFirewallConfigOutput struct {
10431	_ struct{} `type:"structure"`
10432
10433	// Configuration of the firewall behavior provided by DNS Firewall for a single
10434	// VPC from AmazonVPC.
10435	FirewallConfig *FirewallConfig `type:"structure"`
10436}
10437
10438// String returns the string representation.
10439//
10440// API parameter values that are decorated as "sensitive" in the API will not
10441// be included in the string output. The member name will be present, but the
10442// value will be replaced with "sensitive".
10443func (s GetFirewallConfigOutput) String() string {
10444	return awsutil.Prettify(s)
10445}
10446
10447// GoString returns the string representation.
10448//
10449// API parameter values that are decorated as "sensitive" in the API will not
10450// be included in the string output. The member name will be present, but the
10451// value will be replaced with "sensitive".
10452func (s GetFirewallConfigOutput) GoString() string {
10453	return s.String()
10454}
10455
10456// SetFirewallConfig sets the FirewallConfig field's value.
10457func (s *GetFirewallConfigOutput) SetFirewallConfig(v *FirewallConfig) *GetFirewallConfigOutput {
10458	s.FirewallConfig = v
10459	return s
10460}
10461
10462type GetFirewallDomainListInput struct {
10463	_ struct{} `type:"structure"`
10464
10465	// The ID of the domain list.
10466	//
10467	// FirewallDomainListId is a required field
10468	FirewallDomainListId *string `min:"1" type:"string" required:"true"`
10469}
10470
10471// String returns the string representation.
10472//
10473// API parameter values that are decorated as "sensitive" in the API will not
10474// be included in the string output. The member name will be present, but the
10475// value will be replaced with "sensitive".
10476func (s GetFirewallDomainListInput) String() string {
10477	return awsutil.Prettify(s)
10478}
10479
10480// GoString returns the string representation.
10481//
10482// API parameter values that are decorated as "sensitive" in the API will not
10483// be included in the string output. The member name will be present, but the
10484// value will be replaced with "sensitive".
10485func (s GetFirewallDomainListInput) GoString() string {
10486	return s.String()
10487}
10488
10489// Validate inspects the fields of the type to determine if they are valid.
10490func (s *GetFirewallDomainListInput) Validate() error {
10491	invalidParams := request.ErrInvalidParams{Context: "GetFirewallDomainListInput"}
10492	if s.FirewallDomainListId == nil {
10493		invalidParams.Add(request.NewErrParamRequired("FirewallDomainListId"))
10494	}
10495	if s.FirewallDomainListId != nil && len(*s.FirewallDomainListId) < 1 {
10496		invalidParams.Add(request.NewErrParamMinLen("FirewallDomainListId", 1))
10497	}
10498
10499	if invalidParams.Len() > 0 {
10500		return invalidParams
10501	}
10502	return nil
10503}
10504
10505// SetFirewallDomainListId sets the FirewallDomainListId field's value.
10506func (s *GetFirewallDomainListInput) SetFirewallDomainListId(v string) *GetFirewallDomainListInput {
10507	s.FirewallDomainListId = &v
10508	return s
10509}
10510
10511type GetFirewallDomainListOutput struct {
10512	_ struct{} `type:"structure"`
10513
10514	// The domain list that you requested.
10515	FirewallDomainList *FirewallDomainList `type:"structure"`
10516}
10517
10518// String returns the string representation.
10519//
10520// API parameter values that are decorated as "sensitive" in the API will not
10521// be included in the string output. The member name will be present, but the
10522// value will be replaced with "sensitive".
10523func (s GetFirewallDomainListOutput) String() string {
10524	return awsutil.Prettify(s)
10525}
10526
10527// GoString returns the string representation.
10528//
10529// API parameter values that are decorated as "sensitive" in the API will not
10530// be included in the string output. The member name will be present, but the
10531// value will be replaced with "sensitive".
10532func (s GetFirewallDomainListOutput) GoString() string {
10533	return s.String()
10534}
10535
10536// SetFirewallDomainList sets the FirewallDomainList field's value.
10537func (s *GetFirewallDomainListOutput) SetFirewallDomainList(v *FirewallDomainList) *GetFirewallDomainListOutput {
10538	s.FirewallDomainList = v
10539	return s
10540}
10541
10542type GetFirewallRuleGroupAssociationInput struct {
10543	_ struct{} `type:"structure"`
10544
10545	// The identifier of the FirewallRuleGroupAssociation.
10546	//
10547	// FirewallRuleGroupAssociationId is a required field
10548	FirewallRuleGroupAssociationId *string `min:"1" type:"string" required:"true"`
10549}
10550
10551// String returns the string representation.
10552//
10553// API parameter values that are decorated as "sensitive" in the API will not
10554// be included in the string output. The member name will be present, but the
10555// value will be replaced with "sensitive".
10556func (s GetFirewallRuleGroupAssociationInput) String() string {
10557	return awsutil.Prettify(s)
10558}
10559
10560// GoString returns the string representation.
10561//
10562// API parameter values that are decorated as "sensitive" in the API will not
10563// be included in the string output. The member name will be present, but the
10564// value will be replaced with "sensitive".
10565func (s GetFirewallRuleGroupAssociationInput) GoString() string {
10566	return s.String()
10567}
10568
10569// Validate inspects the fields of the type to determine if they are valid.
10570func (s *GetFirewallRuleGroupAssociationInput) Validate() error {
10571	invalidParams := request.ErrInvalidParams{Context: "GetFirewallRuleGroupAssociationInput"}
10572	if s.FirewallRuleGroupAssociationId == nil {
10573		invalidParams.Add(request.NewErrParamRequired("FirewallRuleGroupAssociationId"))
10574	}
10575	if s.FirewallRuleGroupAssociationId != nil && len(*s.FirewallRuleGroupAssociationId) < 1 {
10576		invalidParams.Add(request.NewErrParamMinLen("FirewallRuleGroupAssociationId", 1))
10577	}
10578
10579	if invalidParams.Len() > 0 {
10580		return invalidParams
10581	}
10582	return nil
10583}
10584
10585// SetFirewallRuleGroupAssociationId sets the FirewallRuleGroupAssociationId field's value.
10586func (s *GetFirewallRuleGroupAssociationInput) SetFirewallRuleGroupAssociationId(v string) *GetFirewallRuleGroupAssociationInput {
10587	s.FirewallRuleGroupAssociationId = &v
10588	return s
10589}
10590
10591type GetFirewallRuleGroupAssociationOutput struct {
10592	_ struct{} `type:"structure"`
10593
10594	// The association that you requested.
10595	FirewallRuleGroupAssociation *FirewallRuleGroupAssociation `type:"structure"`
10596}
10597
10598// String returns the string representation.
10599//
10600// API parameter values that are decorated as "sensitive" in the API will not
10601// be included in the string output. The member name will be present, but the
10602// value will be replaced with "sensitive".
10603func (s GetFirewallRuleGroupAssociationOutput) String() string {
10604	return awsutil.Prettify(s)
10605}
10606
10607// GoString returns the string representation.
10608//
10609// API parameter values that are decorated as "sensitive" in the API will not
10610// be included in the string output. The member name will be present, but the
10611// value will be replaced with "sensitive".
10612func (s GetFirewallRuleGroupAssociationOutput) GoString() string {
10613	return s.String()
10614}
10615
10616// SetFirewallRuleGroupAssociation sets the FirewallRuleGroupAssociation field's value.
10617func (s *GetFirewallRuleGroupAssociationOutput) SetFirewallRuleGroupAssociation(v *FirewallRuleGroupAssociation) *GetFirewallRuleGroupAssociationOutput {
10618	s.FirewallRuleGroupAssociation = v
10619	return s
10620}
10621
10622type GetFirewallRuleGroupInput struct {
10623	_ struct{} `type:"structure"`
10624
10625	// The unique identifier of the firewall rule group.
10626	//
10627	// FirewallRuleGroupId is a required field
10628	FirewallRuleGroupId *string `min:"1" type:"string" required:"true"`
10629}
10630
10631// String returns the string representation.
10632//
10633// API parameter values that are decorated as "sensitive" in the API will not
10634// be included in the string output. The member name will be present, but the
10635// value will be replaced with "sensitive".
10636func (s GetFirewallRuleGroupInput) String() string {
10637	return awsutil.Prettify(s)
10638}
10639
10640// GoString returns the string representation.
10641//
10642// API parameter values that are decorated as "sensitive" in the API will not
10643// be included in the string output. The member name will be present, but the
10644// value will be replaced with "sensitive".
10645func (s GetFirewallRuleGroupInput) GoString() string {
10646	return s.String()
10647}
10648
10649// Validate inspects the fields of the type to determine if they are valid.
10650func (s *GetFirewallRuleGroupInput) Validate() error {
10651	invalidParams := request.ErrInvalidParams{Context: "GetFirewallRuleGroupInput"}
10652	if s.FirewallRuleGroupId == nil {
10653		invalidParams.Add(request.NewErrParamRequired("FirewallRuleGroupId"))
10654	}
10655	if s.FirewallRuleGroupId != nil && len(*s.FirewallRuleGroupId) < 1 {
10656		invalidParams.Add(request.NewErrParamMinLen("FirewallRuleGroupId", 1))
10657	}
10658
10659	if invalidParams.Len() > 0 {
10660		return invalidParams
10661	}
10662	return nil
10663}
10664
10665// SetFirewallRuleGroupId sets the FirewallRuleGroupId field's value.
10666func (s *GetFirewallRuleGroupInput) SetFirewallRuleGroupId(v string) *GetFirewallRuleGroupInput {
10667	s.FirewallRuleGroupId = &v
10668	return s
10669}
10670
10671type GetFirewallRuleGroupOutput struct {
10672	_ struct{} `type:"structure"`
10673
10674	// A collection of rules used to filter DNS network traffic.
10675	FirewallRuleGroup *FirewallRuleGroup `type:"structure"`
10676}
10677
10678// String returns the string representation.
10679//
10680// API parameter values that are decorated as "sensitive" in the API will not
10681// be included in the string output. The member name will be present, but the
10682// value will be replaced with "sensitive".
10683func (s GetFirewallRuleGroupOutput) String() string {
10684	return awsutil.Prettify(s)
10685}
10686
10687// GoString returns the string representation.
10688//
10689// API parameter values that are decorated as "sensitive" in the API will not
10690// be included in the string output. The member name will be present, but the
10691// value will be replaced with "sensitive".
10692func (s GetFirewallRuleGroupOutput) GoString() string {
10693	return s.String()
10694}
10695
10696// SetFirewallRuleGroup sets the FirewallRuleGroup field's value.
10697func (s *GetFirewallRuleGroupOutput) SetFirewallRuleGroup(v *FirewallRuleGroup) *GetFirewallRuleGroupOutput {
10698	s.FirewallRuleGroup = v
10699	return s
10700}
10701
10702type GetFirewallRuleGroupPolicyInput struct {
10703	_ struct{} `type:"structure"`
10704
10705	// The ARN (Amazon Resource Name) for the rule group.
10706	//
10707	// Arn is a required field
10708	Arn *string `min:"1" type:"string" required:"true"`
10709}
10710
10711// String returns the string representation.
10712//
10713// API parameter values that are decorated as "sensitive" in the API will not
10714// be included in the string output. The member name will be present, but the
10715// value will be replaced with "sensitive".
10716func (s GetFirewallRuleGroupPolicyInput) String() string {
10717	return awsutil.Prettify(s)
10718}
10719
10720// GoString returns the string representation.
10721//
10722// API parameter values that are decorated as "sensitive" in the API will not
10723// be included in the string output. The member name will be present, but the
10724// value will be replaced with "sensitive".
10725func (s GetFirewallRuleGroupPolicyInput) GoString() string {
10726	return s.String()
10727}
10728
10729// Validate inspects the fields of the type to determine if they are valid.
10730func (s *GetFirewallRuleGroupPolicyInput) Validate() error {
10731	invalidParams := request.ErrInvalidParams{Context: "GetFirewallRuleGroupPolicyInput"}
10732	if s.Arn == nil {
10733		invalidParams.Add(request.NewErrParamRequired("Arn"))
10734	}
10735	if s.Arn != nil && len(*s.Arn) < 1 {
10736		invalidParams.Add(request.NewErrParamMinLen("Arn", 1))
10737	}
10738
10739	if invalidParams.Len() > 0 {
10740		return invalidParams
10741	}
10742	return nil
10743}
10744
10745// SetArn sets the Arn field's value.
10746func (s *GetFirewallRuleGroupPolicyInput) SetArn(v string) *GetFirewallRuleGroupPolicyInput {
10747	s.Arn = &v
10748	return s
10749}
10750
10751type GetFirewallRuleGroupPolicyOutput struct {
10752	_ struct{} `type:"structure"`
10753
10754	// The Identity and Access Management (Amazon Web Services IAM) policy for sharing
10755	// the specified rule group. You can use the policy to share the rule group
10756	// using Resource Access Manager (RAM).
10757	FirewallRuleGroupPolicy *string `type:"string"`
10758}
10759
10760// String returns the string representation.
10761//
10762// API parameter values that are decorated as "sensitive" in the API will not
10763// be included in the string output. The member name will be present, but the
10764// value will be replaced with "sensitive".
10765func (s GetFirewallRuleGroupPolicyOutput) String() string {
10766	return awsutil.Prettify(s)
10767}
10768
10769// GoString returns the string representation.
10770//
10771// API parameter values that are decorated as "sensitive" in the API will not
10772// be included in the string output. The member name will be present, but the
10773// value will be replaced with "sensitive".
10774func (s GetFirewallRuleGroupPolicyOutput) GoString() string {
10775	return s.String()
10776}
10777
10778// SetFirewallRuleGroupPolicy sets the FirewallRuleGroupPolicy field's value.
10779func (s *GetFirewallRuleGroupPolicyOutput) SetFirewallRuleGroupPolicy(v string) *GetFirewallRuleGroupPolicyOutput {
10780	s.FirewallRuleGroupPolicy = &v
10781	return s
10782}
10783
10784type GetResolverConfigInput struct {
10785	_ struct{} `type:"structure"`
10786
10787	// Resource ID of the Amazon VPC that you want to get information about.
10788	//
10789	// ResourceId is a required field
10790	ResourceId *string `min:"1" type:"string" required:"true"`
10791}
10792
10793// String returns the string representation.
10794//
10795// API parameter values that are decorated as "sensitive" in the API will not
10796// be included in the string output. The member name will be present, but the
10797// value will be replaced with "sensitive".
10798func (s GetResolverConfigInput) String() string {
10799	return awsutil.Prettify(s)
10800}
10801
10802// GoString returns the string representation.
10803//
10804// API parameter values that are decorated as "sensitive" in the API will not
10805// be included in the string output. The member name will be present, but the
10806// value will be replaced with "sensitive".
10807func (s GetResolverConfigInput) GoString() string {
10808	return s.String()
10809}
10810
10811// Validate inspects the fields of the type to determine if they are valid.
10812func (s *GetResolverConfigInput) Validate() error {
10813	invalidParams := request.ErrInvalidParams{Context: "GetResolverConfigInput"}
10814	if s.ResourceId == nil {
10815		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
10816	}
10817	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
10818		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
10819	}
10820
10821	if invalidParams.Len() > 0 {
10822		return invalidParams
10823	}
10824	return nil
10825}
10826
10827// SetResourceId sets the ResourceId field's value.
10828func (s *GetResolverConfigInput) SetResourceId(v string) *GetResolverConfigInput {
10829	s.ResourceId = &v
10830	return s
10831}
10832
10833type GetResolverConfigOutput struct {
10834	_ struct{} `type:"structure"`
10835
10836	// Information about the behavior configuration of Route 53 Resolver behavior
10837	// for the VPC you specified in the GetResolverConfig request.
10838	ResolverConfig *ResolverConfig `type:"structure"`
10839}
10840
10841// String returns the string representation.
10842//
10843// API parameter values that are decorated as "sensitive" in the API will not
10844// be included in the string output. The member name will be present, but the
10845// value will be replaced with "sensitive".
10846func (s GetResolverConfigOutput) String() string {
10847	return awsutil.Prettify(s)
10848}
10849
10850// GoString returns the string representation.
10851//
10852// API parameter values that are decorated as "sensitive" in the API will not
10853// be included in the string output. The member name will be present, but the
10854// value will be replaced with "sensitive".
10855func (s GetResolverConfigOutput) GoString() string {
10856	return s.String()
10857}
10858
10859// SetResolverConfig sets the ResolverConfig field's value.
10860func (s *GetResolverConfigOutput) SetResolverConfig(v *ResolverConfig) *GetResolverConfigOutput {
10861	s.ResolverConfig = v
10862	return s
10863}
10864
10865type GetResolverDnssecConfigInput struct {
10866	_ struct{} `type:"structure"`
10867
10868	// The ID of the virtual private cloud (VPC) for the DNSSEC validation status.
10869	//
10870	// ResourceId is a required field
10871	ResourceId *string `min:"1" type:"string" required:"true"`
10872}
10873
10874// String returns the string representation.
10875//
10876// API parameter values that are decorated as "sensitive" in the API will not
10877// be included in the string output. The member name will be present, but the
10878// value will be replaced with "sensitive".
10879func (s GetResolverDnssecConfigInput) String() string {
10880	return awsutil.Prettify(s)
10881}
10882
10883// GoString returns the string representation.
10884//
10885// API parameter values that are decorated as "sensitive" in the API will not
10886// be included in the string output. The member name will be present, but the
10887// value will be replaced with "sensitive".
10888func (s GetResolverDnssecConfigInput) GoString() string {
10889	return s.String()
10890}
10891
10892// Validate inspects the fields of the type to determine if they are valid.
10893func (s *GetResolverDnssecConfigInput) Validate() error {
10894	invalidParams := request.ErrInvalidParams{Context: "GetResolverDnssecConfigInput"}
10895	if s.ResourceId == nil {
10896		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
10897	}
10898	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
10899		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
10900	}
10901
10902	if invalidParams.Len() > 0 {
10903		return invalidParams
10904	}
10905	return nil
10906}
10907
10908// SetResourceId sets the ResourceId field's value.
10909func (s *GetResolverDnssecConfigInput) SetResourceId(v string) *GetResolverDnssecConfigInput {
10910	s.ResourceId = &v
10911	return s
10912}
10913
10914type GetResolverDnssecConfigOutput struct {
10915	_ struct{} `type:"structure"`
10916
10917	// The information about a configuration for DNSSEC validation.
10918	ResolverDNSSECConfig *ResolverDnssecConfig `type:"structure"`
10919}
10920
10921// String returns the string representation.
10922//
10923// API parameter values that are decorated as "sensitive" in the API will not
10924// be included in the string output. The member name will be present, but the
10925// value will be replaced with "sensitive".
10926func (s GetResolverDnssecConfigOutput) String() string {
10927	return awsutil.Prettify(s)
10928}
10929
10930// GoString returns the string representation.
10931//
10932// API parameter values that are decorated as "sensitive" in the API will not
10933// be included in the string output. The member name will be present, but the
10934// value will be replaced with "sensitive".
10935func (s GetResolverDnssecConfigOutput) GoString() string {
10936	return s.String()
10937}
10938
10939// SetResolverDNSSECConfig sets the ResolverDNSSECConfig field's value.
10940func (s *GetResolverDnssecConfigOutput) SetResolverDNSSECConfig(v *ResolverDnssecConfig) *GetResolverDnssecConfigOutput {
10941	s.ResolverDNSSECConfig = v
10942	return s
10943}
10944
10945type GetResolverEndpointInput struct {
10946	_ struct{} `type:"structure"`
10947
10948	// The ID of the Resolver endpoint that you want to get information about.
10949	//
10950	// ResolverEndpointId is a required field
10951	ResolverEndpointId *string `min:"1" type:"string" required:"true"`
10952}
10953
10954// String returns the string representation.
10955//
10956// API parameter values that are decorated as "sensitive" in the API will not
10957// be included in the string output. The member name will be present, but the
10958// value will be replaced with "sensitive".
10959func (s GetResolverEndpointInput) String() string {
10960	return awsutil.Prettify(s)
10961}
10962
10963// GoString returns the string representation.
10964//
10965// API parameter values that are decorated as "sensitive" in the API will not
10966// be included in the string output. The member name will be present, but the
10967// value will be replaced with "sensitive".
10968func (s GetResolverEndpointInput) GoString() string {
10969	return s.String()
10970}
10971
10972// Validate inspects the fields of the type to determine if they are valid.
10973func (s *GetResolverEndpointInput) Validate() error {
10974	invalidParams := request.ErrInvalidParams{Context: "GetResolverEndpointInput"}
10975	if s.ResolverEndpointId == nil {
10976		invalidParams.Add(request.NewErrParamRequired("ResolverEndpointId"))
10977	}
10978	if s.ResolverEndpointId != nil && len(*s.ResolverEndpointId) < 1 {
10979		invalidParams.Add(request.NewErrParamMinLen("ResolverEndpointId", 1))
10980	}
10981
10982	if invalidParams.Len() > 0 {
10983		return invalidParams
10984	}
10985	return nil
10986}
10987
10988// SetResolverEndpointId sets the ResolverEndpointId field's value.
10989func (s *GetResolverEndpointInput) SetResolverEndpointId(v string) *GetResolverEndpointInput {
10990	s.ResolverEndpointId = &v
10991	return s
10992}
10993
10994type GetResolverEndpointOutput struct {
10995	_ struct{} `type:"structure"`
10996
10997	// Information about the Resolver endpoint that you specified in a GetResolverEndpoint
10998	// request.
10999	ResolverEndpoint *ResolverEndpoint `type:"structure"`
11000}
11001
11002// String returns the string representation.
11003//
11004// API parameter values that are decorated as "sensitive" in the API will not
11005// be included in the string output. The member name will be present, but the
11006// value will be replaced with "sensitive".
11007func (s GetResolverEndpointOutput) String() string {
11008	return awsutil.Prettify(s)
11009}
11010
11011// GoString returns the string representation.
11012//
11013// API parameter values that are decorated as "sensitive" in the API will not
11014// be included in the string output. The member name will be present, but the
11015// value will be replaced with "sensitive".
11016func (s GetResolverEndpointOutput) GoString() string {
11017	return s.String()
11018}
11019
11020// SetResolverEndpoint sets the ResolverEndpoint field's value.
11021func (s *GetResolverEndpointOutput) SetResolverEndpoint(v *ResolverEndpoint) *GetResolverEndpointOutput {
11022	s.ResolverEndpoint = v
11023	return s
11024}
11025
11026type GetResolverQueryLogConfigAssociationInput struct {
11027	_ struct{} `type:"structure"`
11028
11029	// The ID of the Resolver query logging configuration association that you want
11030	// to get information about.
11031	//
11032	// ResolverQueryLogConfigAssociationId is a required field
11033	ResolverQueryLogConfigAssociationId *string `min:"1" type:"string" required:"true"`
11034}
11035
11036// String returns the string representation.
11037//
11038// API parameter values that are decorated as "sensitive" in the API will not
11039// be included in the string output. The member name will be present, but the
11040// value will be replaced with "sensitive".
11041func (s GetResolverQueryLogConfigAssociationInput) String() string {
11042	return awsutil.Prettify(s)
11043}
11044
11045// GoString returns the string representation.
11046//
11047// API parameter values that are decorated as "sensitive" in the API will not
11048// be included in the string output. The member name will be present, but the
11049// value will be replaced with "sensitive".
11050func (s GetResolverQueryLogConfigAssociationInput) GoString() string {
11051	return s.String()
11052}
11053
11054// Validate inspects the fields of the type to determine if they are valid.
11055func (s *GetResolverQueryLogConfigAssociationInput) Validate() error {
11056	invalidParams := request.ErrInvalidParams{Context: "GetResolverQueryLogConfigAssociationInput"}
11057	if s.ResolverQueryLogConfigAssociationId == nil {
11058		invalidParams.Add(request.NewErrParamRequired("ResolverQueryLogConfigAssociationId"))
11059	}
11060	if s.ResolverQueryLogConfigAssociationId != nil && len(*s.ResolverQueryLogConfigAssociationId) < 1 {
11061		invalidParams.Add(request.NewErrParamMinLen("ResolverQueryLogConfigAssociationId", 1))
11062	}
11063
11064	if invalidParams.Len() > 0 {
11065		return invalidParams
11066	}
11067	return nil
11068}
11069
11070// SetResolverQueryLogConfigAssociationId sets the ResolverQueryLogConfigAssociationId field's value.
11071func (s *GetResolverQueryLogConfigAssociationInput) SetResolverQueryLogConfigAssociationId(v string) *GetResolverQueryLogConfigAssociationInput {
11072	s.ResolverQueryLogConfigAssociationId = &v
11073	return s
11074}
11075
11076type GetResolverQueryLogConfigAssociationOutput struct {
11077	_ struct{} `type:"structure"`
11078
11079	// Information about the Resolver query logging configuration association that
11080	// you specified in a GetQueryLogConfigAssociation request.
11081	ResolverQueryLogConfigAssociation *ResolverQueryLogConfigAssociation `type:"structure"`
11082}
11083
11084// String returns the string representation.
11085//
11086// API parameter values that are decorated as "sensitive" in the API will not
11087// be included in the string output. The member name will be present, but the
11088// value will be replaced with "sensitive".
11089func (s GetResolverQueryLogConfigAssociationOutput) String() string {
11090	return awsutil.Prettify(s)
11091}
11092
11093// GoString returns the string representation.
11094//
11095// API parameter values that are decorated as "sensitive" in the API will not
11096// be included in the string output. The member name will be present, but the
11097// value will be replaced with "sensitive".
11098func (s GetResolverQueryLogConfigAssociationOutput) GoString() string {
11099	return s.String()
11100}
11101
11102// SetResolverQueryLogConfigAssociation sets the ResolverQueryLogConfigAssociation field's value.
11103func (s *GetResolverQueryLogConfigAssociationOutput) SetResolverQueryLogConfigAssociation(v *ResolverQueryLogConfigAssociation) *GetResolverQueryLogConfigAssociationOutput {
11104	s.ResolverQueryLogConfigAssociation = v
11105	return s
11106}
11107
11108type GetResolverQueryLogConfigInput struct {
11109	_ struct{} `type:"structure"`
11110
11111	// The ID of the Resolver query logging configuration that you want to get information
11112	// about.
11113	//
11114	// ResolverQueryLogConfigId is a required field
11115	ResolverQueryLogConfigId *string `min:"1" type:"string" required:"true"`
11116}
11117
11118// String returns the string representation.
11119//
11120// API parameter values that are decorated as "sensitive" in the API will not
11121// be included in the string output. The member name will be present, but the
11122// value will be replaced with "sensitive".
11123func (s GetResolverQueryLogConfigInput) String() string {
11124	return awsutil.Prettify(s)
11125}
11126
11127// GoString returns the string representation.
11128//
11129// API parameter values that are decorated as "sensitive" in the API will not
11130// be included in the string output. The member name will be present, but the
11131// value will be replaced with "sensitive".
11132func (s GetResolverQueryLogConfigInput) GoString() string {
11133	return s.String()
11134}
11135
11136// Validate inspects the fields of the type to determine if they are valid.
11137func (s *GetResolverQueryLogConfigInput) Validate() error {
11138	invalidParams := request.ErrInvalidParams{Context: "GetResolverQueryLogConfigInput"}
11139	if s.ResolverQueryLogConfigId == nil {
11140		invalidParams.Add(request.NewErrParamRequired("ResolverQueryLogConfigId"))
11141	}
11142	if s.ResolverQueryLogConfigId != nil && len(*s.ResolverQueryLogConfigId) < 1 {
11143		invalidParams.Add(request.NewErrParamMinLen("ResolverQueryLogConfigId", 1))
11144	}
11145
11146	if invalidParams.Len() > 0 {
11147		return invalidParams
11148	}
11149	return nil
11150}
11151
11152// SetResolverQueryLogConfigId sets the ResolverQueryLogConfigId field's value.
11153func (s *GetResolverQueryLogConfigInput) SetResolverQueryLogConfigId(v string) *GetResolverQueryLogConfigInput {
11154	s.ResolverQueryLogConfigId = &v
11155	return s
11156}
11157
11158type GetResolverQueryLogConfigOutput struct {
11159	_ struct{} `type:"structure"`
11160
11161	// Information about the Resolver query logging configuration that you specified
11162	// in a GetQueryLogConfig request.
11163	ResolverQueryLogConfig *ResolverQueryLogConfig `type:"structure"`
11164}
11165
11166// String returns the string representation.
11167//
11168// API parameter values that are decorated as "sensitive" in the API will not
11169// be included in the string output. The member name will be present, but the
11170// value will be replaced with "sensitive".
11171func (s GetResolverQueryLogConfigOutput) String() string {
11172	return awsutil.Prettify(s)
11173}
11174
11175// GoString returns the string representation.
11176//
11177// API parameter values that are decorated as "sensitive" in the API will not
11178// be included in the string output. The member name will be present, but the
11179// value will be replaced with "sensitive".
11180func (s GetResolverQueryLogConfigOutput) GoString() string {
11181	return s.String()
11182}
11183
11184// SetResolverQueryLogConfig sets the ResolverQueryLogConfig field's value.
11185func (s *GetResolverQueryLogConfigOutput) SetResolverQueryLogConfig(v *ResolverQueryLogConfig) *GetResolverQueryLogConfigOutput {
11186	s.ResolverQueryLogConfig = v
11187	return s
11188}
11189
11190type GetResolverQueryLogConfigPolicyInput struct {
11191	_ struct{} `type:"structure"`
11192
11193	// The ARN of the query logging configuration that you want to get the query
11194	// logging policy for.
11195	//
11196	// Arn is a required field
11197	Arn *string `min:"1" type:"string" required:"true"`
11198}
11199
11200// String returns the string representation.
11201//
11202// API parameter values that are decorated as "sensitive" in the API will not
11203// be included in the string output. The member name will be present, but the
11204// value will be replaced with "sensitive".
11205func (s GetResolverQueryLogConfigPolicyInput) String() string {
11206	return awsutil.Prettify(s)
11207}
11208
11209// GoString returns the string representation.
11210//
11211// API parameter values that are decorated as "sensitive" in the API will not
11212// be included in the string output. The member name will be present, but the
11213// value will be replaced with "sensitive".
11214func (s GetResolverQueryLogConfigPolicyInput) GoString() string {
11215	return s.String()
11216}
11217
11218// Validate inspects the fields of the type to determine if they are valid.
11219func (s *GetResolverQueryLogConfigPolicyInput) Validate() error {
11220	invalidParams := request.ErrInvalidParams{Context: "GetResolverQueryLogConfigPolicyInput"}
11221	if s.Arn == nil {
11222		invalidParams.Add(request.NewErrParamRequired("Arn"))
11223	}
11224	if s.Arn != nil && len(*s.Arn) < 1 {
11225		invalidParams.Add(request.NewErrParamMinLen("Arn", 1))
11226	}
11227
11228	if invalidParams.Len() > 0 {
11229		return invalidParams
11230	}
11231	return nil
11232}
11233
11234// SetArn sets the Arn field's value.
11235func (s *GetResolverQueryLogConfigPolicyInput) SetArn(v string) *GetResolverQueryLogConfigPolicyInput {
11236	s.Arn = &v
11237	return s
11238}
11239
11240type GetResolverQueryLogConfigPolicyOutput struct {
11241	_ struct{} `type:"structure"`
11242
11243	// Information about the query logging policy for the query logging configuration
11244	// that you specified in a GetResolverQueryLogConfigPolicy request.
11245	ResolverQueryLogConfigPolicy *string `type:"string"`
11246}
11247
11248// String returns the string representation.
11249//
11250// API parameter values that are decorated as "sensitive" in the API will not
11251// be included in the string output. The member name will be present, but the
11252// value will be replaced with "sensitive".
11253func (s GetResolverQueryLogConfigPolicyOutput) String() string {
11254	return awsutil.Prettify(s)
11255}
11256
11257// GoString returns the string representation.
11258//
11259// API parameter values that are decorated as "sensitive" in the API will not
11260// be included in the string output. The member name will be present, but the
11261// value will be replaced with "sensitive".
11262func (s GetResolverQueryLogConfigPolicyOutput) GoString() string {
11263	return s.String()
11264}
11265
11266// SetResolverQueryLogConfigPolicy sets the ResolverQueryLogConfigPolicy field's value.
11267func (s *GetResolverQueryLogConfigPolicyOutput) SetResolverQueryLogConfigPolicy(v string) *GetResolverQueryLogConfigPolicyOutput {
11268	s.ResolverQueryLogConfigPolicy = &v
11269	return s
11270}
11271
11272type GetResolverRuleAssociationInput struct {
11273	_ struct{} `type:"structure"`
11274
11275	// The ID of the Resolver rule association that you want to get information
11276	// about.
11277	//
11278	// ResolverRuleAssociationId is a required field
11279	ResolverRuleAssociationId *string `min:"1" type:"string" required:"true"`
11280}
11281
11282// String returns the string representation.
11283//
11284// API parameter values that are decorated as "sensitive" in the API will not
11285// be included in the string output. The member name will be present, but the
11286// value will be replaced with "sensitive".
11287func (s GetResolverRuleAssociationInput) String() string {
11288	return awsutil.Prettify(s)
11289}
11290
11291// GoString returns the string representation.
11292//
11293// API parameter values that are decorated as "sensitive" in the API will not
11294// be included in the string output. The member name will be present, but the
11295// value will be replaced with "sensitive".
11296func (s GetResolverRuleAssociationInput) GoString() string {
11297	return s.String()
11298}
11299
11300// Validate inspects the fields of the type to determine if they are valid.
11301func (s *GetResolverRuleAssociationInput) Validate() error {
11302	invalidParams := request.ErrInvalidParams{Context: "GetResolverRuleAssociationInput"}
11303	if s.ResolverRuleAssociationId == nil {
11304		invalidParams.Add(request.NewErrParamRequired("ResolverRuleAssociationId"))
11305	}
11306	if s.ResolverRuleAssociationId != nil && len(*s.ResolverRuleAssociationId) < 1 {
11307		invalidParams.Add(request.NewErrParamMinLen("ResolverRuleAssociationId", 1))
11308	}
11309
11310	if invalidParams.Len() > 0 {
11311		return invalidParams
11312	}
11313	return nil
11314}
11315
11316// SetResolverRuleAssociationId sets the ResolverRuleAssociationId field's value.
11317func (s *GetResolverRuleAssociationInput) SetResolverRuleAssociationId(v string) *GetResolverRuleAssociationInput {
11318	s.ResolverRuleAssociationId = &v
11319	return s
11320}
11321
11322type GetResolverRuleAssociationOutput struct {
11323	_ struct{} `type:"structure"`
11324
11325	// Information about the Resolver rule association that you specified in a GetResolverRuleAssociation
11326	// request.
11327	ResolverRuleAssociation *ResolverRuleAssociation `type:"structure"`
11328}
11329
11330// String returns the string representation.
11331//
11332// API parameter values that are decorated as "sensitive" in the API will not
11333// be included in the string output. The member name will be present, but the
11334// value will be replaced with "sensitive".
11335func (s GetResolverRuleAssociationOutput) String() string {
11336	return awsutil.Prettify(s)
11337}
11338
11339// GoString returns the string representation.
11340//
11341// API parameter values that are decorated as "sensitive" in the API will not
11342// be included in the string output. The member name will be present, but the
11343// value will be replaced with "sensitive".
11344func (s GetResolverRuleAssociationOutput) GoString() string {
11345	return s.String()
11346}
11347
11348// SetResolverRuleAssociation sets the ResolverRuleAssociation field's value.
11349func (s *GetResolverRuleAssociationOutput) SetResolverRuleAssociation(v *ResolverRuleAssociation) *GetResolverRuleAssociationOutput {
11350	s.ResolverRuleAssociation = v
11351	return s
11352}
11353
11354type GetResolverRuleInput struct {
11355	_ struct{} `type:"structure"`
11356
11357	// The ID of the Resolver rule that you want to get information about.
11358	//
11359	// ResolverRuleId is a required field
11360	ResolverRuleId *string `min:"1" type:"string" required:"true"`
11361}
11362
11363// String returns the string representation.
11364//
11365// API parameter values that are decorated as "sensitive" in the API will not
11366// be included in the string output. The member name will be present, but the
11367// value will be replaced with "sensitive".
11368func (s GetResolverRuleInput) String() string {
11369	return awsutil.Prettify(s)
11370}
11371
11372// GoString returns the string representation.
11373//
11374// API parameter values that are decorated as "sensitive" in the API will not
11375// be included in the string output. The member name will be present, but the
11376// value will be replaced with "sensitive".
11377func (s GetResolverRuleInput) GoString() string {
11378	return s.String()
11379}
11380
11381// Validate inspects the fields of the type to determine if they are valid.
11382func (s *GetResolverRuleInput) Validate() error {
11383	invalidParams := request.ErrInvalidParams{Context: "GetResolverRuleInput"}
11384	if s.ResolverRuleId == nil {
11385		invalidParams.Add(request.NewErrParamRequired("ResolverRuleId"))
11386	}
11387	if s.ResolverRuleId != nil && len(*s.ResolverRuleId) < 1 {
11388		invalidParams.Add(request.NewErrParamMinLen("ResolverRuleId", 1))
11389	}
11390
11391	if invalidParams.Len() > 0 {
11392		return invalidParams
11393	}
11394	return nil
11395}
11396
11397// SetResolverRuleId sets the ResolverRuleId field's value.
11398func (s *GetResolverRuleInput) SetResolverRuleId(v string) *GetResolverRuleInput {
11399	s.ResolverRuleId = &v
11400	return s
11401}
11402
11403type GetResolverRuleOutput struct {
11404	_ struct{} `type:"structure"`
11405
11406	// Information about the Resolver rule that you specified in a GetResolverRule
11407	// request.
11408	ResolverRule *ResolverRule `type:"structure"`
11409}
11410
11411// String returns the string representation.
11412//
11413// API parameter values that are decorated as "sensitive" in the API will not
11414// be included in the string output. The member name will be present, but the
11415// value will be replaced with "sensitive".
11416func (s GetResolverRuleOutput) String() string {
11417	return awsutil.Prettify(s)
11418}
11419
11420// GoString returns the string representation.
11421//
11422// API parameter values that are decorated as "sensitive" in the API will not
11423// be included in the string output. The member name will be present, but the
11424// value will be replaced with "sensitive".
11425func (s GetResolverRuleOutput) GoString() string {
11426	return s.String()
11427}
11428
11429// SetResolverRule sets the ResolverRule field's value.
11430func (s *GetResolverRuleOutput) SetResolverRule(v *ResolverRule) *GetResolverRuleOutput {
11431	s.ResolverRule = v
11432	return s
11433}
11434
11435type GetResolverRulePolicyInput struct {
11436	_ struct{} `type:"structure"`
11437
11438	// The ID of the Resolver rule that you want to get the Resolver rule policy
11439	// for.
11440	//
11441	// Arn is a required field
11442	Arn *string `min:"1" type:"string" required:"true"`
11443}
11444
11445// String returns the string representation.
11446//
11447// API parameter values that are decorated as "sensitive" in the API will not
11448// be included in the string output. The member name will be present, but the
11449// value will be replaced with "sensitive".
11450func (s GetResolverRulePolicyInput) String() string {
11451	return awsutil.Prettify(s)
11452}
11453
11454// GoString returns the string representation.
11455//
11456// API parameter values that are decorated as "sensitive" in the API will not
11457// be included in the string output. The member name will be present, but the
11458// value will be replaced with "sensitive".
11459func (s GetResolverRulePolicyInput) GoString() string {
11460	return s.String()
11461}
11462
11463// Validate inspects the fields of the type to determine if they are valid.
11464func (s *GetResolverRulePolicyInput) Validate() error {
11465	invalidParams := request.ErrInvalidParams{Context: "GetResolverRulePolicyInput"}
11466	if s.Arn == nil {
11467		invalidParams.Add(request.NewErrParamRequired("Arn"))
11468	}
11469	if s.Arn != nil && len(*s.Arn) < 1 {
11470		invalidParams.Add(request.NewErrParamMinLen("Arn", 1))
11471	}
11472
11473	if invalidParams.Len() > 0 {
11474		return invalidParams
11475	}
11476	return nil
11477}
11478
11479// SetArn sets the Arn field's value.
11480func (s *GetResolverRulePolicyInput) SetArn(v string) *GetResolverRulePolicyInput {
11481	s.Arn = &v
11482	return s
11483}
11484
11485type GetResolverRulePolicyOutput struct {
11486	_ struct{} `type:"structure"`
11487
11488	// The Resolver rule policy for the rule that you specified in a GetResolverRulePolicy
11489	// request.
11490	ResolverRulePolicy *string `type:"string"`
11491}
11492
11493// String returns the string representation.
11494//
11495// API parameter values that are decorated as "sensitive" in the API will not
11496// be included in the string output. The member name will be present, but the
11497// value will be replaced with "sensitive".
11498func (s GetResolverRulePolicyOutput) String() string {
11499	return awsutil.Prettify(s)
11500}
11501
11502// GoString returns the string representation.
11503//
11504// API parameter values that are decorated as "sensitive" in the API will not
11505// be included in the string output. The member name will be present, but the
11506// value will be replaced with "sensitive".
11507func (s GetResolverRulePolicyOutput) GoString() string {
11508	return s.String()
11509}
11510
11511// SetResolverRulePolicy sets the ResolverRulePolicy field's value.
11512func (s *GetResolverRulePolicyOutput) SetResolverRulePolicy(v string) *GetResolverRulePolicyOutput {
11513	s.ResolverRulePolicy = &v
11514	return s
11515}
11516
11517type ImportFirewallDomainsInput struct {
11518	_ struct{} `type:"structure"`
11519
11520	// The fully qualified URL or URI of the file stored in Amazon Simple Storage
11521	// Service (Amazon S3) that contains the list of domains to import.
11522	//
11523	// The file must be in an S3 bucket that's in the same Region as your DNS Firewall.
11524	// The file must be a text file and must contain a single domain per line.
11525	//
11526	// DomainFileUrl is a required field
11527	DomainFileUrl *string `min:"1" type:"string" required:"true"`
11528
11529	// The ID of the domain list that you want to modify with the import operation.
11530	//
11531	// FirewallDomainListId is a required field
11532	FirewallDomainListId *string `min:"1" type:"string" required:"true"`
11533
11534	// What you want DNS Firewall to do with the domains that are listed in the
11535	// file. This must be set to REPLACE, which updates the domain list to exactly
11536	// match the list in the file.
11537	//
11538	// Operation is a required field
11539	Operation *string `type:"string" required:"true" enum:"FirewallDomainImportOperation"`
11540}
11541
11542// String returns the string representation.
11543//
11544// API parameter values that are decorated as "sensitive" in the API will not
11545// be included in the string output. The member name will be present, but the
11546// value will be replaced with "sensitive".
11547func (s ImportFirewallDomainsInput) String() string {
11548	return awsutil.Prettify(s)
11549}
11550
11551// GoString returns the string representation.
11552//
11553// API parameter values that are decorated as "sensitive" in the API will not
11554// be included in the string output. The member name will be present, but the
11555// value will be replaced with "sensitive".
11556func (s ImportFirewallDomainsInput) GoString() string {
11557	return s.String()
11558}
11559
11560// Validate inspects the fields of the type to determine if they are valid.
11561func (s *ImportFirewallDomainsInput) Validate() error {
11562	invalidParams := request.ErrInvalidParams{Context: "ImportFirewallDomainsInput"}
11563	if s.DomainFileUrl == nil {
11564		invalidParams.Add(request.NewErrParamRequired("DomainFileUrl"))
11565	}
11566	if s.DomainFileUrl != nil && len(*s.DomainFileUrl) < 1 {
11567		invalidParams.Add(request.NewErrParamMinLen("DomainFileUrl", 1))
11568	}
11569	if s.FirewallDomainListId == nil {
11570		invalidParams.Add(request.NewErrParamRequired("FirewallDomainListId"))
11571	}
11572	if s.FirewallDomainListId != nil && len(*s.FirewallDomainListId) < 1 {
11573		invalidParams.Add(request.NewErrParamMinLen("FirewallDomainListId", 1))
11574	}
11575	if s.Operation == nil {
11576		invalidParams.Add(request.NewErrParamRequired("Operation"))
11577	}
11578
11579	if invalidParams.Len() > 0 {
11580		return invalidParams
11581	}
11582	return nil
11583}
11584
11585// SetDomainFileUrl sets the DomainFileUrl field's value.
11586func (s *ImportFirewallDomainsInput) SetDomainFileUrl(v string) *ImportFirewallDomainsInput {
11587	s.DomainFileUrl = &v
11588	return s
11589}
11590
11591// SetFirewallDomainListId sets the FirewallDomainListId field's value.
11592func (s *ImportFirewallDomainsInput) SetFirewallDomainListId(v string) *ImportFirewallDomainsInput {
11593	s.FirewallDomainListId = &v
11594	return s
11595}
11596
11597// SetOperation sets the Operation field's value.
11598func (s *ImportFirewallDomainsInput) SetOperation(v string) *ImportFirewallDomainsInput {
11599	s.Operation = &v
11600	return s
11601}
11602
11603type ImportFirewallDomainsOutput struct {
11604	_ struct{} `type:"structure"`
11605
11606	// The Id of the firewall domain list that DNS Firewall just updated.
11607	Id *string `min:"1" type:"string"`
11608
11609	// The name of the domain list.
11610	Name *string `type:"string"`
11611
11612	Status *string `type:"string" enum:"FirewallDomainListStatus"`
11613
11614	// Additional information about the status of the list, if available.
11615	StatusMessage *string `type:"string"`
11616}
11617
11618// String returns the string representation.
11619//
11620// API parameter values that are decorated as "sensitive" in the API will not
11621// be included in the string output. The member name will be present, but the
11622// value will be replaced with "sensitive".
11623func (s ImportFirewallDomainsOutput) String() string {
11624	return awsutil.Prettify(s)
11625}
11626
11627// GoString returns the string representation.
11628//
11629// API parameter values that are decorated as "sensitive" in the API will not
11630// be included in the string output. The member name will be present, but the
11631// value will be replaced with "sensitive".
11632func (s ImportFirewallDomainsOutput) GoString() string {
11633	return s.String()
11634}
11635
11636// SetId sets the Id field's value.
11637func (s *ImportFirewallDomainsOutput) SetId(v string) *ImportFirewallDomainsOutput {
11638	s.Id = &v
11639	return s
11640}
11641
11642// SetName sets the Name field's value.
11643func (s *ImportFirewallDomainsOutput) SetName(v string) *ImportFirewallDomainsOutput {
11644	s.Name = &v
11645	return s
11646}
11647
11648// SetStatus sets the Status field's value.
11649func (s *ImportFirewallDomainsOutput) SetStatus(v string) *ImportFirewallDomainsOutput {
11650	s.Status = &v
11651	return s
11652}
11653
11654// SetStatusMessage sets the StatusMessage field's value.
11655func (s *ImportFirewallDomainsOutput) SetStatusMessage(v string) *ImportFirewallDomainsOutput {
11656	s.StatusMessage = &v
11657	return s
11658}
11659
11660// We encountered an unknown error. Try again in a few minutes.
11661type InternalServiceErrorException struct {
11662	_            struct{}                  `type:"structure"`
11663	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
11664
11665	Message_ *string `locationName:"Message" type:"string"`
11666}
11667
11668// String returns the string representation.
11669//
11670// API parameter values that are decorated as "sensitive" in the API will not
11671// be included in the string output. The member name will be present, but the
11672// value will be replaced with "sensitive".
11673func (s InternalServiceErrorException) String() string {
11674	return awsutil.Prettify(s)
11675}
11676
11677// GoString returns the string representation.
11678//
11679// API parameter values that are decorated as "sensitive" in the API will not
11680// be included in the string output. The member name will be present, but the
11681// value will be replaced with "sensitive".
11682func (s InternalServiceErrorException) GoString() string {
11683	return s.String()
11684}
11685
11686func newErrorInternalServiceErrorException(v protocol.ResponseMetadata) error {
11687	return &InternalServiceErrorException{
11688		RespMetadata: v,
11689	}
11690}
11691
11692// Code returns the exception type name.
11693func (s *InternalServiceErrorException) Code() string {
11694	return "InternalServiceErrorException"
11695}
11696
11697// Message returns the exception's message.
11698func (s *InternalServiceErrorException) Message() string {
11699	if s.Message_ != nil {
11700		return *s.Message_
11701	}
11702	return ""
11703}
11704
11705// OrigErr always returns nil, satisfies awserr.Error interface.
11706func (s *InternalServiceErrorException) OrigErr() error {
11707	return nil
11708}
11709
11710func (s *InternalServiceErrorException) Error() string {
11711	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
11712}
11713
11714// Status code returns the HTTP status code for the request's response error.
11715func (s *InternalServiceErrorException) StatusCode() int {
11716	return s.RespMetadata.StatusCode
11717}
11718
11719// RequestID returns the service's response RequestID for request.
11720func (s *InternalServiceErrorException) RequestID() string {
11721	return s.RespMetadata.RequestID
11722}
11723
11724// The value that you specified for NextToken in a List request isn't valid.
11725type InvalidNextTokenException struct {
11726	_            struct{}                  `type:"structure"`
11727	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
11728
11729	Message_ *string `locationName:"Message" type:"string"`
11730}
11731
11732// String returns the string representation.
11733//
11734// API parameter values that are decorated as "sensitive" in the API will not
11735// be included in the string output. The member name will be present, but the
11736// value will be replaced with "sensitive".
11737func (s InvalidNextTokenException) String() string {
11738	return awsutil.Prettify(s)
11739}
11740
11741// GoString returns the string representation.
11742//
11743// API parameter values that are decorated as "sensitive" in the API will not
11744// be included in the string output. The member name will be present, but the
11745// value will be replaced with "sensitive".
11746func (s InvalidNextTokenException) GoString() string {
11747	return s.String()
11748}
11749
11750func newErrorInvalidNextTokenException(v protocol.ResponseMetadata) error {
11751	return &InvalidNextTokenException{
11752		RespMetadata: v,
11753	}
11754}
11755
11756// Code returns the exception type name.
11757func (s *InvalidNextTokenException) Code() string {
11758	return "InvalidNextTokenException"
11759}
11760
11761// Message returns the exception's message.
11762func (s *InvalidNextTokenException) Message() string {
11763	if s.Message_ != nil {
11764		return *s.Message_
11765	}
11766	return ""
11767}
11768
11769// OrigErr always returns nil, satisfies awserr.Error interface.
11770func (s *InvalidNextTokenException) OrigErr() error {
11771	return nil
11772}
11773
11774func (s *InvalidNextTokenException) Error() string {
11775	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
11776}
11777
11778// Status code returns the HTTP status code for the request's response error.
11779func (s *InvalidNextTokenException) StatusCode() int {
11780	return s.RespMetadata.StatusCode
11781}
11782
11783// RequestID returns the service's response RequestID for request.
11784func (s *InvalidNextTokenException) RequestID() string {
11785	return s.RespMetadata.RequestID
11786}
11787
11788// One or more parameters in this request are not valid.
11789type InvalidParameterException struct {
11790	_            struct{}                  `type:"structure"`
11791	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
11792
11793	// For an InvalidParameterException error, the name of the parameter that's
11794	// invalid.
11795	FieldName *string `type:"string"`
11796
11797	Message_ *string `locationName:"Message" type:"string"`
11798}
11799
11800// String returns the string representation.
11801//
11802// API parameter values that are decorated as "sensitive" in the API will not
11803// be included in the string output. The member name will be present, but the
11804// value will be replaced with "sensitive".
11805func (s InvalidParameterException) String() string {
11806	return awsutil.Prettify(s)
11807}
11808
11809// GoString returns the string representation.
11810//
11811// API parameter values that are decorated as "sensitive" in the API will not
11812// be included in the string output. The member name will be present, but the
11813// value will be replaced with "sensitive".
11814func (s InvalidParameterException) GoString() string {
11815	return s.String()
11816}
11817
11818func newErrorInvalidParameterException(v protocol.ResponseMetadata) error {
11819	return &InvalidParameterException{
11820		RespMetadata: v,
11821	}
11822}
11823
11824// Code returns the exception type name.
11825func (s *InvalidParameterException) Code() string {
11826	return "InvalidParameterException"
11827}
11828
11829// Message returns the exception's message.
11830func (s *InvalidParameterException) Message() string {
11831	if s.Message_ != nil {
11832		return *s.Message_
11833	}
11834	return ""
11835}
11836
11837// OrigErr always returns nil, satisfies awserr.Error interface.
11838func (s *InvalidParameterException) OrigErr() error {
11839	return nil
11840}
11841
11842func (s *InvalidParameterException) Error() string {
11843	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
11844}
11845
11846// Status code returns the HTTP status code for the request's response error.
11847func (s *InvalidParameterException) StatusCode() int {
11848	return s.RespMetadata.StatusCode
11849}
11850
11851// RequestID returns the service's response RequestID for request.
11852func (s *InvalidParameterException) RequestID() string {
11853	return s.RespMetadata.RequestID
11854}
11855
11856// The specified Resolver rule policy is invalid.
11857type InvalidPolicyDocument struct {
11858	_            struct{}                  `type:"structure"`
11859	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
11860
11861	Message_ *string `locationName:"Message" type:"string"`
11862}
11863
11864// String returns the string representation.
11865//
11866// API parameter values that are decorated as "sensitive" in the API will not
11867// be included in the string output. The member name will be present, but the
11868// value will be replaced with "sensitive".
11869func (s InvalidPolicyDocument) String() string {
11870	return awsutil.Prettify(s)
11871}
11872
11873// GoString returns the string representation.
11874//
11875// API parameter values that are decorated as "sensitive" in the API will not
11876// be included in the string output. The member name will be present, but the
11877// value will be replaced with "sensitive".
11878func (s InvalidPolicyDocument) GoString() string {
11879	return s.String()
11880}
11881
11882func newErrorInvalidPolicyDocument(v protocol.ResponseMetadata) error {
11883	return &InvalidPolicyDocument{
11884		RespMetadata: v,
11885	}
11886}
11887
11888// Code returns the exception type name.
11889func (s *InvalidPolicyDocument) Code() string {
11890	return "InvalidPolicyDocument"
11891}
11892
11893// Message returns the exception's message.
11894func (s *InvalidPolicyDocument) Message() string {
11895	if s.Message_ != nil {
11896		return *s.Message_
11897	}
11898	return ""
11899}
11900
11901// OrigErr always returns nil, satisfies awserr.Error interface.
11902func (s *InvalidPolicyDocument) OrigErr() error {
11903	return nil
11904}
11905
11906func (s *InvalidPolicyDocument) Error() string {
11907	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
11908}
11909
11910// Status code returns the HTTP status code for the request's response error.
11911func (s *InvalidPolicyDocument) StatusCode() int {
11912	return s.RespMetadata.StatusCode
11913}
11914
11915// RequestID returns the service's response RequestID for request.
11916func (s *InvalidPolicyDocument) RequestID() string {
11917	return s.RespMetadata.RequestID
11918}
11919
11920// The request is invalid.
11921type InvalidRequestException struct {
11922	_            struct{}                  `type:"structure"`
11923	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
11924
11925	Message_ *string `locationName:"Message" type:"string"`
11926}
11927
11928// String returns the string representation.
11929//
11930// API parameter values that are decorated as "sensitive" in the API will not
11931// be included in the string output. The member name will be present, but the
11932// value will be replaced with "sensitive".
11933func (s InvalidRequestException) String() string {
11934	return awsutil.Prettify(s)
11935}
11936
11937// GoString returns the string representation.
11938//
11939// API parameter values that are decorated as "sensitive" in the API will not
11940// be included in the string output. The member name will be present, but the
11941// value will be replaced with "sensitive".
11942func (s InvalidRequestException) GoString() string {
11943	return s.String()
11944}
11945
11946func newErrorInvalidRequestException(v protocol.ResponseMetadata) error {
11947	return &InvalidRequestException{
11948		RespMetadata: v,
11949	}
11950}
11951
11952// Code returns the exception type name.
11953func (s *InvalidRequestException) Code() string {
11954	return "InvalidRequestException"
11955}
11956
11957// Message returns the exception's message.
11958func (s *InvalidRequestException) Message() string {
11959	if s.Message_ != nil {
11960		return *s.Message_
11961	}
11962	return ""
11963}
11964
11965// OrigErr always returns nil, satisfies awserr.Error interface.
11966func (s *InvalidRequestException) OrigErr() error {
11967	return nil
11968}
11969
11970func (s *InvalidRequestException) Error() string {
11971	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
11972}
11973
11974// Status code returns the HTTP status code for the request's response error.
11975func (s *InvalidRequestException) StatusCode() int {
11976	return s.RespMetadata.StatusCode
11977}
11978
11979// RequestID returns the service's response RequestID for request.
11980func (s *InvalidRequestException) RequestID() string {
11981	return s.RespMetadata.RequestID
11982}
11983
11984// The specified tag is invalid.
11985type InvalidTagException struct {
11986	_            struct{}                  `type:"structure"`
11987	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
11988
11989	Message_ *string `locationName:"Message" type:"string"`
11990}
11991
11992// String returns the string representation.
11993//
11994// API parameter values that are decorated as "sensitive" in the API will not
11995// be included in the string output. The member name will be present, but the
11996// value will be replaced with "sensitive".
11997func (s InvalidTagException) String() string {
11998	return awsutil.Prettify(s)
11999}
12000
12001// GoString returns the string representation.
12002//
12003// API parameter values that are decorated as "sensitive" in the API will not
12004// be included in the string output. The member name will be present, but the
12005// value will be replaced with "sensitive".
12006func (s InvalidTagException) GoString() string {
12007	return s.String()
12008}
12009
12010func newErrorInvalidTagException(v protocol.ResponseMetadata) error {
12011	return &InvalidTagException{
12012		RespMetadata: v,
12013	}
12014}
12015
12016// Code returns the exception type name.
12017func (s *InvalidTagException) Code() string {
12018	return "InvalidTagException"
12019}
12020
12021// Message returns the exception's message.
12022func (s *InvalidTagException) Message() string {
12023	if s.Message_ != nil {
12024		return *s.Message_
12025	}
12026	return ""
12027}
12028
12029// OrigErr always returns nil, satisfies awserr.Error interface.
12030func (s *InvalidTagException) OrigErr() error {
12031	return nil
12032}
12033
12034func (s *InvalidTagException) Error() string {
12035	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
12036}
12037
12038// Status code returns the HTTP status code for the request's response error.
12039func (s *InvalidTagException) StatusCode() int {
12040	return s.RespMetadata.StatusCode
12041}
12042
12043// RequestID returns the service's response RequestID for request.
12044func (s *InvalidTagException) RequestID() string {
12045	return s.RespMetadata.RequestID
12046}
12047
12048// In a CreateResolverEndpoint (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_CreateResolverEndpoint.html)
12049// request, the IP address that DNS queries originate from (for outbound endpoints)
12050// or that you forward DNS queries to (for inbound endpoints). IpAddressRequest
12051// also includes the ID of the subnet that contains the IP address.
12052type IpAddressRequest struct {
12053	_ struct{} `type:"structure"`
12054
12055	// The IP address that you want to use for DNS queries.
12056	Ip *string `min:"7" type:"string"`
12057
12058	// The ID of the subnet that contains the IP address.
12059	//
12060	// SubnetId is a required field
12061	SubnetId *string `min:"1" type:"string" required:"true"`
12062}
12063
12064// String returns the string representation.
12065//
12066// API parameter values that are decorated as "sensitive" in the API will not
12067// be included in the string output. The member name will be present, but the
12068// value will be replaced with "sensitive".
12069func (s IpAddressRequest) String() string {
12070	return awsutil.Prettify(s)
12071}
12072
12073// GoString returns the string representation.
12074//
12075// API parameter values that are decorated as "sensitive" in the API will not
12076// be included in the string output. The member name will be present, but the
12077// value will be replaced with "sensitive".
12078func (s IpAddressRequest) GoString() string {
12079	return s.String()
12080}
12081
12082// Validate inspects the fields of the type to determine if they are valid.
12083func (s *IpAddressRequest) Validate() error {
12084	invalidParams := request.ErrInvalidParams{Context: "IpAddressRequest"}
12085	if s.Ip != nil && len(*s.Ip) < 7 {
12086		invalidParams.Add(request.NewErrParamMinLen("Ip", 7))
12087	}
12088	if s.SubnetId == nil {
12089		invalidParams.Add(request.NewErrParamRequired("SubnetId"))
12090	}
12091	if s.SubnetId != nil && len(*s.SubnetId) < 1 {
12092		invalidParams.Add(request.NewErrParamMinLen("SubnetId", 1))
12093	}
12094
12095	if invalidParams.Len() > 0 {
12096		return invalidParams
12097	}
12098	return nil
12099}
12100
12101// SetIp sets the Ip field's value.
12102func (s *IpAddressRequest) SetIp(v string) *IpAddressRequest {
12103	s.Ip = &v
12104	return s
12105}
12106
12107// SetSubnetId sets the SubnetId field's value.
12108func (s *IpAddressRequest) SetSubnetId(v string) *IpAddressRequest {
12109	s.SubnetId = &v
12110	return s
12111}
12112
12113// In the response to a GetResolverEndpoint (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverEndpoint.html)
12114// request, information about the IP addresses that the Resolver endpoint uses
12115// for DNS queries.
12116type IpAddressResponse struct {
12117	_ struct{} `type:"structure"`
12118
12119	// The date and time that the IP address was created, in Unix time format and
12120	// Coordinated Universal Time (UTC).
12121	CreationTime *string `min:"20" type:"string"`
12122
12123	// One IP address that the Resolver endpoint uses for DNS queries.
12124	Ip *string `min:"7" type:"string"`
12125
12126	// The ID of one IP address.
12127	IpId *string `min:"1" type:"string"`
12128
12129	// The date and time that the IP address was last modified, in Unix time format
12130	// and Coordinated Universal Time (UTC).
12131	ModificationTime *string `min:"20" type:"string"`
12132
12133	// A status code that gives the current status of the request.
12134	Status *string `type:"string" enum:"IpAddressStatus"`
12135
12136	// A message that provides additional information about the status of the request.
12137	StatusMessage *string `type:"string"`
12138
12139	// The ID of one subnet.
12140	SubnetId *string `min:"1" type:"string"`
12141}
12142
12143// String returns the string representation.
12144//
12145// API parameter values that are decorated as "sensitive" in the API will not
12146// be included in the string output. The member name will be present, but the
12147// value will be replaced with "sensitive".
12148func (s IpAddressResponse) String() string {
12149	return awsutil.Prettify(s)
12150}
12151
12152// GoString returns the string representation.
12153//
12154// API parameter values that are decorated as "sensitive" in the API will not
12155// be included in the string output. The member name will be present, but the
12156// value will be replaced with "sensitive".
12157func (s IpAddressResponse) GoString() string {
12158	return s.String()
12159}
12160
12161// SetCreationTime sets the CreationTime field's value.
12162func (s *IpAddressResponse) SetCreationTime(v string) *IpAddressResponse {
12163	s.CreationTime = &v
12164	return s
12165}
12166
12167// SetIp sets the Ip field's value.
12168func (s *IpAddressResponse) SetIp(v string) *IpAddressResponse {
12169	s.Ip = &v
12170	return s
12171}
12172
12173// SetIpId sets the IpId field's value.
12174func (s *IpAddressResponse) SetIpId(v string) *IpAddressResponse {
12175	s.IpId = &v
12176	return s
12177}
12178
12179// SetModificationTime sets the ModificationTime field's value.
12180func (s *IpAddressResponse) SetModificationTime(v string) *IpAddressResponse {
12181	s.ModificationTime = &v
12182	return s
12183}
12184
12185// SetStatus sets the Status field's value.
12186func (s *IpAddressResponse) SetStatus(v string) *IpAddressResponse {
12187	s.Status = &v
12188	return s
12189}
12190
12191// SetStatusMessage sets the StatusMessage field's value.
12192func (s *IpAddressResponse) SetStatusMessage(v string) *IpAddressResponse {
12193	s.StatusMessage = &v
12194	return s
12195}
12196
12197// SetSubnetId sets the SubnetId field's value.
12198func (s *IpAddressResponse) SetSubnetId(v string) *IpAddressResponse {
12199	s.SubnetId = &v
12200	return s
12201}
12202
12203// In an UpdateResolverEndpoint (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_UpdateResolverEndpoint.html)
12204// request, information about an IP address to update.
12205type IpAddressUpdate struct {
12206	_ struct{} `type:"structure"`
12207
12208	// The new IP address.
12209	Ip *string `min:"7" type:"string"`
12210
12211	// Only when removing an IP address from a Resolver endpoint: The ID of the
12212	// IP address that you want to remove. To get this ID, use GetResolverEndpoint
12213	// (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverEndpoint.html).
12214	IpId *string `min:"1" type:"string"`
12215
12216	// The ID of the subnet that includes the IP address that you want to update.
12217	// To get this ID, use GetResolverEndpoint (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverEndpoint.html).
12218	SubnetId *string `min:"1" type:"string"`
12219}
12220
12221// String returns the string representation.
12222//
12223// API parameter values that are decorated as "sensitive" in the API will not
12224// be included in the string output. The member name will be present, but the
12225// value will be replaced with "sensitive".
12226func (s IpAddressUpdate) String() string {
12227	return awsutil.Prettify(s)
12228}
12229
12230// GoString returns the string representation.
12231//
12232// API parameter values that are decorated as "sensitive" in the API will not
12233// be included in the string output. The member name will be present, but the
12234// value will be replaced with "sensitive".
12235func (s IpAddressUpdate) GoString() string {
12236	return s.String()
12237}
12238
12239// Validate inspects the fields of the type to determine if they are valid.
12240func (s *IpAddressUpdate) Validate() error {
12241	invalidParams := request.ErrInvalidParams{Context: "IpAddressUpdate"}
12242	if s.Ip != nil && len(*s.Ip) < 7 {
12243		invalidParams.Add(request.NewErrParamMinLen("Ip", 7))
12244	}
12245	if s.IpId != nil && len(*s.IpId) < 1 {
12246		invalidParams.Add(request.NewErrParamMinLen("IpId", 1))
12247	}
12248	if s.SubnetId != nil && len(*s.SubnetId) < 1 {
12249		invalidParams.Add(request.NewErrParamMinLen("SubnetId", 1))
12250	}
12251
12252	if invalidParams.Len() > 0 {
12253		return invalidParams
12254	}
12255	return nil
12256}
12257
12258// SetIp sets the Ip field's value.
12259func (s *IpAddressUpdate) SetIp(v string) *IpAddressUpdate {
12260	s.Ip = &v
12261	return s
12262}
12263
12264// SetIpId sets the IpId field's value.
12265func (s *IpAddressUpdate) SetIpId(v string) *IpAddressUpdate {
12266	s.IpId = &v
12267	return s
12268}
12269
12270// SetSubnetId sets the SubnetId field's value.
12271func (s *IpAddressUpdate) SetSubnetId(v string) *IpAddressUpdate {
12272	s.SubnetId = &v
12273	return s
12274}
12275
12276// The request caused one or more limits to be exceeded.
12277type LimitExceededException struct {
12278	_            struct{}                  `type:"structure"`
12279	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
12280
12281	Message_ *string `locationName:"Message" type:"string"`
12282
12283	// For a LimitExceededException error, the type of resource that exceeded the
12284	// current limit.
12285	ResourceType *string `type:"string"`
12286}
12287
12288// String returns the string representation.
12289//
12290// API parameter values that are decorated as "sensitive" in the API will not
12291// be included in the string output. The member name will be present, but the
12292// value will be replaced with "sensitive".
12293func (s LimitExceededException) String() string {
12294	return awsutil.Prettify(s)
12295}
12296
12297// GoString returns the string representation.
12298//
12299// API parameter values that are decorated as "sensitive" in the API will not
12300// be included in the string output. The member name will be present, but the
12301// value will be replaced with "sensitive".
12302func (s LimitExceededException) GoString() string {
12303	return s.String()
12304}
12305
12306func newErrorLimitExceededException(v protocol.ResponseMetadata) error {
12307	return &LimitExceededException{
12308		RespMetadata: v,
12309	}
12310}
12311
12312// Code returns the exception type name.
12313func (s *LimitExceededException) Code() string {
12314	return "LimitExceededException"
12315}
12316
12317// Message returns the exception's message.
12318func (s *LimitExceededException) Message() string {
12319	if s.Message_ != nil {
12320		return *s.Message_
12321	}
12322	return ""
12323}
12324
12325// OrigErr always returns nil, satisfies awserr.Error interface.
12326func (s *LimitExceededException) OrigErr() error {
12327	return nil
12328}
12329
12330func (s *LimitExceededException) Error() string {
12331	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
12332}
12333
12334// Status code returns the HTTP status code for the request's response error.
12335func (s *LimitExceededException) StatusCode() int {
12336	return s.RespMetadata.StatusCode
12337}
12338
12339// RequestID returns the service's response RequestID for request.
12340func (s *LimitExceededException) RequestID() string {
12341	return s.RespMetadata.RequestID
12342}
12343
12344type ListFirewallConfigsInput struct {
12345	_ struct{} `type:"structure"`
12346
12347	// The maximum number of objects that you want Resolver to return for this request.
12348	// If more objects are available, in the response, Resolver provides a NextToken
12349	// value that you can use in a subsequent call to get the next batch of objects.
12350	//
12351	// If you don't specify a value for MaxResults, Resolver returns up to 100 objects.
12352	MaxResults *int64 `min:"5" type:"integer"`
12353
12354	// For the first call to this list request, omit this value.
12355	//
12356	// When you request a list of objects, Resolver returns at most the number of
12357	// objects specified in MaxResults. If more objects are available for retrieval,
12358	// Resolver returns a NextToken value in the response. To retrieve the next
12359	// batch of objects, use the token that was returned for the prior request in
12360	// your next request.
12361	NextToken *string `type:"string"`
12362}
12363
12364// String returns the string representation.
12365//
12366// API parameter values that are decorated as "sensitive" in the API will not
12367// be included in the string output. The member name will be present, but the
12368// value will be replaced with "sensitive".
12369func (s ListFirewallConfigsInput) String() string {
12370	return awsutil.Prettify(s)
12371}
12372
12373// GoString returns the string representation.
12374//
12375// API parameter values that are decorated as "sensitive" in the API will not
12376// be included in the string output. The member name will be present, but the
12377// value will be replaced with "sensitive".
12378func (s ListFirewallConfigsInput) GoString() string {
12379	return s.String()
12380}
12381
12382// Validate inspects the fields of the type to determine if they are valid.
12383func (s *ListFirewallConfigsInput) Validate() error {
12384	invalidParams := request.ErrInvalidParams{Context: "ListFirewallConfigsInput"}
12385	if s.MaxResults != nil && *s.MaxResults < 5 {
12386		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 5))
12387	}
12388
12389	if invalidParams.Len() > 0 {
12390		return invalidParams
12391	}
12392	return nil
12393}
12394
12395// SetMaxResults sets the MaxResults field's value.
12396func (s *ListFirewallConfigsInput) SetMaxResults(v int64) *ListFirewallConfigsInput {
12397	s.MaxResults = &v
12398	return s
12399}
12400
12401// SetNextToken sets the NextToken field's value.
12402func (s *ListFirewallConfigsInput) SetNextToken(v string) *ListFirewallConfigsInput {
12403	s.NextToken = &v
12404	return s
12405}
12406
12407type ListFirewallConfigsOutput struct {
12408	_ struct{} `type:"structure"`
12409
12410	// The configurations for the firewall behavior provided by DNS Firewall for
12411	// VPCs from Amazon Virtual Private Cloud (Amazon VPC).
12412	FirewallConfigs []*FirewallConfig `type:"list"`
12413
12414	// If objects are still available for retrieval, Resolver returns this token
12415	// in the response. To retrieve the next batch of objects, provide this token
12416	// in your next request.
12417	NextToken *string `type:"string"`
12418}
12419
12420// String returns the string representation.
12421//
12422// API parameter values that are decorated as "sensitive" in the API will not
12423// be included in the string output. The member name will be present, but the
12424// value will be replaced with "sensitive".
12425func (s ListFirewallConfigsOutput) String() string {
12426	return awsutil.Prettify(s)
12427}
12428
12429// GoString returns the string representation.
12430//
12431// API parameter values that are decorated as "sensitive" in the API will not
12432// be included in the string output. The member name will be present, but the
12433// value will be replaced with "sensitive".
12434func (s ListFirewallConfigsOutput) GoString() string {
12435	return s.String()
12436}
12437
12438// SetFirewallConfigs sets the FirewallConfigs field's value.
12439func (s *ListFirewallConfigsOutput) SetFirewallConfigs(v []*FirewallConfig) *ListFirewallConfigsOutput {
12440	s.FirewallConfigs = v
12441	return s
12442}
12443
12444// SetNextToken sets the NextToken field's value.
12445func (s *ListFirewallConfigsOutput) SetNextToken(v string) *ListFirewallConfigsOutput {
12446	s.NextToken = &v
12447	return s
12448}
12449
12450type ListFirewallDomainListsInput struct {
12451	_ struct{} `type:"structure"`
12452
12453	// The maximum number of objects that you want Resolver to return for this request.
12454	// If more objects are available, in the response, Resolver provides a NextToken
12455	// value that you can use in a subsequent call to get the next batch of objects.
12456	//
12457	// If you don't specify a value for MaxResults, Resolver returns up to 100 objects.
12458	MaxResults *int64 `min:"1" type:"integer"`
12459
12460	// For the first call to this list request, omit this value.
12461	//
12462	// When you request a list of objects, Resolver returns at most the number of
12463	// objects specified in MaxResults. If more objects are available for retrieval,
12464	// Resolver returns a NextToken value in the response. To retrieve the next
12465	// batch of objects, use the token that was returned for the prior request in
12466	// your next request.
12467	NextToken *string `type:"string"`
12468}
12469
12470// String returns the string representation.
12471//
12472// API parameter values that are decorated as "sensitive" in the API will not
12473// be included in the string output. The member name will be present, but the
12474// value will be replaced with "sensitive".
12475func (s ListFirewallDomainListsInput) String() string {
12476	return awsutil.Prettify(s)
12477}
12478
12479// GoString returns the string representation.
12480//
12481// API parameter values that are decorated as "sensitive" in the API will not
12482// be included in the string output. The member name will be present, but the
12483// value will be replaced with "sensitive".
12484func (s ListFirewallDomainListsInput) GoString() string {
12485	return s.String()
12486}
12487
12488// Validate inspects the fields of the type to determine if they are valid.
12489func (s *ListFirewallDomainListsInput) Validate() error {
12490	invalidParams := request.ErrInvalidParams{Context: "ListFirewallDomainListsInput"}
12491	if s.MaxResults != nil && *s.MaxResults < 1 {
12492		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
12493	}
12494
12495	if invalidParams.Len() > 0 {
12496		return invalidParams
12497	}
12498	return nil
12499}
12500
12501// SetMaxResults sets the MaxResults field's value.
12502func (s *ListFirewallDomainListsInput) SetMaxResults(v int64) *ListFirewallDomainListsInput {
12503	s.MaxResults = &v
12504	return s
12505}
12506
12507// SetNextToken sets the NextToken field's value.
12508func (s *ListFirewallDomainListsInput) SetNextToken(v string) *ListFirewallDomainListsInput {
12509	s.NextToken = &v
12510	return s
12511}
12512
12513type ListFirewallDomainListsOutput struct {
12514	_ struct{} `type:"structure"`
12515
12516	// A list of the domain lists that you have defined.
12517	//
12518	// This might be a partial list of the domain lists that you've defined. For
12519	// information, see MaxResults.
12520	FirewallDomainLists []*FirewallDomainListMetadata `type:"list"`
12521
12522	// If objects are still available for retrieval, Resolver returns this token
12523	// in the response. To retrieve the next batch of objects, provide this token
12524	// in your next request.
12525	NextToken *string `type:"string"`
12526}
12527
12528// String returns the string representation.
12529//
12530// API parameter values that are decorated as "sensitive" in the API will not
12531// be included in the string output. The member name will be present, but the
12532// value will be replaced with "sensitive".
12533func (s ListFirewallDomainListsOutput) String() string {
12534	return awsutil.Prettify(s)
12535}
12536
12537// GoString returns the string representation.
12538//
12539// API parameter values that are decorated as "sensitive" in the API will not
12540// be included in the string output. The member name will be present, but the
12541// value will be replaced with "sensitive".
12542func (s ListFirewallDomainListsOutput) GoString() string {
12543	return s.String()
12544}
12545
12546// SetFirewallDomainLists sets the FirewallDomainLists field's value.
12547func (s *ListFirewallDomainListsOutput) SetFirewallDomainLists(v []*FirewallDomainListMetadata) *ListFirewallDomainListsOutput {
12548	s.FirewallDomainLists = v
12549	return s
12550}
12551
12552// SetNextToken sets the NextToken field's value.
12553func (s *ListFirewallDomainListsOutput) SetNextToken(v string) *ListFirewallDomainListsOutput {
12554	s.NextToken = &v
12555	return s
12556}
12557
12558type ListFirewallDomainsInput struct {
12559	_ struct{} `type:"structure"`
12560
12561	// The ID of the domain list whose domains you want to retrieve.
12562	//
12563	// FirewallDomainListId is a required field
12564	FirewallDomainListId *string `min:"1" type:"string" required:"true"`
12565
12566	// The maximum number of objects that you want Resolver to return for this request.
12567	// If more objects are available, in the response, Resolver provides a NextToken
12568	// value that you can use in a subsequent call to get the next batch of objects.
12569	//
12570	// If you don't specify a value for MaxResults, Resolver returns up to 100 objects.
12571	MaxResults *int64 `min:"1" type:"integer"`
12572
12573	// For the first call to this list request, omit this value.
12574	//
12575	// When you request a list of objects, Resolver returns at most the number of
12576	// objects specified in MaxResults. If more objects are available for retrieval,
12577	// Resolver returns a NextToken value in the response. To retrieve the next
12578	// batch of objects, use the token that was returned for the prior request in
12579	// your next request.
12580	NextToken *string `type:"string"`
12581}
12582
12583// String returns the string representation.
12584//
12585// API parameter values that are decorated as "sensitive" in the API will not
12586// be included in the string output. The member name will be present, but the
12587// value will be replaced with "sensitive".
12588func (s ListFirewallDomainsInput) String() string {
12589	return awsutil.Prettify(s)
12590}
12591
12592// GoString returns the string representation.
12593//
12594// API parameter values that are decorated as "sensitive" in the API will not
12595// be included in the string output. The member name will be present, but the
12596// value will be replaced with "sensitive".
12597func (s ListFirewallDomainsInput) GoString() string {
12598	return s.String()
12599}
12600
12601// Validate inspects the fields of the type to determine if they are valid.
12602func (s *ListFirewallDomainsInput) Validate() error {
12603	invalidParams := request.ErrInvalidParams{Context: "ListFirewallDomainsInput"}
12604	if s.FirewallDomainListId == nil {
12605		invalidParams.Add(request.NewErrParamRequired("FirewallDomainListId"))
12606	}
12607	if s.FirewallDomainListId != nil && len(*s.FirewallDomainListId) < 1 {
12608		invalidParams.Add(request.NewErrParamMinLen("FirewallDomainListId", 1))
12609	}
12610	if s.MaxResults != nil && *s.MaxResults < 1 {
12611		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
12612	}
12613
12614	if invalidParams.Len() > 0 {
12615		return invalidParams
12616	}
12617	return nil
12618}
12619
12620// SetFirewallDomainListId sets the FirewallDomainListId field's value.
12621func (s *ListFirewallDomainsInput) SetFirewallDomainListId(v string) *ListFirewallDomainsInput {
12622	s.FirewallDomainListId = &v
12623	return s
12624}
12625
12626// SetMaxResults sets the MaxResults field's value.
12627func (s *ListFirewallDomainsInput) SetMaxResults(v int64) *ListFirewallDomainsInput {
12628	s.MaxResults = &v
12629	return s
12630}
12631
12632// SetNextToken sets the NextToken field's value.
12633func (s *ListFirewallDomainsInput) SetNextToken(v string) *ListFirewallDomainsInput {
12634	s.NextToken = &v
12635	return s
12636}
12637
12638type ListFirewallDomainsOutput struct {
12639	_ struct{} `type:"structure"`
12640
12641	// A list of the domains in the firewall domain list.
12642	//
12643	// This might be a partial list of the domains that you've defined in the domain
12644	// list. For information, see MaxResults.
12645	Domains []*string `type:"list"`
12646
12647	// If objects are still available for retrieval, Resolver returns this token
12648	// in the response. To retrieve the next batch of objects, provide this token
12649	// in your next request.
12650	NextToken *string `type:"string"`
12651}
12652
12653// String returns the string representation.
12654//
12655// API parameter values that are decorated as "sensitive" in the API will not
12656// be included in the string output. The member name will be present, but the
12657// value will be replaced with "sensitive".
12658func (s ListFirewallDomainsOutput) String() string {
12659	return awsutil.Prettify(s)
12660}
12661
12662// GoString returns the string representation.
12663//
12664// API parameter values that are decorated as "sensitive" in the API will not
12665// be included in the string output. The member name will be present, but the
12666// value will be replaced with "sensitive".
12667func (s ListFirewallDomainsOutput) GoString() string {
12668	return s.String()
12669}
12670
12671// SetDomains sets the Domains field's value.
12672func (s *ListFirewallDomainsOutput) SetDomains(v []*string) *ListFirewallDomainsOutput {
12673	s.Domains = v
12674	return s
12675}
12676
12677// SetNextToken sets the NextToken field's value.
12678func (s *ListFirewallDomainsOutput) SetNextToken(v string) *ListFirewallDomainsOutput {
12679	s.NextToken = &v
12680	return s
12681}
12682
12683type ListFirewallRuleGroupAssociationsInput struct {
12684	_ struct{} `type:"structure"`
12685
12686	// The unique identifier of the firewall rule group that you want to retrieve
12687	// the associations for. Leave this blank to retrieve associations for any rule
12688	// group.
12689	FirewallRuleGroupId *string `min:"1" type:"string"`
12690
12691	// The maximum number of objects that you want Resolver to return for this request.
12692	// If more objects are available, in the response, Resolver provides a NextToken
12693	// value that you can use in a subsequent call to get the next batch of objects.
12694	//
12695	// If you don't specify a value for MaxResults, Resolver returns up to 100 objects.
12696	MaxResults *int64 `min:"1" type:"integer"`
12697
12698	// For the first call to this list request, omit this value.
12699	//
12700	// When you request a list of objects, Resolver returns at most the number of
12701	// objects specified in MaxResults. If more objects are available for retrieval,
12702	// Resolver returns a NextToken value in the response. To retrieve the next
12703	// batch of objects, use the token that was returned for the prior request in
12704	// your next request.
12705	NextToken *string `type:"string"`
12706
12707	// The setting that determines the processing order of the rule group among
12708	// the rule groups that are associated with a single VPC. DNS Firewall filters
12709	// VPC traffic starting from the rule group with the lowest numeric priority
12710	// setting.
12711	Priority *int64 `type:"integer"`
12712
12713	// The association Status setting that you want DNS Firewall to filter on for
12714	// the list. If you don't specify this, then DNS Firewall returns all associations,
12715	// regardless of status.
12716	Status *string `type:"string" enum:"FirewallRuleGroupAssociationStatus"`
12717
12718	// The unique identifier of the VPC that you want to retrieve the associations
12719	// for. Leave this blank to retrieve associations for any VPC.
12720	VpcId *string `min:"1" type:"string"`
12721}
12722
12723// String returns the string representation.
12724//
12725// API parameter values that are decorated as "sensitive" in the API will not
12726// be included in the string output. The member name will be present, but the
12727// value will be replaced with "sensitive".
12728func (s ListFirewallRuleGroupAssociationsInput) String() string {
12729	return awsutil.Prettify(s)
12730}
12731
12732// GoString returns the string representation.
12733//
12734// API parameter values that are decorated as "sensitive" in the API will not
12735// be included in the string output. The member name will be present, but the
12736// value will be replaced with "sensitive".
12737func (s ListFirewallRuleGroupAssociationsInput) GoString() string {
12738	return s.String()
12739}
12740
12741// Validate inspects the fields of the type to determine if they are valid.
12742func (s *ListFirewallRuleGroupAssociationsInput) Validate() error {
12743	invalidParams := request.ErrInvalidParams{Context: "ListFirewallRuleGroupAssociationsInput"}
12744	if s.FirewallRuleGroupId != nil && len(*s.FirewallRuleGroupId) < 1 {
12745		invalidParams.Add(request.NewErrParamMinLen("FirewallRuleGroupId", 1))
12746	}
12747	if s.MaxResults != nil && *s.MaxResults < 1 {
12748		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
12749	}
12750	if s.VpcId != nil && len(*s.VpcId) < 1 {
12751		invalidParams.Add(request.NewErrParamMinLen("VpcId", 1))
12752	}
12753
12754	if invalidParams.Len() > 0 {
12755		return invalidParams
12756	}
12757	return nil
12758}
12759
12760// SetFirewallRuleGroupId sets the FirewallRuleGroupId field's value.
12761func (s *ListFirewallRuleGroupAssociationsInput) SetFirewallRuleGroupId(v string) *ListFirewallRuleGroupAssociationsInput {
12762	s.FirewallRuleGroupId = &v
12763	return s
12764}
12765
12766// SetMaxResults sets the MaxResults field's value.
12767func (s *ListFirewallRuleGroupAssociationsInput) SetMaxResults(v int64) *ListFirewallRuleGroupAssociationsInput {
12768	s.MaxResults = &v
12769	return s
12770}
12771
12772// SetNextToken sets the NextToken field's value.
12773func (s *ListFirewallRuleGroupAssociationsInput) SetNextToken(v string) *ListFirewallRuleGroupAssociationsInput {
12774	s.NextToken = &v
12775	return s
12776}
12777
12778// SetPriority sets the Priority field's value.
12779func (s *ListFirewallRuleGroupAssociationsInput) SetPriority(v int64) *ListFirewallRuleGroupAssociationsInput {
12780	s.Priority = &v
12781	return s
12782}
12783
12784// SetStatus sets the Status field's value.
12785func (s *ListFirewallRuleGroupAssociationsInput) SetStatus(v string) *ListFirewallRuleGroupAssociationsInput {
12786	s.Status = &v
12787	return s
12788}
12789
12790// SetVpcId sets the VpcId field's value.
12791func (s *ListFirewallRuleGroupAssociationsInput) SetVpcId(v string) *ListFirewallRuleGroupAssociationsInput {
12792	s.VpcId = &v
12793	return s
12794}
12795
12796type ListFirewallRuleGroupAssociationsOutput struct {
12797	_ struct{} `type:"structure"`
12798
12799	// A list of your firewall rule group associations.
12800	//
12801	// This might be a partial list of the associations that you have defined. For
12802	// information, see MaxResults.
12803	FirewallRuleGroupAssociations []*FirewallRuleGroupAssociation `type:"list"`
12804
12805	// If objects are still available for retrieval, Resolver returns this token
12806	// in the response. To retrieve the next batch of objects, provide this token
12807	// in your next request.
12808	NextToken *string `type:"string"`
12809}
12810
12811// String returns the string representation.
12812//
12813// API parameter values that are decorated as "sensitive" in the API will not
12814// be included in the string output. The member name will be present, but the
12815// value will be replaced with "sensitive".
12816func (s ListFirewallRuleGroupAssociationsOutput) String() string {
12817	return awsutil.Prettify(s)
12818}
12819
12820// GoString returns the string representation.
12821//
12822// API parameter values that are decorated as "sensitive" in the API will not
12823// be included in the string output. The member name will be present, but the
12824// value will be replaced with "sensitive".
12825func (s ListFirewallRuleGroupAssociationsOutput) GoString() string {
12826	return s.String()
12827}
12828
12829// SetFirewallRuleGroupAssociations sets the FirewallRuleGroupAssociations field's value.
12830func (s *ListFirewallRuleGroupAssociationsOutput) SetFirewallRuleGroupAssociations(v []*FirewallRuleGroupAssociation) *ListFirewallRuleGroupAssociationsOutput {
12831	s.FirewallRuleGroupAssociations = v
12832	return s
12833}
12834
12835// SetNextToken sets the NextToken field's value.
12836func (s *ListFirewallRuleGroupAssociationsOutput) SetNextToken(v string) *ListFirewallRuleGroupAssociationsOutput {
12837	s.NextToken = &v
12838	return s
12839}
12840
12841type ListFirewallRuleGroupsInput struct {
12842	_ struct{} `type:"structure"`
12843
12844	// The maximum number of objects that you want Resolver to return for this request.
12845	// If more objects are available, in the response, Resolver provides a NextToken
12846	// value that you can use in a subsequent call to get the next batch of objects.
12847	//
12848	// If you don't specify a value for MaxResults, Resolver returns up to 100 objects.
12849	MaxResults *int64 `min:"1" type:"integer"`
12850
12851	// For the first call to this list request, omit this value.
12852	//
12853	// When you request a list of objects, Resolver returns at most the number of
12854	// objects specified in MaxResults. If more objects are available for retrieval,
12855	// Resolver returns a NextToken value in the response. To retrieve the next
12856	// batch of objects, use the token that was returned for the prior request in
12857	// your next request.
12858	NextToken *string `type:"string"`
12859}
12860
12861// String returns the string representation.
12862//
12863// API parameter values that are decorated as "sensitive" in the API will not
12864// be included in the string output. The member name will be present, but the
12865// value will be replaced with "sensitive".
12866func (s ListFirewallRuleGroupsInput) String() string {
12867	return awsutil.Prettify(s)
12868}
12869
12870// GoString returns the string representation.
12871//
12872// API parameter values that are decorated as "sensitive" in the API will not
12873// be included in the string output. The member name will be present, but the
12874// value will be replaced with "sensitive".
12875func (s ListFirewallRuleGroupsInput) GoString() string {
12876	return s.String()
12877}
12878
12879// Validate inspects the fields of the type to determine if they are valid.
12880func (s *ListFirewallRuleGroupsInput) Validate() error {
12881	invalidParams := request.ErrInvalidParams{Context: "ListFirewallRuleGroupsInput"}
12882	if s.MaxResults != nil && *s.MaxResults < 1 {
12883		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
12884	}
12885
12886	if invalidParams.Len() > 0 {
12887		return invalidParams
12888	}
12889	return nil
12890}
12891
12892// SetMaxResults sets the MaxResults field's value.
12893func (s *ListFirewallRuleGroupsInput) SetMaxResults(v int64) *ListFirewallRuleGroupsInput {
12894	s.MaxResults = &v
12895	return s
12896}
12897
12898// SetNextToken sets the NextToken field's value.
12899func (s *ListFirewallRuleGroupsInput) SetNextToken(v string) *ListFirewallRuleGroupsInput {
12900	s.NextToken = &v
12901	return s
12902}
12903
12904type ListFirewallRuleGroupsOutput struct {
12905	_ struct{} `type:"structure"`
12906
12907	// A list of your firewall rule groups.
12908	//
12909	// This might be a partial list of the rule groups that you have defined. For
12910	// information, see MaxResults.
12911	FirewallRuleGroups []*FirewallRuleGroupMetadata `type:"list"`
12912
12913	// If objects are still available for retrieval, Resolver returns this token
12914	// in the response. To retrieve the next batch of objects, provide this token
12915	// in your next request.
12916	NextToken *string `type:"string"`
12917}
12918
12919// String returns the string representation.
12920//
12921// API parameter values that are decorated as "sensitive" in the API will not
12922// be included in the string output. The member name will be present, but the
12923// value will be replaced with "sensitive".
12924func (s ListFirewallRuleGroupsOutput) String() string {
12925	return awsutil.Prettify(s)
12926}
12927
12928// GoString returns the string representation.
12929//
12930// API parameter values that are decorated as "sensitive" in the API will not
12931// be included in the string output. The member name will be present, but the
12932// value will be replaced with "sensitive".
12933func (s ListFirewallRuleGroupsOutput) GoString() string {
12934	return s.String()
12935}
12936
12937// SetFirewallRuleGroups sets the FirewallRuleGroups field's value.
12938func (s *ListFirewallRuleGroupsOutput) SetFirewallRuleGroups(v []*FirewallRuleGroupMetadata) *ListFirewallRuleGroupsOutput {
12939	s.FirewallRuleGroups = v
12940	return s
12941}
12942
12943// SetNextToken sets the NextToken field's value.
12944func (s *ListFirewallRuleGroupsOutput) SetNextToken(v string) *ListFirewallRuleGroupsOutput {
12945	s.NextToken = &v
12946	return s
12947}
12948
12949type ListFirewallRulesInput struct {
12950	_ struct{} `type:"structure"`
12951
12952	// Optional additional filter for the rules to retrieve.
12953	//
12954	// The action that DNS Firewall should take on a DNS query when it matches one
12955	// of the domains in the rule's domain list:
12956	//
12957	//    * ALLOW - Permit the request to go through.
12958	//
12959	//    * ALERT - Permit the request to go through but send an alert to the logs.
12960	//
12961	//    * BLOCK - Disallow the request. If this is specified, additional handling
12962	//    details are provided in the rule's BlockResponse setting.
12963	Action *string `type:"string" enum:"Action"`
12964
12965	// The unique identifier of the firewall rule group that you want to retrieve
12966	// the rules for.
12967	//
12968	// FirewallRuleGroupId is a required field
12969	FirewallRuleGroupId *string `min:"1" type:"string" required:"true"`
12970
12971	// The maximum number of objects that you want Resolver to return for this request.
12972	// If more objects are available, in the response, Resolver provides a NextToken
12973	// value that you can use in a subsequent call to get the next batch of objects.
12974	//
12975	// If you don't specify a value for MaxResults, Resolver returns up to 100 objects.
12976	MaxResults *int64 `min:"1" type:"integer"`
12977
12978	// For the first call to this list request, omit this value.
12979	//
12980	// When you request a list of objects, Resolver returns at most the number of
12981	// objects specified in MaxResults. If more objects are available for retrieval,
12982	// Resolver returns a NextToken value in the response. To retrieve the next
12983	// batch of objects, use the token that was returned for the prior request in
12984	// your next request.
12985	NextToken *string `type:"string"`
12986
12987	// Optional additional filter for the rules to retrieve.
12988	//
12989	// The setting that determines the processing order of the rules in a rule group.
12990	// DNS Firewall processes the rules in a rule group by order of priority, starting
12991	// from the lowest setting.
12992	Priority *int64 `type:"integer"`
12993}
12994
12995// String returns the string representation.
12996//
12997// API parameter values that are decorated as "sensitive" in the API will not
12998// be included in the string output. The member name will be present, but the
12999// value will be replaced with "sensitive".
13000func (s ListFirewallRulesInput) String() string {
13001	return awsutil.Prettify(s)
13002}
13003
13004// GoString returns the string representation.
13005//
13006// API parameter values that are decorated as "sensitive" in the API will not
13007// be included in the string output. The member name will be present, but the
13008// value will be replaced with "sensitive".
13009func (s ListFirewallRulesInput) GoString() string {
13010	return s.String()
13011}
13012
13013// Validate inspects the fields of the type to determine if they are valid.
13014func (s *ListFirewallRulesInput) Validate() error {
13015	invalidParams := request.ErrInvalidParams{Context: "ListFirewallRulesInput"}
13016	if s.FirewallRuleGroupId == nil {
13017		invalidParams.Add(request.NewErrParamRequired("FirewallRuleGroupId"))
13018	}
13019	if s.FirewallRuleGroupId != nil && len(*s.FirewallRuleGroupId) < 1 {
13020		invalidParams.Add(request.NewErrParamMinLen("FirewallRuleGroupId", 1))
13021	}
13022	if s.MaxResults != nil && *s.MaxResults < 1 {
13023		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
13024	}
13025
13026	if invalidParams.Len() > 0 {
13027		return invalidParams
13028	}
13029	return nil
13030}
13031
13032// SetAction sets the Action field's value.
13033func (s *ListFirewallRulesInput) SetAction(v string) *ListFirewallRulesInput {
13034	s.Action = &v
13035	return s
13036}
13037
13038// SetFirewallRuleGroupId sets the FirewallRuleGroupId field's value.
13039func (s *ListFirewallRulesInput) SetFirewallRuleGroupId(v string) *ListFirewallRulesInput {
13040	s.FirewallRuleGroupId = &v
13041	return s
13042}
13043
13044// SetMaxResults sets the MaxResults field's value.
13045func (s *ListFirewallRulesInput) SetMaxResults(v int64) *ListFirewallRulesInput {
13046	s.MaxResults = &v
13047	return s
13048}
13049
13050// SetNextToken sets the NextToken field's value.
13051func (s *ListFirewallRulesInput) SetNextToken(v string) *ListFirewallRulesInput {
13052	s.NextToken = &v
13053	return s
13054}
13055
13056// SetPriority sets the Priority field's value.
13057func (s *ListFirewallRulesInput) SetPriority(v int64) *ListFirewallRulesInput {
13058	s.Priority = &v
13059	return s
13060}
13061
13062type ListFirewallRulesOutput struct {
13063	_ struct{} `type:"structure"`
13064
13065	// A list of the rules that you have defined.
13066	//
13067	// This might be a partial list of the firewall rules that you've defined. For
13068	// information, see MaxResults.
13069	FirewallRules []*FirewallRule `type:"list"`
13070
13071	// If objects are still available for retrieval, Resolver returns this token
13072	// in the response. To retrieve the next batch of objects, provide this token
13073	// in your next request.
13074	NextToken *string `type:"string"`
13075}
13076
13077// String returns the string representation.
13078//
13079// API parameter values that are decorated as "sensitive" in the API will not
13080// be included in the string output. The member name will be present, but the
13081// value will be replaced with "sensitive".
13082func (s ListFirewallRulesOutput) String() string {
13083	return awsutil.Prettify(s)
13084}
13085
13086// GoString returns the string representation.
13087//
13088// API parameter values that are decorated as "sensitive" in the API will not
13089// be included in the string output. The member name will be present, but the
13090// value will be replaced with "sensitive".
13091func (s ListFirewallRulesOutput) GoString() string {
13092	return s.String()
13093}
13094
13095// SetFirewallRules sets the FirewallRules field's value.
13096func (s *ListFirewallRulesOutput) SetFirewallRules(v []*FirewallRule) *ListFirewallRulesOutput {
13097	s.FirewallRules = v
13098	return s
13099}
13100
13101// SetNextToken sets the NextToken field's value.
13102func (s *ListFirewallRulesOutput) SetNextToken(v string) *ListFirewallRulesOutput {
13103	s.NextToken = &v
13104	return s
13105}
13106
13107type ListResolverConfigsInput struct {
13108	_ struct{} `type:"structure"`
13109
13110	// The maximum number of Resolver configurations that you want to return in
13111	// the response to a ListResolverConfigs request. If you don't specify a value
13112	// for MaxResults, up to 100 Resolver configurations are returned.
13113	MaxResults *int64 `min:"5" type:"integer"`
13114
13115	// (Optional) If the current Amazon Web Services account has more than MaxResults
13116	// Resolver configurations, use NextToken to get the second and subsequent pages
13117	// of results.
13118	//
13119	// For the first ListResolverConfigs request, omit this value.
13120	//
13121	// For the second and subsequent requests, get the value of NextToken from the
13122	// previous response and specify that value for NextToken in the request.
13123	NextToken *string `type:"string"`
13124}
13125
13126// String returns the string representation.
13127//
13128// API parameter values that are decorated as "sensitive" in the API will not
13129// be included in the string output. The member name will be present, but the
13130// value will be replaced with "sensitive".
13131func (s ListResolverConfigsInput) String() string {
13132	return awsutil.Prettify(s)
13133}
13134
13135// GoString returns the string representation.
13136//
13137// API parameter values that are decorated as "sensitive" in the API will not
13138// be included in the string output. The member name will be present, but the
13139// value will be replaced with "sensitive".
13140func (s ListResolverConfigsInput) GoString() string {
13141	return s.String()
13142}
13143
13144// Validate inspects the fields of the type to determine if they are valid.
13145func (s *ListResolverConfigsInput) Validate() error {
13146	invalidParams := request.ErrInvalidParams{Context: "ListResolverConfigsInput"}
13147	if s.MaxResults != nil && *s.MaxResults < 5 {
13148		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 5))
13149	}
13150
13151	if invalidParams.Len() > 0 {
13152		return invalidParams
13153	}
13154	return nil
13155}
13156
13157// SetMaxResults sets the MaxResults field's value.
13158func (s *ListResolverConfigsInput) SetMaxResults(v int64) *ListResolverConfigsInput {
13159	s.MaxResults = &v
13160	return s
13161}
13162
13163// SetNextToken sets the NextToken field's value.
13164func (s *ListResolverConfigsInput) SetNextToken(v string) *ListResolverConfigsInput {
13165	s.NextToken = &v
13166	return s
13167}
13168
13169type ListResolverConfigsOutput struct {
13170	_ struct{} `type:"structure"`
13171
13172	// If a response includes the last of the Resolver configurations that are associated
13173	// with the current Amazon Web Services account, NextToken doesn't appear in
13174	// the response.
13175	//
13176	// If a response doesn't include the last of the configurations, you can get
13177	// more configurations by submitting another ListResolverConfigs request. Get
13178	// the value of NextToken that Amazon Route 53 returned in the previous response
13179	// and include it in NextToken in the next request.
13180	NextToken *string `type:"string"`
13181
13182	// An array that contains one ResolverConfigs element for each Resolver configuration
13183	// that is associated with the current Amazon Web Services account.
13184	ResolverConfigs []*ResolverConfig `type:"list"`
13185}
13186
13187// String returns the string representation.
13188//
13189// API parameter values that are decorated as "sensitive" in the API will not
13190// be included in the string output. The member name will be present, but the
13191// value will be replaced with "sensitive".
13192func (s ListResolverConfigsOutput) String() string {
13193	return awsutil.Prettify(s)
13194}
13195
13196// GoString returns the string representation.
13197//
13198// API parameter values that are decorated as "sensitive" in the API will not
13199// be included in the string output. The member name will be present, but the
13200// value will be replaced with "sensitive".
13201func (s ListResolverConfigsOutput) GoString() string {
13202	return s.String()
13203}
13204
13205// SetNextToken sets the NextToken field's value.
13206func (s *ListResolverConfigsOutput) SetNextToken(v string) *ListResolverConfigsOutput {
13207	s.NextToken = &v
13208	return s
13209}
13210
13211// SetResolverConfigs sets the ResolverConfigs field's value.
13212func (s *ListResolverConfigsOutput) SetResolverConfigs(v []*ResolverConfig) *ListResolverConfigsOutput {
13213	s.ResolverConfigs = v
13214	return s
13215}
13216
13217type ListResolverDnssecConfigsInput struct {
13218	_ struct{} `type:"structure"`
13219
13220	// An optional specification to return a subset of objects.
13221	Filters []*Filter `type:"list"`
13222
13223	// Optional: An integer that specifies the maximum number of DNSSEC configuration
13224	// results that you want Amazon Route 53 to return. If you don't specify a value
13225	// for MaxResults, Route 53 returns up to 100 configuration per page.
13226	MaxResults *int64 `min:"1" type:"integer"`
13227
13228	// (Optional) If the current Amazon Web Services account has more than MaxResults
13229	// DNSSEC configurations, use NextToken to get the second and subsequent pages
13230	// of results.
13231	//
13232	// For the first ListResolverDnssecConfigs request, omit this value.
13233	//
13234	// For the second and subsequent requests, get the value of NextToken from the
13235	// previous response and specify that value for NextToken in the request.
13236	NextToken *string `type:"string"`
13237}
13238
13239// String returns the string representation.
13240//
13241// API parameter values that are decorated as "sensitive" in the API will not
13242// be included in the string output. The member name will be present, but the
13243// value will be replaced with "sensitive".
13244func (s ListResolverDnssecConfigsInput) String() string {
13245	return awsutil.Prettify(s)
13246}
13247
13248// GoString returns the string representation.
13249//
13250// API parameter values that are decorated as "sensitive" in the API will not
13251// be included in the string output. The member name will be present, but the
13252// value will be replaced with "sensitive".
13253func (s ListResolverDnssecConfigsInput) GoString() string {
13254	return s.String()
13255}
13256
13257// Validate inspects the fields of the type to determine if they are valid.
13258func (s *ListResolverDnssecConfigsInput) Validate() error {
13259	invalidParams := request.ErrInvalidParams{Context: "ListResolverDnssecConfigsInput"}
13260	if s.MaxResults != nil && *s.MaxResults < 1 {
13261		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
13262	}
13263	if s.Filters != nil {
13264		for i, v := range s.Filters {
13265			if v == nil {
13266				continue
13267			}
13268			if err := v.Validate(); err != nil {
13269				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
13270			}
13271		}
13272	}
13273
13274	if invalidParams.Len() > 0 {
13275		return invalidParams
13276	}
13277	return nil
13278}
13279
13280// SetFilters sets the Filters field's value.
13281func (s *ListResolverDnssecConfigsInput) SetFilters(v []*Filter) *ListResolverDnssecConfigsInput {
13282	s.Filters = v
13283	return s
13284}
13285
13286// SetMaxResults sets the MaxResults field's value.
13287func (s *ListResolverDnssecConfigsInput) SetMaxResults(v int64) *ListResolverDnssecConfigsInput {
13288	s.MaxResults = &v
13289	return s
13290}
13291
13292// SetNextToken sets the NextToken field's value.
13293func (s *ListResolverDnssecConfigsInput) SetNextToken(v string) *ListResolverDnssecConfigsInput {
13294	s.NextToken = &v
13295	return s
13296}
13297
13298type ListResolverDnssecConfigsOutput struct {
13299	_ struct{} `type:"structure"`
13300
13301	// If a response includes the last of the DNSSEC configurations that are associated
13302	// with the current Amazon Web Services account, NextToken doesn't appear in
13303	// the response.
13304	//
13305	// If a response doesn't include the last of the configurations, you can get
13306	// more configurations by submitting another ListResolverDnssecConfigs (https://docs.aws.amazon.com/Route53/latest/APIReference/API_ListResolverDnssecConfigs.html)
13307	// request. Get the value of NextToken that Amazon Route 53 returned in the
13308	// previous response and include it in NextToken in the next request.
13309	NextToken *string `type:"string"`
13310
13311	// An array that contains one ResolverDnssecConfig (https://docs.aws.amazon.com/Route53/latest/APIReference/API_ResolverDnssecConfig.html)
13312	// element for each configuration for DNSSEC validation that is associated with
13313	// the current Amazon Web Services account.
13314	ResolverDnssecConfigs []*ResolverDnssecConfig `type:"list"`
13315}
13316
13317// String returns the string representation.
13318//
13319// API parameter values that are decorated as "sensitive" in the API will not
13320// be included in the string output. The member name will be present, but the
13321// value will be replaced with "sensitive".
13322func (s ListResolverDnssecConfigsOutput) String() string {
13323	return awsutil.Prettify(s)
13324}
13325
13326// GoString returns the string representation.
13327//
13328// API parameter values that are decorated as "sensitive" in the API will not
13329// be included in the string output. The member name will be present, but the
13330// value will be replaced with "sensitive".
13331func (s ListResolverDnssecConfigsOutput) GoString() string {
13332	return s.String()
13333}
13334
13335// SetNextToken sets the NextToken field's value.
13336func (s *ListResolverDnssecConfigsOutput) SetNextToken(v string) *ListResolverDnssecConfigsOutput {
13337	s.NextToken = &v
13338	return s
13339}
13340
13341// SetResolverDnssecConfigs sets the ResolverDnssecConfigs field's value.
13342func (s *ListResolverDnssecConfigsOutput) SetResolverDnssecConfigs(v []*ResolverDnssecConfig) *ListResolverDnssecConfigsOutput {
13343	s.ResolverDnssecConfigs = v
13344	return s
13345}
13346
13347type ListResolverEndpointIpAddressesInput struct {
13348	_ struct{} `type:"structure"`
13349
13350	// The maximum number of IP addresses that you want to return in the response
13351	// to a ListResolverEndpointIpAddresses request. If you don't specify a value
13352	// for MaxResults, Resolver returns up to 100 IP addresses.
13353	MaxResults *int64 `min:"1" type:"integer"`
13354
13355	// For the first ListResolverEndpointIpAddresses request, omit this value.
13356	//
13357	// If the specified Resolver endpoint has more than MaxResults IP addresses,
13358	// you can submit another ListResolverEndpointIpAddresses request to get the
13359	// next group of IP addresses. In the next request, specify the value of NextToken
13360	// from the previous response.
13361	NextToken *string `type:"string"`
13362
13363	// The ID of the Resolver endpoint that you want to get IP addresses for.
13364	//
13365	// ResolverEndpointId is a required field
13366	ResolverEndpointId *string `min:"1" type:"string" required:"true"`
13367}
13368
13369// String returns the string representation.
13370//
13371// API parameter values that are decorated as "sensitive" in the API will not
13372// be included in the string output. The member name will be present, but the
13373// value will be replaced with "sensitive".
13374func (s ListResolverEndpointIpAddressesInput) String() string {
13375	return awsutil.Prettify(s)
13376}
13377
13378// GoString returns the string representation.
13379//
13380// API parameter values that are decorated as "sensitive" in the API will not
13381// be included in the string output. The member name will be present, but the
13382// value will be replaced with "sensitive".
13383func (s ListResolverEndpointIpAddressesInput) GoString() string {
13384	return s.String()
13385}
13386
13387// Validate inspects the fields of the type to determine if they are valid.
13388func (s *ListResolverEndpointIpAddressesInput) Validate() error {
13389	invalidParams := request.ErrInvalidParams{Context: "ListResolverEndpointIpAddressesInput"}
13390	if s.MaxResults != nil && *s.MaxResults < 1 {
13391		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
13392	}
13393	if s.ResolverEndpointId == nil {
13394		invalidParams.Add(request.NewErrParamRequired("ResolverEndpointId"))
13395	}
13396	if s.ResolverEndpointId != nil && len(*s.ResolverEndpointId) < 1 {
13397		invalidParams.Add(request.NewErrParamMinLen("ResolverEndpointId", 1))
13398	}
13399
13400	if invalidParams.Len() > 0 {
13401		return invalidParams
13402	}
13403	return nil
13404}
13405
13406// SetMaxResults sets the MaxResults field's value.
13407func (s *ListResolverEndpointIpAddressesInput) SetMaxResults(v int64) *ListResolverEndpointIpAddressesInput {
13408	s.MaxResults = &v
13409	return s
13410}
13411
13412// SetNextToken sets the NextToken field's value.
13413func (s *ListResolverEndpointIpAddressesInput) SetNextToken(v string) *ListResolverEndpointIpAddressesInput {
13414	s.NextToken = &v
13415	return s
13416}
13417
13418// SetResolverEndpointId sets the ResolverEndpointId field's value.
13419func (s *ListResolverEndpointIpAddressesInput) SetResolverEndpointId(v string) *ListResolverEndpointIpAddressesInput {
13420	s.ResolverEndpointId = &v
13421	return s
13422}
13423
13424type ListResolverEndpointIpAddressesOutput struct {
13425	_ struct{} `type:"structure"`
13426
13427	// Information about the IP addresses in your VPC that DNS queries originate
13428	// from (for outbound endpoints) or that you forward DNS queries to (for inbound
13429	// endpoints).
13430	IpAddresses []*IpAddressResponse `type:"list"`
13431
13432	// The value that you specified for MaxResults in the request.
13433	MaxResults *int64 `min:"1" type:"integer"`
13434
13435	// If the specified endpoint has more than MaxResults IP addresses, you can
13436	// submit another ListResolverEndpointIpAddresses request to get the next group
13437	// of IP addresses. In the next request, specify the value of NextToken from
13438	// the previous response.
13439	NextToken *string `type:"string"`
13440}
13441
13442// String returns the string representation.
13443//
13444// API parameter values that are decorated as "sensitive" in the API will not
13445// be included in the string output. The member name will be present, but the
13446// value will be replaced with "sensitive".
13447func (s ListResolverEndpointIpAddressesOutput) String() string {
13448	return awsutil.Prettify(s)
13449}
13450
13451// GoString returns the string representation.
13452//
13453// API parameter values that are decorated as "sensitive" in the API will not
13454// be included in the string output. The member name will be present, but the
13455// value will be replaced with "sensitive".
13456func (s ListResolverEndpointIpAddressesOutput) GoString() string {
13457	return s.String()
13458}
13459
13460// SetIpAddresses sets the IpAddresses field's value.
13461func (s *ListResolverEndpointIpAddressesOutput) SetIpAddresses(v []*IpAddressResponse) *ListResolverEndpointIpAddressesOutput {
13462	s.IpAddresses = v
13463	return s
13464}
13465
13466// SetMaxResults sets the MaxResults field's value.
13467func (s *ListResolverEndpointIpAddressesOutput) SetMaxResults(v int64) *ListResolverEndpointIpAddressesOutput {
13468	s.MaxResults = &v
13469	return s
13470}
13471
13472// SetNextToken sets the NextToken field's value.
13473func (s *ListResolverEndpointIpAddressesOutput) SetNextToken(v string) *ListResolverEndpointIpAddressesOutput {
13474	s.NextToken = &v
13475	return s
13476}
13477
13478type ListResolverEndpointsInput struct {
13479	_ struct{} `type:"structure"`
13480
13481	// An optional specification to return a subset of Resolver endpoints, such
13482	// as all inbound Resolver endpoints.
13483	//
13484	// If you submit a second or subsequent ListResolverEndpoints request and specify
13485	// the NextToken parameter, you must use the same values for Filters, if any,
13486	// as in the previous request.
13487	Filters []*Filter `type:"list"`
13488
13489	// The maximum number of Resolver endpoints that you want to return in the response
13490	// to a ListResolverEndpoints request. If you don't specify a value for MaxResults,
13491	// Resolver returns up to 100 Resolver endpoints.
13492	MaxResults *int64 `min:"1" type:"integer"`
13493
13494	// For the first ListResolverEndpoints request, omit this value.
13495	//
13496	// If you have more than MaxResults Resolver endpoints, you can submit another
13497	// ListResolverEndpoints request to get the next group of Resolver endpoints.
13498	// In the next request, specify the value of NextToken from the previous response.
13499	NextToken *string `type:"string"`
13500}
13501
13502// String returns the string representation.
13503//
13504// API parameter values that are decorated as "sensitive" in the API will not
13505// be included in the string output. The member name will be present, but the
13506// value will be replaced with "sensitive".
13507func (s ListResolverEndpointsInput) String() string {
13508	return awsutil.Prettify(s)
13509}
13510
13511// GoString returns the string representation.
13512//
13513// API parameter values that are decorated as "sensitive" in the API will not
13514// be included in the string output. The member name will be present, but the
13515// value will be replaced with "sensitive".
13516func (s ListResolverEndpointsInput) GoString() string {
13517	return s.String()
13518}
13519
13520// Validate inspects the fields of the type to determine if they are valid.
13521func (s *ListResolverEndpointsInput) Validate() error {
13522	invalidParams := request.ErrInvalidParams{Context: "ListResolverEndpointsInput"}
13523	if s.MaxResults != nil && *s.MaxResults < 1 {
13524		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
13525	}
13526	if s.Filters != nil {
13527		for i, v := range s.Filters {
13528			if v == nil {
13529				continue
13530			}
13531			if err := v.Validate(); err != nil {
13532				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
13533			}
13534		}
13535	}
13536
13537	if invalidParams.Len() > 0 {
13538		return invalidParams
13539	}
13540	return nil
13541}
13542
13543// SetFilters sets the Filters field's value.
13544func (s *ListResolverEndpointsInput) SetFilters(v []*Filter) *ListResolverEndpointsInput {
13545	s.Filters = v
13546	return s
13547}
13548
13549// SetMaxResults sets the MaxResults field's value.
13550func (s *ListResolverEndpointsInput) SetMaxResults(v int64) *ListResolverEndpointsInput {
13551	s.MaxResults = &v
13552	return s
13553}
13554
13555// SetNextToken sets the NextToken field's value.
13556func (s *ListResolverEndpointsInput) SetNextToken(v string) *ListResolverEndpointsInput {
13557	s.NextToken = &v
13558	return s
13559}
13560
13561type ListResolverEndpointsOutput struct {
13562	_ struct{} `type:"structure"`
13563
13564	// The value that you specified for MaxResults in the request.
13565	MaxResults *int64 `min:"1" type:"integer"`
13566
13567	// If more than MaxResults IP addresses match the specified criteria, you can
13568	// submit another ListResolverEndpoint request to get the next group of results.
13569	// In the next request, specify the value of NextToken from the previous response.
13570	NextToken *string `type:"string"`
13571
13572	// The Resolver endpoints that were created by using the current Amazon Web
13573	// Services account, and that match the specified filters, if any.
13574	ResolverEndpoints []*ResolverEndpoint `type:"list"`
13575}
13576
13577// String returns the string representation.
13578//
13579// API parameter values that are decorated as "sensitive" in the API will not
13580// be included in the string output. The member name will be present, but the
13581// value will be replaced with "sensitive".
13582func (s ListResolverEndpointsOutput) String() string {
13583	return awsutil.Prettify(s)
13584}
13585
13586// GoString returns the string representation.
13587//
13588// API parameter values that are decorated as "sensitive" in the API will not
13589// be included in the string output. The member name will be present, but the
13590// value will be replaced with "sensitive".
13591func (s ListResolverEndpointsOutput) GoString() string {
13592	return s.String()
13593}
13594
13595// SetMaxResults sets the MaxResults field's value.
13596func (s *ListResolverEndpointsOutput) SetMaxResults(v int64) *ListResolverEndpointsOutput {
13597	s.MaxResults = &v
13598	return s
13599}
13600
13601// SetNextToken sets the NextToken field's value.
13602func (s *ListResolverEndpointsOutput) SetNextToken(v string) *ListResolverEndpointsOutput {
13603	s.NextToken = &v
13604	return s
13605}
13606
13607// SetResolverEndpoints sets the ResolverEndpoints field's value.
13608func (s *ListResolverEndpointsOutput) SetResolverEndpoints(v []*ResolverEndpoint) *ListResolverEndpointsOutput {
13609	s.ResolverEndpoints = v
13610	return s
13611}
13612
13613type ListResolverQueryLogConfigAssociationsInput struct {
13614	_ struct{} `type:"structure"`
13615
13616	// An optional specification to return a subset of query logging associations.
13617	//
13618	// If you submit a second or subsequent ListResolverQueryLogConfigAssociations
13619	// request and specify the NextToken parameter, you must use the same values
13620	// for Filters, if any, as in the previous request.
13621	Filters []*Filter `type:"list"`
13622
13623	// The maximum number of query logging associations that you want to return
13624	// in the response to a ListResolverQueryLogConfigAssociations request. If you
13625	// don't specify a value for MaxResults, Resolver returns up to 100 query logging
13626	// associations.
13627	MaxResults *int64 `min:"1" type:"integer"`
13628
13629	// For the first ListResolverQueryLogConfigAssociations request, omit this value.
13630	//
13631	// If there are more than MaxResults query logging associations that match the
13632	// values that you specify for Filters, you can submit another ListResolverQueryLogConfigAssociations
13633	// request to get the next group of associations. In the next request, specify
13634	// the value of NextToken from the previous response.
13635	NextToken *string `type:"string"`
13636
13637	// The element that you want Resolver to sort query logging associations by.
13638	//
13639	// If you submit a second or subsequent ListResolverQueryLogConfigAssociations
13640	// request and specify the NextToken parameter, you must use the same value
13641	// for SortBy, if any, as in the previous request.
13642	//
13643	// Valid values include the following elements:
13644	//
13645	//    * CreationTime: The ID of the query logging association.
13646	//
13647	//    * Error: If the value of Status is FAILED, the value of Error indicates
13648	//    the cause: DESTINATION_NOT_FOUND: The specified destination (for example,
13649	//    an Amazon S3 bucket) was deleted. ACCESS_DENIED: Permissions don't allow
13650	//    sending logs to the destination. If Status is a value other than FAILED,
13651	//    ERROR is null.
13652	//
13653	//    * Id: The ID of the query logging association
13654	//
13655	//    * ResolverQueryLogConfigId: The ID of the query logging configuration
13656	//
13657	//    * ResourceId: The ID of the VPC that is associated with the query logging
13658	//    configuration
13659	//
13660	//    * Status: The current status of the configuration. Valid values include
13661	//    the following: CREATING: Resolver is creating an association between an
13662	//    Amazon VPC and a query logging configuration. CREATED: The association
13663	//    between an Amazon VPC and a query logging configuration was successfully
13664	//    created. Resolver is logging queries that originate in the specified VPC.
13665	//    DELETING: Resolver is deleting this query logging association. FAILED:
13666	//    Resolver either couldn't create or couldn't delete the query logging association.
13667	//    Here are two common causes: The specified destination (for example, an
13668	//    Amazon S3 bucket) was deleted. Permissions don't allow sending logs to
13669	//    the destination.
13670	SortBy *string `min:"1" type:"string"`
13671
13672	// If you specified a value for SortBy, the order that you want query logging
13673	// associations to be listed in, ASCENDING or DESCENDING.
13674	//
13675	// If you submit a second or subsequent ListResolverQueryLogConfigAssociations
13676	// request and specify the NextToken parameter, you must use the same value
13677	// for SortOrder, if any, as in the previous request.
13678	SortOrder *string `type:"string" enum:"SortOrder"`
13679}
13680
13681// String returns the string representation.
13682//
13683// API parameter values that are decorated as "sensitive" in the API will not
13684// be included in the string output. The member name will be present, but the
13685// value will be replaced with "sensitive".
13686func (s ListResolverQueryLogConfigAssociationsInput) String() string {
13687	return awsutil.Prettify(s)
13688}
13689
13690// GoString returns the string representation.
13691//
13692// API parameter values that are decorated as "sensitive" in the API will not
13693// be included in the string output. The member name will be present, but the
13694// value will be replaced with "sensitive".
13695func (s ListResolverQueryLogConfigAssociationsInput) GoString() string {
13696	return s.String()
13697}
13698
13699// Validate inspects the fields of the type to determine if they are valid.
13700func (s *ListResolverQueryLogConfigAssociationsInput) Validate() error {
13701	invalidParams := request.ErrInvalidParams{Context: "ListResolverQueryLogConfigAssociationsInput"}
13702	if s.MaxResults != nil && *s.MaxResults < 1 {
13703		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
13704	}
13705	if s.SortBy != nil && len(*s.SortBy) < 1 {
13706		invalidParams.Add(request.NewErrParamMinLen("SortBy", 1))
13707	}
13708	if s.Filters != nil {
13709		for i, v := range s.Filters {
13710			if v == nil {
13711				continue
13712			}
13713			if err := v.Validate(); err != nil {
13714				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
13715			}
13716		}
13717	}
13718
13719	if invalidParams.Len() > 0 {
13720		return invalidParams
13721	}
13722	return nil
13723}
13724
13725// SetFilters sets the Filters field's value.
13726func (s *ListResolverQueryLogConfigAssociationsInput) SetFilters(v []*Filter) *ListResolverQueryLogConfigAssociationsInput {
13727	s.Filters = v
13728	return s
13729}
13730
13731// SetMaxResults sets the MaxResults field's value.
13732func (s *ListResolverQueryLogConfigAssociationsInput) SetMaxResults(v int64) *ListResolverQueryLogConfigAssociationsInput {
13733	s.MaxResults = &v
13734	return s
13735}
13736
13737// SetNextToken sets the NextToken field's value.
13738func (s *ListResolverQueryLogConfigAssociationsInput) SetNextToken(v string) *ListResolverQueryLogConfigAssociationsInput {
13739	s.NextToken = &v
13740	return s
13741}
13742
13743// SetSortBy sets the SortBy field's value.
13744func (s *ListResolverQueryLogConfigAssociationsInput) SetSortBy(v string) *ListResolverQueryLogConfigAssociationsInput {
13745	s.SortBy = &v
13746	return s
13747}
13748
13749// SetSortOrder sets the SortOrder field's value.
13750func (s *ListResolverQueryLogConfigAssociationsInput) SetSortOrder(v string) *ListResolverQueryLogConfigAssociationsInput {
13751	s.SortOrder = &v
13752	return s
13753}
13754
13755type ListResolverQueryLogConfigAssociationsOutput struct {
13756	_ struct{} `type:"structure"`
13757
13758	// If there are more than MaxResults query logging associations, you can submit
13759	// another ListResolverQueryLogConfigAssociations request to get the next group
13760	// of associations. In the next request, specify the value of NextToken from
13761	// the previous response.
13762	NextToken *string `type:"string"`
13763
13764	// A list that contains one ResolverQueryLogConfigAssociations element for each
13765	// query logging association that matches the values that you specified for
13766	// Filter.
13767	ResolverQueryLogConfigAssociations []*ResolverQueryLogConfigAssociation `type:"list"`
13768
13769	// The total number of query logging associations that were created by the current
13770	// account in the specified Region. This count can differ from the number of
13771	// associations that are returned in a ListResolverQueryLogConfigAssociations
13772	// response, depending on the values that you specify in the request.
13773	TotalCount *int64 `type:"integer"`
13774
13775	// The total number of query logging associations that were created by the current
13776	// account in the specified Region and that match the filters that were specified
13777	// in the ListResolverQueryLogConfigAssociations request. For the total number
13778	// of associations that were created by the current account in the specified
13779	// Region, see TotalCount.
13780	TotalFilteredCount *int64 `type:"integer"`
13781}
13782
13783// String returns the string representation.
13784//
13785// API parameter values that are decorated as "sensitive" in the API will not
13786// be included in the string output. The member name will be present, but the
13787// value will be replaced with "sensitive".
13788func (s ListResolverQueryLogConfigAssociationsOutput) String() string {
13789	return awsutil.Prettify(s)
13790}
13791
13792// GoString returns the string representation.
13793//
13794// API parameter values that are decorated as "sensitive" in the API will not
13795// be included in the string output. The member name will be present, but the
13796// value will be replaced with "sensitive".
13797func (s ListResolverQueryLogConfigAssociationsOutput) GoString() string {
13798	return s.String()
13799}
13800
13801// SetNextToken sets the NextToken field's value.
13802func (s *ListResolverQueryLogConfigAssociationsOutput) SetNextToken(v string) *ListResolverQueryLogConfigAssociationsOutput {
13803	s.NextToken = &v
13804	return s
13805}
13806
13807// SetResolverQueryLogConfigAssociations sets the ResolverQueryLogConfigAssociations field's value.
13808func (s *ListResolverQueryLogConfigAssociationsOutput) SetResolverQueryLogConfigAssociations(v []*ResolverQueryLogConfigAssociation) *ListResolverQueryLogConfigAssociationsOutput {
13809	s.ResolverQueryLogConfigAssociations = v
13810	return s
13811}
13812
13813// SetTotalCount sets the TotalCount field's value.
13814func (s *ListResolverQueryLogConfigAssociationsOutput) SetTotalCount(v int64) *ListResolverQueryLogConfigAssociationsOutput {
13815	s.TotalCount = &v
13816	return s
13817}
13818
13819// SetTotalFilteredCount sets the TotalFilteredCount field's value.
13820func (s *ListResolverQueryLogConfigAssociationsOutput) SetTotalFilteredCount(v int64) *ListResolverQueryLogConfigAssociationsOutput {
13821	s.TotalFilteredCount = &v
13822	return s
13823}
13824
13825type ListResolverQueryLogConfigsInput struct {
13826	_ struct{} `type:"structure"`
13827
13828	// An optional specification to return a subset of query logging configurations.
13829	//
13830	// If you submit a second or subsequent ListResolverQueryLogConfigs request
13831	// and specify the NextToken parameter, you must use the same values for Filters,
13832	// if any, as in the previous request.
13833	Filters []*Filter `type:"list"`
13834
13835	// The maximum number of query logging configurations that you want to return
13836	// in the response to a ListResolverQueryLogConfigs request. If you don't specify
13837	// a value for MaxResults, Resolver returns up to 100 query logging configurations.
13838	MaxResults *int64 `min:"1" type:"integer"`
13839
13840	// For the first ListResolverQueryLogConfigs request, omit this value.
13841	//
13842	// If there are more than MaxResults query logging configurations that match
13843	// the values that you specify for Filters, you can submit another ListResolverQueryLogConfigs
13844	// request to get the next group of configurations. In the next request, specify
13845	// the value of NextToken from the previous response.
13846	NextToken *string `type:"string"`
13847
13848	// The element that you want Resolver to sort query logging configurations by.
13849	//
13850	// If you submit a second or subsequent ListResolverQueryLogConfigs request
13851	// and specify the NextToken parameter, you must use the same value for SortBy,
13852	// if any, as in the previous request.
13853	//
13854	// Valid values include the following elements:
13855	//
13856	//    * Arn: The ARN of the query logging configuration
13857	//
13858	//    * AssociationCount: The number of VPCs that are associated with the specified
13859	//    configuration
13860	//
13861	//    * CreationTime: The date and time that Resolver returned when the configuration
13862	//    was created
13863	//
13864	//    * CreatorRequestId: The value that was specified for CreatorRequestId
13865	//    when the configuration was created
13866	//
13867	//    * DestinationArn: The location that logs are sent to
13868	//
13869	//    * Id: The ID of the configuration
13870	//
13871	//    * Name: The name of the configuration
13872	//
13873	//    * OwnerId: The Amazon Web Services account number of the account that
13874	//    created the configuration
13875	//
13876	//    * ShareStatus: Whether the configuration is shared with other Amazon Web
13877	//    Services accounts or shared with the current account by another Amazon
13878	//    Web Services account. Sharing is configured through Resource Access Manager
13879	//    (RAM).
13880	//
13881	//    * Status: The current status of the configuration. Valid values include
13882	//    the following: CREATING: Resolver is creating the query logging configuration.
13883	//    CREATED: The query logging configuration was successfully created. Resolver
13884	//    is logging queries that originate in the specified VPC. DELETING: Resolver
13885	//    is deleting this query logging configuration. FAILED: Resolver either
13886	//    couldn't create or couldn't delete the query logging configuration. Here
13887	//    are two common causes: The specified destination (for example, an Amazon
13888	//    S3 bucket) was deleted. Permissions don't allow sending logs to the destination.
13889	SortBy *string `min:"1" type:"string"`
13890
13891	// If you specified a value for SortBy, the order that you want query logging
13892	// configurations to be listed in, ASCENDING or DESCENDING.
13893	//
13894	// If you submit a second or subsequent ListResolverQueryLogConfigs request
13895	// and specify the NextToken parameter, you must use the same value for SortOrder,
13896	// if any, as in the previous request.
13897	SortOrder *string `type:"string" enum:"SortOrder"`
13898}
13899
13900// String returns the string representation.
13901//
13902// API parameter values that are decorated as "sensitive" in the API will not
13903// be included in the string output. The member name will be present, but the
13904// value will be replaced with "sensitive".
13905func (s ListResolverQueryLogConfigsInput) String() string {
13906	return awsutil.Prettify(s)
13907}
13908
13909// GoString returns the string representation.
13910//
13911// API parameter values that are decorated as "sensitive" in the API will not
13912// be included in the string output. The member name will be present, but the
13913// value will be replaced with "sensitive".
13914func (s ListResolverQueryLogConfigsInput) GoString() string {
13915	return s.String()
13916}
13917
13918// Validate inspects the fields of the type to determine if they are valid.
13919func (s *ListResolverQueryLogConfigsInput) Validate() error {
13920	invalidParams := request.ErrInvalidParams{Context: "ListResolverQueryLogConfigsInput"}
13921	if s.MaxResults != nil && *s.MaxResults < 1 {
13922		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
13923	}
13924	if s.SortBy != nil && len(*s.SortBy) < 1 {
13925		invalidParams.Add(request.NewErrParamMinLen("SortBy", 1))
13926	}
13927	if s.Filters != nil {
13928		for i, v := range s.Filters {
13929			if v == nil {
13930				continue
13931			}
13932			if err := v.Validate(); err != nil {
13933				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
13934			}
13935		}
13936	}
13937
13938	if invalidParams.Len() > 0 {
13939		return invalidParams
13940	}
13941	return nil
13942}
13943
13944// SetFilters sets the Filters field's value.
13945func (s *ListResolverQueryLogConfigsInput) SetFilters(v []*Filter) *ListResolverQueryLogConfigsInput {
13946	s.Filters = v
13947	return s
13948}
13949
13950// SetMaxResults sets the MaxResults field's value.
13951func (s *ListResolverQueryLogConfigsInput) SetMaxResults(v int64) *ListResolverQueryLogConfigsInput {
13952	s.MaxResults = &v
13953	return s
13954}
13955
13956// SetNextToken sets the NextToken field's value.
13957func (s *ListResolverQueryLogConfigsInput) SetNextToken(v string) *ListResolverQueryLogConfigsInput {
13958	s.NextToken = &v
13959	return s
13960}
13961
13962// SetSortBy sets the SortBy field's value.
13963func (s *ListResolverQueryLogConfigsInput) SetSortBy(v string) *ListResolverQueryLogConfigsInput {
13964	s.SortBy = &v
13965	return s
13966}
13967
13968// SetSortOrder sets the SortOrder field's value.
13969func (s *ListResolverQueryLogConfigsInput) SetSortOrder(v string) *ListResolverQueryLogConfigsInput {
13970	s.SortOrder = &v
13971	return s
13972}
13973
13974type ListResolverQueryLogConfigsOutput struct {
13975	_ struct{} `type:"structure"`
13976
13977	// If there are more than MaxResults query logging configurations, you can submit
13978	// another ListResolverQueryLogConfigs request to get the next group of configurations.
13979	// In the next request, specify the value of NextToken from the previous response.
13980	NextToken *string `type:"string"`
13981
13982	// A list that contains one ResolverQueryLogConfig element for each query logging
13983	// configuration that matches the values that you specified for Filter.
13984	ResolverQueryLogConfigs []*ResolverQueryLogConfig `type:"list"`
13985
13986	// The total number of query logging configurations that were created by the
13987	// current account in the specified Region. This count can differ from the number
13988	// of query logging configurations that are returned in a ListResolverQueryLogConfigs
13989	// response, depending on the values that you specify in the request.
13990	TotalCount *int64 `type:"integer"`
13991
13992	// The total number of query logging configurations that were created by the
13993	// current account in the specified Region and that match the filters that were
13994	// specified in the ListResolverQueryLogConfigs request. For the total number
13995	// of query logging configurations that were created by the current account
13996	// in the specified Region, see TotalCount.
13997	TotalFilteredCount *int64 `type:"integer"`
13998}
13999
14000// String returns the string representation.
14001//
14002// API parameter values that are decorated as "sensitive" in the API will not
14003// be included in the string output. The member name will be present, but the
14004// value will be replaced with "sensitive".
14005func (s ListResolverQueryLogConfigsOutput) String() string {
14006	return awsutil.Prettify(s)
14007}
14008
14009// GoString returns the string representation.
14010//
14011// API parameter values that are decorated as "sensitive" in the API will not
14012// be included in the string output. The member name will be present, but the
14013// value will be replaced with "sensitive".
14014func (s ListResolverQueryLogConfigsOutput) GoString() string {
14015	return s.String()
14016}
14017
14018// SetNextToken sets the NextToken field's value.
14019func (s *ListResolverQueryLogConfigsOutput) SetNextToken(v string) *ListResolverQueryLogConfigsOutput {
14020	s.NextToken = &v
14021	return s
14022}
14023
14024// SetResolverQueryLogConfigs sets the ResolverQueryLogConfigs field's value.
14025func (s *ListResolverQueryLogConfigsOutput) SetResolverQueryLogConfigs(v []*ResolverQueryLogConfig) *ListResolverQueryLogConfigsOutput {
14026	s.ResolverQueryLogConfigs = v
14027	return s
14028}
14029
14030// SetTotalCount sets the TotalCount field's value.
14031func (s *ListResolverQueryLogConfigsOutput) SetTotalCount(v int64) *ListResolverQueryLogConfigsOutput {
14032	s.TotalCount = &v
14033	return s
14034}
14035
14036// SetTotalFilteredCount sets the TotalFilteredCount field's value.
14037func (s *ListResolverQueryLogConfigsOutput) SetTotalFilteredCount(v int64) *ListResolverQueryLogConfigsOutput {
14038	s.TotalFilteredCount = &v
14039	return s
14040}
14041
14042type ListResolverRuleAssociationsInput struct {
14043	_ struct{} `type:"structure"`
14044
14045	// An optional specification to return a subset of Resolver rules, such as Resolver
14046	// rules that are associated with the same VPC ID.
14047	//
14048	// If you submit a second or subsequent ListResolverRuleAssociations request
14049	// and specify the NextToken parameter, you must use the same values for Filters,
14050	// if any, as in the previous request.
14051	Filters []*Filter `type:"list"`
14052
14053	// The maximum number of rule associations that you want to return in the response
14054	// to a ListResolverRuleAssociations request. If you don't specify a value for
14055	// MaxResults, Resolver returns up to 100 rule associations.
14056	MaxResults *int64 `min:"1" type:"integer"`
14057
14058	// For the first ListResolverRuleAssociation request, omit this value.
14059	//
14060	// If you have more than MaxResults rule associations, you can submit another
14061	// ListResolverRuleAssociation request to get the next group of rule associations.
14062	// In the next request, specify the value of NextToken from the previous response.
14063	NextToken *string `type:"string"`
14064}
14065
14066// String returns the string representation.
14067//
14068// API parameter values that are decorated as "sensitive" in the API will not
14069// be included in the string output. The member name will be present, but the
14070// value will be replaced with "sensitive".
14071func (s ListResolverRuleAssociationsInput) String() string {
14072	return awsutil.Prettify(s)
14073}
14074
14075// GoString returns the string representation.
14076//
14077// API parameter values that are decorated as "sensitive" in the API will not
14078// be included in the string output. The member name will be present, but the
14079// value will be replaced with "sensitive".
14080func (s ListResolverRuleAssociationsInput) GoString() string {
14081	return s.String()
14082}
14083
14084// Validate inspects the fields of the type to determine if they are valid.
14085func (s *ListResolverRuleAssociationsInput) Validate() error {
14086	invalidParams := request.ErrInvalidParams{Context: "ListResolverRuleAssociationsInput"}
14087	if s.MaxResults != nil && *s.MaxResults < 1 {
14088		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
14089	}
14090	if s.Filters != nil {
14091		for i, v := range s.Filters {
14092			if v == nil {
14093				continue
14094			}
14095			if err := v.Validate(); err != nil {
14096				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
14097			}
14098		}
14099	}
14100
14101	if invalidParams.Len() > 0 {
14102		return invalidParams
14103	}
14104	return nil
14105}
14106
14107// SetFilters sets the Filters field's value.
14108func (s *ListResolverRuleAssociationsInput) SetFilters(v []*Filter) *ListResolverRuleAssociationsInput {
14109	s.Filters = v
14110	return s
14111}
14112
14113// SetMaxResults sets the MaxResults field's value.
14114func (s *ListResolverRuleAssociationsInput) SetMaxResults(v int64) *ListResolverRuleAssociationsInput {
14115	s.MaxResults = &v
14116	return s
14117}
14118
14119// SetNextToken sets the NextToken field's value.
14120func (s *ListResolverRuleAssociationsInput) SetNextToken(v string) *ListResolverRuleAssociationsInput {
14121	s.NextToken = &v
14122	return s
14123}
14124
14125type ListResolverRuleAssociationsOutput struct {
14126	_ struct{} `type:"structure"`
14127
14128	// The value that you specified for MaxResults in the request.
14129	MaxResults *int64 `min:"1" type:"integer"`
14130
14131	// If more than MaxResults rule associations match the specified criteria, you
14132	// can submit another ListResolverRuleAssociation request to get the next group
14133	// of results. In the next request, specify the value of NextToken from the
14134	// previous response.
14135	NextToken *string `type:"string"`
14136
14137	// The associations that were created between Resolver rules and VPCs using
14138	// the current Amazon Web Services account, and that match the specified filters,
14139	// if any.
14140	ResolverRuleAssociations []*ResolverRuleAssociation `type:"list"`
14141}
14142
14143// String returns the string representation.
14144//
14145// API parameter values that are decorated as "sensitive" in the API will not
14146// be included in the string output. The member name will be present, but the
14147// value will be replaced with "sensitive".
14148func (s ListResolverRuleAssociationsOutput) String() string {
14149	return awsutil.Prettify(s)
14150}
14151
14152// GoString returns the string representation.
14153//
14154// API parameter values that are decorated as "sensitive" in the API will not
14155// be included in the string output. The member name will be present, but the
14156// value will be replaced with "sensitive".
14157func (s ListResolverRuleAssociationsOutput) GoString() string {
14158	return s.String()
14159}
14160
14161// SetMaxResults sets the MaxResults field's value.
14162func (s *ListResolverRuleAssociationsOutput) SetMaxResults(v int64) *ListResolverRuleAssociationsOutput {
14163	s.MaxResults = &v
14164	return s
14165}
14166
14167// SetNextToken sets the NextToken field's value.
14168func (s *ListResolverRuleAssociationsOutput) SetNextToken(v string) *ListResolverRuleAssociationsOutput {
14169	s.NextToken = &v
14170	return s
14171}
14172
14173// SetResolverRuleAssociations sets the ResolverRuleAssociations field's value.
14174func (s *ListResolverRuleAssociationsOutput) SetResolverRuleAssociations(v []*ResolverRuleAssociation) *ListResolverRuleAssociationsOutput {
14175	s.ResolverRuleAssociations = v
14176	return s
14177}
14178
14179type ListResolverRulesInput struct {
14180	_ struct{} `type:"structure"`
14181
14182	// An optional specification to return a subset of Resolver rules, such as all
14183	// Resolver rules that are associated with the same Resolver endpoint.
14184	//
14185	// If you submit a second or subsequent ListResolverRules request and specify
14186	// the NextToken parameter, you must use the same values for Filters, if any,
14187	// as in the previous request.
14188	Filters []*Filter `type:"list"`
14189
14190	// The maximum number of Resolver rules that you want to return in the response
14191	// to a ListResolverRules request. If you don't specify a value for MaxResults,
14192	// Resolver returns up to 100 Resolver rules.
14193	MaxResults *int64 `min:"1" type:"integer"`
14194
14195	// For the first ListResolverRules request, omit this value.
14196	//
14197	// If you have more than MaxResults Resolver rules, you can submit another ListResolverRules
14198	// request to get the next group of Resolver rules. In the next request, specify
14199	// the value of NextToken from the previous response.
14200	NextToken *string `type:"string"`
14201}
14202
14203// String returns the string representation.
14204//
14205// API parameter values that are decorated as "sensitive" in the API will not
14206// be included in the string output. The member name will be present, but the
14207// value will be replaced with "sensitive".
14208func (s ListResolverRulesInput) String() string {
14209	return awsutil.Prettify(s)
14210}
14211
14212// GoString returns the string representation.
14213//
14214// API parameter values that are decorated as "sensitive" in the API will not
14215// be included in the string output. The member name will be present, but the
14216// value will be replaced with "sensitive".
14217func (s ListResolverRulesInput) GoString() string {
14218	return s.String()
14219}
14220
14221// Validate inspects the fields of the type to determine if they are valid.
14222func (s *ListResolverRulesInput) Validate() error {
14223	invalidParams := request.ErrInvalidParams{Context: "ListResolverRulesInput"}
14224	if s.MaxResults != nil && *s.MaxResults < 1 {
14225		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
14226	}
14227	if s.Filters != nil {
14228		for i, v := range s.Filters {
14229			if v == nil {
14230				continue
14231			}
14232			if err := v.Validate(); err != nil {
14233				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
14234			}
14235		}
14236	}
14237
14238	if invalidParams.Len() > 0 {
14239		return invalidParams
14240	}
14241	return nil
14242}
14243
14244// SetFilters sets the Filters field's value.
14245func (s *ListResolverRulesInput) SetFilters(v []*Filter) *ListResolverRulesInput {
14246	s.Filters = v
14247	return s
14248}
14249
14250// SetMaxResults sets the MaxResults field's value.
14251func (s *ListResolverRulesInput) SetMaxResults(v int64) *ListResolverRulesInput {
14252	s.MaxResults = &v
14253	return s
14254}
14255
14256// SetNextToken sets the NextToken field's value.
14257func (s *ListResolverRulesInput) SetNextToken(v string) *ListResolverRulesInput {
14258	s.NextToken = &v
14259	return s
14260}
14261
14262type ListResolverRulesOutput struct {
14263	_ struct{} `type:"structure"`
14264
14265	// The value that you specified for MaxResults in the request.
14266	MaxResults *int64 `min:"1" type:"integer"`
14267
14268	// If more than MaxResults Resolver rules match the specified criteria, you
14269	// can submit another ListResolverRules request to get the next group of results.
14270	// In the next request, specify the value of NextToken from the previous response.
14271	NextToken *string `type:"string"`
14272
14273	// The Resolver rules that were created using the current Amazon Web Services
14274	// account and that match the specified filters, if any.
14275	ResolverRules []*ResolverRule `type:"list"`
14276}
14277
14278// String returns the string representation.
14279//
14280// API parameter values that are decorated as "sensitive" in the API will not
14281// be included in the string output. The member name will be present, but the
14282// value will be replaced with "sensitive".
14283func (s ListResolverRulesOutput) String() string {
14284	return awsutil.Prettify(s)
14285}
14286
14287// GoString returns the string representation.
14288//
14289// API parameter values that are decorated as "sensitive" in the API will not
14290// be included in the string output. The member name will be present, but the
14291// value will be replaced with "sensitive".
14292func (s ListResolverRulesOutput) GoString() string {
14293	return s.String()
14294}
14295
14296// SetMaxResults sets the MaxResults field's value.
14297func (s *ListResolverRulesOutput) SetMaxResults(v int64) *ListResolverRulesOutput {
14298	s.MaxResults = &v
14299	return s
14300}
14301
14302// SetNextToken sets the NextToken field's value.
14303func (s *ListResolverRulesOutput) SetNextToken(v string) *ListResolverRulesOutput {
14304	s.NextToken = &v
14305	return s
14306}
14307
14308// SetResolverRules sets the ResolverRules field's value.
14309func (s *ListResolverRulesOutput) SetResolverRules(v []*ResolverRule) *ListResolverRulesOutput {
14310	s.ResolverRules = v
14311	return s
14312}
14313
14314type ListTagsForResourceInput struct {
14315	_ struct{} `type:"structure"`
14316
14317	// The maximum number of tags that you want to return in the response to a ListTagsForResource
14318	// request. If you don't specify a value for MaxResults, Resolver returns up
14319	// to 100 tags.
14320	MaxResults *int64 `min:"1" type:"integer"`
14321
14322	// For the first ListTagsForResource request, omit this value.
14323	//
14324	// If you have more than MaxResults tags, you can submit another ListTagsForResource
14325	// request to get the next group of tags for the resource. In the next request,
14326	// specify the value of NextToken from the previous response.
14327	NextToken *string `type:"string"`
14328
14329	// The Amazon Resource Name (ARN) for the resource that you want to list tags
14330	// for.
14331	//
14332	// ResourceArn is a required field
14333	ResourceArn *string `min:"1" type:"string" required:"true"`
14334}
14335
14336// String returns the string representation.
14337//
14338// API parameter values that are decorated as "sensitive" in the API will not
14339// be included in the string output. The member name will be present, but the
14340// value will be replaced with "sensitive".
14341func (s ListTagsForResourceInput) String() string {
14342	return awsutil.Prettify(s)
14343}
14344
14345// GoString returns the string representation.
14346//
14347// API parameter values that are decorated as "sensitive" in the API will not
14348// be included in the string output. The member name will be present, but the
14349// value will be replaced with "sensitive".
14350func (s ListTagsForResourceInput) GoString() string {
14351	return s.String()
14352}
14353
14354// Validate inspects the fields of the type to determine if they are valid.
14355func (s *ListTagsForResourceInput) Validate() error {
14356	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
14357	if s.MaxResults != nil && *s.MaxResults < 1 {
14358		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
14359	}
14360	if s.ResourceArn == nil {
14361		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
14362	}
14363	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
14364		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
14365	}
14366
14367	if invalidParams.Len() > 0 {
14368		return invalidParams
14369	}
14370	return nil
14371}
14372
14373// SetMaxResults sets the MaxResults field's value.
14374func (s *ListTagsForResourceInput) SetMaxResults(v int64) *ListTagsForResourceInput {
14375	s.MaxResults = &v
14376	return s
14377}
14378
14379// SetNextToken sets the NextToken field's value.
14380func (s *ListTagsForResourceInput) SetNextToken(v string) *ListTagsForResourceInput {
14381	s.NextToken = &v
14382	return s
14383}
14384
14385// SetResourceArn sets the ResourceArn field's value.
14386func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
14387	s.ResourceArn = &v
14388	return s
14389}
14390
14391type ListTagsForResourceOutput struct {
14392	_ struct{} `type:"structure"`
14393
14394	// If more than MaxResults tags match the specified criteria, you can submit
14395	// another ListTagsForResource request to get the next group of results. In
14396	// the next request, specify the value of NextToken from the previous response.
14397	NextToken *string `type:"string"`
14398
14399	// The tags that are associated with the resource that you specified in the
14400	// ListTagsForResource request.
14401	Tags []*Tag `type:"list"`
14402}
14403
14404// String returns the string representation.
14405//
14406// API parameter values that are decorated as "sensitive" in the API will not
14407// be included in the string output. The member name will be present, but the
14408// value will be replaced with "sensitive".
14409func (s ListTagsForResourceOutput) String() string {
14410	return awsutil.Prettify(s)
14411}
14412
14413// GoString returns the string representation.
14414//
14415// API parameter values that are decorated as "sensitive" in the API will not
14416// be included in the string output. The member name will be present, but the
14417// value will be replaced with "sensitive".
14418func (s ListTagsForResourceOutput) GoString() string {
14419	return s.String()
14420}
14421
14422// SetNextToken sets the NextToken field's value.
14423func (s *ListTagsForResourceOutput) SetNextToken(v string) *ListTagsForResourceOutput {
14424	s.NextToken = &v
14425	return s
14426}
14427
14428// SetTags sets the Tags field's value.
14429func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
14430	s.Tags = v
14431	return s
14432}
14433
14434type PutFirewallRuleGroupPolicyInput struct {
14435	_ struct{} `type:"structure"`
14436
14437	// The ARN (Amazon Resource Name) for the rule group that you want to share.
14438	//
14439	// Arn is a required field
14440	Arn *string `min:"1" type:"string" required:"true"`
14441
14442	// The Identity and Access Management (Amazon Web Services IAM) policy to attach
14443	// to the rule group.
14444	//
14445	// FirewallRuleGroupPolicy is a required field
14446	FirewallRuleGroupPolicy *string `type:"string" required:"true"`
14447}
14448
14449// String returns the string representation.
14450//
14451// API parameter values that are decorated as "sensitive" in the API will not
14452// be included in the string output. The member name will be present, but the
14453// value will be replaced with "sensitive".
14454func (s PutFirewallRuleGroupPolicyInput) String() string {
14455	return awsutil.Prettify(s)
14456}
14457
14458// GoString returns the string representation.
14459//
14460// API parameter values that are decorated as "sensitive" in the API will not
14461// be included in the string output. The member name will be present, but the
14462// value will be replaced with "sensitive".
14463func (s PutFirewallRuleGroupPolicyInput) GoString() string {
14464	return s.String()
14465}
14466
14467// Validate inspects the fields of the type to determine if they are valid.
14468func (s *PutFirewallRuleGroupPolicyInput) Validate() error {
14469	invalidParams := request.ErrInvalidParams{Context: "PutFirewallRuleGroupPolicyInput"}
14470	if s.Arn == nil {
14471		invalidParams.Add(request.NewErrParamRequired("Arn"))
14472	}
14473	if s.Arn != nil && len(*s.Arn) < 1 {
14474		invalidParams.Add(request.NewErrParamMinLen("Arn", 1))
14475	}
14476	if s.FirewallRuleGroupPolicy == nil {
14477		invalidParams.Add(request.NewErrParamRequired("FirewallRuleGroupPolicy"))
14478	}
14479
14480	if invalidParams.Len() > 0 {
14481		return invalidParams
14482	}
14483	return nil
14484}
14485
14486// SetArn sets the Arn field's value.
14487func (s *PutFirewallRuleGroupPolicyInput) SetArn(v string) *PutFirewallRuleGroupPolicyInput {
14488	s.Arn = &v
14489	return s
14490}
14491
14492// SetFirewallRuleGroupPolicy sets the FirewallRuleGroupPolicy field's value.
14493func (s *PutFirewallRuleGroupPolicyInput) SetFirewallRuleGroupPolicy(v string) *PutFirewallRuleGroupPolicyInput {
14494	s.FirewallRuleGroupPolicy = &v
14495	return s
14496}
14497
14498type PutFirewallRuleGroupPolicyOutput struct {
14499	_ struct{} `type:"structure"`
14500
14501	ReturnValue *bool `type:"boolean"`
14502}
14503
14504// String returns the string representation.
14505//
14506// API parameter values that are decorated as "sensitive" in the API will not
14507// be included in the string output. The member name will be present, but the
14508// value will be replaced with "sensitive".
14509func (s PutFirewallRuleGroupPolicyOutput) String() string {
14510	return awsutil.Prettify(s)
14511}
14512
14513// GoString returns the string representation.
14514//
14515// API parameter values that are decorated as "sensitive" in the API will not
14516// be included in the string output. The member name will be present, but the
14517// value will be replaced with "sensitive".
14518func (s PutFirewallRuleGroupPolicyOutput) GoString() string {
14519	return s.String()
14520}
14521
14522// SetReturnValue sets the ReturnValue field's value.
14523func (s *PutFirewallRuleGroupPolicyOutput) SetReturnValue(v bool) *PutFirewallRuleGroupPolicyOutput {
14524	s.ReturnValue = &v
14525	return s
14526}
14527
14528type PutResolverQueryLogConfigPolicyInput struct {
14529	_ struct{} `type:"structure"`
14530
14531	// The Amazon Resource Name (ARN) of the account that you want to share rules
14532	// with.
14533	//
14534	// Arn is a required field
14535	Arn *string `min:"1" type:"string" required:"true"`
14536
14537	// An Identity and Access Management policy statement that lists the query logging
14538	// configurations that you want to share with another Amazon Web Services account
14539	// and the operations that you want the account to be able to perform. You can
14540	// specify the following operations in the Actions section of the statement:
14541	//
14542	//    * route53resolver:AssociateResolverQueryLogConfig
14543	//
14544	//    * route53resolver:DisassociateResolverQueryLogConfig
14545	//
14546	//    * route53resolver:ListResolverQueryLogConfigAssociations
14547	//
14548	//    * route53resolver:ListResolverQueryLogConfigs
14549	//
14550	// In the Resource section of the statement, you specify the ARNs for the query
14551	// logging configurations that you want to share with the account that you specified
14552	// in Arn.
14553	//
14554	// ResolverQueryLogConfigPolicy is a required field
14555	ResolverQueryLogConfigPolicy *string `type:"string" required:"true"`
14556}
14557
14558// String returns the string representation.
14559//
14560// API parameter values that are decorated as "sensitive" in the API will not
14561// be included in the string output. The member name will be present, but the
14562// value will be replaced with "sensitive".
14563func (s PutResolverQueryLogConfigPolicyInput) String() string {
14564	return awsutil.Prettify(s)
14565}
14566
14567// GoString returns the string representation.
14568//
14569// API parameter values that are decorated as "sensitive" in the API will not
14570// be included in the string output. The member name will be present, but the
14571// value will be replaced with "sensitive".
14572func (s PutResolverQueryLogConfigPolicyInput) GoString() string {
14573	return s.String()
14574}
14575
14576// Validate inspects the fields of the type to determine if they are valid.
14577func (s *PutResolverQueryLogConfigPolicyInput) Validate() error {
14578	invalidParams := request.ErrInvalidParams{Context: "PutResolverQueryLogConfigPolicyInput"}
14579	if s.Arn == nil {
14580		invalidParams.Add(request.NewErrParamRequired("Arn"))
14581	}
14582	if s.Arn != nil && len(*s.Arn) < 1 {
14583		invalidParams.Add(request.NewErrParamMinLen("Arn", 1))
14584	}
14585	if s.ResolverQueryLogConfigPolicy == nil {
14586		invalidParams.Add(request.NewErrParamRequired("ResolverQueryLogConfigPolicy"))
14587	}
14588
14589	if invalidParams.Len() > 0 {
14590		return invalidParams
14591	}
14592	return nil
14593}
14594
14595// SetArn sets the Arn field's value.
14596func (s *PutResolverQueryLogConfigPolicyInput) SetArn(v string) *PutResolverQueryLogConfigPolicyInput {
14597	s.Arn = &v
14598	return s
14599}
14600
14601// SetResolverQueryLogConfigPolicy sets the ResolverQueryLogConfigPolicy field's value.
14602func (s *PutResolverQueryLogConfigPolicyInput) SetResolverQueryLogConfigPolicy(v string) *PutResolverQueryLogConfigPolicyInput {
14603	s.ResolverQueryLogConfigPolicy = &v
14604	return s
14605}
14606
14607// The response to a PutResolverQueryLogConfigPolicy request.
14608type PutResolverQueryLogConfigPolicyOutput struct {
14609	_ struct{} `type:"structure"`
14610
14611	// Whether the PutResolverQueryLogConfigPolicy request was successful.
14612	ReturnValue *bool `type:"boolean"`
14613}
14614
14615// String returns the string representation.
14616//
14617// API parameter values that are decorated as "sensitive" in the API will not
14618// be included in the string output. The member name will be present, but the
14619// value will be replaced with "sensitive".
14620func (s PutResolverQueryLogConfigPolicyOutput) String() string {
14621	return awsutil.Prettify(s)
14622}
14623
14624// GoString returns the string representation.
14625//
14626// API parameter values that are decorated as "sensitive" in the API will not
14627// be included in the string output. The member name will be present, but the
14628// value will be replaced with "sensitive".
14629func (s PutResolverQueryLogConfigPolicyOutput) GoString() string {
14630	return s.String()
14631}
14632
14633// SetReturnValue sets the ReturnValue field's value.
14634func (s *PutResolverQueryLogConfigPolicyOutput) SetReturnValue(v bool) *PutResolverQueryLogConfigPolicyOutput {
14635	s.ReturnValue = &v
14636	return s
14637}
14638
14639type PutResolverRulePolicyInput struct {
14640	_ struct{} `type:"structure"`
14641
14642	// The Amazon Resource Name (ARN) of the rule that you want to share with another
14643	// account.
14644	//
14645	// Arn is a required field
14646	Arn *string `min:"1" type:"string" required:"true"`
14647
14648	// An Identity and Access Management policy statement that lists the rules that
14649	// you want to share with another Amazon Web Services account and the operations
14650	// that you want the account to be able to perform. You can specify the following
14651	// operations in the Action section of the statement:
14652	//
14653	//    * route53resolver:GetResolverRule
14654	//
14655	//    * route53resolver:AssociateResolverRule
14656	//
14657	//    * route53resolver:DisassociateResolverRule
14658	//
14659	//    * route53resolver:ListResolverRules
14660	//
14661	//    * route53resolver:ListResolverRuleAssociations
14662	//
14663	// In the Resource section of the statement, specify the ARN for the rule that
14664	// you want to share with another account. Specify the same ARN that you specified
14665	// in Arn.
14666	//
14667	// ResolverRulePolicy is a required field
14668	ResolverRulePolicy *string `type:"string" required:"true"`
14669}
14670
14671// String returns the string representation.
14672//
14673// API parameter values that are decorated as "sensitive" in the API will not
14674// be included in the string output. The member name will be present, but the
14675// value will be replaced with "sensitive".
14676func (s PutResolverRulePolicyInput) String() string {
14677	return awsutil.Prettify(s)
14678}
14679
14680// GoString returns the string representation.
14681//
14682// API parameter values that are decorated as "sensitive" in the API will not
14683// be included in the string output. The member name will be present, but the
14684// value will be replaced with "sensitive".
14685func (s PutResolverRulePolicyInput) GoString() string {
14686	return s.String()
14687}
14688
14689// Validate inspects the fields of the type to determine if they are valid.
14690func (s *PutResolverRulePolicyInput) Validate() error {
14691	invalidParams := request.ErrInvalidParams{Context: "PutResolverRulePolicyInput"}
14692	if s.Arn == nil {
14693		invalidParams.Add(request.NewErrParamRequired("Arn"))
14694	}
14695	if s.Arn != nil && len(*s.Arn) < 1 {
14696		invalidParams.Add(request.NewErrParamMinLen("Arn", 1))
14697	}
14698	if s.ResolverRulePolicy == nil {
14699		invalidParams.Add(request.NewErrParamRequired("ResolverRulePolicy"))
14700	}
14701
14702	if invalidParams.Len() > 0 {
14703		return invalidParams
14704	}
14705	return nil
14706}
14707
14708// SetArn sets the Arn field's value.
14709func (s *PutResolverRulePolicyInput) SetArn(v string) *PutResolverRulePolicyInput {
14710	s.Arn = &v
14711	return s
14712}
14713
14714// SetResolverRulePolicy sets the ResolverRulePolicy field's value.
14715func (s *PutResolverRulePolicyInput) SetResolverRulePolicy(v string) *PutResolverRulePolicyInput {
14716	s.ResolverRulePolicy = &v
14717	return s
14718}
14719
14720// The response to a PutResolverRulePolicy request.
14721type PutResolverRulePolicyOutput struct {
14722	_ struct{} `type:"structure"`
14723
14724	// Whether the PutResolverRulePolicy request was successful.
14725	ReturnValue *bool `type:"boolean"`
14726}
14727
14728// String returns the string representation.
14729//
14730// API parameter values that are decorated as "sensitive" in the API will not
14731// be included in the string output. The member name will be present, but the
14732// value will be replaced with "sensitive".
14733func (s PutResolverRulePolicyOutput) String() string {
14734	return awsutil.Prettify(s)
14735}
14736
14737// GoString returns the string representation.
14738//
14739// API parameter values that are decorated as "sensitive" in the API will not
14740// be included in the string output. The member name will be present, but the
14741// value will be replaced with "sensitive".
14742func (s PutResolverRulePolicyOutput) GoString() string {
14743	return s.String()
14744}
14745
14746// SetReturnValue sets the ReturnValue field's value.
14747func (s *PutResolverRulePolicyOutput) SetReturnValue(v bool) *PutResolverRulePolicyOutput {
14748	s.ReturnValue = &v
14749	return s
14750}
14751
14752// A complex type that contains information about a Resolver configuration for
14753// a VPC.
14754type ResolverConfig struct {
14755	_ struct{} `type:"structure"`
14756
14757	// The status of whether or not the Resolver will create autodefined rules for
14758	// reverse DNS lookups. This is enabled by default. The status can be one of
14759	// following:
14760	//
14761	// Status of the rules generated by VPCs based on CIDR/Region for reverse DNS
14762	// resolution. The status can be one of following:
14763	//
14764	//    * ENABLING: Autodefined rules for reverse DNS lookups are being enabled
14765	//    but are not complete.
14766	//
14767	//    * ENABLED: Autodefined rules for reverse DNS lookups are enabled.
14768	//
14769	//    * DISABLING: Autodefined rules for reverse DNS lookups are being disabled
14770	//    but are not complete.
14771	//
14772	//    * DISABLED: Autodefined rules for reverse DNS lookups are disabled.
14773	AutodefinedReverse *string `type:"string" enum:"ResolverAutodefinedReverseStatus"`
14774
14775	// ID for the Resolver configuration.
14776	Id *string `min:"1" type:"string"`
14777
14778	// The owner account ID of the Amazon Virtual Private Cloud VPC.
14779	OwnerId *string `min:"12" type:"string"`
14780
14781	// The ID of the Amazon Virtual Private Cloud VPC that you're configuring Resolver
14782	// for.
14783	ResourceId *string `min:"1" type:"string"`
14784}
14785
14786// String returns the string representation.
14787//
14788// API parameter values that are decorated as "sensitive" in the API will not
14789// be included in the string output. The member name will be present, but the
14790// value will be replaced with "sensitive".
14791func (s ResolverConfig) String() string {
14792	return awsutil.Prettify(s)
14793}
14794
14795// GoString returns the string representation.
14796//
14797// API parameter values that are decorated as "sensitive" in the API will not
14798// be included in the string output. The member name will be present, but the
14799// value will be replaced with "sensitive".
14800func (s ResolverConfig) GoString() string {
14801	return s.String()
14802}
14803
14804// SetAutodefinedReverse sets the AutodefinedReverse field's value.
14805func (s *ResolverConfig) SetAutodefinedReverse(v string) *ResolverConfig {
14806	s.AutodefinedReverse = &v
14807	return s
14808}
14809
14810// SetId sets the Id field's value.
14811func (s *ResolverConfig) SetId(v string) *ResolverConfig {
14812	s.Id = &v
14813	return s
14814}
14815
14816// SetOwnerId sets the OwnerId field's value.
14817func (s *ResolverConfig) SetOwnerId(v string) *ResolverConfig {
14818	s.OwnerId = &v
14819	return s
14820}
14821
14822// SetResourceId sets the ResourceId field's value.
14823func (s *ResolverConfig) SetResourceId(v string) *ResolverConfig {
14824	s.ResourceId = &v
14825	return s
14826}
14827
14828// A complex type that contains information about a configuration for DNSSEC
14829// validation.
14830type ResolverDnssecConfig struct {
14831	_ struct{} `type:"structure"`
14832
14833	// The ID for a configuration for DNSSEC validation.
14834	Id *string `min:"1" type:"string"`
14835
14836	// The owner account ID of the virtual private cloud (VPC) for a configuration
14837	// for DNSSEC validation.
14838	OwnerId *string `min:"12" type:"string"`
14839
14840	// The ID of the virtual private cloud (VPC) that you're configuring the DNSSEC
14841	// validation status for.
14842	ResourceId *string `min:"1" type:"string"`
14843
14844	// The validation status for a DNSSEC configuration. The status can be one of
14845	// the following:
14846	//
14847	//    * ENABLING: DNSSEC validation is being enabled but is not complete.
14848	//
14849	//    * ENABLED: DNSSEC validation is enabled.
14850	//
14851	//    * DISABLING: DNSSEC validation is being disabled but is not complete.
14852	//
14853	//    * DISABLED DNSSEC validation is disabled.
14854	ValidationStatus *string `type:"string" enum:"ResolverDNSSECValidationStatus"`
14855}
14856
14857// String returns the string representation.
14858//
14859// API parameter values that are decorated as "sensitive" in the API will not
14860// be included in the string output. The member name will be present, but the
14861// value will be replaced with "sensitive".
14862func (s ResolverDnssecConfig) String() string {
14863	return awsutil.Prettify(s)
14864}
14865
14866// GoString returns the string representation.
14867//
14868// API parameter values that are decorated as "sensitive" in the API will not
14869// be included in the string output. The member name will be present, but the
14870// value will be replaced with "sensitive".
14871func (s ResolverDnssecConfig) GoString() string {
14872	return s.String()
14873}
14874
14875// SetId sets the Id field's value.
14876func (s *ResolverDnssecConfig) SetId(v string) *ResolverDnssecConfig {
14877	s.Id = &v
14878	return s
14879}
14880
14881// SetOwnerId sets the OwnerId field's value.
14882func (s *ResolverDnssecConfig) SetOwnerId(v string) *ResolverDnssecConfig {
14883	s.OwnerId = &v
14884	return s
14885}
14886
14887// SetResourceId sets the ResourceId field's value.
14888func (s *ResolverDnssecConfig) SetResourceId(v string) *ResolverDnssecConfig {
14889	s.ResourceId = &v
14890	return s
14891}
14892
14893// SetValidationStatus sets the ValidationStatus field's value.
14894func (s *ResolverDnssecConfig) SetValidationStatus(v string) *ResolverDnssecConfig {
14895	s.ValidationStatus = &v
14896	return s
14897}
14898
14899// In the response to a CreateResolverEndpoint (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_CreateResolverEndpoint.html),
14900// DeleteResolverEndpoint (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_DeleteResolverEndpoint.html),
14901// GetResolverEndpoint (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverEndpoint.html),
14902// ListResolverEndpoints (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverEndpoints.html),
14903// or UpdateResolverEndpoint (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_UpdateResolverEndpoint.html)
14904// request, a complex type that contains settings for an existing inbound or
14905// outbound Resolver endpoint.
14906type ResolverEndpoint struct {
14907	_ struct{} `type:"structure"`
14908
14909	// The ARN (Amazon Resource Name) for the Resolver endpoint.
14910	Arn *string `min:"1" type:"string"`
14911
14912	// The date and time that the endpoint was created, in Unix time format and
14913	// Coordinated Universal Time (UTC).
14914	CreationTime *string `min:"20" type:"string"`
14915
14916	// A unique string that identifies the request that created the Resolver endpoint.
14917	// The CreatorRequestId allows failed requests to be retried without the risk
14918	// of running the operation twice.
14919	CreatorRequestId *string `min:"1" type:"string"`
14920
14921	// Indicates whether the Resolver endpoint allows inbound or outbound DNS queries:
14922	//
14923	//    * INBOUND: allows DNS queries to your VPC from your network
14924	//
14925	//    * OUTBOUND: allows DNS queries from your VPC to your network
14926	Direction *string `type:"string" enum:"ResolverEndpointDirection"`
14927
14928	// The ID of the VPC that you want to create the Resolver endpoint in.
14929	HostVPCId *string `min:"1" type:"string"`
14930
14931	// The ID of the Resolver endpoint.
14932	Id *string `min:"1" type:"string"`
14933
14934	// The number of IP addresses that the Resolver endpoint can use for DNS queries.
14935	IpAddressCount *int64 `type:"integer"`
14936
14937	// The date and time that the endpoint was last modified, in Unix time format
14938	// and Coordinated Universal Time (UTC).
14939	ModificationTime *string `min:"20" type:"string"`
14940
14941	// The name that you assigned to the Resolver endpoint when you submitted a
14942	// CreateResolverEndpoint (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_CreateResolverEndpoint.html)
14943	// request.
14944	Name *string `type:"string"`
14945
14946	// The ID of one or more security groups that control access to this VPC. The
14947	// security group must include one or more inbound rules (for inbound endpoints)
14948	// or outbound rules (for outbound endpoints). Inbound and outbound rules must
14949	// allow TCP and UDP access. For inbound access, open port 53. For outbound
14950	// access, open the port that you're using for DNS queries on your network.
14951	SecurityGroupIds []*string `type:"list"`
14952
14953	// A code that specifies the current status of the Resolver endpoint. Valid
14954	// values include the following:
14955	//
14956	//    * CREATING: Resolver is creating and configuring one or more Amazon VPC
14957	//    network interfaces for this endpoint.
14958	//
14959	//    * OPERATIONAL: The Amazon VPC network interfaces for this endpoint are
14960	//    correctly configured and able to pass inbound or outbound DNS queries
14961	//    between your network and Resolver.
14962	//
14963	//    * UPDATING: Resolver is associating or disassociating one or more network
14964	//    interfaces with this endpoint.
14965	//
14966	//    * AUTO_RECOVERING: Resolver is trying to recover one or more of the network
14967	//    interfaces that are associated with this endpoint. During the recovery
14968	//    process, the endpoint functions with limited capacity because of the limit
14969	//    on the number of DNS queries per IP address (per network interface). For
14970	//    the current limit, see Limits on Route 53 Resolver (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DNSLimitations.html#limits-api-entities-resolver).
14971	//
14972	//    * ACTION_NEEDED: This endpoint is unhealthy, and Resolver can't automatically
14973	//    recover it. To resolve the problem, we recommend that you check each IP
14974	//    address that you associated with the endpoint. For each IP address that
14975	//    isn't available, add another IP address and then delete the IP address
14976	//    that isn't available. (An endpoint must always include at least two IP
14977	//    addresses.) A status of ACTION_NEEDED can have a variety of causes. Here
14978	//    are two common causes: One or more of the network interfaces that are
14979	//    associated with the endpoint were deleted using Amazon VPC. The network
14980	//    interface couldn't be created for some reason that's outside the control
14981	//    of Resolver.
14982	//
14983	//    * DELETING: Resolver is deleting this endpoint and the associated network
14984	//    interfaces.
14985	Status *string `type:"string" enum:"ResolverEndpointStatus"`
14986
14987	// A detailed description of the status of the Resolver endpoint.
14988	StatusMessage *string `type:"string"`
14989}
14990
14991// String returns the string representation.
14992//
14993// API parameter values that are decorated as "sensitive" in the API will not
14994// be included in the string output. The member name will be present, but the
14995// value will be replaced with "sensitive".
14996func (s ResolverEndpoint) String() string {
14997	return awsutil.Prettify(s)
14998}
14999
15000// GoString returns the string representation.
15001//
15002// API parameter values that are decorated as "sensitive" in the API will not
15003// be included in the string output. The member name will be present, but the
15004// value will be replaced with "sensitive".
15005func (s ResolverEndpoint) GoString() string {
15006	return s.String()
15007}
15008
15009// SetArn sets the Arn field's value.
15010func (s *ResolverEndpoint) SetArn(v string) *ResolverEndpoint {
15011	s.Arn = &v
15012	return s
15013}
15014
15015// SetCreationTime sets the CreationTime field's value.
15016func (s *ResolverEndpoint) SetCreationTime(v string) *ResolverEndpoint {
15017	s.CreationTime = &v
15018	return s
15019}
15020
15021// SetCreatorRequestId sets the CreatorRequestId field's value.
15022func (s *ResolverEndpoint) SetCreatorRequestId(v string) *ResolverEndpoint {
15023	s.CreatorRequestId = &v
15024	return s
15025}
15026
15027// SetDirection sets the Direction field's value.
15028func (s *ResolverEndpoint) SetDirection(v string) *ResolverEndpoint {
15029	s.Direction = &v
15030	return s
15031}
15032
15033// SetHostVPCId sets the HostVPCId field's value.
15034func (s *ResolverEndpoint) SetHostVPCId(v string) *ResolverEndpoint {
15035	s.HostVPCId = &v
15036	return s
15037}
15038
15039// SetId sets the Id field's value.
15040func (s *ResolverEndpoint) SetId(v string) *ResolverEndpoint {
15041	s.Id = &v
15042	return s
15043}
15044
15045// SetIpAddressCount sets the IpAddressCount field's value.
15046func (s *ResolverEndpoint) SetIpAddressCount(v int64) *ResolverEndpoint {
15047	s.IpAddressCount = &v
15048	return s
15049}
15050
15051// SetModificationTime sets the ModificationTime field's value.
15052func (s *ResolverEndpoint) SetModificationTime(v string) *ResolverEndpoint {
15053	s.ModificationTime = &v
15054	return s
15055}
15056
15057// SetName sets the Name field's value.
15058func (s *ResolverEndpoint) SetName(v string) *ResolverEndpoint {
15059	s.Name = &v
15060	return s
15061}
15062
15063// SetSecurityGroupIds sets the SecurityGroupIds field's value.
15064func (s *ResolverEndpoint) SetSecurityGroupIds(v []*string) *ResolverEndpoint {
15065	s.SecurityGroupIds = v
15066	return s
15067}
15068
15069// SetStatus sets the Status field's value.
15070func (s *ResolverEndpoint) SetStatus(v string) *ResolverEndpoint {
15071	s.Status = &v
15072	return s
15073}
15074
15075// SetStatusMessage sets the StatusMessage field's value.
15076func (s *ResolverEndpoint) SetStatusMessage(v string) *ResolverEndpoint {
15077	s.StatusMessage = &v
15078	return s
15079}
15080
15081// In the response to a CreateResolverQueryLogConfig (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_CreateResolverQueryLogConfig.html),
15082// DeleteResolverQueryLogConfig (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_DeleteResolverQueryLogConfig.html),
15083// GetResolverQueryLogConfig (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverQueryLogConfig.html),
15084// or ListResolverQueryLogConfigs (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverQueryLogConfigs.html)
15085// request, a complex type that contains settings for one query logging configuration.
15086type ResolverQueryLogConfig struct {
15087	_ struct{} `type:"structure"`
15088
15089	// The ARN for the query logging configuration.
15090	Arn *string `min:"1" type:"string"`
15091
15092	// The number of VPCs that are associated with the query logging configuration.
15093	AssociationCount *int64 `type:"integer"`
15094
15095	// The date and time that the query logging configuration was created, in Unix
15096	// time format and Coordinated Universal Time (UTC).
15097	CreationTime *string `min:"20" type:"string"`
15098
15099	// A unique string that identifies the request that created the query logging
15100	// configuration. The CreatorRequestId allows failed requests to be retried
15101	// without the risk of running the operation twice.
15102	CreatorRequestId *string `min:"1" type:"string"`
15103
15104	// The ARN of the resource that you want Resolver to send query logs: an Amazon
15105	// S3 bucket, a CloudWatch Logs log group, or a Kinesis Data Firehose delivery
15106	// stream.
15107	DestinationArn *string `min:"1" type:"string"`
15108
15109	// The ID for the query logging configuration.
15110	Id *string `min:"1" type:"string"`
15111
15112	// The name of the query logging configuration.
15113	Name *string `min:"1" type:"string"`
15114
15115	// The Amazon Web Services account ID for the account that created the query
15116	// logging configuration.
15117	OwnerId *string `min:"12" type:"string"`
15118
15119	// An indication of whether the query logging configuration is shared with other
15120	// Amazon Web Services accounts, or was shared with the current account by another
15121	// Amazon Web Services account. Sharing is configured through Resource Access
15122	// Manager (RAM).
15123	ShareStatus *string `type:"string" enum:"ShareStatus"`
15124
15125	// The status of the specified query logging configuration. Valid values include
15126	// the following:
15127	//
15128	//    * CREATING: Resolver is creating the query logging configuration.
15129	//
15130	//    * CREATED: The query logging configuration was successfully created. Resolver
15131	//    is logging queries that originate in the specified VPC.
15132	//
15133	//    * DELETING: Resolver is deleting this query logging configuration.
15134	//
15135	//    * FAILED: Resolver can't deliver logs to the location that is specified
15136	//    in the query logging configuration. Here are two common causes: The specified
15137	//    destination (for example, an Amazon S3 bucket) was deleted. Permissions
15138	//    don't allow sending logs to the destination.
15139	Status *string `type:"string" enum:"ResolverQueryLogConfigStatus"`
15140}
15141
15142// String returns the string representation.
15143//
15144// API parameter values that are decorated as "sensitive" in the API will not
15145// be included in the string output. The member name will be present, but the
15146// value will be replaced with "sensitive".
15147func (s ResolverQueryLogConfig) String() string {
15148	return awsutil.Prettify(s)
15149}
15150
15151// GoString returns the string representation.
15152//
15153// API parameter values that are decorated as "sensitive" in the API will not
15154// be included in the string output. The member name will be present, but the
15155// value will be replaced with "sensitive".
15156func (s ResolverQueryLogConfig) GoString() string {
15157	return s.String()
15158}
15159
15160// SetArn sets the Arn field's value.
15161func (s *ResolverQueryLogConfig) SetArn(v string) *ResolverQueryLogConfig {
15162	s.Arn = &v
15163	return s
15164}
15165
15166// SetAssociationCount sets the AssociationCount field's value.
15167func (s *ResolverQueryLogConfig) SetAssociationCount(v int64) *ResolverQueryLogConfig {
15168	s.AssociationCount = &v
15169	return s
15170}
15171
15172// SetCreationTime sets the CreationTime field's value.
15173func (s *ResolverQueryLogConfig) SetCreationTime(v string) *ResolverQueryLogConfig {
15174	s.CreationTime = &v
15175	return s
15176}
15177
15178// SetCreatorRequestId sets the CreatorRequestId field's value.
15179func (s *ResolverQueryLogConfig) SetCreatorRequestId(v string) *ResolverQueryLogConfig {
15180	s.CreatorRequestId = &v
15181	return s
15182}
15183
15184// SetDestinationArn sets the DestinationArn field's value.
15185func (s *ResolverQueryLogConfig) SetDestinationArn(v string) *ResolverQueryLogConfig {
15186	s.DestinationArn = &v
15187	return s
15188}
15189
15190// SetId sets the Id field's value.
15191func (s *ResolverQueryLogConfig) SetId(v string) *ResolverQueryLogConfig {
15192	s.Id = &v
15193	return s
15194}
15195
15196// SetName sets the Name field's value.
15197func (s *ResolverQueryLogConfig) SetName(v string) *ResolverQueryLogConfig {
15198	s.Name = &v
15199	return s
15200}
15201
15202// SetOwnerId sets the OwnerId field's value.
15203func (s *ResolverQueryLogConfig) SetOwnerId(v string) *ResolverQueryLogConfig {
15204	s.OwnerId = &v
15205	return s
15206}
15207
15208// SetShareStatus sets the ShareStatus field's value.
15209func (s *ResolverQueryLogConfig) SetShareStatus(v string) *ResolverQueryLogConfig {
15210	s.ShareStatus = &v
15211	return s
15212}
15213
15214// SetStatus sets the Status field's value.
15215func (s *ResolverQueryLogConfig) SetStatus(v string) *ResolverQueryLogConfig {
15216	s.Status = &v
15217	return s
15218}
15219
15220// In the response to an AssociateResolverQueryLogConfig (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_AssociateResolverQueryLogConfig.html),
15221// DisassociateResolverQueryLogConfig (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_DisassociateResolverQueryLogConfig.html),
15222// GetResolverQueryLogConfigAssociation (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverQueryLogConfigAssociation.html),
15223// or ListResolverQueryLogConfigAssociations (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverQueryLogConfigAssociations.html),
15224// request, a complex type that contains settings for a specified association
15225// between an Amazon VPC and a query logging configuration.
15226type ResolverQueryLogConfigAssociation struct {
15227	_ struct{} `type:"structure"`
15228
15229	// The date and time that the VPC was associated with the query logging configuration,
15230	// in Unix time format and Coordinated Universal Time (UTC).
15231	CreationTime *string `min:"20" type:"string"`
15232
15233	// If the value of Status is FAILED, the value of Error indicates the cause:
15234	//
15235	//    * DESTINATION_NOT_FOUND: The specified destination (for example, an Amazon
15236	//    S3 bucket) was deleted.
15237	//
15238	//    * ACCESS_DENIED: Permissions don't allow sending logs to the destination.
15239	//
15240	// If the value of Status is a value other than FAILED, Error is null.
15241	Error *string `type:"string" enum:"ResolverQueryLogConfigAssociationError"`
15242
15243	// Contains additional information about the error. If the value or Error is
15244	// null, the value of ErrorMessage also is null.
15245	ErrorMessage *string `type:"string"`
15246
15247	// The ID of the query logging association.
15248	Id *string `min:"1" type:"string"`
15249
15250	// The ID of the query logging configuration that a VPC is associated with.
15251	ResolverQueryLogConfigId *string `min:"1" type:"string"`
15252
15253	// The ID of the Amazon VPC that is associated with the query logging configuration.
15254	ResourceId *string `min:"1" type:"string"`
15255
15256	// The status of the specified query logging association. Valid values include
15257	// the following:
15258	//
15259	//    * CREATING: Resolver is creating an association between an Amazon VPC
15260	//    and a query logging configuration.
15261	//
15262	//    * CREATED: The association between an Amazon VPC and a query logging configuration
15263	//    was successfully created. Resolver is logging queries that originate in
15264	//    the specified VPC.
15265	//
15266	//    * DELETING: Resolver is deleting this query logging association.
15267	//
15268	//    * FAILED: Resolver either couldn't create or couldn't delete the query
15269	//    logging association.
15270	Status *string `type:"string" enum:"ResolverQueryLogConfigAssociationStatus"`
15271}
15272
15273// String returns the string representation.
15274//
15275// API parameter values that are decorated as "sensitive" in the API will not
15276// be included in the string output. The member name will be present, but the
15277// value will be replaced with "sensitive".
15278func (s ResolverQueryLogConfigAssociation) String() string {
15279	return awsutil.Prettify(s)
15280}
15281
15282// GoString returns the string representation.
15283//
15284// API parameter values that are decorated as "sensitive" in the API will not
15285// be included in the string output. The member name will be present, but the
15286// value will be replaced with "sensitive".
15287func (s ResolverQueryLogConfigAssociation) GoString() string {
15288	return s.String()
15289}
15290
15291// SetCreationTime sets the CreationTime field's value.
15292func (s *ResolverQueryLogConfigAssociation) SetCreationTime(v string) *ResolverQueryLogConfigAssociation {
15293	s.CreationTime = &v
15294	return s
15295}
15296
15297// SetError sets the Error field's value.
15298func (s *ResolverQueryLogConfigAssociation) SetError(v string) *ResolverQueryLogConfigAssociation {
15299	s.Error = &v
15300	return s
15301}
15302
15303// SetErrorMessage sets the ErrorMessage field's value.
15304func (s *ResolverQueryLogConfigAssociation) SetErrorMessage(v string) *ResolverQueryLogConfigAssociation {
15305	s.ErrorMessage = &v
15306	return s
15307}
15308
15309// SetId sets the Id field's value.
15310func (s *ResolverQueryLogConfigAssociation) SetId(v string) *ResolverQueryLogConfigAssociation {
15311	s.Id = &v
15312	return s
15313}
15314
15315// SetResolverQueryLogConfigId sets the ResolverQueryLogConfigId field's value.
15316func (s *ResolverQueryLogConfigAssociation) SetResolverQueryLogConfigId(v string) *ResolverQueryLogConfigAssociation {
15317	s.ResolverQueryLogConfigId = &v
15318	return s
15319}
15320
15321// SetResourceId sets the ResourceId field's value.
15322func (s *ResolverQueryLogConfigAssociation) SetResourceId(v string) *ResolverQueryLogConfigAssociation {
15323	s.ResourceId = &v
15324	return s
15325}
15326
15327// SetStatus sets the Status field's value.
15328func (s *ResolverQueryLogConfigAssociation) SetStatus(v string) *ResolverQueryLogConfigAssociation {
15329	s.Status = &v
15330	return s
15331}
15332
15333// For queries that originate in your VPC, detailed information about a Resolver
15334// rule, which specifies how to route DNS queries out of the VPC. The ResolverRule
15335// parameter appears in the response to a CreateResolverRule (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_CreateResolverRule.html),
15336// DeleteResolverRule (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_DeleteResolverRule.html),
15337// GetResolverRule (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverRule.html),
15338// ListResolverRules (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverRules.html),
15339// or UpdateResolverRule (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_UpdateResolverRule.html)
15340// request.
15341type ResolverRule struct {
15342	_ struct{} `type:"structure"`
15343
15344	// The ARN (Amazon Resource Name) for the Resolver rule specified by Id.
15345	Arn *string `min:"1" type:"string"`
15346
15347	// The date and time that the Resolver rule was created, in Unix time format
15348	// and Coordinated Universal Time (UTC).
15349	CreationTime *string `min:"20" type:"string"`
15350
15351	// A unique string that you specified when you created the Resolver rule. CreatorRequestId
15352	// identifies the request and allows failed requests to be retried without the
15353	// risk of running the operation twice.
15354	CreatorRequestId *string `min:"1" type:"string"`
15355
15356	// DNS queries for this domain name are forwarded to the IP addresses that are
15357	// specified in TargetIps. If a query matches multiple Resolver rules (example.com
15358	// and www.example.com), the query is routed using the Resolver rule that contains
15359	// the most specific domain name (www.example.com).
15360	DomainName *string `min:"1" type:"string"`
15361
15362	// The ID that Resolver assigned to the Resolver rule when you created it.
15363	Id *string `min:"1" type:"string"`
15364
15365	// The date and time that the Resolver rule was last updated, in Unix time format
15366	// and Coordinated Universal Time (UTC).
15367	ModificationTime *string `min:"20" type:"string"`
15368
15369	// The name for the Resolver rule, which you specified when you created the
15370	// Resolver rule.
15371	Name *string `type:"string"`
15372
15373	// When a rule is shared with another Amazon Web Services account, the account
15374	// ID of the account that the rule is shared with.
15375	OwnerId *string `min:"12" type:"string"`
15376
15377	// The ID of the endpoint that the rule is associated with.
15378	ResolverEndpointId *string `min:"1" type:"string"`
15379
15380	// When you want to forward DNS queries for specified domain name to resolvers
15381	// on your network, specify FORWARD.
15382	//
15383	// When you have a forwarding rule to forward DNS queries for a domain to your
15384	// network and you want Resolver to process queries for a subdomain of that
15385	// domain, specify SYSTEM.
15386	//
15387	// For example, to forward DNS queries for example.com to resolvers on your
15388	// network, you create a rule and specify FORWARD for RuleType. To then have
15389	// Resolver process queries for apex.example.com, you create a rule and specify
15390	// SYSTEM for RuleType.
15391	//
15392	// Currently, only Resolver can create rules that have a value of RECURSIVE
15393	// for RuleType.
15394	RuleType *string `type:"string" enum:"RuleTypeOption"`
15395
15396	// Whether the rule is shared and, if so, whether the current account is sharing
15397	// the rule with another account, or another account is sharing the rule with
15398	// the current account.
15399	ShareStatus *string `type:"string" enum:"ShareStatus"`
15400
15401	// A code that specifies the current status of the Resolver rule.
15402	Status *string `type:"string" enum:"ResolverRuleStatus"`
15403
15404	// A detailed description of the status of a Resolver rule.
15405	StatusMessage *string `type:"string"`
15406
15407	// An array that contains the IP addresses and ports that an outbound endpoint
15408	// forwards DNS queries to. Typically, these are the IP addresses of DNS resolvers
15409	// on your network. Specify IPv4 addresses. IPv6 is not supported.
15410	TargetIps []*TargetAddress `min:"1" type:"list"`
15411}
15412
15413// String returns the string representation.
15414//
15415// API parameter values that are decorated as "sensitive" in the API will not
15416// be included in the string output. The member name will be present, but the
15417// value will be replaced with "sensitive".
15418func (s ResolverRule) String() string {
15419	return awsutil.Prettify(s)
15420}
15421
15422// GoString returns the string representation.
15423//
15424// API parameter values that are decorated as "sensitive" in the API will not
15425// be included in the string output. The member name will be present, but the
15426// value will be replaced with "sensitive".
15427func (s ResolverRule) GoString() string {
15428	return s.String()
15429}
15430
15431// SetArn sets the Arn field's value.
15432func (s *ResolverRule) SetArn(v string) *ResolverRule {
15433	s.Arn = &v
15434	return s
15435}
15436
15437// SetCreationTime sets the CreationTime field's value.
15438func (s *ResolverRule) SetCreationTime(v string) *ResolverRule {
15439	s.CreationTime = &v
15440	return s
15441}
15442
15443// SetCreatorRequestId sets the CreatorRequestId field's value.
15444func (s *ResolverRule) SetCreatorRequestId(v string) *ResolverRule {
15445	s.CreatorRequestId = &v
15446	return s
15447}
15448
15449// SetDomainName sets the DomainName field's value.
15450func (s *ResolverRule) SetDomainName(v string) *ResolverRule {
15451	s.DomainName = &v
15452	return s
15453}
15454
15455// SetId sets the Id field's value.
15456func (s *ResolverRule) SetId(v string) *ResolverRule {
15457	s.Id = &v
15458	return s
15459}
15460
15461// SetModificationTime sets the ModificationTime field's value.
15462func (s *ResolverRule) SetModificationTime(v string) *ResolverRule {
15463	s.ModificationTime = &v
15464	return s
15465}
15466
15467// SetName sets the Name field's value.
15468func (s *ResolverRule) SetName(v string) *ResolverRule {
15469	s.Name = &v
15470	return s
15471}
15472
15473// SetOwnerId sets the OwnerId field's value.
15474func (s *ResolverRule) SetOwnerId(v string) *ResolverRule {
15475	s.OwnerId = &v
15476	return s
15477}
15478
15479// SetResolverEndpointId sets the ResolverEndpointId field's value.
15480func (s *ResolverRule) SetResolverEndpointId(v string) *ResolverRule {
15481	s.ResolverEndpointId = &v
15482	return s
15483}
15484
15485// SetRuleType sets the RuleType field's value.
15486func (s *ResolverRule) SetRuleType(v string) *ResolverRule {
15487	s.RuleType = &v
15488	return s
15489}
15490
15491// SetShareStatus sets the ShareStatus field's value.
15492func (s *ResolverRule) SetShareStatus(v string) *ResolverRule {
15493	s.ShareStatus = &v
15494	return s
15495}
15496
15497// SetStatus sets the Status field's value.
15498func (s *ResolverRule) SetStatus(v string) *ResolverRule {
15499	s.Status = &v
15500	return s
15501}
15502
15503// SetStatusMessage sets the StatusMessage field's value.
15504func (s *ResolverRule) SetStatusMessage(v string) *ResolverRule {
15505	s.StatusMessage = &v
15506	return s
15507}
15508
15509// SetTargetIps sets the TargetIps field's value.
15510func (s *ResolverRule) SetTargetIps(v []*TargetAddress) *ResolverRule {
15511	s.TargetIps = v
15512	return s
15513}
15514
15515// In the response to an AssociateResolverRule (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_AssociateResolverRule.html),
15516// DisassociateResolverRule (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_DisassociateResolverRule.html),
15517// or ListResolverRuleAssociations (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverRuleAssociations.html)
15518// request, provides information about an association between a Resolver rule
15519// and a VPC. The association determines which DNS queries that originate in
15520// the VPC are forwarded to your network.
15521type ResolverRuleAssociation struct {
15522	_ struct{} `type:"structure"`
15523
15524	// The ID of the association between a Resolver rule and a VPC. Resolver assigns
15525	// this value when you submit an AssociateResolverRule (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_AssociateResolverRule.html)
15526	// request.
15527	Id *string `min:"1" type:"string"`
15528
15529	// The name of an association between a Resolver rule and a VPC.
15530	Name *string `type:"string"`
15531
15532	// The ID of the Resolver rule that you associated with the VPC that is specified
15533	// by VPCId.
15534	ResolverRuleId *string `min:"1" type:"string"`
15535
15536	// A code that specifies the current status of the association between a Resolver
15537	// rule and a VPC.
15538	Status *string `type:"string" enum:"ResolverRuleAssociationStatus"`
15539
15540	// A detailed description of the status of the association between a Resolver
15541	// rule and a VPC.
15542	StatusMessage *string `type:"string"`
15543
15544	// The ID of the VPC that you associated the Resolver rule with.
15545	VPCId *string `min:"1" type:"string"`
15546}
15547
15548// String returns the string representation.
15549//
15550// API parameter values that are decorated as "sensitive" in the API will not
15551// be included in the string output. The member name will be present, but the
15552// value will be replaced with "sensitive".
15553func (s ResolverRuleAssociation) String() string {
15554	return awsutil.Prettify(s)
15555}
15556
15557// GoString returns the string representation.
15558//
15559// API parameter values that are decorated as "sensitive" in the API will not
15560// be included in the string output. The member name will be present, but the
15561// value will be replaced with "sensitive".
15562func (s ResolverRuleAssociation) GoString() string {
15563	return s.String()
15564}
15565
15566// SetId sets the Id field's value.
15567func (s *ResolverRuleAssociation) SetId(v string) *ResolverRuleAssociation {
15568	s.Id = &v
15569	return s
15570}
15571
15572// SetName sets the Name field's value.
15573func (s *ResolverRuleAssociation) SetName(v string) *ResolverRuleAssociation {
15574	s.Name = &v
15575	return s
15576}
15577
15578// SetResolverRuleId sets the ResolverRuleId field's value.
15579func (s *ResolverRuleAssociation) SetResolverRuleId(v string) *ResolverRuleAssociation {
15580	s.ResolverRuleId = &v
15581	return s
15582}
15583
15584// SetStatus sets the Status field's value.
15585func (s *ResolverRuleAssociation) SetStatus(v string) *ResolverRuleAssociation {
15586	s.Status = &v
15587	return s
15588}
15589
15590// SetStatusMessage sets the StatusMessage field's value.
15591func (s *ResolverRuleAssociation) SetStatusMessage(v string) *ResolverRuleAssociation {
15592	s.StatusMessage = &v
15593	return s
15594}
15595
15596// SetVPCId sets the VPCId field's value.
15597func (s *ResolverRuleAssociation) SetVPCId(v string) *ResolverRuleAssociation {
15598	s.VPCId = &v
15599	return s
15600}
15601
15602// In an UpdateResolverRule (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_UpdateResolverRule.html)
15603// request, information about the changes that you want to make.
15604type ResolverRuleConfig struct {
15605	_ struct{} `type:"structure"`
15606
15607	// The new name for the Resolver rule. The name that you specify appears in
15608	// the Resolver dashboard in the Route 53 console.
15609	Name *string `type:"string"`
15610
15611	// The ID of the new outbound Resolver endpoint that you want to use to route
15612	// DNS queries to the IP addresses that you specify in TargetIps.
15613	ResolverEndpointId *string `min:"1" type:"string"`
15614
15615	// For DNS queries that originate in your VPC, the new IP addresses that you
15616	// want to route outbound DNS queries to.
15617	TargetIps []*TargetAddress `min:"1" type:"list"`
15618}
15619
15620// String returns the string representation.
15621//
15622// API parameter values that are decorated as "sensitive" in the API will not
15623// be included in the string output. The member name will be present, but the
15624// value will be replaced with "sensitive".
15625func (s ResolverRuleConfig) String() string {
15626	return awsutil.Prettify(s)
15627}
15628
15629// GoString returns the string representation.
15630//
15631// API parameter values that are decorated as "sensitive" in the API will not
15632// be included in the string output. The member name will be present, but the
15633// value will be replaced with "sensitive".
15634func (s ResolverRuleConfig) GoString() string {
15635	return s.String()
15636}
15637
15638// Validate inspects the fields of the type to determine if they are valid.
15639func (s *ResolverRuleConfig) Validate() error {
15640	invalidParams := request.ErrInvalidParams{Context: "ResolverRuleConfig"}
15641	if s.ResolverEndpointId != nil && len(*s.ResolverEndpointId) < 1 {
15642		invalidParams.Add(request.NewErrParamMinLen("ResolverEndpointId", 1))
15643	}
15644	if s.TargetIps != nil && len(s.TargetIps) < 1 {
15645		invalidParams.Add(request.NewErrParamMinLen("TargetIps", 1))
15646	}
15647	if s.TargetIps != nil {
15648		for i, v := range s.TargetIps {
15649			if v == nil {
15650				continue
15651			}
15652			if err := v.Validate(); err != nil {
15653				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TargetIps", i), err.(request.ErrInvalidParams))
15654			}
15655		}
15656	}
15657
15658	if invalidParams.Len() > 0 {
15659		return invalidParams
15660	}
15661	return nil
15662}
15663
15664// SetName sets the Name field's value.
15665func (s *ResolverRuleConfig) SetName(v string) *ResolverRuleConfig {
15666	s.Name = &v
15667	return s
15668}
15669
15670// SetResolverEndpointId sets the ResolverEndpointId field's value.
15671func (s *ResolverRuleConfig) SetResolverEndpointId(v string) *ResolverRuleConfig {
15672	s.ResolverEndpointId = &v
15673	return s
15674}
15675
15676// SetTargetIps sets the TargetIps field's value.
15677func (s *ResolverRuleConfig) SetTargetIps(v []*TargetAddress) *ResolverRuleConfig {
15678	s.TargetIps = v
15679	return s
15680}
15681
15682// The resource that you tried to create already exists.
15683type ResourceExistsException struct {
15684	_            struct{}                  `type:"structure"`
15685	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
15686
15687	Message_ *string `locationName:"Message" type:"string"`
15688
15689	// For a ResourceExistsException error, the type of resource that the error
15690	// applies to.
15691	ResourceType *string `type:"string"`
15692}
15693
15694// String returns the string representation.
15695//
15696// API parameter values that are decorated as "sensitive" in the API will not
15697// be included in the string output. The member name will be present, but the
15698// value will be replaced with "sensitive".
15699func (s ResourceExistsException) String() string {
15700	return awsutil.Prettify(s)
15701}
15702
15703// GoString returns the string representation.
15704//
15705// API parameter values that are decorated as "sensitive" in the API will not
15706// be included in the string output. The member name will be present, but the
15707// value will be replaced with "sensitive".
15708func (s ResourceExistsException) GoString() string {
15709	return s.String()
15710}
15711
15712func newErrorResourceExistsException(v protocol.ResponseMetadata) error {
15713	return &ResourceExistsException{
15714		RespMetadata: v,
15715	}
15716}
15717
15718// Code returns the exception type name.
15719func (s *ResourceExistsException) Code() string {
15720	return "ResourceExistsException"
15721}
15722
15723// Message returns the exception's message.
15724func (s *ResourceExistsException) Message() string {
15725	if s.Message_ != nil {
15726		return *s.Message_
15727	}
15728	return ""
15729}
15730
15731// OrigErr always returns nil, satisfies awserr.Error interface.
15732func (s *ResourceExistsException) OrigErr() error {
15733	return nil
15734}
15735
15736func (s *ResourceExistsException) Error() string {
15737	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
15738}
15739
15740// Status code returns the HTTP status code for the request's response error.
15741func (s *ResourceExistsException) StatusCode() int {
15742	return s.RespMetadata.StatusCode
15743}
15744
15745// RequestID returns the service's response RequestID for request.
15746func (s *ResourceExistsException) RequestID() string {
15747	return s.RespMetadata.RequestID
15748}
15749
15750// The resource that you tried to update or delete is currently in use.
15751type ResourceInUseException struct {
15752	_            struct{}                  `type:"structure"`
15753	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
15754
15755	Message_ *string `locationName:"Message" type:"string"`
15756
15757	// For a ResourceInUseException error, the type of resource that is currently
15758	// in use.
15759	ResourceType *string `type:"string"`
15760}
15761
15762// String returns the string representation.
15763//
15764// API parameter values that are decorated as "sensitive" in the API will not
15765// be included in the string output. The member name will be present, but the
15766// value will be replaced with "sensitive".
15767func (s ResourceInUseException) String() string {
15768	return awsutil.Prettify(s)
15769}
15770
15771// GoString returns the string representation.
15772//
15773// API parameter values that are decorated as "sensitive" in the API will not
15774// be included in the string output. The member name will be present, but the
15775// value will be replaced with "sensitive".
15776func (s ResourceInUseException) GoString() string {
15777	return s.String()
15778}
15779
15780func newErrorResourceInUseException(v protocol.ResponseMetadata) error {
15781	return &ResourceInUseException{
15782		RespMetadata: v,
15783	}
15784}
15785
15786// Code returns the exception type name.
15787func (s *ResourceInUseException) Code() string {
15788	return "ResourceInUseException"
15789}
15790
15791// Message returns the exception's message.
15792func (s *ResourceInUseException) Message() string {
15793	if s.Message_ != nil {
15794		return *s.Message_
15795	}
15796	return ""
15797}
15798
15799// OrigErr always returns nil, satisfies awserr.Error interface.
15800func (s *ResourceInUseException) OrigErr() error {
15801	return nil
15802}
15803
15804func (s *ResourceInUseException) Error() string {
15805	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
15806}
15807
15808// Status code returns the HTTP status code for the request's response error.
15809func (s *ResourceInUseException) StatusCode() int {
15810	return s.RespMetadata.StatusCode
15811}
15812
15813// RequestID returns the service's response RequestID for request.
15814func (s *ResourceInUseException) RequestID() string {
15815	return s.RespMetadata.RequestID
15816}
15817
15818// The specified resource doesn't exist.
15819type ResourceNotFoundException struct {
15820	_            struct{}                  `type:"structure"`
15821	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
15822
15823	Message_ *string `locationName:"Message" type:"string"`
15824
15825	// For a ResourceNotFoundException error, the type of resource that doesn't
15826	// exist.
15827	ResourceType *string `type:"string"`
15828}
15829
15830// String returns the string representation.
15831//
15832// API parameter values that are decorated as "sensitive" in the API will not
15833// be included in the string output. The member name will be present, but the
15834// value will be replaced with "sensitive".
15835func (s ResourceNotFoundException) String() string {
15836	return awsutil.Prettify(s)
15837}
15838
15839// GoString returns the string representation.
15840//
15841// API parameter values that are decorated as "sensitive" in the API will not
15842// be included in the string output. The member name will be present, but the
15843// value will be replaced with "sensitive".
15844func (s ResourceNotFoundException) GoString() string {
15845	return s.String()
15846}
15847
15848func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
15849	return &ResourceNotFoundException{
15850		RespMetadata: v,
15851	}
15852}
15853
15854// Code returns the exception type name.
15855func (s *ResourceNotFoundException) Code() string {
15856	return "ResourceNotFoundException"
15857}
15858
15859// Message returns the exception's message.
15860func (s *ResourceNotFoundException) Message() string {
15861	if s.Message_ != nil {
15862		return *s.Message_
15863	}
15864	return ""
15865}
15866
15867// OrigErr always returns nil, satisfies awserr.Error interface.
15868func (s *ResourceNotFoundException) OrigErr() error {
15869	return nil
15870}
15871
15872func (s *ResourceNotFoundException) Error() string {
15873	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
15874}
15875
15876// Status code returns the HTTP status code for the request's response error.
15877func (s *ResourceNotFoundException) StatusCode() int {
15878	return s.RespMetadata.StatusCode
15879}
15880
15881// RequestID returns the service's response RequestID for request.
15882func (s *ResourceNotFoundException) RequestID() string {
15883	return s.RespMetadata.RequestID
15884}
15885
15886// The specified resource isn't available.
15887type ResourceUnavailableException struct {
15888	_            struct{}                  `type:"structure"`
15889	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
15890
15891	Message_ *string `locationName:"Message" type:"string"`
15892
15893	// For a ResourceUnavailableException error, the type of resource that isn't
15894	// available.
15895	ResourceType *string `type:"string"`
15896}
15897
15898// String returns the string representation.
15899//
15900// API parameter values that are decorated as "sensitive" in the API will not
15901// be included in the string output. The member name will be present, but the
15902// value will be replaced with "sensitive".
15903func (s ResourceUnavailableException) String() string {
15904	return awsutil.Prettify(s)
15905}
15906
15907// GoString returns the string representation.
15908//
15909// API parameter values that are decorated as "sensitive" in the API will not
15910// be included in the string output. The member name will be present, but the
15911// value will be replaced with "sensitive".
15912func (s ResourceUnavailableException) GoString() string {
15913	return s.String()
15914}
15915
15916func newErrorResourceUnavailableException(v protocol.ResponseMetadata) error {
15917	return &ResourceUnavailableException{
15918		RespMetadata: v,
15919	}
15920}
15921
15922// Code returns the exception type name.
15923func (s *ResourceUnavailableException) Code() string {
15924	return "ResourceUnavailableException"
15925}
15926
15927// Message returns the exception's message.
15928func (s *ResourceUnavailableException) Message() string {
15929	if s.Message_ != nil {
15930		return *s.Message_
15931	}
15932	return ""
15933}
15934
15935// OrigErr always returns nil, satisfies awserr.Error interface.
15936func (s *ResourceUnavailableException) OrigErr() error {
15937	return nil
15938}
15939
15940func (s *ResourceUnavailableException) Error() string {
15941	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
15942}
15943
15944// Status code returns the HTTP status code for the request's response error.
15945func (s *ResourceUnavailableException) StatusCode() int {
15946	return s.RespMetadata.StatusCode
15947}
15948
15949// RequestID returns the service's response RequestID for request.
15950func (s *ResourceUnavailableException) RequestID() string {
15951	return s.RespMetadata.RequestID
15952}
15953
15954// One tag that you want to add to the specified resource. A tag consists of
15955// a Key (a name for the tag) and a Value.
15956type Tag struct {
15957	_ struct{} `type:"structure"`
15958
15959	// The name for the tag. For example, if you want to associate Resolver resources
15960	// with the account IDs of your customers for billing purposes, the value of
15961	// Key might be account-id.
15962	//
15963	// Key is a required field
15964	Key *string `min:"1" type:"string" required:"true"`
15965
15966	// The value for the tag. For example, if Key is account-id, then Value might
15967	// be the ID of the customer account that you're creating the resource for.
15968	//
15969	// Value is a required field
15970	Value *string `type:"string" required:"true"`
15971}
15972
15973// String returns the string representation.
15974//
15975// API parameter values that are decorated as "sensitive" in the API will not
15976// be included in the string output. The member name will be present, but the
15977// value will be replaced with "sensitive".
15978func (s Tag) String() string {
15979	return awsutil.Prettify(s)
15980}
15981
15982// GoString returns the string representation.
15983//
15984// API parameter values that are decorated as "sensitive" in the API will not
15985// be included in the string output. The member name will be present, but the
15986// value will be replaced with "sensitive".
15987func (s Tag) GoString() string {
15988	return s.String()
15989}
15990
15991// Validate inspects the fields of the type to determine if they are valid.
15992func (s *Tag) Validate() error {
15993	invalidParams := request.ErrInvalidParams{Context: "Tag"}
15994	if s.Key == nil {
15995		invalidParams.Add(request.NewErrParamRequired("Key"))
15996	}
15997	if s.Key != nil && len(*s.Key) < 1 {
15998		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
15999	}
16000	if s.Value == nil {
16001		invalidParams.Add(request.NewErrParamRequired("Value"))
16002	}
16003
16004	if invalidParams.Len() > 0 {
16005		return invalidParams
16006	}
16007	return nil
16008}
16009
16010// SetKey sets the Key field's value.
16011func (s *Tag) SetKey(v string) *Tag {
16012	s.Key = &v
16013	return s
16014}
16015
16016// SetValue sets the Value field's value.
16017func (s *Tag) SetValue(v string) *Tag {
16018	s.Value = &v
16019	return s
16020}
16021
16022type TagResourceInput struct {
16023	_ struct{} `type:"structure"`
16024
16025	// The Amazon Resource Name (ARN) for the resource that you want to add tags
16026	// to. To get the ARN for a resource, use the applicable Get or List command:
16027	//
16028	//    * GetResolverEndpoint (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverEndpoint.html)
16029	//
16030	//    * GetResolverRule (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverRule.html)
16031	//
16032	//    * GetResolverRuleAssociation (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverRuleAssociation.html)
16033	//
16034	//    * ListResolverEndpoints (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverEndpoints.html)
16035	//
16036	//    * ListResolverRuleAssociations (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverRuleAssociations.html)
16037	//
16038	//    * ListResolverRules (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverRules.html)
16039	//
16040	// ResourceArn is a required field
16041	ResourceArn *string `min:"1" type:"string" required:"true"`
16042
16043	// The tags that you want to add to the specified resource.
16044	//
16045	// Tags is a required field
16046	Tags []*Tag `type:"list" required:"true"`
16047}
16048
16049// String returns the string representation.
16050//
16051// API parameter values that are decorated as "sensitive" in the API will not
16052// be included in the string output. The member name will be present, but the
16053// value will be replaced with "sensitive".
16054func (s TagResourceInput) String() string {
16055	return awsutil.Prettify(s)
16056}
16057
16058// GoString returns the string representation.
16059//
16060// API parameter values that are decorated as "sensitive" in the API will not
16061// be included in the string output. The member name will be present, but the
16062// value will be replaced with "sensitive".
16063func (s TagResourceInput) GoString() string {
16064	return s.String()
16065}
16066
16067// Validate inspects the fields of the type to determine if they are valid.
16068func (s *TagResourceInput) Validate() error {
16069	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
16070	if s.ResourceArn == nil {
16071		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
16072	}
16073	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
16074		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
16075	}
16076	if s.Tags == nil {
16077		invalidParams.Add(request.NewErrParamRequired("Tags"))
16078	}
16079	if s.Tags != nil {
16080		for i, v := range s.Tags {
16081			if v == nil {
16082				continue
16083			}
16084			if err := v.Validate(); err != nil {
16085				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
16086			}
16087		}
16088	}
16089
16090	if invalidParams.Len() > 0 {
16091		return invalidParams
16092	}
16093	return nil
16094}
16095
16096// SetResourceArn sets the ResourceArn field's value.
16097func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
16098	s.ResourceArn = &v
16099	return s
16100}
16101
16102// SetTags sets the Tags field's value.
16103func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
16104	s.Tags = v
16105	return s
16106}
16107
16108type TagResourceOutput struct {
16109	_ struct{} `type:"structure"`
16110}
16111
16112// String returns the string representation.
16113//
16114// API parameter values that are decorated as "sensitive" in the API will not
16115// be included in the string output. The member name will be present, but the
16116// value will be replaced with "sensitive".
16117func (s TagResourceOutput) String() string {
16118	return awsutil.Prettify(s)
16119}
16120
16121// GoString returns the string representation.
16122//
16123// API parameter values that are decorated as "sensitive" in the API will not
16124// be included in the string output. The member name will be present, but the
16125// value will be replaced with "sensitive".
16126func (s TagResourceOutput) GoString() string {
16127	return s.String()
16128}
16129
16130// In a CreateResolverRule (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_CreateResolverRule.html)
16131// request, an array of the IPs that you want to forward DNS queries to.
16132type TargetAddress struct {
16133	_ struct{} `type:"structure"`
16134
16135	// One IP address that you want to forward DNS queries to. You can specify only
16136	// IPv4 addresses.
16137	//
16138	// Ip is a required field
16139	Ip *string `min:"7" type:"string" required:"true"`
16140
16141	// The port at Ip that you want to forward DNS queries to.
16142	Port *int64 `type:"integer"`
16143}
16144
16145// String returns the string representation.
16146//
16147// API parameter values that are decorated as "sensitive" in the API will not
16148// be included in the string output. The member name will be present, but the
16149// value will be replaced with "sensitive".
16150func (s TargetAddress) String() string {
16151	return awsutil.Prettify(s)
16152}
16153
16154// GoString returns the string representation.
16155//
16156// API parameter values that are decorated as "sensitive" in the API will not
16157// be included in the string output. The member name will be present, but the
16158// value will be replaced with "sensitive".
16159func (s TargetAddress) GoString() string {
16160	return s.String()
16161}
16162
16163// Validate inspects the fields of the type to determine if they are valid.
16164func (s *TargetAddress) Validate() error {
16165	invalidParams := request.ErrInvalidParams{Context: "TargetAddress"}
16166	if s.Ip == nil {
16167		invalidParams.Add(request.NewErrParamRequired("Ip"))
16168	}
16169	if s.Ip != nil && len(*s.Ip) < 7 {
16170		invalidParams.Add(request.NewErrParamMinLen("Ip", 7))
16171	}
16172
16173	if invalidParams.Len() > 0 {
16174		return invalidParams
16175	}
16176	return nil
16177}
16178
16179// SetIp sets the Ip field's value.
16180func (s *TargetAddress) SetIp(v string) *TargetAddress {
16181	s.Ip = &v
16182	return s
16183}
16184
16185// SetPort sets the Port field's value.
16186func (s *TargetAddress) SetPort(v int64) *TargetAddress {
16187	s.Port = &v
16188	return s
16189}
16190
16191// The request was throttled. Try again in a few minutes.
16192type ThrottlingException struct {
16193	_            struct{}                  `type:"structure"`
16194	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
16195
16196	Message_ *string `locationName:"Message" type:"string"`
16197}
16198
16199// String returns the string representation.
16200//
16201// API parameter values that are decorated as "sensitive" in the API will not
16202// be included in the string output. The member name will be present, but the
16203// value will be replaced with "sensitive".
16204func (s ThrottlingException) String() string {
16205	return awsutil.Prettify(s)
16206}
16207
16208// GoString returns the string representation.
16209//
16210// API parameter values that are decorated as "sensitive" in the API will not
16211// be included in the string output. The member name will be present, but the
16212// value will be replaced with "sensitive".
16213func (s ThrottlingException) GoString() string {
16214	return s.String()
16215}
16216
16217func newErrorThrottlingException(v protocol.ResponseMetadata) error {
16218	return &ThrottlingException{
16219		RespMetadata: v,
16220	}
16221}
16222
16223// Code returns the exception type name.
16224func (s *ThrottlingException) Code() string {
16225	return "ThrottlingException"
16226}
16227
16228// Message returns the exception's message.
16229func (s *ThrottlingException) Message() string {
16230	if s.Message_ != nil {
16231		return *s.Message_
16232	}
16233	return ""
16234}
16235
16236// OrigErr always returns nil, satisfies awserr.Error interface.
16237func (s *ThrottlingException) OrigErr() error {
16238	return nil
16239}
16240
16241func (s *ThrottlingException) Error() string {
16242	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
16243}
16244
16245// Status code returns the HTTP status code for the request's response error.
16246func (s *ThrottlingException) StatusCode() int {
16247	return s.RespMetadata.StatusCode
16248}
16249
16250// RequestID returns the service's response RequestID for request.
16251func (s *ThrottlingException) RequestID() string {
16252	return s.RespMetadata.RequestID
16253}
16254
16255// The specified resource doesn't exist.
16256type UnknownResourceException struct {
16257	_            struct{}                  `type:"structure"`
16258	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
16259
16260	Message_ *string `locationName:"Message" type:"string"`
16261}
16262
16263// String returns the string representation.
16264//
16265// API parameter values that are decorated as "sensitive" in the API will not
16266// be included in the string output. The member name will be present, but the
16267// value will be replaced with "sensitive".
16268func (s UnknownResourceException) String() string {
16269	return awsutil.Prettify(s)
16270}
16271
16272// GoString returns the string representation.
16273//
16274// API parameter values that are decorated as "sensitive" in the API will not
16275// be included in the string output. The member name will be present, but the
16276// value will be replaced with "sensitive".
16277func (s UnknownResourceException) GoString() string {
16278	return s.String()
16279}
16280
16281func newErrorUnknownResourceException(v protocol.ResponseMetadata) error {
16282	return &UnknownResourceException{
16283		RespMetadata: v,
16284	}
16285}
16286
16287// Code returns the exception type name.
16288func (s *UnknownResourceException) Code() string {
16289	return "UnknownResourceException"
16290}
16291
16292// Message returns the exception's message.
16293func (s *UnknownResourceException) Message() string {
16294	if s.Message_ != nil {
16295		return *s.Message_
16296	}
16297	return ""
16298}
16299
16300// OrigErr always returns nil, satisfies awserr.Error interface.
16301func (s *UnknownResourceException) OrigErr() error {
16302	return nil
16303}
16304
16305func (s *UnknownResourceException) Error() string {
16306	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
16307}
16308
16309// Status code returns the HTTP status code for the request's response error.
16310func (s *UnknownResourceException) StatusCode() int {
16311	return s.RespMetadata.StatusCode
16312}
16313
16314// RequestID returns the service's response RequestID for request.
16315func (s *UnknownResourceException) RequestID() string {
16316	return s.RespMetadata.RequestID
16317}
16318
16319type UntagResourceInput struct {
16320	_ struct{} `type:"structure"`
16321
16322	// The Amazon Resource Name (ARN) for the resource that you want to remove tags
16323	// from. To get the ARN for a resource, use the applicable Get or List command:
16324	//
16325	//    * GetResolverEndpoint (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverEndpoint.html)
16326	//
16327	//    * GetResolverRule (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverRule.html)
16328	//
16329	//    * GetResolverRuleAssociation (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverRuleAssociation.html)
16330	//
16331	//    * ListResolverEndpoints (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverEndpoints.html)
16332	//
16333	//    * ListResolverRuleAssociations (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverRuleAssociations.html)
16334	//
16335	//    * ListResolverRules (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverRules.html)
16336	//
16337	// ResourceArn is a required field
16338	ResourceArn *string `min:"1" type:"string" required:"true"`
16339
16340	// The tags that you want to remove to the specified resource.
16341	//
16342	// TagKeys is a required field
16343	TagKeys []*string `type:"list" required:"true"`
16344}
16345
16346// String returns the string representation.
16347//
16348// API parameter values that are decorated as "sensitive" in the API will not
16349// be included in the string output. The member name will be present, but the
16350// value will be replaced with "sensitive".
16351func (s UntagResourceInput) String() string {
16352	return awsutil.Prettify(s)
16353}
16354
16355// GoString returns the string representation.
16356//
16357// API parameter values that are decorated as "sensitive" in the API will not
16358// be included in the string output. The member name will be present, but the
16359// value will be replaced with "sensitive".
16360func (s UntagResourceInput) GoString() string {
16361	return s.String()
16362}
16363
16364// Validate inspects the fields of the type to determine if they are valid.
16365func (s *UntagResourceInput) Validate() error {
16366	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
16367	if s.ResourceArn == nil {
16368		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
16369	}
16370	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
16371		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
16372	}
16373	if s.TagKeys == nil {
16374		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
16375	}
16376
16377	if invalidParams.Len() > 0 {
16378		return invalidParams
16379	}
16380	return nil
16381}
16382
16383// SetResourceArn sets the ResourceArn field's value.
16384func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
16385	s.ResourceArn = &v
16386	return s
16387}
16388
16389// SetTagKeys sets the TagKeys field's value.
16390func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
16391	s.TagKeys = v
16392	return s
16393}
16394
16395type UntagResourceOutput struct {
16396	_ struct{} `type:"structure"`
16397}
16398
16399// String returns the string representation.
16400//
16401// API parameter values that are decorated as "sensitive" in the API will not
16402// be included in the string output. The member name will be present, but the
16403// value will be replaced with "sensitive".
16404func (s UntagResourceOutput) String() string {
16405	return awsutil.Prettify(s)
16406}
16407
16408// GoString returns the string representation.
16409//
16410// API parameter values that are decorated as "sensitive" in the API will not
16411// be included in the string output. The member name will be present, but the
16412// value will be replaced with "sensitive".
16413func (s UntagResourceOutput) GoString() string {
16414	return s.String()
16415}
16416
16417type UpdateFirewallConfigInput struct {
16418	_ struct{} `type:"structure"`
16419
16420	// Determines how Route 53 Resolver handles queries during failures, for example
16421	// when all traffic that is sent to DNS Firewall fails to receive a reply.
16422	//
16423	//    * By default, fail open is disabled, which means the failure mode is closed.
16424	//    This approach favors security over availability. DNS Firewall blocks queries
16425	//    that it is unable to evaluate properly.
16426	//
16427	//    * If you enable this option, the failure mode is open. This approach favors
16428	//    availability over security. DNS Firewall allows queries to proceed if
16429	//    it is unable to properly evaluate them.
16430	//
16431	// This behavior is only enforced for VPCs that have at least one DNS Firewall
16432	// rule group association.
16433	//
16434	// FirewallFailOpen is a required field
16435	FirewallFailOpen *string `type:"string" required:"true" enum:"FirewallFailOpenStatus"`
16436
16437	// The ID of the VPC that the configuration is for.
16438	//
16439	// ResourceId is a required field
16440	ResourceId *string `min:"1" type:"string" required:"true"`
16441}
16442
16443// String returns the string representation.
16444//
16445// API parameter values that are decorated as "sensitive" in the API will not
16446// be included in the string output. The member name will be present, but the
16447// value will be replaced with "sensitive".
16448func (s UpdateFirewallConfigInput) String() string {
16449	return awsutil.Prettify(s)
16450}
16451
16452// GoString returns the string representation.
16453//
16454// API parameter values that are decorated as "sensitive" in the API will not
16455// be included in the string output. The member name will be present, but the
16456// value will be replaced with "sensitive".
16457func (s UpdateFirewallConfigInput) GoString() string {
16458	return s.String()
16459}
16460
16461// Validate inspects the fields of the type to determine if they are valid.
16462func (s *UpdateFirewallConfigInput) Validate() error {
16463	invalidParams := request.ErrInvalidParams{Context: "UpdateFirewallConfigInput"}
16464	if s.FirewallFailOpen == nil {
16465		invalidParams.Add(request.NewErrParamRequired("FirewallFailOpen"))
16466	}
16467	if s.ResourceId == nil {
16468		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
16469	}
16470	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
16471		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
16472	}
16473
16474	if invalidParams.Len() > 0 {
16475		return invalidParams
16476	}
16477	return nil
16478}
16479
16480// SetFirewallFailOpen sets the FirewallFailOpen field's value.
16481func (s *UpdateFirewallConfigInput) SetFirewallFailOpen(v string) *UpdateFirewallConfigInput {
16482	s.FirewallFailOpen = &v
16483	return s
16484}
16485
16486// SetResourceId sets the ResourceId field's value.
16487func (s *UpdateFirewallConfigInput) SetResourceId(v string) *UpdateFirewallConfigInput {
16488	s.ResourceId = &v
16489	return s
16490}
16491
16492type UpdateFirewallConfigOutput struct {
16493	_ struct{} `type:"structure"`
16494
16495	// Configuration of the firewall behavior provided by DNS Firewall for a single
16496	// VPC.
16497	FirewallConfig *FirewallConfig `type:"structure"`
16498}
16499
16500// String returns the string representation.
16501//
16502// API parameter values that are decorated as "sensitive" in the API will not
16503// be included in the string output. The member name will be present, but the
16504// value will be replaced with "sensitive".
16505func (s UpdateFirewallConfigOutput) String() string {
16506	return awsutil.Prettify(s)
16507}
16508
16509// GoString returns the string representation.
16510//
16511// API parameter values that are decorated as "sensitive" in the API will not
16512// be included in the string output. The member name will be present, but the
16513// value will be replaced with "sensitive".
16514func (s UpdateFirewallConfigOutput) GoString() string {
16515	return s.String()
16516}
16517
16518// SetFirewallConfig sets the FirewallConfig field's value.
16519func (s *UpdateFirewallConfigOutput) SetFirewallConfig(v *FirewallConfig) *UpdateFirewallConfigOutput {
16520	s.FirewallConfig = v
16521	return s
16522}
16523
16524type UpdateFirewallDomainsInput struct {
16525	_ struct{} `type:"structure"`
16526
16527	// A list of domains to use in the update operation.
16528	//
16529	// Each domain specification in your domain list must satisfy the following
16530	// requirements:
16531	//
16532	//    * It can optionally start with * (asterisk).
16533	//
16534	//    * With the exception of the optional starting asterisk, it must only contain
16535	//    the following characters: A-Z, a-z, 0-9, - (hyphen).
16536	//
16537	//    * It must be from 1-255 characters in length.
16538	//
16539	// Domains is a required field
16540	Domains []*string `type:"list" required:"true"`
16541
16542	// The ID of the domain list whose domains you want to update.
16543	//
16544	// FirewallDomainListId is a required field
16545	FirewallDomainListId *string `min:"1" type:"string" required:"true"`
16546
16547	// What you want DNS Firewall to do with the domains that you are providing:
16548	//
16549	//    * ADD - Add the domains to the ones that are already in the domain list.
16550	//
16551	//    * REMOVE - Search the domain list for the domains and remove them from
16552	//    the list.
16553	//
16554	//    * REPLACE - Update the domain list to exactly match the list that you
16555	//    are providing.
16556	//
16557	// Operation is a required field
16558	Operation *string `type:"string" required:"true" enum:"FirewallDomainUpdateOperation"`
16559}
16560
16561// String returns the string representation.
16562//
16563// API parameter values that are decorated as "sensitive" in the API will not
16564// be included in the string output. The member name will be present, but the
16565// value will be replaced with "sensitive".
16566func (s UpdateFirewallDomainsInput) String() string {
16567	return awsutil.Prettify(s)
16568}
16569
16570// GoString returns the string representation.
16571//
16572// API parameter values that are decorated as "sensitive" in the API will not
16573// be included in the string output. The member name will be present, but the
16574// value will be replaced with "sensitive".
16575func (s UpdateFirewallDomainsInput) GoString() string {
16576	return s.String()
16577}
16578
16579// Validate inspects the fields of the type to determine if they are valid.
16580func (s *UpdateFirewallDomainsInput) Validate() error {
16581	invalidParams := request.ErrInvalidParams{Context: "UpdateFirewallDomainsInput"}
16582	if s.Domains == nil {
16583		invalidParams.Add(request.NewErrParamRequired("Domains"))
16584	}
16585	if s.FirewallDomainListId == nil {
16586		invalidParams.Add(request.NewErrParamRequired("FirewallDomainListId"))
16587	}
16588	if s.FirewallDomainListId != nil && len(*s.FirewallDomainListId) < 1 {
16589		invalidParams.Add(request.NewErrParamMinLen("FirewallDomainListId", 1))
16590	}
16591	if s.Operation == nil {
16592		invalidParams.Add(request.NewErrParamRequired("Operation"))
16593	}
16594
16595	if invalidParams.Len() > 0 {
16596		return invalidParams
16597	}
16598	return nil
16599}
16600
16601// SetDomains sets the Domains field's value.
16602func (s *UpdateFirewallDomainsInput) SetDomains(v []*string) *UpdateFirewallDomainsInput {
16603	s.Domains = v
16604	return s
16605}
16606
16607// SetFirewallDomainListId sets the FirewallDomainListId field's value.
16608func (s *UpdateFirewallDomainsInput) SetFirewallDomainListId(v string) *UpdateFirewallDomainsInput {
16609	s.FirewallDomainListId = &v
16610	return s
16611}
16612
16613// SetOperation sets the Operation field's value.
16614func (s *UpdateFirewallDomainsInput) SetOperation(v string) *UpdateFirewallDomainsInput {
16615	s.Operation = &v
16616	return s
16617}
16618
16619type UpdateFirewallDomainsOutput struct {
16620	_ struct{} `type:"structure"`
16621
16622	// The ID of the firewall domain list that DNS Firewall just updated.
16623	Id *string `min:"1" type:"string"`
16624
16625	// The name of the domain list.
16626	Name *string `type:"string"`
16627
16628	Status *string `type:"string" enum:"FirewallDomainListStatus"`
16629
16630	// Additional information about the status of the list, if available.
16631	StatusMessage *string `type:"string"`
16632}
16633
16634// String returns the string representation.
16635//
16636// API parameter values that are decorated as "sensitive" in the API will not
16637// be included in the string output. The member name will be present, but the
16638// value will be replaced with "sensitive".
16639func (s UpdateFirewallDomainsOutput) String() string {
16640	return awsutil.Prettify(s)
16641}
16642
16643// GoString returns the string representation.
16644//
16645// API parameter values that are decorated as "sensitive" in the API will not
16646// be included in the string output. The member name will be present, but the
16647// value will be replaced with "sensitive".
16648func (s UpdateFirewallDomainsOutput) GoString() string {
16649	return s.String()
16650}
16651
16652// SetId sets the Id field's value.
16653func (s *UpdateFirewallDomainsOutput) SetId(v string) *UpdateFirewallDomainsOutput {
16654	s.Id = &v
16655	return s
16656}
16657
16658// SetName sets the Name field's value.
16659func (s *UpdateFirewallDomainsOutput) SetName(v string) *UpdateFirewallDomainsOutput {
16660	s.Name = &v
16661	return s
16662}
16663
16664// SetStatus sets the Status field's value.
16665func (s *UpdateFirewallDomainsOutput) SetStatus(v string) *UpdateFirewallDomainsOutput {
16666	s.Status = &v
16667	return s
16668}
16669
16670// SetStatusMessage sets the StatusMessage field's value.
16671func (s *UpdateFirewallDomainsOutput) SetStatusMessage(v string) *UpdateFirewallDomainsOutput {
16672	s.StatusMessage = &v
16673	return s
16674}
16675
16676type UpdateFirewallRuleGroupAssociationInput struct {
16677	_ struct{} `type:"structure"`
16678
16679	// The identifier of the FirewallRuleGroupAssociation.
16680	//
16681	// FirewallRuleGroupAssociationId is a required field
16682	FirewallRuleGroupAssociationId *string `min:"1" type:"string" required:"true"`
16683
16684	// If enabled, this setting disallows modification or removal of the association,
16685	// to help prevent against accidentally altering DNS firewall protections.
16686	MutationProtection *string `type:"string" enum:"MutationProtectionStatus"`
16687
16688	// The name of the rule group association.
16689	Name *string `type:"string"`
16690
16691	// The setting that determines the processing order of the rule group among
16692	// the rule groups that you associate with the specified VPC. DNS Firewall filters
16693	// VPC traffic starting from the rule group with the lowest numeric priority
16694	// setting.
16695	//
16696	// You must specify a unique priority for each rule group that you associate
16697	// with a single VPC. To make it easier to insert rule groups later, leave space
16698	// between the numbers, for example, use 100, 200, and so on. You can change
16699	// the priority setting for a rule group association after you create it.
16700	Priority *int64 `type:"integer"`
16701}
16702
16703// String returns the string representation.
16704//
16705// API parameter values that are decorated as "sensitive" in the API will not
16706// be included in the string output. The member name will be present, but the
16707// value will be replaced with "sensitive".
16708func (s UpdateFirewallRuleGroupAssociationInput) String() string {
16709	return awsutil.Prettify(s)
16710}
16711
16712// GoString returns the string representation.
16713//
16714// API parameter values that are decorated as "sensitive" in the API will not
16715// be included in the string output. The member name will be present, but the
16716// value will be replaced with "sensitive".
16717func (s UpdateFirewallRuleGroupAssociationInput) GoString() string {
16718	return s.String()
16719}
16720
16721// Validate inspects the fields of the type to determine if they are valid.
16722func (s *UpdateFirewallRuleGroupAssociationInput) Validate() error {
16723	invalidParams := request.ErrInvalidParams{Context: "UpdateFirewallRuleGroupAssociationInput"}
16724	if s.FirewallRuleGroupAssociationId == nil {
16725		invalidParams.Add(request.NewErrParamRequired("FirewallRuleGroupAssociationId"))
16726	}
16727	if s.FirewallRuleGroupAssociationId != nil && len(*s.FirewallRuleGroupAssociationId) < 1 {
16728		invalidParams.Add(request.NewErrParamMinLen("FirewallRuleGroupAssociationId", 1))
16729	}
16730
16731	if invalidParams.Len() > 0 {
16732		return invalidParams
16733	}
16734	return nil
16735}
16736
16737// SetFirewallRuleGroupAssociationId sets the FirewallRuleGroupAssociationId field's value.
16738func (s *UpdateFirewallRuleGroupAssociationInput) SetFirewallRuleGroupAssociationId(v string) *UpdateFirewallRuleGroupAssociationInput {
16739	s.FirewallRuleGroupAssociationId = &v
16740	return s
16741}
16742
16743// SetMutationProtection sets the MutationProtection field's value.
16744func (s *UpdateFirewallRuleGroupAssociationInput) SetMutationProtection(v string) *UpdateFirewallRuleGroupAssociationInput {
16745	s.MutationProtection = &v
16746	return s
16747}
16748
16749// SetName sets the Name field's value.
16750func (s *UpdateFirewallRuleGroupAssociationInput) SetName(v string) *UpdateFirewallRuleGroupAssociationInput {
16751	s.Name = &v
16752	return s
16753}
16754
16755// SetPriority sets the Priority field's value.
16756func (s *UpdateFirewallRuleGroupAssociationInput) SetPriority(v int64) *UpdateFirewallRuleGroupAssociationInput {
16757	s.Priority = &v
16758	return s
16759}
16760
16761type UpdateFirewallRuleGroupAssociationOutput struct {
16762	_ struct{} `type:"structure"`
16763
16764	// The association that you just updated.
16765	FirewallRuleGroupAssociation *FirewallRuleGroupAssociation `type:"structure"`
16766}
16767
16768// String returns the string representation.
16769//
16770// API parameter values that are decorated as "sensitive" in the API will not
16771// be included in the string output. The member name will be present, but the
16772// value will be replaced with "sensitive".
16773func (s UpdateFirewallRuleGroupAssociationOutput) String() string {
16774	return awsutil.Prettify(s)
16775}
16776
16777// GoString returns the string representation.
16778//
16779// API parameter values that are decorated as "sensitive" in the API will not
16780// be included in the string output. The member name will be present, but the
16781// value will be replaced with "sensitive".
16782func (s UpdateFirewallRuleGroupAssociationOutput) GoString() string {
16783	return s.String()
16784}
16785
16786// SetFirewallRuleGroupAssociation sets the FirewallRuleGroupAssociation field's value.
16787func (s *UpdateFirewallRuleGroupAssociationOutput) SetFirewallRuleGroupAssociation(v *FirewallRuleGroupAssociation) *UpdateFirewallRuleGroupAssociationOutput {
16788	s.FirewallRuleGroupAssociation = v
16789	return s
16790}
16791
16792type UpdateFirewallRuleInput struct {
16793	_ struct{} `type:"structure"`
16794
16795	// The action that DNS Firewall should take on a DNS query when it matches one
16796	// of the domains in the rule's domain list:
16797	//
16798	//    * ALLOW - Permit the request to go through.
16799	//
16800	//    * ALERT - Permit the request to go through but send an alert to the logs.
16801	//
16802	//    * BLOCK - Disallow the request. This option requires additional details
16803	//    in the rule's BlockResponse.
16804	Action *string `type:"string" enum:"Action"`
16805
16806	// The DNS record's type. This determines the format of the record value that
16807	// you provided in BlockOverrideDomain. Used for the rule action BLOCK with
16808	// a BlockResponse setting of OVERRIDE.
16809	BlockOverrideDnsType *string `type:"string" enum:"BlockOverrideDnsType"`
16810
16811	// The custom DNS record to send back in response to the query. Used for the
16812	// rule action BLOCK with a BlockResponse setting of OVERRIDE.
16813	BlockOverrideDomain *string `min:"1" type:"string"`
16814
16815	// The recommended amount of time, in seconds, for the DNS resolver or web browser
16816	// to cache the provided override record. Used for the rule action BLOCK with
16817	// a BlockResponse setting of OVERRIDE.
16818	BlockOverrideTtl *int64 `type:"integer"`
16819
16820	// The way that you want DNS Firewall to block the request. Used for the rule
16821	// action setting BLOCK.
16822	//
16823	//    * NODATA - Respond indicating that the query was successful, but no response
16824	//    is available for it.
16825	//
16826	//    * NXDOMAIN - Respond indicating that the domain name that's in the query
16827	//    doesn't exist.
16828	//
16829	//    * OVERRIDE - Provide a custom override in the response. This option requires
16830	//    custom handling details in the rule's BlockOverride* settings.
16831	BlockResponse *string `type:"string" enum:"BlockResponse"`
16832
16833	// The ID of the domain list to use in the rule.
16834	//
16835	// FirewallDomainListId is a required field
16836	FirewallDomainListId *string `min:"1" type:"string" required:"true"`
16837
16838	// The unique identifier of the firewall rule group for the rule.
16839	//
16840	// FirewallRuleGroupId is a required field
16841	FirewallRuleGroupId *string `min:"1" type:"string" required:"true"`
16842
16843	// The name of the rule.
16844	Name *string `type:"string"`
16845
16846	// The setting that determines the processing order of the rule in the rule
16847	// group. DNS Firewall processes the rules in a rule group by order of priority,
16848	// starting from the lowest setting.
16849	//
16850	// You must specify a unique priority for each rule in a rule group. To make
16851	// it easier to insert rules later, leave space between the numbers, for example,
16852	// use 100, 200, and so on. You can change the priority setting for the rules
16853	// in a rule group at any time.
16854	Priority *int64 `type:"integer"`
16855}
16856
16857// String returns the string representation.
16858//
16859// API parameter values that are decorated as "sensitive" in the API will not
16860// be included in the string output. The member name will be present, but the
16861// value will be replaced with "sensitive".
16862func (s UpdateFirewallRuleInput) String() string {
16863	return awsutil.Prettify(s)
16864}
16865
16866// GoString returns the string representation.
16867//
16868// API parameter values that are decorated as "sensitive" in the API will not
16869// be included in the string output. The member name will be present, but the
16870// value will be replaced with "sensitive".
16871func (s UpdateFirewallRuleInput) GoString() string {
16872	return s.String()
16873}
16874
16875// Validate inspects the fields of the type to determine if they are valid.
16876func (s *UpdateFirewallRuleInput) Validate() error {
16877	invalidParams := request.ErrInvalidParams{Context: "UpdateFirewallRuleInput"}
16878	if s.BlockOverrideDomain != nil && len(*s.BlockOverrideDomain) < 1 {
16879		invalidParams.Add(request.NewErrParamMinLen("BlockOverrideDomain", 1))
16880	}
16881	if s.FirewallDomainListId == nil {
16882		invalidParams.Add(request.NewErrParamRequired("FirewallDomainListId"))
16883	}
16884	if s.FirewallDomainListId != nil && len(*s.FirewallDomainListId) < 1 {
16885		invalidParams.Add(request.NewErrParamMinLen("FirewallDomainListId", 1))
16886	}
16887	if s.FirewallRuleGroupId == nil {
16888		invalidParams.Add(request.NewErrParamRequired("FirewallRuleGroupId"))
16889	}
16890	if s.FirewallRuleGroupId != nil && len(*s.FirewallRuleGroupId) < 1 {
16891		invalidParams.Add(request.NewErrParamMinLen("FirewallRuleGroupId", 1))
16892	}
16893
16894	if invalidParams.Len() > 0 {
16895		return invalidParams
16896	}
16897	return nil
16898}
16899
16900// SetAction sets the Action field's value.
16901func (s *UpdateFirewallRuleInput) SetAction(v string) *UpdateFirewallRuleInput {
16902	s.Action = &v
16903	return s
16904}
16905
16906// SetBlockOverrideDnsType sets the BlockOverrideDnsType field's value.
16907func (s *UpdateFirewallRuleInput) SetBlockOverrideDnsType(v string) *UpdateFirewallRuleInput {
16908	s.BlockOverrideDnsType = &v
16909	return s
16910}
16911
16912// SetBlockOverrideDomain sets the BlockOverrideDomain field's value.
16913func (s *UpdateFirewallRuleInput) SetBlockOverrideDomain(v string) *UpdateFirewallRuleInput {
16914	s.BlockOverrideDomain = &v
16915	return s
16916}
16917
16918// SetBlockOverrideTtl sets the BlockOverrideTtl field's value.
16919func (s *UpdateFirewallRuleInput) SetBlockOverrideTtl(v int64) *UpdateFirewallRuleInput {
16920	s.BlockOverrideTtl = &v
16921	return s
16922}
16923
16924// SetBlockResponse sets the BlockResponse field's value.
16925func (s *UpdateFirewallRuleInput) SetBlockResponse(v string) *UpdateFirewallRuleInput {
16926	s.BlockResponse = &v
16927	return s
16928}
16929
16930// SetFirewallDomainListId sets the FirewallDomainListId field's value.
16931func (s *UpdateFirewallRuleInput) SetFirewallDomainListId(v string) *UpdateFirewallRuleInput {
16932	s.FirewallDomainListId = &v
16933	return s
16934}
16935
16936// SetFirewallRuleGroupId sets the FirewallRuleGroupId field's value.
16937func (s *UpdateFirewallRuleInput) SetFirewallRuleGroupId(v string) *UpdateFirewallRuleInput {
16938	s.FirewallRuleGroupId = &v
16939	return s
16940}
16941
16942// SetName sets the Name field's value.
16943func (s *UpdateFirewallRuleInput) SetName(v string) *UpdateFirewallRuleInput {
16944	s.Name = &v
16945	return s
16946}
16947
16948// SetPriority sets the Priority field's value.
16949func (s *UpdateFirewallRuleInput) SetPriority(v int64) *UpdateFirewallRuleInput {
16950	s.Priority = &v
16951	return s
16952}
16953
16954type UpdateFirewallRuleOutput struct {
16955	_ struct{} `type:"structure"`
16956
16957	// The firewall rule that you just updated.
16958	FirewallRule *FirewallRule `type:"structure"`
16959}
16960
16961// String returns the string representation.
16962//
16963// API parameter values that are decorated as "sensitive" in the API will not
16964// be included in the string output. The member name will be present, but the
16965// value will be replaced with "sensitive".
16966func (s UpdateFirewallRuleOutput) String() string {
16967	return awsutil.Prettify(s)
16968}
16969
16970// GoString returns the string representation.
16971//
16972// API parameter values that are decorated as "sensitive" in the API will not
16973// be included in the string output. The member name will be present, but the
16974// value will be replaced with "sensitive".
16975func (s UpdateFirewallRuleOutput) GoString() string {
16976	return s.String()
16977}
16978
16979// SetFirewallRule sets the FirewallRule field's value.
16980func (s *UpdateFirewallRuleOutput) SetFirewallRule(v *FirewallRule) *UpdateFirewallRuleOutput {
16981	s.FirewallRule = v
16982	return s
16983}
16984
16985type UpdateResolverConfigInput struct {
16986	_ struct{} `type:"structure"`
16987
16988	// Indicates whether or not the Resolver will create autodefined rules for reverse
16989	// DNS lookups. This is enabled by default. Disabling this option will also
16990	// affect EC2-Classic instances using ClassicLink. For more information, see
16991	// ClassicLink (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html)
16992	// in the Amazon EC2 guide.
16993	//
16994	// It can take some time for the status change to be completed.
16995	//
16996	// AutodefinedReverseFlag is a required field
16997	AutodefinedReverseFlag *string `type:"string" required:"true" enum:"AutodefinedReverseFlag"`
16998
16999	// Resource ID of the Amazon VPC that you want to update the Resolver configuration
17000	// for.
17001	//
17002	// ResourceId is a required field
17003	ResourceId *string `min:"1" type:"string" required:"true"`
17004}
17005
17006// String returns the string representation.
17007//
17008// API parameter values that are decorated as "sensitive" in the API will not
17009// be included in the string output. The member name will be present, but the
17010// value will be replaced with "sensitive".
17011func (s UpdateResolverConfigInput) String() string {
17012	return awsutil.Prettify(s)
17013}
17014
17015// GoString returns the string representation.
17016//
17017// API parameter values that are decorated as "sensitive" in the API will not
17018// be included in the string output. The member name will be present, but the
17019// value will be replaced with "sensitive".
17020func (s UpdateResolverConfigInput) GoString() string {
17021	return s.String()
17022}
17023
17024// Validate inspects the fields of the type to determine if they are valid.
17025func (s *UpdateResolverConfigInput) Validate() error {
17026	invalidParams := request.ErrInvalidParams{Context: "UpdateResolverConfigInput"}
17027	if s.AutodefinedReverseFlag == nil {
17028		invalidParams.Add(request.NewErrParamRequired("AutodefinedReverseFlag"))
17029	}
17030	if s.ResourceId == nil {
17031		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
17032	}
17033	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
17034		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
17035	}
17036
17037	if invalidParams.Len() > 0 {
17038		return invalidParams
17039	}
17040	return nil
17041}
17042
17043// SetAutodefinedReverseFlag sets the AutodefinedReverseFlag field's value.
17044func (s *UpdateResolverConfigInput) SetAutodefinedReverseFlag(v string) *UpdateResolverConfigInput {
17045	s.AutodefinedReverseFlag = &v
17046	return s
17047}
17048
17049// SetResourceId sets the ResourceId field's value.
17050func (s *UpdateResolverConfigInput) SetResourceId(v string) *UpdateResolverConfigInput {
17051	s.ResourceId = &v
17052	return s
17053}
17054
17055type UpdateResolverConfigOutput struct {
17056	_ struct{} `type:"structure"`
17057
17058	// An array that contains settings for the specified Resolver configuration.
17059	ResolverConfig *ResolverConfig `type:"structure"`
17060}
17061
17062// String returns the string representation.
17063//
17064// API parameter values that are decorated as "sensitive" in the API will not
17065// be included in the string output. The member name will be present, but the
17066// value will be replaced with "sensitive".
17067func (s UpdateResolverConfigOutput) String() string {
17068	return awsutil.Prettify(s)
17069}
17070
17071// GoString returns the string representation.
17072//
17073// API parameter values that are decorated as "sensitive" in the API will not
17074// be included in the string output. The member name will be present, but the
17075// value will be replaced with "sensitive".
17076func (s UpdateResolverConfigOutput) GoString() string {
17077	return s.String()
17078}
17079
17080// SetResolverConfig sets the ResolverConfig field's value.
17081func (s *UpdateResolverConfigOutput) SetResolverConfig(v *ResolverConfig) *UpdateResolverConfigOutput {
17082	s.ResolverConfig = v
17083	return s
17084}
17085
17086type UpdateResolverDnssecConfigInput struct {
17087	_ struct{} `type:"structure"`
17088
17089	// The ID of the virtual private cloud (VPC) that you're updating the DNSSEC
17090	// validation status for.
17091	//
17092	// ResourceId is a required field
17093	ResourceId *string `min:"1" type:"string" required:"true"`
17094
17095	// The new value that you are specifying for DNSSEC validation for the VPC.
17096	// The value can be ENABLE or DISABLE. Be aware that it can take time for a
17097	// validation status change to be completed.
17098	//
17099	// Validation is a required field
17100	Validation *string `type:"string" required:"true" enum:"Validation"`
17101}
17102
17103// String returns the string representation.
17104//
17105// API parameter values that are decorated as "sensitive" in the API will not
17106// be included in the string output. The member name will be present, but the
17107// value will be replaced with "sensitive".
17108func (s UpdateResolverDnssecConfigInput) String() string {
17109	return awsutil.Prettify(s)
17110}
17111
17112// GoString returns the string representation.
17113//
17114// API parameter values that are decorated as "sensitive" in the API will not
17115// be included in the string output. The member name will be present, but the
17116// value will be replaced with "sensitive".
17117func (s UpdateResolverDnssecConfigInput) GoString() string {
17118	return s.String()
17119}
17120
17121// Validate inspects the fields of the type to determine if they are valid.
17122func (s *UpdateResolverDnssecConfigInput) Validate() error {
17123	invalidParams := request.ErrInvalidParams{Context: "UpdateResolverDnssecConfigInput"}
17124	if s.ResourceId == nil {
17125		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
17126	}
17127	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
17128		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
17129	}
17130	if s.Validation == nil {
17131		invalidParams.Add(request.NewErrParamRequired("Validation"))
17132	}
17133
17134	if invalidParams.Len() > 0 {
17135		return invalidParams
17136	}
17137	return nil
17138}
17139
17140// SetResourceId sets the ResourceId field's value.
17141func (s *UpdateResolverDnssecConfigInput) SetResourceId(v string) *UpdateResolverDnssecConfigInput {
17142	s.ResourceId = &v
17143	return s
17144}
17145
17146// SetValidation sets the Validation field's value.
17147func (s *UpdateResolverDnssecConfigInput) SetValidation(v string) *UpdateResolverDnssecConfigInput {
17148	s.Validation = &v
17149	return s
17150}
17151
17152type UpdateResolverDnssecConfigOutput struct {
17153	_ struct{} `type:"structure"`
17154
17155	// A complex type that contains settings for the specified DNSSEC configuration.
17156	ResolverDNSSECConfig *ResolverDnssecConfig `type:"structure"`
17157}
17158
17159// String returns the string representation.
17160//
17161// API parameter values that are decorated as "sensitive" in the API will not
17162// be included in the string output. The member name will be present, but the
17163// value will be replaced with "sensitive".
17164func (s UpdateResolverDnssecConfigOutput) String() string {
17165	return awsutil.Prettify(s)
17166}
17167
17168// GoString returns the string representation.
17169//
17170// API parameter values that are decorated as "sensitive" in the API will not
17171// be included in the string output. The member name will be present, but the
17172// value will be replaced with "sensitive".
17173func (s UpdateResolverDnssecConfigOutput) GoString() string {
17174	return s.String()
17175}
17176
17177// SetResolverDNSSECConfig sets the ResolverDNSSECConfig field's value.
17178func (s *UpdateResolverDnssecConfigOutput) SetResolverDNSSECConfig(v *ResolverDnssecConfig) *UpdateResolverDnssecConfigOutput {
17179	s.ResolverDNSSECConfig = v
17180	return s
17181}
17182
17183type UpdateResolverEndpointInput struct {
17184	_ struct{} `type:"structure"`
17185
17186	// The name of the Resolver endpoint that you want to update.
17187	Name *string `type:"string"`
17188
17189	// The ID of the Resolver endpoint that you want to update.
17190	//
17191	// ResolverEndpointId is a required field
17192	ResolverEndpointId *string `min:"1" type:"string" required:"true"`
17193}
17194
17195// String returns the string representation.
17196//
17197// API parameter values that are decorated as "sensitive" in the API will not
17198// be included in the string output. The member name will be present, but the
17199// value will be replaced with "sensitive".
17200func (s UpdateResolverEndpointInput) String() string {
17201	return awsutil.Prettify(s)
17202}
17203
17204// GoString returns the string representation.
17205//
17206// API parameter values that are decorated as "sensitive" in the API will not
17207// be included in the string output. The member name will be present, but the
17208// value will be replaced with "sensitive".
17209func (s UpdateResolverEndpointInput) GoString() string {
17210	return s.String()
17211}
17212
17213// Validate inspects the fields of the type to determine if they are valid.
17214func (s *UpdateResolverEndpointInput) Validate() error {
17215	invalidParams := request.ErrInvalidParams{Context: "UpdateResolverEndpointInput"}
17216	if s.ResolverEndpointId == nil {
17217		invalidParams.Add(request.NewErrParamRequired("ResolverEndpointId"))
17218	}
17219	if s.ResolverEndpointId != nil && len(*s.ResolverEndpointId) < 1 {
17220		invalidParams.Add(request.NewErrParamMinLen("ResolverEndpointId", 1))
17221	}
17222
17223	if invalidParams.Len() > 0 {
17224		return invalidParams
17225	}
17226	return nil
17227}
17228
17229// SetName sets the Name field's value.
17230func (s *UpdateResolverEndpointInput) SetName(v string) *UpdateResolverEndpointInput {
17231	s.Name = &v
17232	return s
17233}
17234
17235// SetResolverEndpointId sets the ResolverEndpointId field's value.
17236func (s *UpdateResolverEndpointInput) SetResolverEndpointId(v string) *UpdateResolverEndpointInput {
17237	s.ResolverEndpointId = &v
17238	return s
17239}
17240
17241type UpdateResolverEndpointOutput struct {
17242	_ struct{} `type:"structure"`
17243
17244	// The response to an UpdateResolverEndpoint request.
17245	ResolverEndpoint *ResolverEndpoint `type:"structure"`
17246}
17247
17248// String returns the string representation.
17249//
17250// API parameter values that are decorated as "sensitive" in the API will not
17251// be included in the string output. The member name will be present, but the
17252// value will be replaced with "sensitive".
17253func (s UpdateResolverEndpointOutput) String() string {
17254	return awsutil.Prettify(s)
17255}
17256
17257// GoString returns the string representation.
17258//
17259// API parameter values that are decorated as "sensitive" in the API will not
17260// be included in the string output. The member name will be present, but the
17261// value will be replaced with "sensitive".
17262func (s UpdateResolverEndpointOutput) GoString() string {
17263	return s.String()
17264}
17265
17266// SetResolverEndpoint sets the ResolverEndpoint field's value.
17267func (s *UpdateResolverEndpointOutput) SetResolverEndpoint(v *ResolverEndpoint) *UpdateResolverEndpointOutput {
17268	s.ResolverEndpoint = v
17269	return s
17270}
17271
17272type UpdateResolverRuleInput struct {
17273	_ struct{} `type:"structure"`
17274
17275	// The new settings for the Resolver rule.
17276	//
17277	// Config is a required field
17278	Config *ResolverRuleConfig `type:"structure" required:"true"`
17279
17280	// The ID of the Resolver rule that you want to update.
17281	//
17282	// ResolverRuleId is a required field
17283	ResolverRuleId *string `min:"1" type:"string" required:"true"`
17284}
17285
17286// String returns the string representation.
17287//
17288// API parameter values that are decorated as "sensitive" in the API will not
17289// be included in the string output. The member name will be present, but the
17290// value will be replaced with "sensitive".
17291func (s UpdateResolverRuleInput) String() string {
17292	return awsutil.Prettify(s)
17293}
17294
17295// GoString returns the string representation.
17296//
17297// API parameter values that are decorated as "sensitive" in the API will not
17298// be included in the string output. The member name will be present, but the
17299// value will be replaced with "sensitive".
17300func (s UpdateResolverRuleInput) GoString() string {
17301	return s.String()
17302}
17303
17304// Validate inspects the fields of the type to determine if they are valid.
17305func (s *UpdateResolverRuleInput) Validate() error {
17306	invalidParams := request.ErrInvalidParams{Context: "UpdateResolverRuleInput"}
17307	if s.Config == nil {
17308		invalidParams.Add(request.NewErrParamRequired("Config"))
17309	}
17310	if s.ResolverRuleId == nil {
17311		invalidParams.Add(request.NewErrParamRequired("ResolverRuleId"))
17312	}
17313	if s.ResolverRuleId != nil && len(*s.ResolverRuleId) < 1 {
17314		invalidParams.Add(request.NewErrParamMinLen("ResolverRuleId", 1))
17315	}
17316	if s.Config != nil {
17317		if err := s.Config.Validate(); err != nil {
17318			invalidParams.AddNested("Config", err.(request.ErrInvalidParams))
17319		}
17320	}
17321
17322	if invalidParams.Len() > 0 {
17323		return invalidParams
17324	}
17325	return nil
17326}
17327
17328// SetConfig sets the Config field's value.
17329func (s *UpdateResolverRuleInput) SetConfig(v *ResolverRuleConfig) *UpdateResolverRuleInput {
17330	s.Config = v
17331	return s
17332}
17333
17334// SetResolverRuleId sets the ResolverRuleId field's value.
17335func (s *UpdateResolverRuleInput) SetResolverRuleId(v string) *UpdateResolverRuleInput {
17336	s.ResolverRuleId = &v
17337	return s
17338}
17339
17340type UpdateResolverRuleOutput struct {
17341	_ struct{} `type:"structure"`
17342
17343	// The response to an UpdateResolverRule request.
17344	ResolverRule *ResolverRule `type:"structure"`
17345}
17346
17347// String returns the string representation.
17348//
17349// API parameter values that are decorated as "sensitive" in the API will not
17350// be included in the string output. The member name will be present, but the
17351// value will be replaced with "sensitive".
17352func (s UpdateResolverRuleOutput) String() string {
17353	return awsutil.Prettify(s)
17354}
17355
17356// GoString returns the string representation.
17357//
17358// API parameter values that are decorated as "sensitive" in the API will not
17359// be included in the string output. The member name will be present, but the
17360// value will be replaced with "sensitive".
17361func (s UpdateResolverRuleOutput) GoString() string {
17362	return s.String()
17363}
17364
17365// SetResolverRule sets the ResolverRule field's value.
17366func (s *UpdateResolverRuleOutput) SetResolverRule(v *ResolverRule) *UpdateResolverRuleOutput {
17367	s.ResolverRule = v
17368	return s
17369}
17370
17371type ValidationException struct {
17372	_            struct{}                  `type:"structure"`
17373	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
17374
17375	Message_ *string `locationName:"Message" type:"string"`
17376}
17377
17378// String returns the string representation.
17379//
17380// API parameter values that are decorated as "sensitive" in the API will not
17381// be included in the string output. The member name will be present, but the
17382// value will be replaced with "sensitive".
17383func (s ValidationException) String() string {
17384	return awsutil.Prettify(s)
17385}
17386
17387// GoString returns the string representation.
17388//
17389// API parameter values that are decorated as "sensitive" in the API will not
17390// be included in the string output. The member name will be present, but the
17391// value will be replaced with "sensitive".
17392func (s ValidationException) GoString() string {
17393	return s.String()
17394}
17395
17396func newErrorValidationException(v protocol.ResponseMetadata) error {
17397	return &ValidationException{
17398		RespMetadata: v,
17399	}
17400}
17401
17402// Code returns the exception type name.
17403func (s *ValidationException) Code() string {
17404	return "ValidationException"
17405}
17406
17407// Message returns the exception's message.
17408func (s *ValidationException) Message() string {
17409	if s.Message_ != nil {
17410		return *s.Message_
17411	}
17412	return ""
17413}
17414
17415// OrigErr always returns nil, satisfies awserr.Error interface.
17416func (s *ValidationException) OrigErr() error {
17417	return nil
17418}
17419
17420func (s *ValidationException) Error() string {
17421	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
17422}
17423
17424// Status code returns the HTTP status code for the request's response error.
17425func (s *ValidationException) StatusCode() int {
17426	return s.RespMetadata.StatusCode
17427}
17428
17429// RequestID returns the service's response RequestID for request.
17430func (s *ValidationException) RequestID() string {
17431	return s.RespMetadata.RequestID
17432}
17433
17434const (
17435	// ActionAllow is a Action enum value
17436	ActionAllow = "ALLOW"
17437
17438	// ActionBlock is a Action enum value
17439	ActionBlock = "BLOCK"
17440
17441	// ActionAlert is a Action enum value
17442	ActionAlert = "ALERT"
17443)
17444
17445// Action_Values returns all elements of the Action enum
17446func Action_Values() []string {
17447	return []string{
17448		ActionAllow,
17449		ActionBlock,
17450		ActionAlert,
17451	}
17452}
17453
17454const (
17455	// AutodefinedReverseFlagEnable is a AutodefinedReverseFlag enum value
17456	AutodefinedReverseFlagEnable = "ENABLE"
17457
17458	// AutodefinedReverseFlagDisable is a AutodefinedReverseFlag enum value
17459	AutodefinedReverseFlagDisable = "DISABLE"
17460)
17461
17462// AutodefinedReverseFlag_Values returns all elements of the AutodefinedReverseFlag enum
17463func AutodefinedReverseFlag_Values() []string {
17464	return []string{
17465		AutodefinedReverseFlagEnable,
17466		AutodefinedReverseFlagDisable,
17467	}
17468}
17469
17470const (
17471	// BlockOverrideDnsTypeCname is a BlockOverrideDnsType enum value
17472	BlockOverrideDnsTypeCname = "CNAME"
17473)
17474
17475// BlockOverrideDnsType_Values returns all elements of the BlockOverrideDnsType enum
17476func BlockOverrideDnsType_Values() []string {
17477	return []string{
17478		BlockOverrideDnsTypeCname,
17479	}
17480}
17481
17482const (
17483	// BlockResponseNodata is a BlockResponse enum value
17484	BlockResponseNodata = "NODATA"
17485
17486	// BlockResponseNxdomain is a BlockResponse enum value
17487	BlockResponseNxdomain = "NXDOMAIN"
17488
17489	// BlockResponseOverride is a BlockResponse enum value
17490	BlockResponseOverride = "OVERRIDE"
17491)
17492
17493// BlockResponse_Values returns all elements of the BlockResponse enum
17494func BlockResponse_Values() []string {
17495	return []string{
17496		BlockResponseNodata,
17497		BlockResponseNxdomain,
17498		BlockResponseOverride,
17499	}
17500}
17501
17502const (
17503	// FirewallDomainImportOperationReplace is a FirewallDomainImportOperation enum value
17504	FirewallDomainImportOperationReplace = "REPLACE"
17505)
17506
17507// FirewallDomainImportOperation_Values returns all elements of the FirewallDomainImportOperation enum
17508func FirewallDomainImportOperation_Values() []string {
17509	return []string{
17510		FirewallDomainImportOperationReplace,
17511	}
17512}
17513
17514const (
17515	// FirewallDomainListStatusComplete is a FirewallDomainListStatus enum value
17516	FirewallDomainListStatusComplete = "COMPLETE"
17517
17518	// FirewallDomainListStatusCompleteImportFailed is a FirewallDomainListStatus enum value
17519	FirewallDomainListStatusCompleteImportFailed = "COMPLETE_IMPORT_FAILED"
17520
17521	// FirewallDomainListStatusImporting is a FirewallDomainListStatus enum value
17522	FirewallDomainListStatusImporting = "IMPORTING"
17523
17524	// FirewallDomainListStatusDeleting is a FirewallDomainListStatus enum value
17525	FirewallDomainListStatusDeleting = "DELETING"
17526
17527	// FirewallDomainListStatusUpdating is a FirewallDomainListStatus enum value
17528	FirewallDomainListStatusUpdating = "UPDATING"
17529)
17530
17531// FirewallDomainListStatus_Values returns all elements of the FirewallDomainListStatus enum
17532func FirewallDomainListStatus_Values() []string {
17533	return []string{
17534		FirewallDomainListStatusComplete,
17535		FirewallDomainListStatusCompleteImportFailed,
17536		FirewallDomainListStatusImporting,
17537		FirewallDomainListStatusDeleting,
17538		FirewallDomainListStatusUpdating,
17539	}
17540}
17541
17542const (
17543	// FirewallDomainUpdateOperationAdd is a FirewallDomainUpdateOperation enum value
17544	FirewallDomainUpdateOperationAdd = "ADD"
17545
17546	// FirewallDomainUpdateOperationRemove is a FirewallDomainUpdateOperation enum value
17547	FirewallDomainUpdateOperationRemove = "REMOVE"
17548
17549	// FirewallDomainUpdateOperationReplace is a FirewallDomainUpdateOperation enum value
17550	FirewallDomainUpdateOperationReplace = "REPLACE"
17551)
17552
17553// FirewallDomainUpdateOperation_Values returns all elements of the FirewallDomainUpdateOperation enum
17554func FirewallDomainUpdateOperation_Values() []string {
17555	return []string{
17556		FirewallDomainUpdateOperationAdd,
17557		FirewallDomainUpdateOperationRemove,
17558		FirewallDomainUpdateOperationReplace,
17559	}
17560}
17561
17562const (
17563	// FirewallFailOpenStatusEnabled is a FirewallFailOpenStatus enum value
17564	FirewallFailOpenStatusEnabled = "ENABLED"
17565
17566	// FirewallFailOpenStatusDisabled is a FirewallFailOpenStatus enum value
17567	FirewallFailOpenStatusDisabled = "DISABLED"
17568)
17569
17570// FirewallFailOpenStatus_Values returns all elements of the FirewallFailOpenStatus enum
17571func FirewallFailOpenStatus_Values() []string {
17572	return []string{
17573		FirewallFailOpenStatusEnabled,
17574		FirewallFailOpenStatusDisabled,
17575	}
17576}
17577
17578const (
17579	// FirewallRuleGroupAssociationStatusComplete is a FirewallRuleGroupAssociationStatus enum value
17580	FirewallRuleGroupAssociationStatusComplete = "COMPLETE"
17581
17582	// FirewallRuleGroupAssociationStatusDeleting is a FirewallRuleGroupAssociationStatus enum value
17583	FirewallRuleGroupAssociationStatusDeleting = "DELETING"
17584
17585	// FirewallRuleGroupAssociationStatusUpdating is a FirewallRuleGroupAssociationStatus enum value
17586	FirewallRuleGroupAssociationStatusUpdating = "UPDATING"
17587)
17588
17589// FirewallRuleGroupAssociationStatus_Values returns all elements of the FirewallRuleGroupAssociationStatus enum
17590func FirewallRuleGroupAssociationStatus_Values() []string {
17591	return []string{
17592		FirewallRuleGroupAssociationStatusComplete,
17593		FirewallRuleGroupAssociationStatusDeleting,
17594		FirewallRuleGroupAssociationStatusUpdating,
17595	}
17596}
17597
17598const (
17599	// FirewallRuleGroupStatusComplete is a FirewallRuleGroupStatus enum value
17600	FirewallRuleGroupStatusComplete = "COMPLETE"
17601
17602	// FirewallRuleGroupStatusDeleting is a FirewallRuleGroupStatus enum value
17603	FirewallRuleGroupStatusDeleting = "DELETING"
17604
17605	// FirewallRuleGroupStatusUpdating is a FirewallRuleGroupStatus enum value
17606	FirewallRuleGroupStatusUpdating = "UPDATING"
17607)
17608
17609// FirewallRuleGroupStatus_Values returns all elements of the FirewallRuleGroupStatus enum
17610func FirewallRuleGroupStatus_Values() []string {
17611	return []string{
17612		FirewallRuleGroupStatusComplete,
17613		FirewallRuleGroupStatusDeleting,
17614		FirewallRuleGroupStatusUpdating,
17615	}
17616}
17617
17618const (
17619	// IpAddressStatusCreating is a IpAddressStatus enum value
17620	IpAddressStatusCreating = "CREATING"
17621
17622	// IpAddressStatusFailedCreation is a IpAddressStatus enum value
17623	IpAddressStatusFailedCreation = "FAILED_CREATION"
17624
17625	// IpAddressStatusAttaching is a IpAddressStatus enum value
17626	IpAddressStatusAttaching = "ATTACHING"
17627
17628	// IpAddressStatusAttached is a IpAddressStatus enum value
17629	IpAddressStatusAttached = "ATTACHED"
17630
17631	// IpAddressStatusRemapDetaching is a IpAddressStatus enum value
17632	IpAddressStatusRemapDetaching = "REMAP_DETACHING"
17633
17634	// IpAddressStatusRemapAttaching is a IpAddressStatus enum value
17635	IpAddressStatusRemapAttaching = "REMAP_ATTACHING"
17636
17637	// IpAddressStatusDetaching is a IpAddressStatus enum value
17638	IpAddressStatusDetaching = "DETACHING"
17639
17640	// IpAddressStatusFailedResourceGone is a IpAddressStatus enum value
17641	IpAddressStatusFailedResourceGone = "FAILED_RESOURCE_GONE"
17642
17643	// IpAddressStatusDeleting is a IpAddressStatus enum value
17644	IpAddressStatusDeleting = "DELETING"
17645
17646	// IpAddressStatusDeleteFailedFasExpired is a IpAddressStatus enum value
17647	IpAddressStatusDeleteFailedFasExpired = "DELETE_FAILED_FAS_EXPIRED"
17648)
17649
17650// IpAddressStatus_Values returns all elements of the IpAddressStatus enum
17651func IpAddressStatus_Values() []string {
17652	return []string{
17653		IpAddressStatusCreating,
17654		IpAddressStatusFailedCreation,
17655		IpAddressStatusAttaching,
17656		IpAddressStatusAttached,
17657		IpAddressStatusRemapDetaching,
17658		IpAddressStatusRemapAttaching,
17659		IpAddressStatusDetaching,
17660		IpAddressStatusFailedResourceGone,
17661		IpAddressStatusDeleting,
17662		IpAddressStatusDeleteFailedFasExpired,
17663	}
17664}
17665
17666const (
17667	// MutationProtectionStatusEnabled is a MutationProtectionStatus enum value
17668	MutationProtectionStatusEnabled = "ENABLED"
17669
17670	// MutationProtectionStatusDisabled is a MutationProtectionStatus enum value
17671	MutationProtectionStatusDisabled = "DISABLED"
17672)
17673
17674// MutationProtectionStatus_Values returns all elements of the MutationProtectionStatus enum
17675func MutationProtectionStatus_Values() []string {
17676	return []string{
17677		MutationProtectionStatusEnabled,
17678		MutationProtectionStatusDisabled,
17679	}
17680}
17681
17682const (
17683	// ResolverAutodefinedReverseStatusEnabling is a ResolverAutodefinedReverseStatus enum value
17684	ResolverAutodefinedReverseStatusEnabling = "ENABLING"
17685
17686	// ResolverAutodefinedReverseStatusEnabled is a ResolverAutodefinedReverseStatus enum value
17687	ResolverAutodefinedReverseStatusEnabled = "ENABLED"
17688
17689	// ResolverAutodefinedReverseStatusDisabling is a ResolverAutodefinedReverseStatus enum value
17690	ResolverAutodefinedReverseStatusDisabling = "DISABLING"
17691
17692	// ResolverAutodefinedReverseStatusDisabled is a ResolverAutodefinedReverseStatus enum value
17693	ResolverAutodefinedReverseStatusDisabled = "DISABLED"
17694)
17695
17696// ResolverAutodefinedReverseStatus_Values returns all elements of the ResolverAutodefinedReverseStatus enum
17697func ResolverAutodefinedReverseStatus_Values() []string {
17698	return []string{
17699		ResolverAutodefinedReverseStatusEnabling,
17700		ResolverAutodefinedReverseStatusEnabled,
17701		ResolverAutodefinedReverseStatusDisabling,
17702		ResolverAutodefinedReverseStatusDisabled,
17703	}
17704}
17705
17706const (
17707	// ResolverDNSSECValidationStatusEnabling is a ResolverDNSSECValidationStatus enum value
17708	ResolverDNSSECValidationStatusEnabling = "ENABLING"
17709
17710	// ResolverDNSSECValidationStatusEnabled is a ResolverDNSSECValidationStatus enum value
17711	ResolverDNSSECValidationStatusEnabled = "ENABLED"
17712
17713	// ResolverDNSSECValidationStatusDisabling is a ResolverDNSSECValidationStatus enum value
17714	ResolverDNSSECValidationStatusDisabling = "DISABLING"
17715
17716	// ResolverDNSSECValidationStatusDisabled is a ResolverDNSSECValidationStatus enum value
17717	ResolverDNSSECValidationStatusDisabled = "DISABLED"
17718)
17719
17720// ResolverDNSSECValidationStatus_Values returns all elements of the ResolverDNSSECValidationStatus enum
17721func ResolverDNSSECValidationStatus_Values() []string {
17722	return []string{
17723		ResolverDNSSECValidationStatusEnabling,
17724		ResolverDNSSECValidationStatusEnabled,
17725		ResolverDNSSECValidationStatusDisabling,
17726		ResolverDNSSECValidationStatusDisabled,
17727	}
17728}
17729
17730const (
17731	// ResolverEndpointDirectionInbound is a ResolverEndpointDirection enum value
17732	ResolverEndpointDirectionInbound = "INBOUND"
17733
17734	// ResolverEndpointDirectionOutbound is a ResolverEndpointDirection enum value
17735	ResolverEndpointDirectionOutbound = "OUTBOUND"
17736)
17737
17738// ResolverEndpointDirection_Values returns all elements of the ResolverEndpointDirection enum
17739func ResolverEndpointDirection_Values() []string {
17740	return []string{
17741		ResolverEndpointDirectionInbound,
17742		ResolverEndpointDirectionOutbound,
17743	}
17744}
17745
17746const (
17747	// ResolverEndpointStatusCreating is a ResolverEndpointStatus enum value
17748	ResolverEndpointStatusCreating = "CREATING"
17749
17750	// ResolverEndpointStatusOperational is a ResolverEndpointStatus enum value
17751	ResolverEndpointStatusOperational = "OPERATIONAL"
17752
17753	// ResolverEndpointStatusUpdating is a ResolverEndpointStatus enum value
17754	ResolverEndpointStatusUpdating = "UPDATING"
17755
17756	// ResolverEndpointStatusAutoRecovering is a ResolverEndpointStatus enum value
17757	ResolverEndpointStatusAutoRecovering = "AUTO_RECOVERING"
17758
17759	// ResolverEndpointStatusActionNeeded is a ResolverEndpointStatus enum value
17760	ResolverEndpointStatusActionNeeded = "ACTION_NEEDED"
17761
17762	// ResolverEndpointStatusDeleting is a ResolverEndpointStatus enum value
17763	ResolverEndpointStatusDeleting = "DELETING"
17764)
17765
17766// ResolverEndpointStatus_Values returns all elements of the ResolverEndpointStatus enum
17767func ResolverEndpointStatus_Values() []string {
17768	return []string{
17769		ResolverEndpointStatusCreating,
17770		ResolverEndpointStatusOperational,
17771		ResolverEndpointStatusUpdating,
17772		ResolverEndpointStatusAutoRecovering,
17773		ResolverEndpointStatusActionNeeded,
17774		ResolverEndpointStatusDeleting,
17775	}
17776}
17777
17778const (
17779	// ResolverQueryLogConfigAssociationErrorNone is a ResolverQueryLogConfigAssociationError enum value
17780	ResolverQueryLogConfigAssociationErrorNone = "NONE"
17781
17782	// ResolverQueryLogConfigAssociationErrorDestinationNotFound is a ResolverQueryLogConfigAssociationError enum value
17783	ResolverQueryLogConfigAssociationErrorDestinationNotFound = "DESTINATION_NOT_FOUND"
17784
17785	// ResolverQueryLogConfigAssociationErrorAccessDenied is a ResolverQueryLogConfigAssociationError enum value
17786	ResolverQueryLogConfigAssociationErrorAccessDenied = "ACCESS_DENIED"
17787
17788	// ResolverQueryLogConfigAssociationErrorInternalServiceError is a ResolverQueryLogConfigAssociationError enum value
17789	ResolverQueryLogConfigAssociationErrorInternalServiceError = "INTERNAL_SERVICE_ERROR"
17790)
17791
17792// ResolverQueryLogConfigAssociationError_Values returns all elements of the ResolverQueryLogConfigAssociationError enum
17793func ResolverQueryLogConfigAssociationError_Values() []string {
17794	return []string{
17795		ResolverQueryLogConfigAssociationErrorNone,
17796		ResolverQueryLogConfigAssociationErrorDestinationNotFound,
17797		ResolverQueryLogConfigAssociationErrorAccessDenied,
17798		ResolverQueryLogConfigAssociationErrorInternalServiceError,
17799	}
17800}
17801
17802const (
17803	// ResolverQueryLogConfigAssociationStatusCreating is a ResolverQueryLogConfigAssociationStatus enum value
17804	ResolverQueryLogConfigAssociationStatusCreating = "CREATING"
17805
17806	// ResolverQueryLogConfigAssociationStatusActive is a ResolverQueryLogConfigAssociationStatus enum value
17807	ResolverQueryLogConfigAssociationStatusActive = "ACTIVE"
17808
17809	// ResolverQueryLogConfigAssociationStatusActionNeeded is a ResolverQueryLogConfigAssociationStatus enum value
17810	ResolverQueryLogConfigAssociationStatusActionNeeded = "ACTION_NEEDED"
17811
17812	// ResolverQueryLogConfigAssociationStatusDeleting is a ResolverQueryLogConfigAssociationStatus enum value
17813	ResolverQueryLogConfigAssociationStatusDeleting = "DELETING"
17814
17815	// ResolverQueryLogConfigAssociationStatusFailed is a ResolverQueryLogConfigAssociationStatus enum value
17816	ResolverQueryLogConfigAssociationStatusFailed = "FAILED"
17817)
17818
17819// ResolverQueryLogConfigAssociationStatus_Values returns all elements of the ResolverQueryLogConfigAssociationStatus enum
17820func ResolverQueryLogConfigAssociationStatus_Values() []string {
17821	return []string{
17822		ResolverQueryLogConfigAssociationStatusCreating,
17823		ResolverQueryLogConfigAssociationStatusActive,
17824		ResolverQueryLogConfigAssociationStatusActionNeeded,
17825		ResolverQueryLogConfigAssociationStatusDeleting,
17826		ResolverQueryLogConfigAssociationStatusFailed,
17827	}
17828}
17829
17830const (
17831	// ResolverQueryLogConfigStatusCreating is a ResolverQueryLogConfigStatus enum value
17832	ResolverQueryLogConfigStatusCreating = "CREATING"
17833
17834	// ResolverQueryLogConfigStatusCreated is a ResolverQueryLogConfigStatus enum value
17835	ResolverQueryLogConfigStatusCreated = "CREATED"
17836
17837	// ResolverQueryLogConfigStatusDeleting is a ResolverQueryLogConfigStatus enum value
17838	ResolverQueryLogConfigStatusDeleting = "DELETING"
17839
17840	// ResolverQueryLogConfigStatusFailed is a ResolverQueryLogConfigStatus enum value
17841	ResolverQueryLogConfigStatusFailed = "FAILED"
17842)
17843
17844// ResolverQueryLogConfigStatus_Values returns all elements of the ResolverQueryLogConfigStatus enum
17845func ResolverQueryLogConfigStatus_Values() []string {
17846	return []string{
17847		ResolverQueryLogConfigStatusCreating,
17848		ResolverQueryLogConfigStatusCreated,
17849		ResolverQueryLogConfigStatusDeleting,
17850		ResolverQueryLogConfigStatusFailed,
17851	}
17852}
17853
17854const (
17855	// ResolverRuleAssociationStatusCreating is a ResolverRuleAssociationStatus enum value
17856	ResolverRuleAssociationStatusCreating = "CREATING"
17857
17858	// ResolverRuleAssociationStatusComplete is a ResolverRuleAssociationStatus enum value
17859	ResolverRuleAssociationStatusComplete = "COMPLETE"
17860
17861	// ResolverRuleAssociationStatusDeleting is a ResolverRuleAssociationStatus enum value
17862	ResolverRuleAssociationStatusDeleting = "DELETING"
17863
17864	// ResolverRuleAssociationStatusFailed is a ResolverRuleAssociationStatus enum value
17865	ResolverRuleAssociationStatusFailed = "FAILED"
17866
17867	// ResolverRuleAssociationStatusOverridden is a ResolverRuleAssociationStatus enum value
17868	ResolverRuleAssociationStatusOverridden = "OVERRIDDEN"
17869)
17870
17871// ResolverRuleAssociationStatus_Values returns all elements of the ResolverRuleAssociationStatus enum
17872func ResolverRuleAssociationStatus_Values() []string {
17873	return []string{
17874		ResolverRuleAssociationStatusCreating,
17875		ResolverRuleAssociationStatusComplete,
17876		ResolverRuleAssociationStatusDeleting,
17877		ResolverRuleAssociationStatusFailed,
17878		ResolverRuleAssociationStatusOverridden,
17879	}
17880}
17881
17882const (
17883	// ResolverRuleStatusComplete is a ResolverRuleStatus enum value
17884	ResolverRuleStatusComplete = "COMPLETE"
17885
17886	// ResolverRuleStatusDeleting is a ResolverRuleStatus enum value
17887	ResolverRuleStatusDeleting = "DELETING"
17888
17889	// ResolverRuleStatusUpdating is a ResolverRuleStatus enum value
17890	ResolverRuleStatusUpdating = "UPDATING"
17891
17892	// ResolverRuleStatusFailed is a ResolverRuleStatus enum value
17893	ResolverRuleStatusFailed = "FAILED"
17894)
17895
17896// ResolverRuleStatus_Values returns all elements of the ResolverRuleStatus enum
17897func ResolverRuleStatus_Values() []string {
17898	return []string{
17899		ResolverRuleStatusComplete,
17900		ResolverRuleStatusDeleting,
17901		ResolverRuleStatusUpdating,
17902		ResolverRuleStatusFailed,
17903	}
17904}
17905
17906const (
17907	// RuleTypeOptionForward is a RuleTypeOption enum value
17908	RuleTypeOptionForward = "FORWARD"
17909
17910	// RuleTypeOptionSystem is a RuleTypeOption enum value
17911	RuleTypeOptionSystem = "SYSTEM"
17912
17913	// RuleTypeOptionRecursive is a RuleTypeOption enum value
17914	RuleTypeOptionRecursive = "RECURSIVE"
17915)
17916
17917// RuleTypeOption_Values returns all elements of the RuleTypeOption enum
17918func RuleTypeOption_Values() []string {
17919	return []string{
17920		RuleTypeOptionForward,
17921		RuleTypeOptionSystem,
17922		RuleTypeOptionRecursive,
17923	}
17924}
17925
17926const (
17927	// ShareStatusNotShared is a ShareStatus enum value
17928	ShareStatusNotShared = "NOT_SHARED"
17929
17930	// ShareStatusSharedWithMe is a ShareStatus enum value
17931	ShareStatusSharedWithMe = "SHARED_WITH_ME"
17932
17933	// ShareStatusSharedByMe is a ShareStatus enum value
17934	ShareStatusSharedByMe = "SHARED_BY_ME"
17935)
17936
17937// ShareStatus_Values returns all elements of the ShareStatus enum
17938func ShareStatus_Values() []string {
17939	return []string{
17940		ShareStatusNotShared,
17941		ShareStatusSharedWithMe,
17942		ShareStatusSharedByMe,
17943	}
17944}
17945
17946const (
17947	// SortOrderAscending is a SortOrder enum value
17948	SortOrderAscending = "ASCENDING"
17949
17950	// SortOrderDescending is a SortOrder enum value
17951	SortOrderDescending = "DESCENDING"
17952)
17953
17954// SortOrder_Values returns all elements of the SortOrder enum
17955func SortOrder_Values() []string {
17956	return []string{
17957		SortOrderAscending,
17958		SortOrderDescending,
17959	}
17960}
17961
17962const (
17963	// ValidationEnable is a Validation enum value
17964	ValidationEnable = "ENABLE"
17965
17966	// ValidationDisable is a Validation enum value
17967	ValidationDisable = "DISABLE"
17968)
17969
17970// Validation_Values returns all elements of the Validation enum
17971func Validation_Values() []string {
17972	return []string{
17973		ValidationEnable,
17974		ValidationDisable,
17975	}
17976}
17977