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 opAssociateResolverEndpointIpAddress = "AssociateResolverEndpointIpAddress"
16
17// AssociateResolverEndpointIpAddressRequest generates a "aws/request.Request" representing the
18// client's request for the AssociateResolverEndpointIpAddress 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 AssociateResolverEndpointIpAddress for more information on using the AssociateResolverEndpointIpAddress
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 AssociateResolverEndpointIpAddressRequest method.
33//    req, resp := client.AssociateResolverEndpointIpAddressRequest(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/AssociateResolverEndpointIpAddress
41func (c *Route53Resolver) AssociateResolverEndpointIpAddressRequest(input *AssociateResolverEndpointIpAddressInput) (req *request.Request, output *AssociateResolverEndpointIpAddressOutput) {
42	op := &request.Operation{
43		Name:       opAssociateResolverEndpointIpAddress,
44		HTTPMethod: "POST",
45		HTTPPath:   "/",
46	}
47
48	if input == nil {
49		input = &AssociateResolverEndpointIpAddressInput{}
50	}
51
52	output = &AssociateResolverEndpointIpAddressOutput{}
53	req = c.newRequest(op, input, output)
54	return
55}
56
57// AssociateResolverEndpointIpAddress API operation for Amazon Route 53 Resolver.
58//
59// Adds IP addresses to an inbound or an outbound Resolver endpoint. If you
60// want to add more than one IP address, submit one AssociateResolverEndpointIpAddress
61// request for each IP address.
62//
63// To remove an IP address from an endpoint, see DisassociateResolverEndpointIpAddress
64// (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_DisassociateResolverEndpointIpAddress.html).
65//
66// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
67// with awserr.Error's Code and Message methods to get detailed information about
68// the error.
69//
70// See the AWS API reference guide for Amazon Route 53 Resolver's
71// API operation AssociateResolverEndpointIpAddress for usage and error information.
72//
73// Returned Error Types:
74//   * ResourceNotFoundException
75//   The specified resource doesn't exist.
76//
77//   * InvalidParameterException
78//   One or more parameters in this request are not valid.
79//
80//   * InvalidRequestException
81//   The request is invalid.
82//
83//   * ResourceExistsException
84//   The resource that you tried to create already exists.
85//
86//   * InternalServiceErrorException
87//   We encountered an unknown error. Try again in a few minutes.
88//
89//   * LimitExceededException
90//   The request caused one or more limits to be exceeded.
91//
92//   * ThrottlingException
93//   The request was throttled. Try again in a few minutes.
94//
95// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/AssociateResolverEndpointIpAddress
96func (c *Route53Resolver) AssociateResolverEndpointIpAddress(input *AssociateResolverEndpointIpAddressInput) (*AssociateResolverEndpointIpAddressOutput, error) {
97	req, out := c.AssociateResolverEndpointIpAddressRequest(input)
98	return out, req.Send()
99}
100
101// AssociateResolverEndpointIpAddressWithContext is the same as AssociateResolverEndpointIpAddress with the addition of
102// the ability to pass a context and additional request options.
103//
104// See AssociateResolverEndpointIpAddress for details on how to use this API operation.
105//
106// The context must be non-nil and will be used for request cancellation. If
107// the context is nil a panic will occur. In the future the SDK may create
108// sub-contexts for http.Requests. See https://golang.org/pkg/context/
109// for more information on using Contexts.
110func (c *Route53Resolver) AssociateResolverEndpointIpAddressWithContext(ctx aws.Context, input *AssociateResolverEndpointIpAddressInput, opts ...request.Option) (*AssociateResolverEndpointIpAddressOutput, error) {
111	req, out := c.AssociateResolverEndpointIpAddressRequest(input)
112	req.SetContext(ctx)
113	req.ApplyOptions(opts...)
114	return out, req.Send()
115}
116
117const opAssociateResolverQueryLogConfig = "AssociateResolverQueryLogConfig"
118
119// AssociateResolverQueryLogConfigRequest generates a "aws/request.Request" representing the
120// client's request for the AssociateResolverQueryLogConfig operation. The "output" return
121// value will be populated with the request's response once the request completes
122// successfully.
123//
124// Use "Send" method on the returned Request to send the API call to the service.
125// the "output" return value is not valid until after Send returns without error.
126//
127// See AssociateResolverQueryLogConfig for more information on using the AssociateResolverQueryLogConfig
128// API call, and error handling.
129//
130// This method is useful when you want to inject custom logic or configuration
131// into the SDK's request lifecycle. Such as custom headers, or retry logic.
132//
133//
134//    // Example sending a request using the AssociateResolverQueryLogConfigRequest method.
135//    req, resp := client.AssociateResolverQueryLogConfigRequest(params)
136//
137//    err := req.Send()
138//    if err == nil { // resp is now filled
139//        fmt.Println(resp)
140//    }
141//
142// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/AssociateResolverQueryLogConfig
143func (c *Route53Resolver) AssociateResolverQueryLogConfigRequest(input *AssociateResolverQueryLogConfigInput) (req *request.Request, output *AssociateResolverQueryLogConfigOutput) {
144	op := &request.Operation{
145		Name:       opAssociateResolverQueryLogConfig,
146		HTTPMethod: "POST",
147		HTTPPath:   "/",
148	}
149
150	if input == nil {
151		input = &AssociateResolverQueryLogConfigInput{}
152	}
153
154	output = &AssociateResolverQueryLogConfigOutput{}
155	req = c.newRequest(op, input, output)
156	return
157}
158
159// AssociateResolverQueryLogConfig API operation for Amazon Route 53 Resolver.
160//
161// Associates an Amazon VPC with a specified query logging configuration. Route
162// 53 Resolver logs DNS queries that originate in all of the Amazon VPCs that
163// are associated with a specified query logging configuration. To associate
164// more than one VPC with a configuration, submit one AssociateResolverQueryLogConfig
165// request for each VPC.
166//
167// The VPCs that you associate with a query logging configuration must be in
168// the same Region as the configuration.
169//
170// To remove a VPC from a query logging configuration, see DisassociateResolverQueryLogConfig
171// (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_DisassociateResolverQueryLogConfig.html).
172//
173// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
174// with awserr.Error's Code and Message methods to get detailed information about
175// the error.
176//
177// See the AWS API reference guide for Amazon Route 53 Resolver's
178// API operation AssociateResolverQueryLogConfig for usage and error information.
179//
180// Returned Error Types:
181//   * InvalidParameterException
182//   One or more parameters in this request are not valid.
183//
184//   * ResourceNotFoundException
185//   The specified resource doesn't exist.
186//
187//   * InvalidRequestException
188//   The request is invalid.
189//
190//   * ResourceExistsException
191//   The resource that you tried to create already exists.
192//
193//   * LimitExceededException
194//   The request caused one or more limits to be exceeded.
195//
196//   * InternalServiceErrorException
197//   We encountered an unknown error. Try again in a few minutes.
198//
199//   * ThrottlingException
200//   The request was throttled. Try again in a few minutes.
201//
202//   * AccessDeniedException
203//   The current account doesn't have the IAM permissions required to perform
204//   the specified Resolver operation.
205//
206// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/AssociateResolverQueryLogConfig
207func (c *Route53Resolver) AssociateResolverQueryLogConfig(input *AssociateResolverQueryLogConfigInput) (*AssociateResolverQueryLogConfigOutput, error) {
208	req, out := c.AssociateResolverQueryLogConfigRequest(input)
209	return out, req.Send()
210}
211
212// AssociateResolverQueryLogConfigWithContext is the same as AssociateResolverQueryLogConfig with the addition of
213// the ability to pass a context and additional request options.
214//
215// See AssociateResolverQueryLogConfig for details on how to use this API operation.
216//
217// The context must be non-nil and will be used for request cancellation. If
218// the context is nil a panic will occur. In the future the SDK may create
219// sub-contexts for http.Requests. See https://golang.org/pkg/context/
220// for more information on using Contexts.
221func (c *Route53Resolver) AssociateResolverQueryLogConfigWithContext(ctx aws.Context, input *AssociateResolverQueryLogConfigInput, opts ...request.Option) (*AssociateResolverQueryLogConfigOutput, error) {
222	req, out := c.AssociateResolverQueryLogConfigRequest(input)
223	req.SetContext(ctx)
224	req.ApplyOptions(opts...)
225	return out, req.Send()
226}
227
228const opAssociateResolverRule = "AssociateResolverRule"
229
230// AssociateResolverRuleRequest generates a "aws/request.Request" representing the
231// client's request for the AssociateResolverRule operation. The "output" return
232// value will be populated with the request's response once the request completes
233// successfully.
234//
235// Use "Send" method on the returned Request to send the API call to the service.
236// the "output" return value is not valid until after Send returns without error.
237//
238// See AssociateResolverRule for more information on using the AssociateResolverRule
239// API call, and error handling.
240//
241// This method is useful when you want to inject custom logic or configuration
242// into the SDK's request lifecycle. Such as custom headers, or retry logic.
243//
244//
245//    // Example sending a request using the AssociateResolverRuleRequest method.
246//    req, resp := client.AssociateResolverRuleRequest(params)
247//
248//    err := req.Send()
249//    if err == nil { // resp is now filled
250//        fmt.Println(resp)
251//    }
252//
253// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/AssociateResolverRule
254func (c *Route53Resolver) AssociateResolverRuleRequest(input *AssociateResolverRuleInput) (req *request.Request, output *AssociateResolverRuleOutput) {
255	op := &request.Operation{
256		Name:       opAssociateResolverRule,
257		HTTPMethod: "POST",
258		HTTPPath:   "/",
259	}
260
261	if input == nil {
262		input = &AssociateResolverRuleInput{}
263	}
264
265	output = &AssociateResolverRuleOutput{}
266	req = c.newRequest(op, input, output)
267	return
268}
269
270// AssociateResolverRule API operation for Amazon Route 53 Resolver.
271//
272// Associates a Resolver rule with a VPC. When you associate a rule with a VPC,
273// Resolver forwards all DNS queries for the domain name that is specified in
274// the rule and that originate in the VPC. The queries are forwarded to the
275// IP addresses for the DNS resolvers that are specified in the rule. For more
276// information about rules, see CreateResolverRule (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_CreateResolverRule.html).
277//
278// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
279// with awserr.Error's Code and Message methods to get detailed information about
280// the error.
281//
282// See the AWS API reference guide for Amazon Route 53 Resolver's
283// API operation AssociateResolverRule for usage and error information.
284//
285// Returned Error Types:
286//   * ResourceNotFoundException
287//   The specified resource doesn't exist.
288//
289//   * InvalidRequestException
290//   The request is invalid.
291//
292//   * LimitExceededException
293//   The request caused one or more limits to be exceeded.
294//
295//   * InvalidParameterException
296//   One or more parameters in this request are not valid.
297//
298//   * ResourceUnavailableException
299//   The specified resource isn't available.
300//
301//   * ResourceExistsException
302//   The resource that you tried to create already exists.
303//
304//   * InternalServiceErrorException
305//   We encountered an unknown error. Try again in a few minutes.
306//
307//   * ThrottlingException
308//   The request was throttled. Try again in a few minutes.
309//
310// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/AssociateResolverRule
311func (c *Route53Resolver) AssociateResolverRule(input *AssociateResolverRuleInput) (*AssociateResolverRuleOutput, error) {
312	req, out := c.AssociateResolverRuleRequest(input)
313	return out, req.Send()
314}
315
316// AssociateResolverRuleWithContext is the same as AssociateResolverRule with the addition of
317// the ability to pass a context and additional request options.
318//
319// See AssociateResolverRule for details on how to use this API operation.
320//
321// The context must be non-nil and will be used for request cancellation. If
322// the context is nil a panic will occur. In the future the SDK may create
323// sub-contexts for http.Requests. See https://golang.org/pkg/context/
324// for more information on using Contexts.
325func (c *Route53Resolver) AssociateResolverRuleWithContext(ctx aws.Context, input *AssociateResolverRuleInput, opts ...request.Option) (*AssociateResolverRuleOutput, error) {
326	req, out := c.AssociateResolverRuleRequest(input)
327	req.SetContext(ctx)
328	req.ApplyOptions(opts...)
329	return out, req.Send()
330}
331
332const opCreateResolverEndpoint = "CreateResolverEndpoint"
333
334// CreateResolverEndpointRequest generates a "aws/request.Request" representing the
335// client's request for the CreateResolverEndpoint operation. The "output" return
336// value will be populated with the request's response once the request completes
337// successfully.
338//
339// Use "Send" method on the returned Request to send the API call to the service.
340// the "output" return value is not valid until after Send returns without error.
341//
342// See CreateResolverEndpoint for more information on using the CreateResolverEndpoint
343// API call, and error handling.
344//
345// This method is useful when you want to inject custom logic or configuration
346// into the SDK's request lifecycle. Such as custom headers, or retry logic.
347//
348//
349//    // Example sending a request using the CreateResolverEndpointRequest method.
350//    req, resp := client.CreateResolverEndpointRequest(params)
351//
352//    err := req.Send()
353//    if err == nil { // resp is now filled
354//        fmt.Println(resp)
355//    }
356//
357// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/CreateResolverEndpoint
358func (c *Route53Resolver) CreateResolverEndpointRequest(input *CreateResolverEndpointInput) (req *request.Request, output *CreateResolverEndpointOutput) {
359	op := &request.Operation{
360		Name:       opCreateResolverEndpoint,
361		HTTPMethod: "POST",
362		HTTPPath:   "/",
363	}
364
365	if input == nil {
366		input = &CreateResolverEndpointInput{}
367	}
368
369	output = &CreateResolverEndpointOutput{}
370	req = c.newRequest(op, input, output)
371	return
372}
373
374// CreateResolverEndpoint API operation for Amazon Route 53 Resolver.
375//
376// Creates a Resolver endpoint. There are two types of Resolver endpoints, inbound
377// and outbound:
378//
379//    * An inbound Resolver endpoint forwards DNS queries to the DNS service
380//    for a VPC from your network.
381//
382//    * An outbound Resolver endpoint forwards DNS queries from the DNS service
383//    for a VPC to your network.
384//
385// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
386// with awserr.Error's Code and Message methods to get detailed information about
387// the error.
388//
389// See the AWS API reference guide for Amazon Route 53 Resolver's
390// API operation CreateResolverEndpoint for usage and error information.
391//
392// Returned Error Types:
393//   * InvalidParameterException
394//   One or more parameters in this request are not valid.
395//
396//   * ResourceNotFoundException
397//   The specified resource doesn't exist.
398//
399//   * InvalidRequestException
400//   The request is invalid.
401//
402//   * ResourceExistsException
403//   The resource that you tried to create already exists.
404//
405//   * LimitExceededException
406//   The request caused one or more limits to be exceeded.
407//
408//   * InternalServiceErrorException
409//   We encountered an unknown error. Try again in a few minutes.
410//
411//   * ThrottlingException
412//   The request was throttled. Try again in a few minutes.
413//
414// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/CreateResolverEndpoint
415func (c *Route53Resolver) CreateResolverEndpoint(input *CreateResolverEndpointInput) (*CreateResolverEndpointOutput, error) {
416	req, out := c.CreateResolverEndpointRequest(input)
417	return out, req.Send()
418}
419
420// CreateResolverEndpointWithContext is the same as CreateResolverEndpoint with the addition of
421// the ability to pass a context and additional request options.
422//
423// See CreateResolverEndpoint for details on how to use this API operation.
424//
425// The context must be non-nil and will be used for request cancellation. If
426// the context is nil a panic will occur. In the future the SDK may create
427// sub-contexts for http.Requests. See https://golang.org/pkg/context/
428// for more information on using Contexts.
429func (c *Route53Resolver) CreateResolverEndpointWithContext(ctx aws.Context, input *CreateResolverEndpointInput, opts ...request.Option) (*CreateResolverEndpointOutput, error) {
430	req, out := c.CreateResolverEndpointRequest(input)
431	req.SetContext(ctx)
432	req.ApplyOptions(opts...)
433	return out, req.Send()
434}
435
436const opCreateResolverQueryLogConfig = "CreateResolverQueryLogConfig"
437
438// CreateResolverQueryLogConfigRequest generates a "aws/request.Request" representing the
439// client's request for the CreateResolverQueryLogConfig operation. The "output" return
440// value will be populated with the request's response once the request completes
441// successfully.
442//
443// Use "Send" method on the returned Request to send the API call to the service.
444// the "output" return value is not valid until after Send returns without error.
445//
446// See CreateResolverQueryLogConfig for more information on using the CreateResolverQueryLogConfig
447// API call, and error handling.
448//
449// This method is useful when you want to inject custom logic or configuration
450// into the SDK's request lifecycle. Such as custom headers, or retry logic.
451//
452//
453//    // Example sending a request using the CreateResolverQueryLogConfigRequest method.
454//    req, resp := client.CreateResolverQueryLogConfigRequest(params)
455//
456//    err := req.Send()
457//    if err == nil { // resp is now filled
458//        fmt.Println(resp)
459//    }
460//
461// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/CreateResolverQueryLogConfig
462func (c *Route53Resolver) CreateResolverQueryLogConfigRequest(input *CreateResolverQueryLogConfigInput) (req *request.Request, output *CreateResolverQueryLogConfigOutput) {
463	op := &request.Operation{
464		Name:       opCreateResolverQueryLogConfig,
465		HTTPMethod: "POST",
466		HTTPPath:   "/",
467	}
468
469	if input == nil {
470		input = &CreateResolverQueryLogConfigInput{}
471	}
472
473	output = &CreateResolverQueryLogConfigOutput{}
474	req = c.newRequest(op, input, output)
475	return
476}
477
478// CreateResolverQueryLogConfig API operation for Amazon Route 53 Resolver.
479//
480// Creates a Resolver query logging configuration, which defines where you want
481// Resolver to save DNS query logs that originate in your VPCs. Resolver can
482// log queries only for VPCs that are in the same Region as the query logging
483// configuration.
484//
485// To specify which VPCs you want to log queries for, you use AssociateResolverQueryLogConfig.
486// For more information, see AssociateResolverQueryLogConfig (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_AssociateResolverQueryLogConfig.html).
487//
488// You can optionally use AWS Resource Access Manager (AWS RAM) to share a query
489// logging configuration with other AWS accounts. The other accounts can then
490// associate VPCs with the configuration. The query logs that Resolver creates
491// for a configuration include all DNS queries that originate in all VPCs that
492// are associated with the configuration.
493//
494// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
495// with awserr.Error's Code and Message methods to get detailed information about
496// the error.
497//
498// See the AWS API reference guide for Amazon Route 53 Resolver's
499// API operation CreateResolverQueryLogConfig for usage and error information.
500//
501// Returned Error Types:
502//   * InvalidParameterException
503//   One or more parameters in this request are not valid.
504//
505//   * ResourceNotFoundException
506//   The specified resource doesn't exist.
507//
508//   * InvalidRequestException
509//   The request is invalid.
510//
511//   * ResourceExistsException
512//   The resource that you tried to create already exists.
513//
514//   * LimitExceededException
515//   The request caused one or more limits to be exceeded.
516//
517//   * InternalServiceErrorException
518//   We encountered an unknown error. Try again in a few minutes.
519//
520//   * ThrottlingException
521//   The request was throttled. Try again in a few minutes.
522//
523//   * AccessDeniedException
524//   The current account doesn't have the IAM permissions required to perform
525//   the specified Resolver operation.
526//
527// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/CreateResolverQueryLogConfig
528func (c *Route53Resolver) CreateResolverQueryLogConfig(input *CreateResolverQueryLogConfigInput) (*CreateResolverQueryLogConfigOutput, error) {
529	req, out := c.CreateResolverQueryLogConfigRequest(input)
530	return out, req.Send()
531}
532
533// CreateResolverQueryLogConfigWithContext is the same as CreateResolverQueryLogConfig with the addition of
534// the ability to pass a context and additional request options.
535//
536// See CreateResolverQueryLogConfig for details on how to use this API operation.
537//
538// The context must be non-nil and will be used for request cancellation. If
539// the context is nil a panic will occur. In the future the SDK may create
540// sub-contexts for http.Requests. See https://golang.org/pkg/context/
541// for more information on using Contexts.
542func (c *Route53Resolver) CreateResolverQueryLogConfigWithContext(ctx aws.Context, input *CreateResolverQueryLogConfigInput, opts ...request.Option) (*CreateResolverQueryLogConfigOutput, error) {
543	req, out := c.CreateResolverQueryLogConfigRequest(input)
544	req.SetContext(ctx)
545	req.ApplyOptions(opts...)
546	return out, req.Send()
547}
548
549const opCreateResolverRule = "CreateResolverRule"
550
551// CreateResolverRuleRequest generates a "aws/request.Request" representing the
552// client's request for the CreateResolverRule operation. The "output" return
553// value will be populated with the request's response once the request completes
554// successfully.
555//
556// Use "Send" method on the returned Request to send the API call to the service.
557// the "output" return value is not valid until after Send returns without error.
558//
559// See CreateResolverRule for more information on using the CreateResolverRule
560// API call, and error handling.
561//
562// This method is useful when you want to inject custom logic or configuration
563// into the SDK's request lifecycle. Such as custom headers, or retry logic.
564//
565//
566//    // Example sending a request using the CreateResolverRuleRequest method.
567//    req, resp := client.CreateResolverRuleRequest(params)
568//
569//    err := req.Send()
570//    if err == nil { // resp is now filled
571//        fmt.Println(resp)
572//    }
573//
574// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/CreateResolverRule
575func (c *Route53Resolver) CreateResolverRuleRequest(input *CreateResolverRuleInput) (req *request.Request, output *CreateResolverRuleOutput) {
576	op := &request.Operation{
577		Name:       opCreateResolverRule,
578		HTTPMethod: "POST",
579		HTTPPath:   "/",
580	}
581
582	if input == nil {
583		input = &CreateResolverRuleInput{}
584	}
585
586	output = &CreateResolverRuleOutput{}
587	req = c.newRequest(op, input, output)
588	return
589}
590
591// CreateResolverRule API operation for Amazon Route 53 Resolver.
592//
593// For DNS queries that originate in your VPCs, specifies which Resolver endpoint
594// the queries pass through, one domain name that you want to forward to your
595// network, and the IP addresses of the DNS resolvers in your network.
596//
597// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
598// with awserr.Error's Code and Message methods to get detailed information about
599// the error.
600//
601// See the AWS API reference guide for Amazon Route 53 Resolver's
602// API operation CreateResolverRule for usage and error information.
603//
604// Returned Error Types:
605//   * InvalidParameterException
606//   One or more parameters in this request are not valid.
607//
608//   * InvalidRequestException
609//   The request is invalid.
610//
611//   * LimitExceededException
612//   The request caused one or more limits to be exceeded.
613//
614//   * ResourceNotFoundException
615//   The specified resource doesn't exist.
616//
617//   * ResourceExistsException
618//   The resource that you tried to create already exists.
619//
620//   * ResourceUnavailableException
621//   The specified resource isn't available.
622//
623//   * InternalServiceErrorException
624//   We encountered an unknown error. Try again in a few minutes.
625//
626//   * ThrottlingException
627//   The request was throttled. Try again in a few minutes.
628//
629// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/CreateResolverRule
630func (c *Route53Resolver) CreateResolverRule(input *CreateResolverRuleInput) (*CreateResolverRuleOutput, error) {
631	req, out := c.CreateResolverRuleRequest(input)
632	return out, req.Send()
633}
634
635// CreateResolverRuleWithContext is the same as CreateResolverRule with the addition of
636// the ability to pass a context and additional request options.
637//
638// See CreateResolverRule for details on how to use this API operation.
639//
640// The context must be non-nil and will be used for request cancellation. If
641// the context is nil a panic will occur. In the future the SDK may create
642// sub-contexts for http.Requests. See https://golang.org/pkg/context/
643// for more information on using Contexts.
644func (c *Route53Resolver) CreateResolverRuleWithContext(ctx aws.Context, input *CreateResolverRuleInput, opts ...request.Option) (*CreateResolverRuleOutput, error) {
645	req, out := c.CreateResolverRuleRequest(input)
646	req.SetContext(ctx)
647	req.ApplyOptions(opts...)
648	return out, req.Send()
649}
650
651const opDeleteResolverEndpoint = "DeleteResolverEndpoint"
652
653// DeleteResolverEndpointRequest generates a "aws/request.Request" representing the
654// client's request for the DeleteResolverEndpoint operation. The "output" return
655// value will be populated with the request's response once the request completes
656// successfully.
657//
658// Use "Send" method on the returned Request to send the API call to the service.
659// the "output" return value is not valid until after Send returns without error.
660//
661// See DeleteResolverEndpoint for more information on using the DeleteResolverEndpoint
662// API call, and error handling.
663//
664// This method is useful when you want to inject custom logic or configuration
665// into the SDK's request lifecycle. Such as custom headers, or retry logic.
666//
667//
668//    // Example sending a request using the DeleteResolverEndpointRequest method.
669//    req, resp := client.DeleteResolverEndpointRequest(params)
670//
671//    err := req.Send()
672//    if err == nil { // resp is now filled
673//        fmt.Println(resp)
674//    }
675//
676// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DeleteResolverEndpoint
677func (c *Route53Resolver) DeleteResolverEndpointRequest(input *DeleteResolverEndpointInput) (req *request.Request, output *DeleteResolverEndpointOutput) {
678	op := &request.Operation{
679		Name:       opDeleteResolverEndpoint,
680		HTTPMethod: "POST",
681		HTTPPath:   "/",
682	}
683
684	if input == nil {
685		input = &DeleteResolverEndpointInput{}
686	}
687
688	output = &DeleteResolverEndpointOutput{}
689	req = c.newRequest(op, input, output)
690	return
691}
692
693// DeleteResolverEndpoint API operation for Amazon Route 53 Resolver.
694//
695// Deletes a Resolver endpoint. The effect of deleting a Resolver endpoint depends
696// on whether it's an inbound or an outbound Resolver endpoint:
697//
698//    * Inbound: DNS queries from your network are no longer routed to the DNS
699//    service for the specified VPC.
700//
701//    * Outbound: DNS queries from a VPC are no longer routed to your network.
702//
703// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
704// with awserr.Error's Code and Message methods to get detailed information about
705// the error.
706//
707// See the AWS API reference guide for Amazon Route 53 Resolver's
708// API operation DeleteResolverEndpoint for usage and error information.
709//
710// Returned Error Types:
711//   * ResourceNotFoundException
712//   The specified resource doesn't exist.
713//
714//   * InvalidParameterException
715//   One or more parameters in this request are not valid.
716//
717//   * InvalidRequestException
718//   The request is invalid.
719//
720//   * InternalServiceErrorException
721//   We encountered an unknown error. Try again in a few minutes.
722//
723//   * ThrottlingException
724//   The request was throttled. Try again in a few minutes.
725//
726// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DeleteResolverEndpoint
727func (c *Route53Resolver) DeleteResolverEndpoint(input *DeleteResolverEndpointInput) (*DeleteResolverEndpointOutput, error) {
728	req, out := c.DeleteResolverEndpointRequest(input)
729	return out, req.Send()
730}
731
732// DeleteResolverEndpointWithContext is the same as DeleteResolverEndpoint with the addition of
733// the ability to pass a context and additional request options.
734//
735// See DeleteResolverEndpoint for details on how to use this API operation.
736//
737// The context must be non-nil and will be used for request cancellation. If
738// the context is nil a panic will occur. In the future the SDK may create
739// sub-contexts for http.Requests. See https://golang.org/pkg/context/
740// for more information on using Contexts.
741func (c *Route53Resolver) DeleteResolverEndpointWithContext(ctx aws.Context, input *DeleteResolverEndpointInput, opts ...request.Option) (*DeleteResolverEndpointOutput, error) {
742	req, out := c.DeleteResolverEndpointRequest(input)
743	req.SetContext(ctx)
744	req.ApplyOptions(opts...)
745	return out, req.Send()
746}
747
748const opDeleteResolverQueryLogConfig = "DeleteResolverQueryLogConfig"
749
750// DeleteResolverQueryLogConfigRequest generates a "aws/request.Request" representing the
751// client's request for the DeleteResolverQueryLogConfig operation. The "output" return
752// value will be populated with the request's response once the request completes
753// successfully.
754//
755// Use "Send" method on the returned Request to send the API call to the service.
756// the "output" return value is not valid until after Send returns without error.
757//
758// See DeleteResolverQueryLogConfig for more information on using the DeleteResolverQueryLogConfig
759// API call, and error handling.
760//
761// This method is useful when you want to inject custom logic or configuration
762// into the SDK's request lifecycle. Such as custom headers, or retry logic.
763//
764//
765//    // Example sending a request using the DeleteResolverQueryLogConfigRequest method.
766//    req, resp := client.DeleteResolverQueryLogConfigRequest(params)
767//
768//    err := req.Send()
769//    if err == nil { // resp is now filled
770//        fmt.Println(resp)
771//    }
772//
773// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DeleteResolverQueryLogConfig
774func (c *Route53Resolver) DeleteResolverQueryLogConfigRequest(input *DeleteResolverQueryLogConfigInput) (req *request.Request, output *DeleteResolverQueryLogConfigOutput) {
775	op := &request.Operation{
776		Name:       opDeleteResolverQueryLogConfig,
777		HTTPMethod: "POST",
778		HTTPPath:   "/",
779	}
780
781	if input == nil {
782		input = &DeleteResolverQueryLogConfigInput{}
783	}
784
785	output = &DeleteResolverQueryLogConfigOutput{}
786	req = c.newRequest(op, input, output)
787	return
788}
789
790// DeleteResolverQueryLogConfig API operation for Amazon Route 53 Resolver.
791//
792// Deletes a query logging configuration. When you delete a configuration, Resolver
793// stops logging DNS queries for all of the Amazon VPCs that are associated
794// with the configuration. This also applies if the query logging configuration
795// is shared with other AWS accounts, and the other accounts have associated
796// VPCs with the shared configuration.
797//
798// Before you can delete a query logging configuration, you must first disassociate
799// all VPCs from the configuration. See DisassociateResolverQueryLogConfig (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_DisassociateResolverQueryLogConfig.html).
800//
801// If you used Resource Access Manager (RAM) to share a query logging configuration
802// with other accounts, you must stop sharing the configuration before you can
803// delete a configuration. The accounts that you shared the configuration with
804// can first disassociate VPCs that they associated with the configuration,
805// but that's not necessary. If you stop sharing the configuration, those VPCs
806// are automatically disassociated from the configuration.
807//
808// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
809// with awserr.Error's Code and Message methods to get detailed information about
810// the error.
811//
812// See the AWS API reference guide for Amazon Route 53 Resolver's
813// API operation DeleteResolverQueryLogConfig for usage and error information.
814//
815// Returned Error Types:
816//   * ResourceNotFoundException
817//   The specified resource doesn't exist.
818//
819//   * InvalidParameterException
820//   One or more parameters in this request are not valid.
821//
822//   * InvalidRequestException
823//   The request is invalid.
824//
825//   * InternalServiceErrorException
826//   We encountered an unknown error. Try again in a few minutes.
827//
828//   * ThrottlingException
829//   The request was throttled. Try again in a few minutes.
830//
831//   * AccessDeniedException
832//   The current account doesn't have the IAM permissions required to perform
833//   the specified Resolver operation.
834//
835// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DeleteResolverQueryLogConfig
836func (c *Route53Resolver) DeleteResolverQueryLogConfig(input *DeleteResolverQueryLogConfigInput) (*DeleteResolverQueryLogConfigOutput, error) {
837	req, out := c.DeleteResolverQueryLogConfigRequest(input)
838	return out, req.Send()
839}
840
841// DeleteResolverQueryLogConfigWithContext is the same as DeleteResolverQueryLogConfig with the addition of
842// the ability to pass a context and additional request options.
843//
844// See DeleteResolverQueryLogConfig for details on how to use this API operation.
845//
846// The context must be non-nil and will be used for request cancellation. If
847// the context is nil a panic will occur. In the future the SDK may create
848// sub-contexts for http.Requests. See https://golang.org/pkg/context/
849// for more information on using Contexts.
850func (c *Route53Resolver) DeleteResolverQueryLogConfigWithContext(ctx aws.Context, input *DeleteResolverQueryLogConfigInput, opts ...request.Option) (*DeleteResolverQueryLogConfigOutput, error) {
851	req, out := c.DeleteResolverQueryLogConfigRequest(input)
852	req.SetContext(ctx)
853	req.ApplyOptions(opts...)
854	return out, req.Send()
855}
856
857const opDeleteResolverRule = "DeleteResolverRule"
858
859// DeleteResolverRuleRequest generates a "aws/request.Request" representing the
860// client's request for the DeleteResolverRule operation. The "output" return
861// value will be populated with the request's response once the request completes
862// successfully.
863//
864// Use "Send" method on the returned Request to send the API call to the service.
865// the "output" return value is not valid until after Send returns without error.
866//
867// See DeleteResolverRule for more information on using the DeleteResolverRule
868// API call, and error handling.
869//
870// This method is useful when you want to inject custom logic or configuration
871// into the SDK's request lifecycle. Such as custom headers, or retry logic.
872//
873//
874//    // Example sending a request using the DeleteResolverRuleRequest method.
875//    req, resp := client.DeleteResolverRuleRequest(params)
876//
877//    err := req.Send()
878//    if err == nil { // resp is now filled
879//        fmt.Println(resp)
880//    }
881//
882// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DeleteResolverRule
883func (c *Route53Resolver) DeleteResolverRuleRequest(input *DeleteResolverRuleInput) (req *request.Request, output *DeleteResolverRuleOutput) {
884	op := &request.Operation{
885		Name:       opDeleteResolverRule,
886		HTTPMethod: "POST",
887		HTTPPath:   "/",
888	}
889
890	if input == nil {
891		input = &DeleteResolverRuleInput{}
892	}
893
894	output = &DeleteResolverRuleOutput{}
895	req = c.newRequest(op, input, output)
896	return
897}
898
899// DeleteResolverRule API operation for Amazon Route 53 Resolver.
900//
901// Deletes a Resolver rule. Before you can delete a Resolver rule, you must
902// disassociate it from all the VPCs that you associated the Resolver rule with.
903// For more information, see DisassociateResolverRule (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_DisassociateResolverRule.html).
904//
905// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
906// with awserr.Error's Code and Message methods to get detailed information about
907// the error.
908//
909// See the AWS API reference guide for Amazon Route 53 Resolver's
910// API operation DeleteResolverRule for usage and error information.
911//
912// Returned Error Types:
913//   * InvalidParameterException
914//   One or more parameters in this request are not valid.
915//
916//   * ResourceNotFoundException
917//   The specified resource doesn't exist.
918//
919//   * ResourceInUseException
920//   The resource that you tried to update or delete is currently in use.
921//
922//   * InternalServiceErrorException
923//   We encountered an unknown error. Try again in a few minutes.
924//
925//   * ThrottlingException
926//   The request was throttled. Try again in a few minutes.
927//
928// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DeleteResolverRule
929func (c *Route53Resolver) DeleteResolverRule(input *DeleteResolverRuleInput) (*DeleteResolverRuleOutput, error) {
930	req, out := c.DeleteResolverRuleRequest(input)
931	return out, req.Send()
932}
933
934// DeleteResolverRuleWithContext is the same as DeleteResolverRule with the addition of
935// the ability to pass a context and additional request options.
936//
937// See DeleteResolverRule for details on how to use this API operation.
938//
939// The context must be non-nil and will be used for request cancellation. If
940// the context is nil a panic will occur. In the future the SDK may create
941// sub-contexts for http.Requests. See https://golang.org/pkg/context/
942// for more information on using Contexts.
943func (c *Route53Resolver) DeleteResolverRuleWithContext(ctx aws.Context, input *DeleteResolverRuleInput, opts ...request.Option) (*DeleteResolverRuleOutput, error) {
944	req, out := c.DeleteResolverRuleRequest(input)
945	req.SetContext(ctx)
946	req.ApplyOptions(opts...)
947	return out, req.Send()
948}
949
950const opDisassociateResolverEndpointIpAddress = "DisassociateResolverEndpointIpAddress"
951
952// DisassociateResolverEndpointIpAddressRequest generates a "aws/request.Request" representing the
953// client's request for the DisassociateResolverEndpointIpAddress operation. The "output" return
954// value will be populated with the request's response once the request completes
955// successfully.
956//
957// Use "Send" method on the returned Request to send the API call to the service.
958// the "output" return value is not valid until after Send returns without error.
959//
960// See DisassociateResolverEndpointIpAddress for more information on using the DisassociateResolverEndpointIpAddress
961// API call, and error handling.
962//
963// This method is useful when you want to inject custom logic or configuration
964// into the SDK's request lifecycle. Such as custom headers, or retry logic.
965//
966//
967//    // Example sending a request using the DisassociateResolverEndpointIpAddressRequest method.
968//    req, resp := client.DisassociateResolverEndpointIpAddressRequest(params)
969//
970//    err := req.Send()
971//    if err == nil { // resp is now filled
972//        fmt.Println(resp)
973//    }
974//
975// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DisassociateResolverEndpointIpAddress
976func (c *Route53Resolver) DisassociateResolverEndpointIpAddressRequest(input *DisassociateResolverEndpointIpAddressInput) (req *request.Request, output *DisassociateResolverEndpointIpAddressOutput) {
977	op := &request.Operation{
978		Name:       opDisassociateResolverEndpointIpAddress,
979		HTTPMethod: "POST",
980		HTTPPath:   "/",
981	}
982
983	if input == nil {
984		input = &DisassociateResolverEndpointIpAddressInput{}
985	}
986
987	output = &DisassociateResolverEndpointIpAddressOutput{}
988	req = c.newRequest(op, input, output)
989	return
990}
991
992// DisassociateResolverEndpointIpAddress API operation for Amazon Route 53 Resolver.
993//
994// Removes IP addresses from an inbound or an outbound Resolver endpoint. If
995// you want to remove more than one IP address, submit one DisassociateResolverEndpointIpAddress
996// request for each IP address.
997//
998// To add an IP address to an endpoint, see AssociateResolverEndpointIpAddress
999// (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_AssociateResolverEndpointIpAddress.html).
1000//
1001// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1002// with awserr.Error's Code and Message methods to get detailed information about
1003// the error.
1004//
1005// See the AWS API reference guide for Amazon Route 53 Resolver's
1006// API operation DisassociateResolverEndpointIpAddress for usage and error information.
1007//
1008// Returned Error Types:
1009//   * ResourceNotFoundException
1010//   The specified resource doesn't exist.
1011//
1012//   * InvalidParameterException
1013//   One or more parameters in this request are not valid.
1014//
1015//   * InvalidRequestException
1016//   The request is invalid.
1017//
1018//   * ResourceExistsException
1019//   The resource that you tried to create already exists.
1020//
1021//   * InternalServiceErrorException
1022//   We encountered an unknown error. Try again in a few minutes.
1023//
1024//   * ThrottlingException
1025//   The request was throttled. Try again in a few minutes.
1026//
1027// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DisassociateResolverEndpointIpAddress
1028func (c *Route53Resolver) DisassociateResolverEndpointIpAddress(input *DisassociateResolverEndpointIpAddressInput) (*DisassociateResolverEndpointIpAddressOutput, error) {
1029	req, out := c.DisassociateResolverEndpointIpAddressRequest(input)
1030	return out, req.Send()
1031}
1032
1033// DisassociateResolverEndpointIpAddressWithContext is the same as DisassociateResolverEndpointIpAddress with the addition of
1034// the ability to pass a context and additional request options.
1035//
1036// See DisassociateResolverEndpointIpAddress for details on how to use this API operation.
1037//
1038// The context must be non-nil and will be used for request cancellation. If
1039// the context is nil a panic will occur. In the future the SDK may create
1040// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1041// for more information on using Contexts.
1042func (c *Route53Resolver) DisassociateResolverEndpointIpAddressWithContext(ctx aws.Context, input *DisassociateResolverEndpointIpAddressInput, opts ...request.Option) (*DisassociateResolverEndpointIpAddressOutput, error) {
1043	req, out := c.DisassociateResolverEndpointIpAddressRequest(input)
1044	req.SetContext(ctx)
1045	req.ApplyOptions(opts...)
1046	return out, req.Send()
1047}
1048
1049const opDisassociateResolverQueryLogConfig = "DisassociateResolverQueryLogConfig"
1050
1051// DisassociateResolverQueryLogConfigRequest generates a "aws/request.Request" representing the
1052// client's request for the DisassociateResolverQueryLogConfig operation. The "output" return
1053// value will be populated with the request's response once the request completes
1054// successfully.
1055//
1056// Use "Send" method on the returned Request to send the API call to the service.
1057// the "output" return value is not valid until after Send returns without error.
1058//
1059// See DisassociateResolverQueryLogConfig for more information on using the DisassociateResolverQueryLogConfig
1060// API call, and error handling.
1061//
1062// This method is useful when you want to inject custom logic or configuration
1063// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1064//
1065//
1066//    // Example sending a request using the DisassociateResolverQueryLogConfigRequest method.
1067//    req, resp := client.DisassociateResolverQueryLogConfigRequest(params)
1068//
1069//    err := req.Send()
1070//    if err == nil { // resp is now filled
1071//        fmt.Println(resp)
1072//    }
1073//
1074// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DisassociateResolverQueryLogConfig
1075func (c *Route53Resolver) DisassociateResolverQueryLogConfigRequest(input *DisassociateResolverQueryLogConfigInput) (req *request.Request, output *DisassociateResolverQueryLogConfigOutput) {
1076	op := &request.Operation{
1077		Name:       opDisassociateResolverQueryLogConfig,
1078		HTTPMethod: "POST",
1079		HTTPPath:   "/",
1080	}
1081
1082	if input == nil {
1083		input = &DisassociateResolverQueryLogConfigInput{}
1084	}
1085
1086	output = &DisassociateResolverQueryLogConfigOutput{}
1087	req = c.newRequest(op, input, output)
1088	return
1089}
1090
1091// DisassociateResolverQueryLogConfig API operation for Amazon Route 53 Resolver.
1092//
1093// Disassociates a VPC from a query logging configuration.
1094//
1095// Before you can delete a query logging configuration, you must first disassociate
1096// all VPCs from the configuration. If you used Resource Access Manager (RAM)
1097// to share a query logging configuration with other accounts, VPCs can be disassociated
1098// from the configuration in the following ways:
1099//
1100//    * The accounts that you shared the configuration with can disassociate
1101//    VPCs from the configuration.
1102//
1103//    * You can stop sharing the configuration.
1104//
1105// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1106// with awserr.Error's Code and Message methods to get detailed information about
1107// the error.
1108//
1109// See the AWS API reference guide for Amazon Route 53 Resolver's
1110// API operation DisassociateResolverQueryLogConfig for usage and error information.
1111//
1112// Returned Error Types:
1113//   * ResourceNotFoundException
1114//   The specified resource doesn't exist.
1115//
1116//   * InvalidParameterException
1117//   One or more parameters in this request are not valid.
1118//
1119//   * InvalidRequestException
1120//   The request is invalid.
1121//
1122//   * InternalServiceErrorException
1123//   We encountered an unknown error. Try again in a few minutes.
1124//
1125//   * ThrottlingException
1126//   The request was throttled. Try again in a few minutes.
1127//
1128//   * AccessDeniedException
1129//   The current account doesn't have the IAM permissions required to perform
1130//   the specified Resolver operation.
1131//
1132// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DisassociateResolverQueryLogConfig
1133func (c *Route53Resolver) DisassociateResolverQueryLogConfig(input *DisassociateResolverQueryLogConfigInput) (*DisassociateResolverQueryLogConfigOutput, error) {
1134	req, out := c.DisassociateResolverQueryLogConfigRequest(input)
1135	return out, req.Send()
1136}
1137
1138// DisassociateResolverQueryLogConfigWithContext is the same as DisassociateResolverQueryLogConfig with the addition of
1139// the ability to pass a context and additional request options.
1140//
1141// See DisassociateResolverQueryLogConfig for details on how to use this API operation.
1142//
1143// The context must be non-nil and will be used for request cancellation. If
1144// the context is nil a panic will occur. In the future the SDK may create
1145// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1146// for more information on using Contexts.
1147func (c *Route53Resolver) DisassociateResolverQueryLogConfigWithContext(ctx aws.Context, input *DisassociateResolverQueryLogConfigInput, opts ...request.Option) (*DisassociateResolverQueryLogConfigOutput, error) {
1148	req, out := c.DisassociateResolverQueryLogConfigRequest(input)
1149	req.SetContext(ctx)
1150	req.ApplyOptions(opts...)
1151	return out, req.Send()
1152}
1153
1154const opDisassociateResolverRule = "DisassociateResolverRule"
1155
1156// DisassociateResolverRuleRequest generates a "aws/request.Request" representing the
1157// client's request for the DisassociateResolverRule operation. The "output" return
1158// value will be populated with the request's response once the request completes
1159// successfully.
1160//
1161// Use "Send" method on the returned Request to send the API call to the service.
1162// the "output" return value is not valid until after Send returns without error.
1163//
1164// See DisassociateResolverRule for more information on using the DisassociateResolverRule
1165// API call, and error handling.
1166//
1167// This method is useful when you want to inject custom logic or configuration
1168// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1169//
1170//
1171//    // Example sending a request using the DisassociateResolverRuleRequest method.
1172//    req, resp := client.DisassociateResolverRuleRequest(params)
1173//
1174//    err := req.Send()
1175//    if err == nil { // resp is now filled
1176//        fmt.Println(resp)
1177//    }
1178//
1179// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DisassociateResolverRule
1180func (c *Route53Resolver) DisassociateResolverRuleRequest(input *DisassociateResolverRuleInput) (req *request.Request, output *DisassociateResolverRuleOutput) {
1181	op := &request.Operation{
1182		Name:       opDisassociateResolverRule,
1183		HTTPMethod: "POST",
1184		HTTPPath:   "/",
1185	}
1186
1187	if input == nil {
1188		input = &DisassociateResolverRuleInput{}
1189	}
1190
1191	output = &DisassociateResolverRuleOutput{}
1192	req = c.newRequest(op, input, output)
1193	return
1194}
1195
1196// DisassociateResolverRule API operation for Amazon Route 53 Resolver.
1197//
1198// Removes the association between a specified Resolver rule and a specified
1199// VPC.
1200//
1201// If you disassociate a Resolver rule from a VPC, Resolver stops forwarding
1202// DNS queries for the domain name that you specified in the Resolver rule.
1203//
1204// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1205// with awserr.Error's Code and Message methods to get detailed information about
1206// the error.
1207//
1208// See the AWS API reference guide for Amazon Route 53 Resolver's
1209// API operation DisassociateResolverRule for usage and error information.
1210//
1211// Returned Error Types:
1212//   * ResourceNotFoundException
1213//   The specified resource doesn't exist.
1214//
1215//   * InvalidParameterException
1216//   One or more parameters in this request are not valid.
1217//
1218//   * InternalServiceErrorException
1219//   We encountered an unknown error. Try again in a few minutes.
1220//
1221//   * ThrottlingException
1222//   The request was throttled. Try again in a few minutes.
1223//
1224// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/DisassociateResolverRule
1225func (c *Route53Resolver) DisassociateResolverRule(input *DisassociateResolverRuleInput) (*DisassociateResolverRuleOutput, error) {
1226	req, out := c.DisassociateResolverRuleRequest(input)
1227	return out, req.Send()
1228}
1229
1230// DisassociateResolverRuleWithContext is the same as DisassociateResolverRule with the addition of
1231// the ability to pass a context and additional request options.
1232//
1233// See DisassociateResolverRule for details on how to use this API operation.
1234//
1235// The context must be non-nil and will be used for request cancellation. If
1236// the context is nil a panic will occur. In the future the SDK may create
1237// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1238// for more information on using Contexts.
1239func (c *Route53Resolver) DisassociateResolverRuleWithContext(ctx aws.Context, input *DisassociateResolverRuleInput, opts ...request.Option) (*DisassociateResolverRuleOutput, error) {
1240	req, out := c.DisassociateResolverRuleRequest(input)
1241	req.SetContext(ctx)
1242	req.ApplyOptions(opts...)
1243	return out, req.Send()
1244}
1245
1246const opGetResolverDnssecConfig = "GetResolverDnssecConfig"
1247
1248// GetResolverDnssecConfigRequest generates a "aws/request.Request" representing the
1249// client's request for the GetResolverDnssecConfig operation. The "output" return
1250// value will be populated with the request's response once the request completes
1251// successfully.
1252//
1253// Use "Send" method on the returned Request to send the API call to the service.
1254// the "output" return value is not valid until after Send returns without error.
1255//
1256// See GetResolverDnssecConfig for more information on using the GetResolverDnssecConfig
1257// API call, and error handling.
1258//
1259// This method is useful when you want to inject custom logic or configuration
1260// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1261//
1262//
1263//    // Example sending a request using the GetResolverDnssecConfigRequest method.
1264//    req, resp := client.GetResolverDnssecConfigRequest(params)
1265//
1266//    err := req.Send()
1267//    if err == nil { // resp is now filled
1268//        fmt.Println(resp)
1269//    }
1270//
1271// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverDnssecConfig
1272func (c *Route53Resolver) GetResolverDnssecConfigRequest(input *GetResolverDnssecConfigInput) (req *request.Request, output *GetResolverDnssecConfigOutput) {
1273	op := &request.Operation{
1274		Name:       opGetResolverDnssecConfig,
1275		HTTPMethod: "POST",
1276		HTTPPath:   "/",
1277	}
1278
1279	if input == nil {
1280		input = &GetResolverDnssecConfigInput{}
1281	}
1282
1283	output = &GetResolverDnssecConfigOutput{}
1284	req = c.newRequest(op, input, output)
1285	return
1286}
1287
1288// GetResolverDnssecConfig API operation for Amazon Route 53 Resolver.
1289//
1290// Gets DNSSEC validation information for a specified resource.
1291//
1292// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1293// with awserr.Error's Code and Message methods to get detailed information about
1294// the error.
1295//
1296// See the AWS API reference guide for Amazon Route 53 Resolver's
1297// API operation GetResolverDnssecConfig for usage and error information.
1298//
1299// Returned Error Types:
1300//   * InvalidParameterException
1301//   One or more parameters in this request are not valid.
1302//
1303//   * ResourceNotFoundException
1304//   The specified resource doesn't exist.
1305//
1306//   * InvalidRequestException
1307//   The request is invalid.
1308//
1309//   * InternalServiceErrorException
1310//   We encountered an unknown error. Try again in a few minutes.
1311//
1312//   * ThrottlingException
1313//   The request was throttled. Try again in a few minutes.
1314//
1315//   * AccessDeniedException
1316//   The current account doesn't have the IAM permissions required to perform
1317//   the specified Resolver operation.
1318//
1319// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverDnssecConfig
1320func (c *Route53Resolver) GetResolverDnssecConfig(input *GetResolverDnssecConfigInput) (*GetResolverDnssecConfigOutput, error) {
1321	req, out := c.GetResolverDnssecConfigRequest(input)
1322	return out, req.Send()
1323}
1324
1325// GetResolverDnssecConfigWithContext is the same as GetResolverDnssecConfig with the addition of
1326// the ability to pass a context and additional request options.
1327//
1328// See GetResolverDnssecConfig for details on how to use this API operation.
1329//
1330// The context must be non-nil and will be used for request cancellation. If
1331// the context is nil a panic will occur. In the future the SDK may create
1332// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1333// for more information on using Contexts.
1334func (c *Route53Resolver) GetResolverDnssecConfigWithContext(ctx aws.Context, input *GetResolverDnssecConfigInput, opts ...request.Option) (*GetResolverDnssecConfigOutput, error) {
1335	req, out := c.GetResolverDnssecConfigRequest(input)
1336	req.SetContext(ctx)
1337	req.ApplyOptions(opts...)
1338	return out, req.Send()
1339}
1340
1341const opGetResolverEndpoint = "GetResolverEndpoint"
1342
1343// GetResolverEndpointRequest generates a "aws/request.Request" representing the
1344// client's request for the GetResolverEndpoint operation. The "output" return
1345// value will be populated with the request's response once the request completes
1346// successfully.
1347//
1348// Use "Send" method on the returned Request to send the API call to the service.
1349// the "output" return value is not valid until after Send returns without error.
1350//
1351// See GetResolverEndpoint for more information on using the GetResolverEndpoint
1352// API call, and error handling.
1353//
1354// This method is useful when you want to inject custom logic or configuration
1355// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1356//
1357//
1358//    // Example sending a request using the GetResolverEndpointRequest method.
1359//    req, resp := client.GetResolverEndpointRequest(params)
1360//
1361//    err := req.Send()
1362//    if err == nil { // resp is now filled
1363//        fmt.Println(resp)
1364//    }
1365//
1366// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverEndpoint
1367func (c *Route53Resolver) GetResolverEndpointRequest(input *GetResolverEndpointInput) (req *request.Request, output *GetResolverEndpointOutput) {
1368	op := &request.Operation{
1369		Name:       opGetResolverEndpoint,
1370		HTTPMethod: "POST",
1371		HTTPPath:   "/",
1372	}
1373
1374	if input == nil {
1375		input = &GetResolverEndpointInput{}
1376	}
1377
1378	output = &GetResolverEndpointOutput{}
1379	req = c.newRequest(op, input, output)
1380	return
1381}
1382
1383// GetResolverEndpoint API operation for Amazon Route 53 Resolver.
1384//
1385// Gets information about a specified Resolver endpoint, such as whether it's
1386// an inbound or an outbound Resolver endpoint, and the current status of the
1387// endpoint.
1388//
1389// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1390// with awserr.Error's Code and Message methods to get detailed information about
1391// the error.
1392//
1393// See the AWS API reference guide for Amazon Route 53 Resolver's
1394// API operation GetResolverEndpoint for usage and error information.
1395//
1396// Returned Error Types:
1397//   * ResourceNotFoundException
1398//   The specified resource doesn't exist.
1399//
1400//   * InvalidParameterException
1401//   One or more parameters in this request are not valid.
1402//
1403//   * InternalServiceErrorException
1404//   We encountered an unknown error. Try again in a few minutes.
1405//
1406//   * ThrottlingException
1407//   The request was throttled. Try again in a few minutes.
1408//
1409// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverEndpoint
1410func (c *Route53Resolver) GetResolverEndpoint(input *GetResolverEndpointInput) (*GetResolverEndpointOutput, error) {
1411	req, out := c.GetResolverEndpointRequest(input)
1412	return out, req.Send()
1413}
1414
1415// GetResolverEndpointWithContext is the same as GetResolverEndpoint with the addition of
1416// the ability to pass a context and additional request options.
1417//
1418// See GetResolverEndpoint for details on how to use this API operation.
1419//
1420// The context must be non-nil and will be used for request cancellation. If
1421// the context is nil a panic will occur. In the future the SDK may create
1422// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1423// for more information on using Contexts.
1424func (c *Route53Resolver) GetResolverEndpointWithContext(ctx aws.Context, input *GetResolverEndpointInput, opts ...request.Option) (*GetResolverEndpointOutput, error) {
1425	req, out := c.GetResolverEndpointRequest(input)
1426	req.SetContext(ctx)
1427	req.ApplyOptions(opts...)
1428	return out, req.Send()
1429}
1430
1431const opGetResolverQueryLogConfig = "GetResolverQueryLogConfig"
1432
1433// GetResolverQueryLogConfigRequest generates a "aws/request.Request" representing the
1434// client's request for the GetResolverQueryLogConfig operation. The "output" return
1435// value will be populated with the request's response once the request completes
1436// successfully.
1437//
1438// Use "Send" method on the returned Request to send the API call to the service.
1439// the "output" return value is not valid until after Send returns without error.
1440//
1441// See GetResolverQueryLogConfig for more information on using the GetResolverQueryLogConfig
1442// API call, and error handling.
1443//
1444// This method is useful when you want to inject custom logic or configuration
1445// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1446//
1447//
1448//    // Example sending a request using the GetResolverQueryLogConfigRequest method.
1449//    req, resp := client.GetResolverQueryLogConfigRequest(params)
1450//
1451//    err := req.Send()
1452//    if err == nil { // resp is now filled
1453//        fmt.Println(resp)
1454//    }
1455//
1456// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverQueryLogConfig
1457func (c *Route53Resolver) GetResolverQueryLogConfigRequest(input *GetResolverQueryLogConfigInput) (req *request.Request, output *GetResolverQueryLogConfigOutput) {
1458	op := &request.Operation{
1459		Name:       opGetResolverQueryLogConfig,
1460		HTTPMethod: "POST",
1461		HTTPPath:   "/",
1462	}
1463
1464	if input == nil {
1465		input = &GetResolverQueryLogConfigInput{}
1466	}
1467
1468	output = &GetResolverQueryLogConfigOutput{}
1469	req = c.newRequest(op, input, output)
1470	return
1471}
1472
1473// GetResolverQueryLogConfig API operation for Amazon Route 53 Resolver.
1474//
1475// Gets information about a specified Resolver query logging configuration,
1476// such as the number of VPCs that the configuration is logging queries for
1477// and the location that logs are sent to.
1478//
1479// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1480// with awserr.Error's Code and Message methods to get detailed information about
1481// the error.
1482//
1483// See the AWS API reference guide for Amazon Route 53 Resolver's
1484// API operation GetResolverQueryLogConfig for usage and error information.
1485//
1486// Returned Error Types:
1487//   * ResourceNotFoundException
1488//   The specified resource doesn't exist.
1489//
1490//   * InvalidRequestException
1491//   The request is invalid.
1492//
1493//   * InvalidParameterException
1494//   One or more parameters in this request are not valid.
1495//
1496//   * InternalServiceErrorException
1497//   We encountered an unknown error. Try again in a few minutes.
1498//
1499//   * ThrottlingException
1500//   The request was throttled. Try again in a few minutes.
1501//
1502//   * AccessDeniedException
1503//   The current account doesn't have the IAM permissions required to perform
1504//   the specified Resolver operation.
1505//
1506// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverQueryLogConfig
1507func (c *Route53Resolver) GetResolverQueryLogConfig(input *GetResolverQueryLogConfigInput) (*GetResolverQueryLogConfigOutput, error) {
1508	req, out := c.GetResolverQueryLogConfigRequest(input)
1509	return out, req.Send()
1510}
1511
1512// GetResolverQueryLogConfigWithContext is the same as GetResolverQueryLogConfig with the addition of
1513// the ability to pass a context and additional request options.
1514//
1515// See GetResolverQueryLogConfig for details on how to use this API operation.
1516//
1517// The context must be non-nil and will be used for request cancellation. If
1518// the context is nil a panic will occur. In the future the SDK may create
1519// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1520// for more information on using Contexts.
1521func (c *Route53Resolver) GetResolverQueryLogConfigWithContext(ctx aws.Context, input *GetResolverQueryLogConfigInput, opts ...request.Option) (*GetResolverQueryLogConfigOutput, error) {
1522	req, out := c.GetResolverQueryLogConfigRequest(input)
1523	req.SetContext(ctx)
1524	req.ApplyOptions(opts...)
1525	return out, req.Send()
1526}
1527
1528const opGetResolverQueryLogConfigAssociation = "GetResolverQueryLogConfigAssociation"
1529
1530// GetResolverQueryLogConfigAssociationRequest generates a "aws/request.Request" representing the
1531// client's request for the GetResolverQueryLogConfigAssociation operation. The "output" return
1532// value will be populated with the request's response once the request completes
1533// successfully.
1534//
1535// Use "Send" method on the returned Request to send the API call to the service.
1536// the "output" return value is not valid until after Send returns without error.
1537//
1538// See GetResolverQueryLogConfigAssociation for more information on using the GetResolverQueryLogConfigAssociation
1539// API call, and error handling.
1540//
1541// This method is useful when you want to inject custom logic or configuration
1542// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1543//
1544//
1545//    // Example sending a request using the GetResolverQueryLogConfigAssociationRequest method.
1546//    req, resp := client.GetResolverQueryLogConfigAssociationRequest(params)
1547//
1548//    err := req.Send()
1549//    if err == nil { // resp is now filled
1550//        fmt.Println(resp)
1551//    }
1552//
1553// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverQueryLogConfigAssociation
1554func (c *Route53Resolver) GetResolverQueryLogConfigAssociationRequest(input *GetResolverQueryLogConfigAssociationInput) (req *request.Request, output *GetResolverQueryLogConfigAssociationOutput) {
1555	op := &request.Operation{
1556		Name:       opGetResolverQueryLogConfigAssociation,
1557		HTTPMethod: "POST",
1558		HTTPPath:   "/",
1559	}
1560
1561	if input == nil {
1562		input = &GetResolverQueryLogConfigAssociationInput{}
1563	}
1564
1565	output = &GetResolverQueryLogConfigAssociationOutput{}
1566	req = c.newRequest(op, input, output)
1567	return
1568}
1569
1570// GetResolverQueryLogConfigAssociation API operation for Amazon Route 53 Resolver.
1571//
1572// Gets information about a specified association between a Resolver query logging
1573// configuration and an Amazon VPC. When you associate a VPC with a query logging
1574// configuration, Resolver logs DNS queries that originate in that VPC.
1575//
1576// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1577// with awserr.Error's Code and Message methods to get detailed information about
1578// the error.
1579//
1580// See the AWS API reference guide for Amazon Route 53 Resolver's
1581// API operation GetResolverQueryLogConfigAssociation for usage and error information.
1582//
1583// Returned Error Types:
1584//   * ResourceNotFoundException
1585//   The specified resource doesn't exist.
1586//
1587//   * InvalidRequestException
1588//   The request is invalid.
1589//
1590//   * InvalidParameterException
1591//   One or more parameters in this request are not valid.
1592//
1593//   * InternalServiceErrorException
1594//   We encountered an unknown error. Try again in a few minutes.
1595//
1596//   * ThrottlingException
1597//   The request was throttled. Try again in a few minutes.
1598//
1599//   * AccessDeniedException
1600//   The current account doesn't have the IAM permissions required to perform
1601//   the specified Resolver operation.
1602//
1603// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverQueryLogConfigAssociation
1604func (c *Route53Resolver) GetResolverQueryLogConfigAssociation(input *GetResolverQueryLogConfigAssociationInput) (*GetResolverQueryLogConfigAssociationOutput, error) {
1605	req, out := c.GetResolverQueryLogConfigAssociationRequest(input)
1606	return out, req.Send()
1607}
1608
1609// GetResolverQueryLogConfigAssociationWithContext is the same as GetResolverQueryLogConfigAssociation with the addition of
1610// the ability to pass a context and additional request options.
1611//
1612// See GetResolverQueryLogConfigAssociation for details on how to use this API operation.
1613//
1614// The context must be non-nil and will be used for request cancellation. If
1615// the context is nil a panic will occur. In the future the SDK may create
1616// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1617// for more information on using Contexts.
1618func (c *Route53Resolver) GetResolverQueryLogConfigAssociationWithContext(ctx aws.Context, input *GetResolverQueryLogConfigAssociationInput, opts ...request.Option) (*GetResolverQueryLogConfigAssociationOutput, error) {
1619	req, out := c.GetResolverQueryLogConfigAssociationRequest(input)
1620	req.SetContext(ctx)
1621	req.ApplyOptions(opts...)
1622	return out, req.Send()
1623}
1624
1625const opGetResolverQueryLogConfigPolicy = "GetResolverQueryLogConfigPolicy"
1626
1627// GetResolverQueryLogConfigPolicyRequest generates a "aws/request.Request" representing the
1628// client's request for the GetResolverQueryLogConfigPolicy operation. The "output" return
1629// value will be populated with the request's response once the request completes
1630// successfully.
1631//
1632// Use "Send" method on the returned Request to send the API call to the service.
1633// the "output" return value is not valid until after Send returns without error.
1634//
1635// See GetResolverQueryLogConfigPolicy for more information on using the GetResolverQueryLogConfigPolicy
1636// API call, and error handling.
1637//
1638// This method is useful when you want to inject custom logic or configuration
1639// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1640//
1641//
1642//    // Example sending a request using the GetResolverQueryLogConfigPolicyRequest method.
1643//    req, resp := client.GetResolverQueryLogConfigPolicyRequest(params)
1644//
1645//    err := req.Send()
1646//    if err == nil { // resp is now filled
1647//        fmt.Println(resp)
1648//    }
1649//
1650// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverQueryLogConfigPolicy
1651func (c *Route53Resolver) GetResolverQueryLogConfigPolicyRequest(input *GetResolverQueryLogConfigPolicyInput) (req *request.Request, output *GetResolverQueryLogConfigPolicyOutput) {
1652	op := &request.Operation{
1653		Name:       opGetResolverQueryLogConfigPolicy,
1654		HTTPMethod: "POST",
1655		HTTPPath:   "/",
1656	}
1657
1658	if input == nil {
1659		input = &GetResolverQueryLogConfigPolicyInput{}
1660	}
1661
1662	output = &GetResolverQueryLogConfigPolicyOutput{}
1663	req = c.newRequest(op, input, output)
1664	return
1665}
1666
1667// GetResolverQueryLogConfigPolicy API operation for Amazon Route 53 Resolver.
1668//
1669// Gets information about a query logging policy. A query logging policy specifies
1670// the Resolver query logging operations and resources that you want to allow
1671// another AWS account to be able to use.
1672//
1673// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1674// with awserr.Error's Code and Message methods to get detailed information about
1675// the error.
1676//
1677// See the AWS API reference guide for Amazon Route 53 Resolver's
1678// API operation GetResolverQueryLogConfigPolicy for usage and error information.
1679//
1680// Returned Error Types:
1681//   * InvalidParameterException
1682//   One or more parameters in this request are not valid.
1683//
1684//   * InvalidRequestException
1685//   The request is invalid.
1686//
1687//   * UnknownResourceException
1688//   The specified resource doesn't exist.
1689//
1690//   * InternalServiceErrorException
1691//   We encountered an unknown error. Try again in a few minutes.
1692//
1693//   * AccessDeniedException
1694//   The current account doesn't have the IAM permissions required to perform
1695//   the specified Resolver operation.
1696//
1697// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverQueryLogConfigPolicy
1698func (c *Route53Resolver) GetResolverQueryLogConfigPolicy(input *GetResolverQueryLogConfigPolicyInput) (*GetResolverQueryLogConfigPolicyOutput, error) {
1699	req, out := c.GetResolverQueryLogConfigPolicyRequest(input)
1700	return out, req.Send()
1701}
1702
1703// GetResolverQueryLogConfigPolicyWithContext is the same as GetResolverQueryLogConfigPolicy with the addition of
1704// the ability to pass a context and additional request options.
1705//
1706// See GetResolverQueryLogConfigPolicy for details on how to use this API operation.
1707//
1708// The context must be non-nil and will be used for request cancellation. If
1709// the context is nil a panic will occur. In the future the SDK may create
1710// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1711// for more information on using Contexts.
1712func (c *Route53Resolver) GetResolverQueryLogConfigPolicyWithContext(ctx aws.Context, input *GetResolverQueryLogConfigPolicyInput, opts ...request.Option) (*GetResolverQueryLogConfigPolicyOutput, error) {
1713	req, out := c.GetResolverQueryLogConfigPolicyRequest(input)
1714	req.SetContext(ctx)
1715	req.ApplyOptions(opts...)
1716	return out, req.Send()
1717}
1718
1719const opGetResolverRule = "GetResolverRule"
1720
1721// GetResolverRuleRequest generates a "aws/request.Request" representing the
1722// client's request for the GetResolverRule operation. The "output" return
1723// value will be populated with the request's response once the request completes
1724// successfully.
1725//
1726// Use "Send" method on the returned Request to send the API call to the service.
1727// the "output" return value is not valid until after Send returns without error.
1728//
1729// See GetResolverRule for more information on using the GetResolverRule
1730// API call, and error handling.
1731//
1732// This method is useful when you want to inject custom logic or configuration
1733// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1734//
1735//
1736//    // Example sending a request using the GetResolverRuleRequest method.
1737//    req, resp := client.GetResolverRuleRequest(params)
1738//
1739//    err := req.Send()
1740//    if err == nil { // resp is now filled
1741//        fmt.Println(resp)
1742//    }
1743//
1744// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverRule
1745func (c *Route53Resolver) GetResolverRuleRequest(input *GetResolverRuleInput) (req *request.Request, output *GetResolverRuleOutput) {
1746	op := &request.Operation{
1747		Name:       opGetResolverRule,
1748		HTTPMethod: "POST",
1749		HTTPPath:   "/",
1750	}
1751
1752	if input == nil {
1753		input = &GetResolverRuleInput{}
1754	}
1755
1756	output = &GetResolverRuleOutput{}
1757	req = c.newRequest(op, input, output)
1758	return
1759}
1760
1761// GetResolverRule API operation for Amazon Route 53 Resolver.
1762//
1763// Gets information about a specified Resolver rule, such as the domain name
1764// that the rule forwards DNS queries for and the ID of the outbound Resolver
1765// endpoint that the rule is associated with.
1766//
1767// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1768// with awserr.Error's Code and Message methods to get detailed information about
1769// the error.
1770//
1771// See the AWS API reference guide for Amazon Route 53 Resolver's
1772// API operation GetResolverRule for usage and error information.
1773//
1774// Returned Error Types:
1775//   * ResourceNotFoundException
1776//   The specified resource doesn't exist.
1777//
1778//   * InvalidParameterException
1779//   One or more parameters in this request are not valid.
1780//
1781//   * InternalServiceErrorException
1782//   We encountered an unknown error. Try again in a few minutes.
1783//
1784//   * ThrottlingException
1785//   The request was throttled. Try again in a few minutes.
1786//
1787// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverRule
1788func (c *Route53Resolver) GetResolverRule(input *GetResolverRuleInput) (*GetResolverRuleOutput, error) {
1789	req, out := c.GetResolverRuleRequest(input)
1790	return out, req.Send()
1791}
1792
1793// GetResolverRuleWithContext is the same as GetResolverRule with the addition of
1794// the ability to pass a context and additional request options.
1795//
1796// See GetResolverRule for details on how to use this API operation.
1797//
1798// The context must be non-nil and will be used for request cancellation. If
1799// the context is nil a panic will occur. In the future the SDK may create
1800// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1801// for more information on using Contexts.
1802func (c *Route53Resolver) GetResolverRuleWithContext(ctx aws.Context, input *GetResolverRuleInput, opts ...request.Option) (*GetResolverRuleOutput, error) {
1803	req, out := c.GetResolverRuleRequest(input)
1804	req.SetContext(ctx)
1805	req.ApplyOptions(opts...)
1806	return out, req.Send()
1807}
1808
1809const opGetResolverRuleAssociation = "GetResolverRuleAssociation"
1810
1811// GetResolverRuleAssociationRequest generates a "aws/request.Request" representing the
1812// client's request for the GetResolverRuleAssociation operation. The "output" return
1813// value will be populated with the request's response once the request completes
1814// successfully.
1815//
1816// Use "Send" method on the returned Request to send the API call to the service.
1817// the "output" return value is not valid until after Send returns without error.
1818//
1819// See GetResolverRuleAssociation for more information on using the GetResolverRuleAssociation
1820// API call, and error handling.
1821//
1822// This method is useful when you want to inject custom logic or configuration
1823// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1824//
1825//
1826//    // Example sending a request using the GetResolverRuleAssociationRequest method.
1827//    req, resp := client.GetResolverRuleAssociationRequest(params)
1828//
1829//    err := req.Send()
1830//    if err == nil { // resp is now filled
1831//        fmt.Println(resp)
1832//    }
1833//
1834// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverRuleAssociation
1835func (c *Route53Resolver) GetResolverRuleAssociationRequest(input *GetResolverRuleAssociationInput) (req *request.Request, output *GetResolverRuleAssociationOutput) {
1836	op := &request.Operation{
1837		Name:       opGetResolverRuleAssociation,
1838		HTTPMethod: "POST",
1839		HTTPPath:   "/",
1840	}
1841
1842	if input == nil {
1843		input = &GetResolverRuleAssociationInput{}
1844	}
1845
1846	output = &GetResolverRuleAssociationOutput{}
1847	req = c.newRequest(op, input, output)
1848	return
1849}
1850
1851// GetResolverRuleAssociation API operation for Amazon Route 53 Resolver.
1852//
1853// Gets information about an association between a specified Resolver rule and
1854// a VPC. You associate a Resolver rule and a VPC using AssociateResolverRule
1855// (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_AssociateResolverRule.html).
1856//
1857// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1858// with awserr.Error's Code and Message methods to get detailed information about
1859// the error.
1860//
1861// See the AWS API reference guide for Amazon Route 53 Resolver's
1862// API operation GetResolverRuleAssociation for usage and error information.
1863//
1864// Returned Error Types:
1865//   * ResourceNotFoundException
1866//   The specified resource doesn't exist.
1867//
1868//   * InvalidParameterException
1869//   One or more parameters in this request are not valid.
1870//
1871//   * InternalServiceErrorException
1872//   We encountered an unknown error. Try again in a few minutes.
1873//
1874//   * ThrottlingException
1875//   The request was throttled. Try again in a few minutes.
1876//
1877// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverRuleAssociation
1878func (c *Route53Resolver) GetResolverRuleAssociation(input *GetResolverRuleAssociationInput) (*GetResolverRuleAssociationOutput, error) {
1879	req, out := c.GetResolverRuleAssociationRequest(input)
1880	return out, req.Send()
1881}
1882
1883// GetResolverRuleAssociationWithContext is the same as GetResolverRuleAssociation with the addition of
1884// the ability to pass a context and additional request options.
1885//
1886// See GetResolverRuleAssociation for details on how to use this API operation.
1887//
1888// The context must be non-nil and will be used for request cancellation. If
1889// the context is nil a panic will occur. In the future the SDK may create
1890// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1891// for more information on using Contexts.
1892func (c *Route53Resolver) GetResolverRuleAssociationWithContext(ctx aws.Context, input *GetResolverRuleAssociationInput, opts ...request.Option) (*GetResolverRuleAssociationOutput, error) {
1893	req, out := c.GetResolverRuleAssociationRequest(input)
1894	req.SetContext(ctx)
1895	req.ApplyOptions(opts...)
1896	return out, req.Send()
1897}
1898
1899const opGetResolverRulePolicy = "GetResolverRulePolicy"
1900
1901// GetResolverRulePolicyRequest generates a "aws/request.Request" representing the
1902// client's request for the GetResolverRulePolicy operation. The "output" return
1903// value will be populated with the request's response once the request completes
1904// successfully.
1905//
1906// Use "Send" method on the returned Request to send the API call to the service.
1907// the "output" return value is not valid until after Send returns without error.
1908//
1909// See GetResolverRulePolicy for more information on using the GetResolverRulePolicy
1910// API call, and error handling.
1911//
1912// This method is useful when you want to inject custom logic or configuration
1913// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1914//
1915//
1916//    // Example sending a request using the GetResolverRulePolicyRequest method.
1917//    req, resp := client.GetResolverRulePolicyRequest(params)
1918//
1919//    err := req.Send()
1920//    if err == nil { // resp is now filled
1921//        fmt.Println(resp)
1922//    }
1923//
1924// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverRulePolicy
1925func (c *Route53Resolver) GetResolverRulePolicyRequest(input *GetResolverRulePolicyInput) (req *request.Request, output *GetResolverRulePolicyOutput) {
1926	op := &request.Operation{
1927		Name:       opGetResolverRulePolicy,
1928		HTTPMethod: "POST",
1929		HTTPPath:   "/",
1930	}
1931
1932	if input == nil {
1933		input = &GetResolverRulePolicyInput{}
1934	}
1935
1936	output = &GetResolverRulePolicyOutput{}
1937	req = c.newRequest(op, input, output)
1938	return
1939}
1940
1941// GetResolverRulePolicy API operation for Amazon Route 53 Resolver.
1942//
1943// Gets information about the Resolver rule policy for a specified rule. A Resolver
1944// rule policy includes the rule that you want to share with another account,
1945// the account that you want to share the rule with, and the Resolver operations
1946// that you want to allow the account to use.
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 GetResolverRulePolicy for usage and error information.
1954//
1955// Returned Error Types:
1956//   * InvalidParameterException
1957//   One or more parameters in this request are not valid.
1958//
1959//   * UnknownResourceException
1960//   The specified resource doesn't exist.
1961//
1962//   * InternalServiceErrorException
1963//   We encountered an unknown error. Try again in a few minutes.
1964//
1965// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/GetResolverRulePolicy
1966func (c *Route53Resolver) GetResolverRulePolicy(input *GetResolverRulePolicyInput) (*GetResolverRulePolicyOutput, error) {
1967	req, out := c.GetResolverRulePolicyRequest(input)
1968	return out, req.Send()
1969}
1970
1971// GetResolverRulePolicyWithContext is the same as GetResolverRulePolicy with the addition of
1972// the ability to pass a context and additional request options.
1973//
1974// See GetResolverRulePolicy for details on how to use this API operation.
1975//
1976// The context must be non-nil and will be used for request cancellation. If
1977// the context is nil a panic will occur. In the future the SDK may create
1978// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1979// for more information on using Contexts.
1980func (c *Route53Resolver) GetResolverRulePolicyWithContext(ctx aws.Context, input *GetResolverRulePolicyInput, opts ...request.Option) (*GetResolverRulePolicyOutput, error) {
1981	req, out := c.GetResolverRulePolicyRequest(input)
1982	req.SetContext(ctx)
1983	req.ApplyOptions(opts...)
1984	return out, req.Send()
1985}
1986
1987const opListResolverDnssecConfigs = "ListResolverDnssecConfigs"
1988
1989// ListResolverDnssecConfigsRequest generates a "aws/request.Request" representing the
1990// client's request for the ListResolverDnssecConfigs operation. The "output" return
1991// value will be populated with the request's response once the request completes
1992// successfully.
1993//
1994// Use "Send" method on the returned Request to send the API call to the service.
1995// the "output" return value is not valid until after Send returns without error.
1996//
1997// See ListResolverDnssecConfigs for more information on using the ListResolverDnssecConfigs
1998// API call, and error handling.
1999//
2000// This method is useful when you want to inject custom logic or configuration
2001// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2002//
2003//
2004//    // Example sending a request using the ListResolverDnssecConfigsRequest method.
2005//    req, resp := client.ListResolverDnssecConfigsRequest(params)
2006//
2007//    err := req.Send()
2008//    if err == nil { // resp is now filled
2009//        fmt.Println(resp)
2010//    }
2011//
2012// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListResolverDnssecConfigs
2013func (c *Route53Resolver) ListResolverDnssecConfigsRequest(input *ListResolverDnssecConfigsInput) (req *request.Request, output *ListResolverDnssecConfigsOutput) {
2014	op := &request.Operation{
2015		Name:       opListResolverDnssecConfigs,
2016		HTTPMethod: "POST",
2017		HTTPPath:   "/",
2018		Paginator: &request.Paginator{
2019			InputTokens:     []string{"NextToken"},
2020			OutputTokens:    []string{"NextToken"},
2021			LimitToken:      "MaxResults",
2022			TruncationToken: "",
2023		},
2024	}
2025
2026	if input == nil {
2027		input = &ListResolverDnssecConfigsInput{}
2028	}
2029
2030	output = &ListResolverDnssecConfigsOutput{}
2031	req = c.newRequest(op, input, output)
2032	return
2033}
2034
2035// ListResolverDnssecConfigs API operation for Amazon Route 53 Resolver.
2036//
2037// Lists the configurations for DNSSEC validation that are associated with the
2038// current AWS account.
2039//
2040// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2041// with awserr.Error's Code and Message methods to get detailed information about
2042// the error.
2043//
2044// See the AWS API reference guide for Amazon Route 53 Resolver's
2045// API operation ListResolverDnssecConfigs for usage and error information.
2046//
2047// Returned Error Types:
2048//   * InvalidNextTokenException
2049//   The value that you specified for NextToken in a List request isn't valid.
2050//
2051//   * InvalidParameterException
2052//   One or more parameters in this request are not valid.
2053//
2054//   * InvalidRequestException
2055//   The request is invalid.
2056//
2057//   * InternalServiceErrorException
2058//   We encountered an unknown error. Try again in a few minutes.
2059//
2060//   * ThrottlingException
2061//   The request was throttled. Try again in a few minutes.
2062//
2063//   * AccessDeniedException
2064//   The current account doesn't have the IAM permissions required to perform
2065//   the specified Resolver operation.
2066//
2067// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListResolverDnssecConfigs
2068func (c *Route53Resolver) ListResolverDnssecConfigs(input *ListResolverDnssecConfigsInput) (*ListResolverDnssecConfigsOutput, error) {
2069	req, out := c.ListResolverDnssecConfigsRequest(input)
2070	return out, req.Send()
2071}
2072
2073// ListResolverDnssecConfigsWithContext is the same as ListResolverDnssecConfigs with the addition of
2074// the ability to pass a context and additional request options.
2075//
2076// See ListResolverDnssecConfigs for details on how to use this API operation.
2077//
2078// The context must be non-nil and will be used for request cancellation. If
2079// the context is nil a panic will occur. In the future the SDK may create
2080// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2081// for more information on using Contexts.
2082func (c *Route53Resolver) ListResolverDnssecConfigsWithContext(ctx aws.Context, input *ListResolverDnssecConfigsInput, opts ...request.Option) (*ListResolverDnssecConfigsOutput, error) {
2083	req, out := c.ListResolverDnssecConfigsRequest(input)
2084	req.SetContext(ctx)
2085	req.ApplyOptions(opts...)
2086	return out, req.Send()
2087}
2088
2089// ListResolverDnssecConfigsPages iterates over the pages of a ListResolverDnssecConfigs operation,
2090// calling the "fn" function with the response data for each page. To stop
2091// iterating, return false from the fn function.
2092//
2093// See ListResolverDnssecConfigs method for more information on how to use this operation.
2094//
2095// Note: This operation can generate multiple requests to a service.
2096//
2097//    // Example iterating over at most 3 pages of a ListResolverDnssecConfigs operation.
2098//    pageNum := 0
2099//    err := client.ListResolverDnssecConfigsPages(params,
2100//        func(page *route53resolver.ListResolverDnssecConfigsOutput, lastPage bool) bool {
2101//            pageNum++
2102//            fmt.Println(page)
2103//            return pageNum <= 3
2104//        })
2105//
2106func (c *Route53Resolver) ListResolverDnssecConfigsPages(input *ListResolverDnssecConfigsInput, fn func(*ListResolverDnssecConfigsOutput, bool) bool) error {
2107	return c.ListResolverDnssecConfigsPagesWithContext(aws.BackgroundContext(), input, fn)
2108}
2109
2110// ListResolverDnssecConfigsPagesWithContext same as ListResolverDnssecConfigsPages except
2111// it takes a Context and allows setting request options on the pages.
2112//
2113// The context must be non-nil and will be used for request cancellation. If
2114// the context is nil a panic will occur. In the future the SDK may create
2115// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2116// for more information on using Contexts.
2117func (c *Route53Resolver) ListResolverDnssecConfigsPagesWithContext(ctx aws.Context, input *ListResolverDnssecConfigsInput, fn func(*ListResolverDnssecConfigsOutput, bool) bool, opts ...request.Option) error {
2118	p := request.Pagination{
2119		NewRequest: func() (*request.Request, error) {
2120			var inCpy *ListResolverDnssecConfigsInput
2121			if input != nil {
2122				tmp := *input
2123				inCpy = &tmp
2124			}
2125			req, _ := c.ListResolverDnssecConfigsRequest(inCpy)
2126			req.SetContext(ctx)
2127			req.ApplyOptions(opts...)
2128			return req, nil
2129		},
2130	}
2131
2132	for p.Next() {
2133		if !fn(p.Page().(*ListResolverDnssecConfigsOutput), !p.HasNextPage()) {
2134			break
2135		}
2136	}
2137
2138	return p.Err()
2139}
2140
2141const opListResolverEndpointIpAddresses = "ListResolverEndpointIpAddresses"
2142
2143// ListResolverEndpointIpAddressesRequest generates a "aws/request.Request" representing the
2144// client's request for the ListResolverEndpointIpAddresses operation. The "output" return
2145// value will be populated with the request's response once the request completes
2146// successfully.
2147//
2148// Use "Send" method on the returned Request to send the API call to the service.
2149// the "output" return value is not valid until after Send returns without error.
2150//
2151// See ListResolverEndpointIpAddresses for more information on using the ListResolverEndpointIpAddresses
2152// API call, and error handling.
2153//
2154// This method is useful when you want to inject custom logic or configuration
2155// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2156//
2157//
2158//    // Example sending a request using the ListResolverEndpointIpAddressesRequest method.
2159//    req, resp := client.ListResolverEndpointIpAddressesRequest(params)
2160//
2161//    err := req.Send()
2162//    if err == nil { // resp is now filled
2163//        fmt.Println(resp)
2164//    }
2165//
2166// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListResolverEndpointIpAddresses
2167func (c *Route53Resolver) ListResolverEndpointIpAddressesRequest(input *ListResolverEndpointIpAddressesInput) (req *request.Request, output *ListResolverEndpointIpAddressesOutput) {
2168	op := &request.Operation{
2169		Name:       opListResolverEndpointIpAddresses,
2170		HTTPMethod: "POST",
2171		HTTPPath:   "/",
2172		Paginator: &request.Paginator{
2173			InputTokens:     []string{"NextToken"},
2174			OutputTokens:    []string{"NextToken"},
2175			LimitToken:      "MaxResults",
2176			TruncationToken: "",
2177		},
2178	}
2179
2180	if input == nil {
2181		input = &ListResolverEndpointIpAddressesInput{}
2182	}
2183
2184	output = &ListResolverEndpointIpAddressesOutput{}
2185	req = c.newRequest(op, input, output)
2186	return
2187}
2188
2189// ListResolverEndpointIpAddresses API operation for Amazon Route 53 Resolver.
2190//
2191// Gets the IP addresses for a specified Resolver endpoint.
2192//
2193// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2194// with awserr.Error's Code and Message methods to get detailed information about
2195// the error.
2196//
2197// See the AWS API reference guide for Amazon Route 53 Resolver's
2198// API operation ListResolverEndpointIpAddresses for usage and error information.
2199//
2200// Returned Error Types:
2201//   * ResourceNotFoundException
2202//   The specified resource doesn't exist.
2203//
2204//   * InvalidParameterException
2205//   One or more parameters in this request are not valid.
2206//
2207//   * InternalServiceErrorException
2208//   We encountered an unknown error. Try again in a few minutes.
2209//
2210//   * InvalidNextTokenException
2211//   The value that you specified for NextToken in a List request isn't valid.
2212//
2213//   * ThrottlingException
2214//   The request was throttled. Try again in a few minutes.
2215//
2216// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListResolverEndpointIpAddresses
2217func (c *Route53Resolver) ListResolverEndpointIpAddresses(input *ListResolverEndpointIpAddressesInput) (*ListResolverEndpointIpAddressesOutput, error) {
2218	req, out := c.ListResolverEndpointIpAddressesRequest(input)
2219	return out, req.Send()
2220}
2221
2222// ListResolverEndpointIpAddressesWithContext is the same as ListResolverEndpointIpAddresses with the addition of
2223// the ability to pass a context and additional request options.
2224//
2225// See ListResolverEndpointIpAddresses for details on how to use this API operation.
2226//
2227// The context must be non-nil and will be used for request cancellation. If
2228// the context is nil a panic will occur. In the future the SDK may create
2229// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2230// for more information on using Contexts.
2231func (c *Route53Resolver) ListResolverEndpointIpAddressesWithContext(ctx aws.Context, input *ListResolverEndpointIpAddressesInput, opts ...request.Option) (*ListResolverEndpointIpAddressesOutput, error) {
2232	req, out := c.ListResolverEndpointIpAddressesRequest(input)
2233	req.SetContext(ctx)
2234	req.ApplyOptions(opts...)
2235	return out, req.Send()
2236}
2237
2238// ListResolverEndpointIpAddressesPages iterates over the pages of a ListResolverEndpointIpAddresses operation,
2239// calling the "fn" function with the response data for each page. To stop
2240// iterating, return false from the fn function.
2241//
2242// See ListResolverEndpointIpAddresses method for more information on how to use this operation.
2243//
2244// Note: This operation can generate multiple requests to a service.
2245//
2246//    // Example iterating over at most 3 pages of a ListResolverEndpointIpAddresses operation.
2247//    pageNum := 0
2248//    err := client.ListResolverEndpointIpAddressesPages(params,
2249//        func(page *route53resolver.ListResolverEndpointIpAddressesOutput, lastPage bool) bool {
2250//            pageNum++
2251//            fmt.Println(page)
2252//            return pageNum <= 3
2253//        })
2254//
2255func (c *Route53Resolver) ListResolverEndpointIpAddressesPages(input *ListResolverEndpointIpAddressesInput, fn func(*ListResolverEndpointIpAddressesOutput, bool) bool) error {
2256	return c.ListResolverEndpointIpAddressesPagesWithContext(aws.BackgroundContext(), input, fn)
2257}
2258
2259// ListResolverEndpointIpAddressesPagesWithContext same as ListResolverEndpointIpAddressesPages except
2260// it takes a Context and allows setting request options on the pages.
2261//
2262// The context must be non-nil and will be used for request cancellation. If
2263// the context is nil a panic will occur. In the future the SDK may create
2264// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2265// for more information on using Contexts.
2266func (c *Route53Resolver) ListResolverEndpointIpAddressesPagesWithContext(ctx aws.Context, input *ListResolverEndpointIpAddressesInput, fn func(*ListResolverEndpointIpAddressesOutput, bool) bool, opts ...request.Option) error {
2267	p := request.Pagination{
2268		NewRequest: func() (*request.Request, error) {
2269			var inCpy *ListResolverEndpointIpAddressesInput
2270			if input != nil {
2271				tmp := *input
2272				inCpy = &tmp
2273			}
2274			req, _ := c.ListResolverEndpointIpAddressesRequest(inCpy)
2275			req.SetContext(ctx)
2276			req.ApplyOptions(opts...)
2277			return req, nil
2278		},
2279	}
2280
2281	for p.Next() {
2282		if !fn(p.Page().(*ListResolverEndpointIpAddressesOutput), !p.HasNextPage()) {
2283			break
2284		}
2285	}
2286
2287	return p.Err()
2288}
2289
2290const opListResolverEndpoints = "ListResolverEndpoints"
2291
2292// ListResolverEndpointsRequest generates a "aws/request.Request" representing the
2293// client's request for the ListResolverEndpoints operation. The "output" return
2294// value will be populated with the request's response once the request completes
2295// successfully.
2296//
2297// Use "Send" method on the returned Request to send the API call to the service.
2298// the "output" return value is not valid until after Send returns without error.
2299//
2300// See ListResolverEndpoints for more information on using the ListResolverEndpoints
2301// API call, and error handling.
2302//
2303// This method is useful when you want to inject custom logic or configuration
2304// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2305//
2306//
2307//    // Example sending a request using the ListResolverEndpointsRequest method.
2308//    req, resp := client.ListResolverEndpointsRequest(params)
2309//
2310//    err := req.Send()
2311//    if err == nil { // resp is now filled
2312//        fmt.Println(resp)
2313//    }
2314//
2315// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListResolverEndpoints
2316func (c *Route53Resolver) ListResolverEndpointsRequest(input *ListResolverEndpointsInput) (req *request.Request, output *ListResolverEndpointsOutput) {
2317	op := &request.Operation{
2318		Name:       opListResolverEndpoints,
2319		HTTPMethod: "POST",
2320		HTTPPath:   "/",
2321		Paginator: &request.Paginator{
2322			InputTokens:     []string{"NextToken"},
2323			OutputTokens:    []string{"NextToken"},
2324			LimitToken:      "MaxResults",
2325			TruncationToken: "",
2326		},
2327	}
2328
2329	if input == nil {
2330		input = &ListResolverEndpointsInput{}
2331	}
2332
2333	output = &ListResolverEndpointsOutput{}
2334	req = c.newRequest(op, input, output)
2335	return
2336}
2337
2338// ListResolverEndpoints API operation for Amazon Route 53 Resolver.
2339//
2340// Lists all the Resolver endpoints that were created using the current AWS
2341// account.
2342//
2343// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2344// with awserr.Error's Code and Message methods to get detailed information about
2345// the error.
2346//
2347// See the AWS API reference guide for Amazon Route 53 Resolver's
2348// API operation ListResolverEndpoints for usage and error information.
2349//
2350// Returned Error Types:
2351//   * InvalidNextTokenException
2352//   The value that you specified for NextToken in a List request isn't valid.
2353//
2354//   * InvalidRequestException
2355//   The request is invalid.
2356//
2357//   * InvalidParameterException
2358//   One or more parameters in this request are not valid.
2359//
2360//   * InternalServiceErrorException
2361//   We encountered an unknown error. Try again in a few minutes.
2362//
2363//   * ThrottlingException
2364//   The request was throttled. Try again in a few minutes.
2365//
2366// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListResolverEndpoints
2367func (c *Route53Resolver) ListResolverEndpoints(input *ListResolverEndpointsInput) (*ListResolverEndpointsOutput, error) {
2368	req, out := c.ListResolverEndpointsRequest(input)
2369	return out, req.Send()
2370}
2371
2372// ListResolverEndpointsWithContext is the same as ListResolverEndpoints with the addition of
2373// the ability to pass a context and additional request options.
2374//
2375// See ListResolverEndpoints for details on how to use this API operation.
2376//
2377// The context must be non-nil and will be used for request cancellation. If
2378// the context is nil a panic will occur. In the future the SDK may create
2379// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2380// for more information on using Contexts.
2381func (c *Route53Resolver) ListResolverEndpointsWithContext(ctx aws.Context, input *ListResolverEndpointsInput, opts ...request.Option) (*ListResolverEndpointsOutput, error) {
2382	req, out := c.ListResolverEndpointsRequest(input)
2383	req.SetContext(ctx)
2384	req.ApplyOptions(opts...)
2385	return out, req.Send()
2386}
2387
2388// ListResolverEndpointsPages iterates over the pages of a ListResolverEndpoints operation,
2389// calling the "fn" function with the response data for each page. To stop
2390// iterating, return false from the fn function.
2391//
2392// See ListResolverEndpoints method for more information on how to use this operation.
2393//
2394// Note: This operation can generate multiple requests to a service.
2395//
2396//    // Example iterating over at most 3 pages of a ListResolverEndpoints operation.
2397//    pageNum := 0
2398//    err := client.ListResolverEndpointsPages(params,
2399//        func(page *route53resolver.ListResolverEndpointsOutput, lastPage bool) bool {
2400//            pageNum++
2401//            fmt.Println(page)
2402//            return pageNum <= 3
2403//        })
2404//
2405func (c *Route53Resolver) ListResolverEndpointsPages(input *ListResolverEndpointsInput, fn func(*ListResolverEndpointsOutput, bool) bool) error {
2406	return c.ListResolverEndpointsPagesWithContext(aws.BackgroundContext(), input, fn)
2407}
2408
2409// ListResolverEndpointsPagesWithContext same as ListResolverEndpointsPages except
2410// it takes a Context and allows setting request options on the pages.
2411//
2412// The context must be non-nil and will be used for request cancellation. If
2413// the context is nil a panic will occur. In the future the SDK may create
2414// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2415// for more information on using Contexts.
2416func (c *Route53Resolver) ListResolverEndpointsPagesWithContext(ctx aws.Context, input *ListResolverEndpointsInput, fn func(*ListResolverEndpointsOutput, bool) bool, opts ...request.Option) error {
2417	p := request.Pagination{
2418		NewRequest: func() (*request.Request, error) {
2419			var inCpy *ListResolverEndpointsInput
2420			if input != nil {
2421				tmp := *input
2422				inCpy = &tmp
2423			}
2424			req, _ := c.ListResolverEndpointsRequest(inCpy)
2425			req.SetContext(ctx)
2426			req.ApplyOptions(opts...)
2427			return req, nil
2428		},
2429	}
2430
2431	for p.Next() {
2432		if !fn(p.Page().(*ListResolverEndpointsOutput), !p.HasNextPage()) {
2433			break
2434		}
2435	}
2436
2437	return p.Err()
2438}
2439
2440const opListResolverQueryLogConfigAssociations = "ListResolverQueryLogConfigAssociations"
2441
2442// ListResolverQueryLogConfigAssociationsRequest generates a "aws/request.Request" representing the
2443// client's request for the ListResolverQueryLogConfigAssociations operation. The "output" return
2444// value will be populated with the request's response once the request completes
2445// successfully.
2446//
2447// Use "Send" method on the returned Request to send the API call to the service.
2448// the "output" return value is not valid until after Send returns without error.
2449//
2450// See ListResolverQueryLogConfigAssociations for more information on using the ListResolverQueryLogConfigAssociations
2451// API call, and error handling.
2452//
2453// This method is useful when you want to inject custom logic or configuration
2454// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2455//
2456//
2457//    // Example sending a request using the ListResolverQueryLogConfigAssociationsRequest method.
2458//    req, resp := client.ListResolverQueryLogConfigAssociationsRequest(params)
2459//
2460//    err := req.Send()
2461//    if err == nil { // resp is now filled
2462//        fmt.Println(resp)
2463//    }
2464//
2465// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListResolverQueryLogConfigAssociations
2466func (c *Route53Resolver) ListResolverQueryLogConfigAssociationsRequest(input *ListResolverQueryLogConfigAssociationsInput) (req *request.Request, output *ListResolverQueryLogConfigAssociationsOutput) {
2467	op := &request.Operation{
2468		Name:       opListResolverQueryLogConfigAssociations,
2469		HTTPMethod: "POST",
2470		HTTPPath:   "/",
2471		Paginator: &request.Paginator{
2472			InputTokens:     []string{"NextToken"},
2473			OutputTokens:    []string{"NextToken"},
2474			LimitToken:      "MaxResults",
2475			TruncationToken: "",
2476		},
2477	}
2478
2479	if input == nil {
2480		input = &ListResolverQueryLogConfigAssociationsInput{}
2481	}
2482
2483	output = &ListResolverQueryLogConfigAssociationsOutput{}
2484	req = c.newRequest(op, input, output)
2485	return
2486}
2487
2488// ListResolverQueryLogConfigAssociations API operation for Amazon Route 53 Resolver.
2489//
2490// Lists information about associations between Amazon VPCs and query logging
2491// configurations.
2492//
2493// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2494// with awserr.Error's Code and Message methods to get detailed information about
2495// the error.
2496//
2497// See the AWS API reference guide for Amazon Route 53 Resolver's
2498// API operation ListResolverQueryLogConfigAssociations for usage and error information.
2499//
2500// Returned Error Types:
2501//   * InvalidParameterException
2502//   One or more parameters in this request are not valid.
2503//
2504//   * InvalidRequestException
2505//   The request is invalid.
2506//
2507//   * LimitExceededException
2508//   The request caused one or more limits to be exceeded.
2509//
2510//   * InternalServiceErrorException
2511//   We encountered an unknown error. Try again in a few minutes.
2512//
2513//   * ThrottlingException
2514//   The request was throttled. Try again in a few minutes.
2515//
2516//   * AccessDeniedException
2517//   The current account doesn't have the IAM permissions required to perform
2518//   the specified Resolver operation.
2519//
2520// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListResolverQueryLogConfigAssociations
2521func (c *Route53Resolver) ListResolverQueryLogConfigAssociations(input *ListResolverQueryLogConfigAssociationsInput) (*ListResolverQueryLogConfigAssociationsOutput, error) {
2522	req, out := c.ListResolverQueryLogConfigAssociationsRequest(input)
2523	return out, req.Send()
2524}
2525
2526// ListResolverQueryLogConfigAssociationsWithContext is the same as ListResolverQueryLogConfigAssociations with the addition of
2527// the ability to pass a context and additional request options.
2528//
2529// See ListResolverQueryLogConfigAssociations for details on how to use this API operation.
2530//
2531// The context must be non-nil and will be used for request cancellation. If
2532// the context is nil a panic will occur. In the future the SDK may create
2533// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2534// for more information on using Contexts.
2535func (c *Route53Resolver) ListResolverQueryLogConfigAssociationsWithContext(ctx aws.Context, input *ListResolverQueryLogConfigAssociationsInput, opts ...request.Option) (*ListResolverQueryLogConfigAssociationsOutput, error) {
2536	req, out := c.ListResolverQueryLogConfigAssociationsRequest(input)
2537	req.SetContext(ctx)
2538	req.ApplyOptions(opts...)
2539	return out, req.Send()
2540}
2541
2542// ListResolverQueryLogConfigAssociationsPages iterates over the pages of a ListResolverQueryLogConfigAssociations operation,
2543// calling the "fn" function with the response data for each page. To stop
2544// iterating, return false from the fn function.
2545//
2546// See ListResolverQueryLogConfigAssociations method for more information on how to use this operation.
2547//
2548// Note: This operation can generate multiple requests to a service.
2549//
2550//    // Example iterating over at most 3 pages of a ListResolverQueryLogConfigAssociations operation.
2551//    pageNum := 0
2552//    err := client.ListResolverQueryLogConfigAssociationsPages(params,
2553//        func(page *route53resolver.ListResolverQueryLogConfigAssociationsOutput, lastPage bool) bool {
2554//            pageNum++
2555//            fmt.Println(page)
2556//            return pageNum <= 3
2557//        })
2558//
2559func (c *Route53Resolver) ListResolverQueryLogConfigAssociationsPages(input *ListResolverQueryLogConfigAssociationsInput, fn func(*ListResolverQueryLogConfigAssociationsOutput, bool) bool) error {
2560	return c.ListResolverQueryLogConfigAssociationsPagesWithContext(aws.BackgroundContext(), input, fn)
2561}
2562
2563// ListResolverQueryLogConfigAssociationsPagesWithContext same as ListResolverQueryLogConfigAssociationsPages except
2564// it takes a Context and allows setting request options on the pages.
2565//
2566// The context must be non-nil and will be used for request cancellation. If
2567// the context is nil a panic will occur. In the future the SDK may create
2568// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2569// for more information on using Contexts.
2570func (c *Route53Resolver) ListResolverQueryLogConfigAssociationsPagesWithContext(ctx aws.Context, input *ListResolverQueryLogConfigAssociationsInput, fn func(*ListResolverQueryLogConfigAssociationsOutput, bool) bool, opts ...request.Option) error {
2571	p := request.Pagination{
2572		NewRequest: func() (*request.Request, error) {
2573			var inCpy *ListResolverQueryLogConfigAssociationsInput
2574			if input != nil {
2575				tmp := *input
2576				inCpy = &tmp
2577			}
2578			req, _ := c.ListResolverQueryLogConfigAssociationsRequest(inCpy)
2579			req.SetContext(ctx)
2580			req.ApplyOptions(opts...)
2581			return req, nil
2582		},
2583	}
2584
2585	for p.Next() {
2586		if !fn(p.Page().(*ListResolverQueryLogConfigAssociationsOutput), !p.HasNextPage()) {
2587			break
2588		}
2589	}
2590
2591	return p.Err()
2592}
2593
2594const opListResolverQueryLogConfigs = "ListResolverQueryLogConfigs"
2595
2596// ListResolverQueryLogConfigsRequest generates a "aws/request.Request" representing the
2597// client's request for the ListResolverQueryLogConfigs operation. The "output" return
2598// value will be populated with the request's response once the request completes
2599// successfully.
2600//
2601// Use "Send" method on the returned Request to send the API call to the service.
2602// the "output" return value is not valid until after Send returns without error.
2603//
2604// See ListResolverQueryLogConfigs for more information on using the ListResolverQueryLogConfigs
2605// API call, and error handling.
2606//
2607// This method is useful when you want to inject custom logic or configuration
2608// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2609//
2610//
2611//    // Example sending a request using the ListResolverQueryLogConfigsRequest method.
2612//    req, resp := client.ListResolverQueryLogConfigsRequest(params)
2613//
2614//    err := req.Send()
2615//    if err == nil { // resp is now filled
2616//        fmt.Println(resp)
2617//    }
2618//
2619// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListResolverQueryLogConfigs
2620func (c *Route53Resolver) ListResolverQueryLogConfigsRequest(input *ListResolverQueryLogConfigsInput) (req *request.Request, output *ListResolverQueryLogConfigsOutput) {
2621	op := &request.Operation{
2622		Name:       opListResolverQueryLogConfigs,
2623		HTTPMethod: "POST",
2624		HTTPPath:   "/",
2625		Paginator: &request.Paginator{
2626			InputTokens:     []string{"NextToken"},
2627			OutputTokens:    []string{"NextToken"},
2628			LimitToken:      "MaxResults",
2629			TruncationToken: "",
2630		},
2631	}
2632
2633	if input == nil {
2634		input = &ListResolverQueryLogConfigsInput{}
2635	}
2636
2637	output = &ListResolverQueryLogConfigsOutput{}
2638	req = c.newRequest(op, input, output)
2639	return
2640}
2641
2642// ListResolverQueryLogConfigs API operation for Amazon Route 53 Resolver.
2643//
2644// Lists information about the specified query logging configurations. Each
2645// configuration defines where you want Resolver to save DNS query logs and
2646// specifies the VPCs that you want to log queries for.
2647//
2648// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2649// with awserr.Error's Code and Message methods to get detailed information about
2650// the error.
2651//
2652// See the AWS API reference guide for Amazon Route 53 Resolver's
2653// API operation ListResolverQueryLogConfigs for usage and error information.
2654//
2655// Returned Error Types:
2656//   * InvalidNextTokenException
2657//   The value that you specified for NextToken in a List request isn't valid.
2658//
2659//   * InvalidRequestException
2660//   The request is invalid.
2661//
2662//   * InvalidParameterException
2663//   One or more parameters in this request are not valid.
2664//
2665//   * InternalServiceErrorException
2666//   We encountered an unknown error. Try again in a few minutes.
2667//
2668//   * ThrottlingException
2669//   The request was throttled. Try again in a few minutes.
2670//
2671//   * AccessDeniedException
2672//   The current account doesn't have the IAM permissions required to perform
2673//   the specified Resolver operation.
2674//
2675// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListResolverQueryLogConfigs
2676func (c *Route53Resolver) ListResolverQueryLogConfigs(input *ListResolverQueryLogConfigsInput) (*ListResolverQueryLogConfigsOutput, error) {
2677	req, out := c.ListResolverQueryLogConfigsRequest(input)
2678	return out, req.Send()
2679}
2680
2681// ListResolverQueryLogConfigsWithContext is the same as ListResolverQueryLogConfigs with the addition of
2682// the ability to pass a context and additional request options.
2683//
2684// See ListResolverQueryLogConfigs for details on how to use this API operation.
2685//
2686// The context must be non-nil and will be used for request cancellation. If
2687// the context is nil a panic will occur. In the future the SDK may create
2688// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2689// for more information on using Contexts.
2690func (c *Route53Resolver) ListResolverQueryLogConfigsWithContext(ctx aws.Context, input *ListResolverQueryLogConfigsInput, opts ...request.Option) (*ListResolverQueryLogConfigsOutput, error) {
2691	req, out := c.ListResolverQueryLogConfigsRequest(input)
2692	req.SetContext(ctx)
2693	req.ApplyOptions(opts...)
2694	return out, req.Send()
2695}
2696
2697// ListResolverQueryLogConfigsPages iterates over the pages of a ListResolverQueryLogConfigs operation,
2698// calling the "fn" function with the response data for each page. To stop
2699// iterating, return false from the fn function.
2700//
2701// See ListResolverQueryLogConfigs method for more information on how to use this operation.
2702//
2703// Note: This operation can generate multiple requests to a service.
2704//
2705//    // Example iterating over at most 3 pages of a ListResolverQueryLogConfigs operation.
2706//    pageNum := 0
2707//    err := client.ListResolverQueryLogConfigsPages(params,
2708//        func(page *route53resolver.ListResolverQueryLogConfigsOutput, lastPage bool) bool {
2709//            pageNum++
2710//            fmt.Println(page)
2711//            return pageNum <= 3
2712//        })
2713//
2714func (c *Route53Resolver) ListResolverQueryLogConfigsPages(input *ListResolverQueryLogConfigsInput, fn func(*ListResolverQueryLogConfigsOutput, bool) bool) error {
2715	return c.ListResolverQueryLogConfigsPagesWithContext(aws.BackgroundContext(), input, fn)
2716}
2717
2718// ListResolverQueryLogConfigsPagesWithContext same as ListResolverQueryLogConfigsPages except
2719// it takes a Context and allows setting request options on the pages.
2720//
2721// The context must be non-nil and will be used for request cancellation. If
2722// the context is nil a panic will occur. In the future the SDK may create
2723// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2724// for more information on using Contexts.
2725func (c *Route53Resolver) ListResolverQueryLogConfigsPagesWithContext(ctx aws.Context, input *ListResolverQueryLogConfigsInput, fn func(*ListResolverQueryLogConfigsOutput, bool) bool, opts ...request.Option) error {
2726	p := request.Pagination{
2727		NewRequest: func() (*request.Request, error) {
2728			var inCpy *ListResolverQueryLogConfigsInput
2729			if input != nil {
2730				tmp := *input
2731				inCpy = &tmp
2732			}
2733			req, _ := c.ListResolverQueryLogConfigsRequest(inCpy)
2734			req.SetContext(ctx)
2735			req.ApplyOptions(opts...)
2736			return req, nil
2737		},
2738	}
2739
2740	for p.Next() {
2741		if !fn(p.Page().(*ListResolverQueryLogConfigsOutput), !p.HasNextPage()) {
2742			break
2743		}
2744	}
2745
2746	return p.Err()
2747}
2748
2749const opListResolverRuleAssociations = "ListResolverRuleAssociations"
2750
2751// ListResolverRuleAssociationsRequest generates a "aws/request.Request" representing the
2752// client's request for the ListResolverRuleAssociations operation. The "output" return
2753// value will be populated with the request's response once the request completes
2754// successfully.
2755//
2756// Use "Send" method on the returned Request to send the API call to the service.
2757// the "output" return value is not valid until after Send returns without error.
2758//
2759// See ListResolverRuleAssociations for more information on using the ListResolverRuleAssociations
2760// API call, and error handling.
2761//
2762// This method is useful when you want to inject custom logic or configuration
2763// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2764//
2765//
2766//    // Example sending a request using the ListResolverRuleAssociationsRequest method.
2767//    req, resp := client.ListResolverRuleAssociationsRequest(params)
2768//
2769//    err := req.Send()
2770//    if err == nil { // resp is now filled
2771//        fmt.Println(resp)
2772//    }
2773//
2774// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListResolverRuleAssociations
2775func (c *Route53Resolver) ListResolverRuleAssociationsRequest(input *ListResolverRuleAssociationsInput) (req *request.Request, output *ListResolverRuleAssociationsOutput) {
2776	op := &request.Operation{
2777		Name:       opListResolverRuleAssociations,
2778		HTTPMethod: "POST",
2779		HTTPPath:   "/",
2780		Paginator: &request.Paginator{
2781			InputTokens:     []string{"NextToken"},
2782			OutputTokens:    []string{"NextToken"},
2783			LimitToken:      "MaxResults",
2784			TruncationToken: "",
2785		},
2786	}
2787
2788	if input == nil {
2789		input = &ListResolverRuleAssociationsInput{}
2790	}
2791
2792	output = &ListResolverRuleAssociationsOutput{}
2793	req = c.newRequest(op, input, output)
2794	return
2795}
2796
2797// ListResolverRuleAssociations API operation for Amazon Route 53 Resolver.
2798//
2799// Lists the associations that were created between Resolver rules and VPCs
2800// using the current AWS account.
2801//
2802// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2803// with awserr.Error's Code and Message methods to get detailed information about
2804// the error.
2805//
2806// See the AWS API reference guide for Amazon Route 53 Resolver's
2807// API operation ListResolverRuleAssociations for usage and error information.
2808//
2809// Returned Error Types:
2810//   * InvalidNextTokenException
2811//   The value that you specified for NextToken in a List request isn't valid.
2812//
2813//   * InvalidRequestException
2814//   The request is invalid.
2815//
2816//   * InvalidParameterException
2817//   One or more parameters in this request are not valid.
2818//
2819//   * InternalServiceErrorException
2820//   We encountered an unknown error. Try again in a few minutes.
2821//
2822//   * ThrottlingException
2823//   The request was throttled. Try again in a few minutes.
2824//
2825// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListResolverRuleAssociations
2826func (c *Route53Resolver) ListResolverRuleAssociations(input *ListResolverRuleAssociationsInput) (*ListResolverRuleAssociationsOutput, error) {
2827	req, out := c.ListResolverRuleAssociationsRequest(input)
2828	return out, req.Send()
2829}
2830
2831// ListResolverRuleAssociationsWithContext is the same as ListResolverRuleAssociations with the addition of
2832// the ability to pass a context and additional request options.
2833//
2834// See ListResolverRuleAssociations for details on how to use this API operation.
2835//
2836// The context must be non-nil and will be used for request cancellation. If
2837// the context is nil a panic will occur. In the future the SDK may create
2838// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2839// for more information on using Contexts.
2840func (c *Route53Resolver) ListResolverRuleAssociationsWithContext(ctx aws.Context, input *ListResolverRuleAssociationsInput, opts ...request.Option) (*ListResolverRuleAssociationsOutput, error) {
2841	req, out := c.ListResolverRuleAssociationsRequest(input)
2842	req.SetContext(ctx)
2843	req.ApplyOptions(opts...)
2844	return out, req.Send()
2845}
2846
2847// ListResolverRuleAssociationsPages iterates over the pages of a ListResolverRuleAssociations operation,
2848// calling the "fn" function with the response data for each page. To stop
2849// iterating, return false from the fn function.
2850//
2851// See ListResolverRuleAssociations method for more information on how to use this operation.
2852//
2853// Note: This operation can generate multiple requests to a service.
2854//
2855//    // Example iterating over at most 3 pages of a ListResolverRuleAssociations operation.
2856//    pageNum := 0
2857//    err := client.ListResolverRuleAssociationsPages(params,
2858//        func(page *route53resolver.ListResolverRuleAssociationsOutput, lastPage bool) bool {
2859//            pageNum++
2860//            fmt.Println(page)
2861//            return pageNum <= 3
2862//        })
2863//
2864func (c *Route53Resolver) ListResolverRuleAssociationsPages(input *ListResolverRuleAssociationsInput, fn func(*ListResolverRuleAssociationsOutput, bool) bool) error {
2865	return c.ListResolverRuleAssociationsPagesWithContext(aws.BackgroundContext(), input, fn)
2866}
2867
2868// ListResolverRuleAssociationsPagesWithContext same as ListResolverRuleAssociationsPages except
2869// it takes a Context and allows setting request options on the pages.
2870//
2871// The context must be non-nil and will be used for request cancellation. If
2872// the context is nil a panic will occur. In the future the SDK may create
2873// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2874// for more information on using Contexts.
2875func (c *Route53Resolver) ListResolverRuleAssociationsPagesWithContext(ctx aws.Context, input *ListResolverRuleAssociationsInput, fn func(*ListResolverRuleAssociationsOutput, bool) bool, opts ...request.Option) error {
2876	p := request.Pagination{
2877		NewRequest: func() (*request.Request, error) {
2878			var inCpy *ListResolverRuleAssociationsInput
2879			if input != nil {
2880				tmp := *input
2881				inCpy = &tmp
2882			}
2883			req, _ := c.ListResolverRuleAssociationsRequest(inCpy)
2884			req.SetContext(ctx)
2885			req.ApplyOptions(opts...)
2886			return req, nil
2887		},
2888	}
2889
2890	for p.Next() {
2891		if !fn(p.Page().(*ListResolverRuleAssociationsOutput), !p.HasNextPage()) {
2892			break
2893		}
2894	}
2895
2896	return p.Err()
2897}
2898
2899const opListResolverRules = "ListResolverRules"
2900
2901// ListResolverRulesRequest generates a "aws/request.Request" representing the
2902// client's request for the ListResolverRules operation. The "output" return
2903// value will be populated with the request's response once the request completes
2904// successfully.
2905//
2906// Use "Send" method on the returned Request to send the API call to the service.
2907// the "output" return value is not valid until after Send returns without error.
2908//
2909// See ListResolverRules for more information on using the ListResolverRules
2910// API call, and error handling.
2911//
2912// This method is useful when you want to inject custom logic or configuration
2913// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2914//
2915//
2916//    // Example sending a request using the ListResolverRulesRequest method.
2917//    req, resp := client.ListResolverRulesRequest(params)
2918//
2919//    err := req.Send()
2920//    if err == nil { // resp is now filled
2921//        fmt.Println(resp)
2922//    }
2923//
2924// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListResolverRules
2925func (c *Route53Resolver) ListResolverRulesRequest(input *ListResolverRulesInput) (req *request.Request, output *ListResolverRulesOutput) {
2926	op := &request.Operation{
2927		Name:       opListResolverRules,
2928		HTTPMethod: "POST",
2929		HTTPPath:   "/",
2930		Paginator: &request.Paginator{
2931			InputTokens:     []string{"NextToken"},
2932			OutputTokens:    []string{"NextToken"},
2933			LimitToken:      "MaxResults",
2934			TruncationToken: "",
2935		},
2936	}
2937
2938	if input == nil {
2939		input = &ListResolverRulesInput{}
2940	}
2941
2942	output = &ListResolverRulesOutput{}
2943	req = c.newRequest(op, input, output)
2944	return
2945}
2946
2947// ListResolverRules API operation for Amazon Route 53 Resolver.
2948//
2949// Lists the Resolver rules that were created using the current AWS account.
2950//
2951// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2952// with awserr.Error's Code and Message methods to get detailed information about
2953// the error.
2954//
2955// See the AWS API reference guide for Amazon Route 53 Resolver's
2956// API operation ListResolverRules for usage and error information.
2957//
2958// Returned Error Types:
2959//   * InvalidNextTokenException
2960//   The value that you specified for NextToken in a List request isn't valid.
2961//
2962//   * InvalidRequestException
2963//   The request is invalid.
2964//
2965//   * InvalidParameterException
2966//   One or more parameters in this request are not valid.
2967//
2968//   * InternalServiceErrorException
2969//   We encountered an unknown error. Try again in a few minutes.
2970//
2971//   * ThrottlingException
2972//   The request was throttled. Try again in a few minutes.
2973//
2974// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListResolverRules
2975func (c *Route53Resolver) ListResolverRules(input *ListResolverRulesInput) (*ListResolverRulesOutput, error) {
2976	req, out := c.ListResolverRulesRequest(input)
2977	return out, req.Send()
2978}
2979
2980// ListResolverRulesWithContext is the same as ListResolverRules with the addition of
2981// the ability to pass a context and additional request options.
2982//
2983// See ListResolverRules for details on how to use this API operation.
2984//
2985// The context must be non-nil and will be used for request cancellation. If
2986// the context is nil a panic will occur. In the future the SDK may create
2987// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2988// for more information on using Contexts.
2989func (c *Route53Resolver) ListResolverRulesWithContext(ctx aws.Context, input *ListResolverRulesInput, opts ...request.Option) (*ListResolverRulesOutput, error) {
2990	req, out := c.ListResolverRulesRequest(input)
2991	req.SetContext(ctx)
2992	req.ApplyOptions(opts...)
2993	return out, req.Send()
2994}
2995
2996// ListResolverRulesPages iterates over the pages of a ListResolverRules operation,
2997// calling the "fn" function with the response data for each page. To stop
2998// iterating, return false from the fn function.
2999//
3000// See ListResolverRules method for more information on how to use this operation.
3001//
3002// Note: This operation can generate multiple requests to a service.
3003//
3004//    // Example iterating over at most 3 pages of a ListResolverRules operation.
3005//    pageNum := 0
3006//    err := client.ListResolverRulesPages(params,
3007//        func(page *route53resolver.ListResolverRulesOutput, lastPage bool) bool {
3008//            pageNum++
3009//            fmt.Println(page)
3010//            return pageNum <= 3
3011//        })
3012//
3013func (c *Route53Resolver) ListResolverRulesPages(input *ListResolverRulesInput, fn func(*ListResolverRulesOutput, bool) bool) error {
3014	return c.ListResolverRulesPagesWithContext(aws.BackgroundContext(), input, fn)
3015}
3016
3017// ListResolverRulesPagesWithContext same as ListResolverRulesPages except
3018// it takes a Context and allows setting request options on the pages.
3019//
3020// The context must be non-nil and will be used for request cancellation. If
3021// the context is nil a panic will occur. In the future the SDK may create
3022// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3023// for more information on using Contexts.
3024func (c *Route53Resolver) ListResolverRulesPagesWithContext(ctx aws.Context, input *ListResolverRulesInput, fn func(*ListResolverRulesOutput, bool) bool, opts ...request.Option) error {
3025	p := request.Pagination{
3026		NewRequest: func() (*request.Request, error) {
3027			var inCpy *ListResolverRulesInput
3028			if input != nil {
3029				tmp := *input
3030				inCpy = &tmp
3031			}
3032			req, _ := c.ListResolverRulesRequest(inCpy)
3033			req.SetContext(ctx)
3034			req.ApplyOptions(opts...)
3035			return req, nil
3036		},
3037	}
3038
3039	for p.Next() {
3040		if !fn(p.Page().(*ListResolverRulesOutput), !p.HasNextPage()) {
3041			break
3042		}
3043	}
3044
3045	return p.Err()
3046}
3047
3048const opListTagsForResource = "ListTagsForResource"
3049
3050// ListTagsForResourceRequest generates a "aws/request.Request" representing the
3051// client's request for the ListTagsForResource operation. The "output" return
3052// value will be populated with the request's response once the request completes
3053// successfully.
3054//
3055// Use "Send" method on the returned Request to send the API call to the service.
3056// the "output" return value is not valid until after Send returns without error.
3057//
3058// See ListTagsForResource for more information on using the ListTagsForResource
3059// API call, and error handling.
3060//
3061// This method is useful when you want to inject custom logic or configuration
3062// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3063//
3064//
3065//    // Example sending a request using the ListTagsForResourceRequest method.
3066//    req, resp := client.ListTagsForResourceRequest(params)
3067//
3068//    err := req.Send()
3069//    if err == nil { // resp is now filled
3070//        fmt.Println(resp)
3071//    }
3072//
3073// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListTagsForResource
3074func (c *Route53Resolver) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
3075	op := &request.Operation{
3076		Name:       opListTagsForResource,
3077		HTTPMethod: "POST",
3078		HTTPPath:   "/",
3079		Paginator: &request.Paginator{
3080			InputTokens:     []string{"NextToken"},
3081			OutputTokens:    []string{"NextToken"},
3082			LimitToken:      "MaxResults",
3083			TruncationToken: "",
3084		},
3085	}
3086
3087	if input == nil {
3088		input = &ListTagsForResourceInput{}
3089	}
3090
3091	output = &ListTagsForResourceOutput{}
3092	req = c.newRequest(op, input, output)
3093	return
3094}
3095
3096// ListTagsForResource API operation for Amazon Route 53 Resolver.
3097//
3098// Lists the tags that you associated with the specified resource.
3099//
3100// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3101// with awserr.Error's Code and Message methods to get detailed information about
3102// the error.
3103//
3104// See the AWS API reference guide for Amazon Route 53 Resolver's
3105// API operation ListTagsForResource for usage and error information.
3106//
3107// Returned Error Types:
3108//   * ResourceNotFoundException
3109//   The specified resource doesn't exist.
3110//
3111//   * InvalidParameterException
3112//   One or more parameters in this request are not valid.
3113//
3114//   * InvalidNextTokenException
3115//   The value that you specified for NextToken in a List request isn't valid.
3116//
3117//   * InvalidRequestException
3118//   The request is invalid.
3119//
3120//   * InternalServiceErrorException
3121//   We encountered an unknown error. Try again in a few minutes.
3122//
3123//   * ThrottlingException
3124//   The request was throttled. Try again in a few minutes.
3125//
3126// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/ListTagsForResource
3127func (c *Route53Resolver) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
3128	req, out := c.ListTagsForResourceRequest(input)
3129	return out, req.Send()
3130}
3131
3132// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
3133// the ability to pass a context and additional request options.
3134//
3135// See ListTagsForResource for details on how to use this API operation.
3136//
3137// The context must be non-nil and will be used for request cancellation. If
3138// the context is nil a panic will occur. In the future the SDK may create
3139// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3140// for more information on using Contexts.
3141func (c *Route53Resolver) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
3142	req, out := c.ListTagsForResourceRequest(input)
3143	req.SetContext(ctx)
3144	req.ApplyOptions(opts...)
3145	return out, req.Send()
3146}
3147
3148// ListTagsForResourcePages iterates over the pages of a ListTagsForResource operation,
3149// calling the "fn" function with the response data for each page. To stop
3150// iterating, return false from the fn function.
3151//
3152// See ListTagsForResource method for more information on how to use this operation.
3153//
3154// Note: This operation can generate multiple requests to a service.
3155//
3156//    // Example iterating over at most 3 pages of a ListTagsForResource operation.
3157//    pageNum := 0
3158//    err := client.ListTagsForResourcePages(params,
3159//        func(page *route53resolver.ListTagsForResourceOutput, lastPage bool) bool {
3160//            pageNum++
3161//            fmt.Println(page)
3162//            return pageNum <= 3
3163//        })
3164//
3165func (c *Route53Resolver) ListTagsForResourcePages(input *ListTagsForResourceInput, fn func(*ListTagsForResourceOutput, bool) bool) error {
3166	return c.ListTagsForResourcePagesWithContext(aws.BackgroundContext(), input, fn)
3167}
3168
3169// ListTagsForResourcePagesWithContext same as ListTagsForResourcePages except
3170// it takes a Context and allows setting request options on the pages.
3171//
3172// The context must be non-nil and will be used for request cancellation. If
3173// the context is nil a panic will occur. In the future the SDK may create
3174// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3175// for more information on using Contexts.
3176func (c *Route53Resolver) ListTagsForResourcePagesWithContext(ctx aws.Context, input *ListTagsForResourceInput, fn func(*ListTagsForResourceOutput, bool) bool, opts ...request.Option) error {
3177	p := request.Pagination{
3178		NewRequest: func() (*request.Request, error) {
3179			var inCpy *ListTagsForResourceInput
3180			if input != nil {
3181				tmp := *input
3182				inCpy = &tmp
3183			}
3184			req, _ := c.ListTagsForResourceRequest(inCpy)
3185			req.SetContext(ctx)
3186			req.ApplyOptions(opts...)
3187			return req, nil
3188		},
3189	}
3190
3191	for p.Next() {
3192		if !fn(p.Page().(*ListTagsForResourceOutput), !p.HasNextPage()) {
3193			break
3194		}
3195	}
3196
3197	return p.Err()
3198}
3199
3200const opPutResolverQueryLogConfigPolicy = "PutResolverQueryLogConfigPolicy"
3201
3202// PutResolverQueryLogConfigPolicyRequest generates a "aws/request.Request" representing the
3203// client's request for the PutResolverQueryLogConfigPolicy operation. The "output" return
3204// value will be populated with the request's response once the request completes
3205// successfully.
3206//
3207// Use "Send" method on the returned Request to send the API call to the service.
3208// the "output" return value is not valid until after Send returns without error.
3209//
3210// See PutResolverQueryLogConfigPolicy for more information on using the PutResolverQueryLogConfigPolicy
3211// API call, and error handling.
3212//
3213// This method is useful when you want to inject custom logic or configuration
3214// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3215//
3216//
3217//    // Example sending a request using the PutResolverQueryLogConfigPolicyRequest method.
3218//    req, resp := client.PutResolverQueryLogConfigPolicyRequest(params)
3219//
3220//    err := req.Send()
3221//    if err == nil { // resp is now filled
3222//        fmt.Println(resp)
3223//    }
3224//
3225// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/PutResolverQueryLogConfigPolicy
3226func (c *Route53Resolver) PutResolverQueryLogConfigPolicyRequest(input *PutResolverQueryLogConfigPolicyInput) (req *request.Request, output *PutResolverQueryLogConfigPolicyOutput) {
3227	op := &request.Operation{
3228		Name:       opPutResolverQueryLogConfigPolicy,
3229		HTTPMethod: "POST",
3230		HTTPPath:   "/",
3231	}
3232
3233	if input == nil {
3234		input = &PutResolverQueryLogConfigPolicyInput{}
3235	}
3236
3237	output = &PutResolverQueryLogConfigPolicyOutput{}
3238	req = c.newRequest(op, input, output)
3239	return
3240}
3241
3242// PutResolverQueryLogConfigPolicy API operation for Amazon Route 53 Resolver.
3243//
3244// Specifies an AWS account that you want to share a query logging configuration
3245// with, the query logging configuration that you want to share, and the operations
3246// that you want the account to be able to perform on the configuration.
3247//
3248// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3249// with awserr.Error's Code and Message methods to get detailed information about
3250// the error.
3251//
3252// See the AWS API reference guide for Amazon Route 53 Resolver's
3253// API operation PutResolverQueryLogConfigPolicy for usage and error information.
3254//
3255// Returned Error Types:
3256//   * InvalidPolicyDocument
3257//   The specified Resolver rule policy is invalid.
3258//
3259//   * InvalidParameterException
3260//   One or more parameters in this request are not valid.
3261//
3262//   * InvalidRequestException
3263//   The request is invalid.
3264//
3265//   * UnknownResourceException
3266//   The specified resource doesn't exist.
3267//
3268//   * InternalServiceErrorException
3269//   We encountered an unknown error. Try again in a few minutes.
3270//
3271//   * AccessDeniedException
3272//   The current account doesn't have the IAM permissions required to perform
3273//   the specified Resolver operation.
3274//
3275// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/PutResolverQueryLogConfigPolicy
3276func (c *Route53Resolver) PutResolverQueryLogConfigPolicy(input *PutResolverQueryLogConfigPolicyInput) (*PutResolverQueryLogConfigPolicyOutput, error) {
3277	req, out := c.PutResolverQueryLogConfigPolicyRequest(input)
3278	return out, req.Send()
3279}
3280
3281// PutResolverQueryLogConfigPolicyWithContext is the same as PutResolverQueryLogConfigPolicy with the addition of
3282// the ability to pass a context and additional request options.
3283//
3284// See PutResolverQueryLogConfigPolicy for details on how to use this API operation.
3285//
3286// The context must be non-nil and will be used for request cancellation. If
3287// the context is nil a panic will occur. In the future the SDK may create
3288// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3289// for more information on using Contexts.
3290func (c *Route53Resolver) PutResolverQueryLogConfigPolicyWithContext(ctx aws.Context, input *PutResolverQueryLogConfigPolicyInput, opts ...request.Option) (*PutResolverQueryLogConfigPolicyOutput, error) {
3291	req, out := c.PutResolverQueryLogConfigPolicyRequest(input)
3292	req.SetContext(ctx)
3293	req.ApplyOptions(opts...)
3294	return out, req.Send()
3295}
3296
3297const opPutResolverRulePolicy = "PutResolverRulePolicy"
3298
3299// PutResolverRulePolicyRequest generates a "aws/request.Request" representing the
3300// client's request for the PutResolverRulePolicy operation. The "output" return
3301// value will be populated with the request's response once the request completes
3302// successfully.
3303//
3304// Use "Send" method on the returned Request to send the API call to the service.
3305// the "output" return value is not valid until after Send returns without error.
3306//
3307// See PutResolverRulePolicy for more information on using the PutResolverRulePolicy
3308// API call, and error handling.
3309//
3310// This method is useful when you want to inject custom logic or configuration
3311// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3312//
3313//
3314//    // Example sending a request using the PutResolverRulePolicyRequest method.
3315//    req, resp := client.PutResolverRulePolicyRequest(params)
3316//
3317//    err := req.Send()
3318//    if err == nil { // resp is now filled
3319//        fmt.Println(resp)
3320//    }
3321//
3322// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/PutResolverRulePolicy
3323func (c *Route53Resolver) PutResolverRulePolicyRequest(input *PutResolverRulePolicyInput) (req *request.Request, output *PutResolverRulePolicyOutput) {
3324	op := &request.Operation{
3325		Name:       opPutResolverRulePolicy,
3326		HTTPMethod: "POST",
3327		HTTPPath:   "/",
3328	}
3329
3330	if input == nil {
3331		input = &PutResolverRulePolicyInput{}
3332	}
3333
3334	output = &PutResolverRulePolicyOutput{}
3335	req = c.newRequest(op, input, output)
3336	return
3337}
3338
3339// PutResolverRulePolicy API operation for Amazon Route 53 Resolver.
3340//
3341// Specifies an AWS rule that you want to share with another account, the account
3342// that you want to share the rule with, and the operations that you want the
3343// account to be able to perform on the rule.
3344//
3345// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3346// with awserr.Error's Code and Message methods to get detailed information about
3347// the error.
3348//
3349// See the AWS API reference guide for Amazon Route 53 Resolver's
3350// API operation PutResolverRulePolicy for usage and error information.
3351//
3352// Returned Error Types:
3353//   * InvalidPolicyDocument
3354//   The specified Resolver rule policy is invalid.
3355//
3356//   * InvalidParameterException
3357//   One or more parameters in this request are not valid.
3358//
3359//   * UnknownResourceException
3360//   The specified resource doesn't exist.
3361//
3362//   * InternalServiceErrorException
3363//   We encountered an unknown error. Try again in a few minutes.
3364//
3365// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/PutResolverRulePolicy
3366func (c *Route53Resolver) PutResolverRulePolicy(input *PutResolverRulePolicyInput) (*PutResolverRulePolicyOutput, error) {
3367	req, out := c.PutResolverRulePolicyRequest(input)
3368	return out, req.Send()
3369}
3370
3371// PutResolverRulePolicyWithContext is the same as PutResolverRulePolicy with the addition of
3372// the ability to pass a context and additional request options.
3373//
3374// See PutResolverRulePolicy for details on how to use this API operation.
3375//
3376// The context must be non-nil and will be used for request cancellation. If
3377// the context is nil a panic will occur. In the future the SDK may create
3378// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3379// for more information on using Contexts.
3380func (c *Route53Resolver) PutResolverRulePolicyWithContext(ctx aws.Context, input *PutResolverRulePolicyInput, opts ...request.Option) (*PutResolverRulePolicyOutput, error) {
3381	req, out := c.PutResolverRulePolicyRequest(input)
3382	req.SetContext(ctx)
3383	req.ApplyOptions(opts...)
3384	return out, req.Send()
3385}
3386
3387const opTagResource = "TagResource"
3388
3389// TagResourceRequest generates a "aws/request.Request" representing the
3390// client's request for the TagResource operation. The "output" return
3391// value will be populated with the request's response once the request completes
3392// successfully.
3393//
3394// Use "Send" method on the returned Request to send the API call to the service.
3395// the "output" return value is not valid until after Send returns without error.
3396//
3397// See TagResource for more information on using the TagResource
3398// API call, and error handling.
3399//
3400// This method is useful when you want to inject custom logic or configuration
3401// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3402//
3403//
3404//    // Example sending a request using the TagResourceRequest method.
3405//    req, resp := client.TagResourceRequest(params)
3406//
3407//    err := req.Send()
3408//    if err == nil { // resp is now filled
3409//        fmt.Println(resp)
3410//    }
3411//
3412// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/TagResource
3413func (c *Route53Resolver) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
3414	op := &request.Operation{
3415		Name:       opTagResource,
3416		HTTPMethod: "POST",
3417		HTTPPath:   "/",
3418	}
3419
3420	if input == nil {
3421		input = &TagResourceInput{}
3422	}
3423
3424	output = &TagResourceOutput{}
3425	req = c.newRequest(op, input, output)
3426	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3427	return
3428}
3429
3430// TagResource API operation for Amazon Route 53 Resolver.
3431//
3432// Adds one or more tags to a specified resource.
3433//
3434// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3435// with awserr.Error's Code and Message methods to get detailed information about
3436// the error.
3437//
3438// See the AWS API reference guide for Amazon Route 53 Resolver's
3439// API operation TagResource for usage and error information.
3440//
3441// Returned Error Types:
3442//   * LimitExceededException
3443//   The request caused one or more limits to be exceeded.
3444//
3445//   * ResourceNotFoundException
3446//   The specified resource doesn't exist.
3447//
3448//   * InvalidParameterException
3449//   One or more parameters in this request are not valid.
3450//
3451//   * InvalidRequestException
3452//   The request is invalid.
3453//
3454//   * InvalidTagException
3455//   The specified tag is invalid.
3456//
3457//   * InternalServiceErrorException
3458//   We encountered an unknown error. Try again in a few minutes.
3459//
3460//   * ThrottlingException
3461//   The request was throttled. Try again in a few minutes.
3462//
3463// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/TagResource
3464func (c *Route53Resolver) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
3465	req, out := c.TagResourceRequest(input)
3466	return out, req.Send()
3467}
3468
3469// TagResourceWithContext is the same as TagResource with the addition of
3470// the ability to pass a context and additional request options.
3471//
3472// See TagResource for details on how to use this API operation.
3473//
3474// The context must be non-nil and will be used for request cancellation. If
3475// the context is nil a panic will occur. In the future the SDK may create
3476// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3477// for more information on using Contexts.
3478func (c *Route53Resolver) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
3479	req, out := c.TagResourceRequest(input)
3480	req.SetContext(ctx)
3481	req.ApplyOptions(opts...)
3482	return out, req.Send()
3483}
3484
3485const opUntagResource = "UntagResource"
3486
3487// UntagResourceRequest generates a "aws/request.Request" representing the
3488// client's request for the UntagResource operation. The "output" return
3489// value will be populated with the request's response once the request completes
3490// successfully.
3491//
3492// Use "Send" method on the returned Request to send the API call to the service.
3493// the "output" return value is not valid until after Send returns without error.
3494//
3495// See UntagResource for more information on using the UntagResource
3496// API call, and error handling.
3497//
3498// This method is useful when you want to inject custom logic or configuration
3499// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3500//
3501//
3502//    // Example sending a request using the UntagResourceRequest method.
3503//    req, resp := client.UntagResourceRequest(params)
3504//
3505//    err := req.Send()
3506//    if err == nil { // resp is now filled
3507//        fmt.Println(resp)
3508//    }
3509//
3510// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UntagResource
3511func (c *Route53Resolver) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
3512	op := &request.Operation{
3513		Name:       opUntagResource,
3514		HTTPMethod: "POST",
3515		HTTPPath:   "/",
3516	}
3517
3518	if input == nil {
3519		input = &UntagResourceInput{}
3520	}
3521
3522	output = &UntagResourceOutput{}
3523	req = c.newRequest(op, input, output)
3524	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3525	return
3526}
3527
3528// UntagResource API operation for Amazon Route 53 Resolver.
3529//
3530// Removes one or more tags from a specified resource.
3531//
3532// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3533// with awserr.Error's Code and Message methods to get detailed information about
3534// the error.
3535//
3536// See the AWS API reference guide for Amazon Route 53 Resolver's
3537// API operation UntagResource for usage and error information.
3538//
3539// Returned Error Types:
3540//   * ResourceNotFoundException
3541//   The specified resource doesn't exist.
3542//
3543//   * InvalidParameterException
3544//   One or more parameters in this request are not valid.
3545//
3546//   * InvalidRequestException
3547//   The request is invalid.
3548//
3549//   * InternalServiceErrorException
3550//   We encountered an unknown error. Try again in a few minutes.
3551//
3552//   * ThrottlingException
3553//   The request was throttled. Try again in a few minutes.
3554//
3555// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UntagResource
3556func (c *Route53Resolver) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
3557	req, out := c.UntagResourceRequest(input)
3558	return out, req.Send()
3559}
3560
3561// UntagResourceWithContext is the same as UntagResource with the addition of
3562// the ability to pass a context and additional request options.
3563//
3564// See UntagResource for details on how to use this API operation.
3565//
3566// The context must be non-nil and will be used for request cancellation. If
3567// the context is nil a panic will occur. In the future the SDK may create
3568// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3569// for more information on using Contexts.
3570func (c *Route53Resolver) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
3571	req, out := c.UntagResourceRequest(input)
3572	req.SetContext(ctx)
3573	req.ApplyOptions(opts...)
3574	return out, req.Send()
3575}
3576
3577const opUpdateResolverDnssecConfig = "UpdateResolverDnssecConfig"
3578
3579// UpdateResolverDnssecConfigRequest generates a "aws/request.Request" representing the
3580// client's request for the UpdateResolverDnssecConfig operation. The "output" return
3581// value will be populated with the request's response once the request completes
3582// successfully.
3583//
3584// Use "Send" method on the returned Request to send the API call to the service.
3585// the "output" return value is not valid until after Send returns without error.
3586//
3587// See UpdateResolverDnssecConfig for more information on using the UpdateResolverDnssecConfig
3588// API call, and error handling.
3589//
3590// This method is useful when you want to inject custom logic or configuration
3591// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3592//
3593//
3594//    // Example sending a request using the UpdateResolverDnssecConfigRequest method.
3595//    req, resp := client.UpdateResolverDnssecConfigRequest(params)
3596//
3597//    err := req.Send()
3598//    if err == nil { // resp is now filled
3599//        fmt.Println(resp)
3600//    }
3601//
3602// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UpdateResolverDnssecConfig
3603func (c *Route53Resolver) UpdateResolverDnssecConfigRequest(input *UpdateResolverDnssecConfigInput) (req *request.Request, output *UpdateResolverDnssecConfigOutput) {
3604	op := &request.Operation{
3605		Name:       opUpdateResolverDnssecConfig,
3606		HTTPMethod: "POST",
3607		HTTPPath:   "/",
3608	}
3609
3610	if input == nil {
3611		input = &UpdateResolverDnssecConfigInput{}
3612	}
3613
3614	output = &UpdateResolverDnssecConfigOutput{}
3615	req = c.newRequest(op, input, output)
3616	return
3617}
3618
3619// UpdateResolverDnssecConfig API operation for Amazon Route 53 Resolver.
3620//
3621// Updates an existing DNSSEC validation configuration. If there is no existing
3622// DNSSEC validation configuration, one is created.
3623//
3624// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3625// with awserr.Error's Code and Message methods to get detailed information about
3626// the error.
3627//
3628// See the AWS API reference guide for Amazon Route 53 Resolver's
3629// API operation UpdateResolverDnssecConfig for usage and error information.
3630//
3631// Returned Error Types:
3632//   * InvalidParameterException
3633//   One or more parameters in this request are not valid.
3634//
3635//   * ResourceNotFoundException
3636//   The specified resource doesn't exist.
3637//
3638//   * InvalidRequestException
3639//   The request is invalid.
3640//
3641//   * InternalServiceErrorException
3642//   We encountered an unknown error. Try again in a few minutes.
3643//
3644//   * ThrottlingException
3645//   The request was throttled. Try again in a few minutes.
3646//
3647//   * AccessDeniedException
3648//   The current account doesn't have the IAM permissions required to perform
3649//   the specified Resolver operation.
3650//
3651// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UpdateResolverDnssecConfig
3652func (c *Route53Resolver) UpdateResolverDnssecConfig(input *UpdateResolverDnssecConfigInput) (*UpdateResolverDnssecConfigOutput, error) {
3653	req, out := c.UpdateResolverDnssecConfigRequest(input)
3654	return out, req.Send()
3655}
3656
3657// UpdateResolverDnssecConfigWithContext is the same as UpdateResolverDnssecConfig with the addition of
3658// the ability to pass a context and additional request options.
3659//
3660// See UpdateResolverDnssecConfig for details on how to use this API operation.
3661//
3662// The context must be non-nil and will be used for request cancellation. If
3663// the context is nil a panic will occur. In the future the SDK may create
3664// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3665// for more information on using Contexts.
3666func (c *Route53Resolver) UpdateResolverDnssecConfigWithContext(ctx aws.Context, input *UpdateResolverDnssecConfigInput, opts ...request.Option) (*UpdateResolverDnssecConfigOutput, error) {
3667	req, out := c.UpdateResolverDnssecConfigRequest(input)
3668	req.SetContext(ctx)
3669	req.ApplyOptions(opts...)
3670	return out, req.Send()
3671}
3672
3673const opUpdateResolverEndpoint = "UpdateResolverEndpoint"
3674
3675// UpdateResolverEndpointRequest generates a "aws/request.Request" representing the
3676// client's request for the UpdateResolverEndpoint operation. The "output" return
3677// value will be populated with the request's response once the request completes
3678// successfully.
3679//
3680// Use "Send" method on the returned Request to send the API call to the service.
3681// the "output" return value is not valid until after Send returns without error.
3682//
3683// See UpdateResolverEndpoint for more information on using the UpdateResolverEndpoint
3684// API call, and error handling.
3685//
3686// This method is useful when you want to inject custom logic or configuration
3687// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3688//
3689//
3690//    // Example sending a request using the UpdateResolverEndpointRequest method.
3691//    req, resp := client.UpdateResolverEndpointRequest(params)
3692//
3693//    err := req.Send()
3694//    if err == nil { // resp is now filled
3695//        fmt.Println(resp)
3696//    }
3697//
3698// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UpdateResolverEndpoint
3699func (c *Route53Resolver) UpdateResolverEndpointRequest(input *UpdateResolverEndpointInput) (req *request.Request, output *UpdateResolverEndpointOutput) {
3700	op := &request.Operation{
3701		Name:       opUpdateResolverEndpoint,
3702		HTTPMethod: "POST",
3703		HTTPPath:   "/",
3704	}
3705
3706	if input == nil {
3707		input = &UpdateResolverEndpointInput{}
3708	}
3709
3710	output = &UpdateResolverEndpointOutput{}
3711	req = c.newRequest(op, input, output)
3712	return
3713}
3714
3715// UpdateResolverEndpoint API operation for Amazon Route 53 Resolver.
3716//
3717// Updates the name of an inbound or an outbound Resolver endpoint.
3718//
3719// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3720// with awserr.Error's Code and Message methods to get detailed information about
3721// the error.
3722//
3723// See the AWS API reference guide for Amazon Route 53 Resolver's
3724// API operation UpdateResolverEndpoint for usage and error information.
3725//
3726// Returned Error Types:
3727//   * ResourceNotFoundException
3728//   The specified resource doesn't exist.
3729//
3730//   * InvalidParameterException
3731//   One or more parameters in this request are not valid.
3732//
3733//   * InvalidRequestException
3734//   The request is invalid.
3735//
3736//   * InternalServiceErrorException
3737//   We encountered an unknown error. Try again in a few minutes.
3738//
3739//   * ThrottlingException
3740//   The request was throttled. Try again in a few minutes.
3741//
3742// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UpdateResolverEndpoint
3743func (c *Route53Resolver) UpdateResolverEndpoint(input *UpdateResolverEndpointInput) (*UpdateResolverEndpointOutput, error) {
3744	req, out := c.UpdateResolverEndpointRequest(input)
3745	return out, req.Send()
3746}
3747
3748// UpdateResolverEndpointWithContext is the same as UpdateResolverEndpoint with the addition of
3749// the ability to pass a context and additional request options.
3750//
3751// See UpdateResolverEndpoint for details on how to use this API operation.
3752//
3753// The context must be non-nil and will be used for request cancellation. If
3754// the context is nil a panic will occur. In the future the SDK may create
3755// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3756// for more information on using Contexts.
3757func (c *Route53Resolver) UpdateResolverEndpointWithContext(ctx aws.Context, input *UpdateResolverEndpointInput, opts ...request.Option) (*UpdateResolverEndpointOutput, error) {
3758	req, out := c.UpdateResolverEndpointRequest(input)
3759	req.SetContext(ctx)
3760	req.ApplyOptions(opts...)
3761	return out, req.Send()
3762}
3763
3764const opUpdateResolverRule = "UpdateResolverRule"
3765
3766// UpdateResolverRuleRequest generates a "aws/request.Request" representing the
3767// client's request for the UpdateResolverRule operation. The "output" return
3768// value will be populated with the request's response once the request completes
3769// successfully.
3770//
3771// Use "Send" method on the returned Request to send the API call to the service.
3772// the "output" return value is not valid until after Send returns without error.
3773//
3774// See UpdateResolverRule for more information on using the UpdateResolverRule
3775// API call, and error handling.
3776//
3777// This method is useful when you want to inject custom logic or configuration
3778// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3779//
3780//
3781//    // Example sending a request using the UpdateResolverRuleRequest method.
3782//    req, resp := client.UpdateResolverRuleRequest(params)
3783//
3784//    err := req.Send()
3785//    if err == nil { // resp is now filled
3786//        fmt.Println(resp)
3787//    }
3788//
3789// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UpdateResolverRule
3790func (c *Route53Resolver) UpdateResolverRuleRequest(input *UpdateResolverRuleInput) (req *request.Request, output *UpdateResolverRuleOutput) {
3791	op := &request.Operation{
3792		Name:       opUpdateResolverRule,
3793		HTTPMethod: "POST",
3794		HTTPPath:   "/",
3795	}
3796
3797	if input == nil {
3798		input = &UpdateResolverRuleInput{}
3799	}
3800
3801	output = &UpdateResolverRuleOutput{}
3802	req = c.newRequest(op, input, output)
3803	return
3804}
3805
3806// UpdateResolverRule API operation for Amazon Route 53 Resolver.
3807//
3808// Updates settings for a specified Resolver rule. ResolverRuleId is required,
3809// and all other parameters are optional. If you don't specify a parameter,
3810// it retains its current value.
3811//
3812// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3813// with awserr.Error's Code and Message methods to get detailed information about
3814// the error.
3815//
3816// See the AWS API reference guide for Amazon Route 53 Resolver's
3817// API operation UpdateResolverRule for usage and error information.
3818//
3819// Returned Error Types:
3820//   * InvalidRequestException
3821//   The request is invalid.
3822//
3823//   * InvalidParameterException
3824//   One or more parameters in this request are not valid.
3825//
3826//   * ResourceNotFoundException
3827//   The specified resource doesn't exist.
3828//
3829//   * ResourceUnavailableException
3830//   The specified resource isn't available.
3831//
3832//   * LimitExceededException
3833//   The request caused one or more limits to be exceeded.
3834//
3835//   * InternalServiceErrorException
3836//   We encountered an unknown error. Try again in a few minutes.
3837//
3838//   * ThrottlingException
3839//   The request was throttled. Try again in a few minutes.
3840//
3841// See also, https://docs.aws.amazon.com/goto/WebAPI/route53resolver-2018-04-01/UpdateResolverRule
3842func (c *Route53Resolver) UpdateResolverRule(input *UpdateResolverRuleInput) (*UpdateResolverRuleOutput, error) {
3843	req, out := c.UpdateResolverRuleRequest(input)
3844	return out, req.Send()
3845}
3846
3847// UpdateResolverRuleWithContext is the same as UpdateResolverRule with the addition of
3848// the ability to pass a context and additional request options.
3849//
3850// See UpdateResolverRule for details on how to use this API operation.
3851//
3852// The context must be non-nil and will be used for request cancellation. If
3853// the context is nil a panic will occur. In the future the SDK may create
3854// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3855// for more information on using Contexts.
3856func (c *Route53Resolver) UpdateResolverRuleWithContext(ctx aws.Context, input *UpdateResolverRuleInput, opts ...request.Option) (*UpdateResolverRuleOutput, error) {
3857	req, out := c.UpdateResolverRuleRequest(input)
3858	req.SetContext(ctx)
3859	req.ApplyOptions(opts...)
3860	return out, req.Send()
3861}
3862
3863// The current account doesn't have the IAM permissions required to perform
3864// the specified Resolver operation.
3865type AccessDeniedException struct {
3866	_            struct{}                  `type:"structure"`
3867	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
3868
3869	Message_ *string `locationName:"Message" type:"string"`
3870}
3871
3872// String returns the string representation
3873func (s AccessDeniedException) String() string {
3874	return awsutil.Prettify(s)
3875}
3876
3877// GoString returns the string representation
3878func (s AccessDeniedException) GoString() string {
3879	return s.String()
3880}
3881
3882func newErrorAccessDeniedException(v protocol.ResponseMetadata) error {
3883	return &AccessDeniedException{
3884		RespMetadata: v,
3885	}
3886}
3887
3888// Code returns the exception type name.
3889func (s *AccessDeniedException) Code() string {
3890	return "AccessDeniedException"
3891}
3892
3893// Message returns the exception's message.
3894func (s *AccessDeniedException) Message() string {
3895	if s.Message_ != nil {
3896		return *s.Message_
3897	}
3898	return ""
3899}
3900
3901// OrigErr always returns nil, satisfies awserr.Error interface.
3902func (s *AccessDeniedException) OrigErr() error {
3903	return nil
3904}
3905
3906func (s *AccessDeniedException) Error() string {
3907	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
3908}
3909
3910// Status code returns the HTTP status code for the request's response error.
3911func (s *AccessDeniedException) StatusCode() int {
3912	return s.RespMetadata.StatusCode
3913}
3914
3915// RequestID returns the service's response RequestID for request.
3916func (s *AccessDeniedException) RequestID() string {
3917	return s.RespMetadata.RequestID
3918}
3919
3920type AssociateResolverEndpointIpAddressInput struct {
3921	_ struct{} `type:"structure"`
3922
3923	// Either the IPv4 address that you want to add to a Resolver endpoint or a
3924	// subnet ID. If you specify a subnet ID, Resolver chooses an IP address for
3925	// you from the available IPs in the specified subnet.
3926	//
3927	// IpAddress is a required field
3928	IpAddress *IpAddressUpdate `type:"structure" required:"true"`
3929
3930	// The ID of the Resolver endpoint that you want to associate IP addresses with.
3931	//
3932	// ResolverEndpointId is a required field
3933	ResolverEndpointId *string `min:"1" type:"string" required:"true"`
3934}
3935
3936// String returns the string representation
3937func (s AssociateResolverEndpointIpAddressInput) String() string {
3938	return awsutil.Prettify(s)
3939}
3940
3941// GoString returns the string representation
3942func (s AssociateResolverEndpointIpAddressInput) GoString() string {
3943	return s.String()
3944}
3945
3946// Validate inspects the fields of the type to determine if they are valid.
3947func (s *AssociateResolverEndpointIpAddressInput) Validate() error {
3948	invalidParams := request.ErrInvalidParams{Context: "AssociateResolverEndpointIpAddressInput"}
3949	if s.IpAddress == nil {
3950		invalidParams.Add(request.NewErrParamRequired("IpAddress"))
3951	}
3952	if s.ResolverEndpointId == nil {
3953		invalidParams.Add(request.NewErrParamRequired("ResolverEndpointId"))
3954	}
3955	if s.ResolverEndpointId != nil && len(*s.ResolverEndpointId) < 1 {
3956		invalidParams.Add(request.NewErrParamMinLen("ResolverEndpointId", 1))
3957	}
3958	if s.IpAddress != nil {
3959		if err := s.IpAddress.Validate(); err != nil {
3960			invalidParams.AddNested("IpAddress", err.(request.ErrInvalidParams))
3961		}
3962	}
3963
3964	if invalidParams.Len() > 0 {
3965		return invalidParams
3966	}
3967	return nil
3968}
3969
3970// SetIpAddress sets the IpAddress field's value.
3971func (s *AssociateResolverEndpointIpAddressInput) SetIpAddress(v *IpAddressUpdate) *AssociateResolverEndpointIpAddressInput {
3972	s.IpAddress = v
3973	return s
3974}
3975
3976// SetResolverEndpointId sets the ResolverEndpointId field's value.
3977func (s *AssociateResolverEndpointIpAddressInput) SetResolverEndpointId(v string) *AssociateResolverEndpointIpAddressInput {
3978	s.ResolverEndpointId = &v
3979	return s
3980}
3981
3982type AssociateResolverEndpointIpAddressOutput struct {
3983	_ struct{} `type:"structure"`
3984
3985	// The response to an AssociateResolverEndpointIpAddress request.
3986	ResolverEndpoint *ResolverEndpoint `type:"structure"`
3987}
3988
3989// String returns the string representation
3990func (s AssociateResolverEndpointIpAddressOutput) String() string {
3991	return awsutil.Prettify(s)
3992}
3993
3994// GoString returns the string representation
3995func (s AssociateResolverEndpointIpAddressOutput) GoString() string {
3996	return s.String()
3997}
3998
3999// SetResolverEndpoint sets the ResolverEndpoint field's value.
4000func (s *AssociateResolverEndpointIpAddressOutput) SetResolverEndpoint(v *ResolverEndpoint) *AssociateResolverEndpointIpAddressOutput {
4001	s.ResolverEndpoint = v
4002	return s
4003}
4004
4005type AssociateResolverQueryLogConfigInput struct {
4006	_ struct{} `type:"structure"`
4007
4008	// The ID of the query logging configuration that you want to associate a VPC
4009	// with.
4010	//
4011	// ResolverQueryLogConfigId is a required field
4012	ResolverQueryLogConfigId *string `min:"1" type:"string" required:"true"`
4013
4014	// The ID of an Amazon VPC that you want this query logging configuration to
4015	// log queries for.
4016	//
4017	// The VPCs and the query logging configuration must be in the same Region.
4018	//
4019	// ResourceId is a required field
4020	ResourceId *string `min:"1" type:"string" required:"true"`
4021}
4022
4023// String returns the string representation
4024func (s AssociateResolverQueryLogConfigInput) String() string {
4025	return awsutil.Prettify(s)
4026}
4027
4028// GoString returns the string representation
4029func (s AssociateResolverQueryLogConfigInput) GoString() string {
4030	return s.String()
4031}
4032
4033// Validate inspects the fields of the type to determine if they are valid.
4034func (s *AssociateResolverQueryLogConfigInput) Validate() error {
4035	invalidParams := request.ErrInvalidParams{Context: "AssociateResolverQueryLogConfigInput"}
4036	if s.ResolverQueryLogConfigId == nil {
4037		invalidParams.Add(request.NewErrParamRequired("ResolverQueryLogConfigId"))
4038	}
4039	if s.ResolverQueryLogConfigId != nil && len(*s.ResolverQueryLogConfigId) < 1 {
4040		invalidParams.Add(request.NewErrParamMinLen("ResolverQueryLogConfigId", 1))
4041	}
4042	if s.ResourceId == nil {
4043		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
4044	}
4045	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
4046		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
4047	}
4048
4049	if invalidParams.Len() > 0 {
4050		return invalidParams
4051	}
4052	return nil
4053}
4054
4055// SetResolverQueryLogConfigId sets the ResolverQueryLogConfigId field's value.
4056func (s *AssociateResolverQueryLogConfigInput) SetResolverQueryLogConfigId(v string) *AssociateResolverQueryLogConfigInput {
4057	s.ResolverQueryLogConfigId = &v
4058	return s
4059}
4060
4061// SetResourceId sets the ResourceId field's value.
4062func (s *AssociateResolverQueryLogConfigInput) SetResourceId(v string) *AssociateResolverQueryLogConfigInput {
4063	s.ResourceId = &v
4064	return s
4065}
4066
4067type AssociateResolverQueryLogConfigOutput struct {
4068	_ struct{} `type:"structure"`
4069
4070	// A complex type that contains settings for a specified association between
4071	// an Amazon VPC and a query logging configuration.
4072	ResolverQueryLogConfigAssociation *ResolverQueryLogConfigAssociation `type:"structure"`
4073}
4074
4075// String returns the string representation
4076func (s AssociateResolverQueryLogConfigOutput) String() string {
4077	return awsutil.Prettify(s)
4078}
4079
4080// GoString returns the string representation
4081func (s AssociateResolverQueryLogConfigOutput) GoString() string {
4082	return s.String()
4083}
4084
4085// SetResolverQueryLogConfigAssociation sets the ResolverQueryLogConfigAssociation field's value.
4086func (s *AssociateResolverQueryLogConfigOutput) SetResolverQueryLogConfigAssociation(v *ResolverQueryLogConfigAssociation) *AssociateResolverQueryLogConfigOutput {
4087	s.ResolverQueryLogConfigAssociation = v
4088	return s
4089}
4090
4091type AssociateResolverRuleInput struct {
4092	_ struct{} `type:"structure"`
4093
4094	// A name for the association that you're creating between a Resolver rule and
4095	// a VPC.
4096	Name *string `type:"string"`
4097
4098	// The ID of the Resolver rule that you want to associate with the VPC. To list
4099	// the existing Resolver rules, use ListResolverRules (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverRules.html).
4100	//
4101	// ResolverRuleId is a required field
4102	ResolverRuleId *string `min:"1" type:"string" required:"true"`
4103
4104	// The ID of the VPC that you want to associate the Resolver rule with.
4105	//
4106	// VPCId is a required field
4107	VPCId *string `min:"1" type:"string" required:"true"`
4108}
4109
4110// String returns the string representation
4111func (s AssociateResolverRuleInput) String() string {
4112	return awsutil.Prettify(s)
4113}
4114
4115// GoString returns the string representation
4116func (s AssociateResolverRuleInput) GoString() string {
4117	return s.String()
4118}
4119
4120// Validate inspects the fields of the type to determine if they are valid.
4121func (s *AssociateResolverRuleInput) Validate() error {
4122	invalidParams := request.ErrInvalidParams{Context: "AssociateResolverRuleInput"}
4123	if s.ResolverRuleId == nil {
4124		invalidParams.Add(request.NewErrParamRequired("ResolverRuleId"))
4125	}
4126	if s.ResolverRuleId != nil && len(*s.ResolverRuleId) < 1 {
4127		invalidParams.Add(request.NewErrParamMinLen("ResolverRuleId", 1))
4128	}
4129	if s.VPCId == nil {
4130		invalidParams.Add(request.NewErrParamRequired("VPCId"))
4131	}
4132	if s.VPCId != nil && len(*s.VPCId) < 1 {
4133		invalidParams.Add(request.NewErrParamMinLen("VPCId", 1))
4134	}
4135
4136	if invalidParams.Len() > 0 {
4137		return invalidParams
4138	}
4139	return nil
4140}
4141
4142// SetName sets the Name field's value.
4143func (s *AssociateResolverRuleInput) SetName(v string) *AssociateResolverRuleInput {
4144	s.Name = &v
4145	return s
4146}
4147
4148// SetResolverRuleId sets the ResolverRuleId field's value.
4149func (s *AssociateResolverRuleInput) SetResolverRuleId(v string) *AssociateResolverRuleInput {
4150	s.ResolverRuleId = &v
4151	return s
4152}
4153
4154// SetVPCId sets the VPCId field's value.
4155func (s *AssociateResolverRuleInput) SetVPCId(v string) *AssociateResolverRuleInput {
4156	s.VPCId = &v
4157	return s
4158}
4159
4160type AssociateResolverRuleOutput struct {
4161	_ struct{} `type:"structure"`
4162
4163	// Information about the AssociateResolverRule request, including the status
4164	// of the request.
4165	ResolverRuleAssociation *ResolverRuleAssociation `type:"structure"`
4166}
4167
4168// String returns the string representation
4169func (s AssociateResolverRuleOutput) String() string {
4170	return awsutil.Prettify(s)
4171}
4172
4173// GoString returns the string representation
4174func (s AssociateResolverRuleOutput) GoString() string {
4175	return s.String()
4176}
4177
4178// SetResolverRuleAssociation sets the ResolverRuleAssociation field's value.
4179func (s *AssociateResolverRuleOutput) SetResolverRuleAssociation(v *ResolverRuleAssociation) *AssociateResolverRuleOutput {
4180	s.ResolverRuleAssociation = v
4181	return s
4182}
4183
4184type CreateResolverEndpointInput struct {
4185	_ struct{} `type:"structure"`
4186
4187	// A unique string that identifies the request and that allows failed requests
4188	// to be retried without the risk of executing the operation twice. CreatorRequestId
4189	// can be any unique string, for example, a date/time stamp.
4190	//
4191	// CreatorRequestId is a required field
4192	CreatorRequestId *string `min:"1" type:"string" required:"true"`
4193
4194	// Specify the applicable value:
4195	//
4196	//    * INBOUND: Resolver forwards DNS queries to the DNS service for a VPC
4197	//    from your network
4198	//
4199	//    * OUTBOUND: Resolver forwards DNS queries from the DNS service for a VPC
4200	//    to your network
4201	//
4202	// Direction is a required field
4203	Direction *string `type:"string" required:"true" enum:"ResolverEndpointDirection"`
4204
4205	// The subnets and IP addresses in your VPC that DNS queries originate from
4206	// (for outbound endpoints) or that you forward DNS queries to (for inbound
4207	// endpoints). The subnet ID uniquely identifies a VPC.
4208	//
4209	// IpAddresses is a required field
4210	IpAddresses []*IpAddressRequest `min:"1" type:"list" required:"true"`
4211
4212	// A friendly name that lets you easily find a configuration in the Resolver
4213	// dashboard in the Route 53 console.
4214	Name *string `type:"string"`
4215
4216	// The ID of one or more security groups that you want to use to control access
4217	// to this VPC. The security group that you specify must include one or more
4218	// inbound rules (for inbound Resolver endpoints) or outbound rules (for outbound
4219	// Resolver endpoints). Inbound and outbound rules must allow TCP and UDP access.
4220	// For inbound access, open port 53. For outbound access, open the port that
4221	// you're using for DNS queries on your network.
4222	//
4223	// SecurityGroupIds is a required field
4224	SecurityGroupIds []*string `type:"list" required:"true"`
4225
4226	// A list of the tag keys and values that you want to associate with the endpoint.
4227	Tags []*Tag `type:"list"`
4228}
4229
4230// String returns the string representation
4231func (s CreateResolverEndpointInput) String() string {
4232	return awsutil.Prettify(s)
4233}
4234
4235// GoString returns the string representation
4236func (s CreateResolverEndpointInput) GoString() string {
4237	return s.String()
4238}
4239
4240// Validate inspects the fields of the type to determine if they are valid.
4241func (s *CreateResolverEndpointInput) Validate() error {
4242	invalidParams := request.ErrInvalidParams{Context: "CreateResolverEndpointInput"}
4243	if s.CreatorRequestId == nil {
4244		invalidParams.Add(request.NewErrParamRequired("CreatorRequestId"))
4245	}
4246	if s.CreatorRequestId != nil && len(*s.CreatorRequestId) < 1 {
4247		invalidParams.Add(request.NewErrParamMinLen("CreatorRequestId", 1))
4248	}
4249	if s.Direction == nil {
4250		invalidParams.Add(request.NewErrParamRequired("Direction"))
4251	}
4252	if s.IpAddresses == nil {
4253		invalidParams.Add(request.NewErrParamRequired("IpAddresses"))
4254	}
4255	if s.IpAddresses != nil && len(s.IpAddresses) < 1 {
4256		invalidParams.Add(request.NewErrParamMinLen("IpAddresses", 1))
4257	}
4258	if s.SecurityGroupIds == nil {
4259		invalidParams.Add(request.NewErrParamRequired("SecurityGroupIds"))
4260	}
4261	if s.IpAddresses != nil {
4262		for i, v := range s.IpAddresses {
4263			if v == nil {
4264				continue
4265			}
4266			if err := v.Validate(); err != nil {
4267				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "IpAddresses", i), err.(request.ErrInvalidParams))
4268			}
4269		}
4270	}
4271	if s.Tags != nil {
4272		for i, v := range s.Tags {
4273			if v == nil {
4274				continue
4275			}
4276			if err := v.Validate(); err != nil {
4277				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
4278			}
4279		}
4280	}
4281
4282	if invalidParams.Len() > 0 {
4283		return invalidParams
4284	}
4285	return nil
4286}
4287
4288// SetCreatorRequestId sets the CreatorRequestId field's value.
4289func (s *CreateResolverEndpointInput) SetCreatorRequestId(v string) *CreateResolverEndpointInput {
4290	s.CreatorRequestId = &v
4291	return s
4292}
4293
4294// SetDirection sets the Direction field's value.
4295func (s *CreateResolverEndpointInput) SetDirection(v string) *CreateResolverEndpointInput {
4296	s.Direction = &v
4297	return s
4298}
4299
4300// SetIpAddresses sets the IpAddresses field's value.
4301func (s *CreateResolverEndpointInput) SetIpAddresses(v []*IpAddressRequest) *CreateResolverEndpointInput {
4302	s.IpAddresses = v
4303	return s
4304}
4305
4306// SetName sets the Name field's value.
4307func (s *CreateResolverEndpointInput) SetName(v string) *CreateResolverEndpointInput {
4308	s.Name = &v
4309	return s
4310}
4311
4312// SetSecurityGroupIds sets the SecurityGroupIds field's value.
4313func (s *CreateResolverEndpointInput) SetSecurityGroupIds(v []*string) *CreateResolverEndpointInput {
4314	s.SecurityGroupIds = v
4315	return s
4316}
4317
4318// SetTags sets the Tags field's value.
4319func (s *CreateResolverEndpointInput) SetTags(v []*Tag) *CreateResolverEndpointInput {
4320	s.Tags = v
4321	return s
4322}
4323
4324type CreateResolverEndpointOutput struct {
4325	_ struct{} `type:"structure"`
4326
4327	// Information about the CreateResolverEndpoint request, including the status
4328	// of the request.
4329	ResolverEndpoint *ResolverEndpoint `type:"structure"`
4330}
4331
4332// String returns the string representation
4333func (s CreateResolverEndpointOutput) String() string {
4334	return awsutil.Prettify(s)
4335}
4336
4337// GoString returns the string representation
4338func (s CreateResolverEndpointOutput) GoString() string {
4339	return s.String()
4340}
4341
4342// SetResolverEndpoint sets the ResolverEndpoint field's value.
4343func (s *CreateResolverEndpointOutput) SetResolverEndpoint(v *ResolverEndpoint) *CreateResolverEndpointOutput {
4344	s.ResolverEndpoint = v
4345	return s
4346}
4347
4348type CreateResolverQueryLogConfigInput struct {
4349	_ struct{} `type:"structure"`
4350
4351	// A unique string that identifies the request and that allows failed requests
4352	// to be retried without the risk of executing the operation twice. CreatorRequestId
4353	// can be any unique string, for example, a date/time stamp.
4354	CreatorRequestId *string `min:"1" type:"string" idempotencyToken:"true"`
4355
4356	// The ARN of the resource that you want Resolver to send query logs. You can
4357	// send query logs to an S3 bucket, a CloudWatch Logs log group, or a Kinesis
4358	// Data Firehose delivery stream. Examples of valid values include the following:
4359	//
4360	//    * S3 bucket: arn:aws:s3:::examplebucket You can optionally append a file
4361	//    prefix to the end of the ARN. arn:aws:s3:::examplebucket/development/
4362	//
4363	//    * CloudWatch Logs log group: arn:aws:logs:us-west-1:123456789012:log-group:/mystack-testgroup-12ABC1AB12A1:*
4364	//
4365	//    * Kinesis Data Firehose delivery stream: arn:aws:kinesis:us-east-2:0123456789:stream/my_stream_name
4366	//
4367	// DestinationArn is a required field
4368	DestinationArn *string `min:"1" type:"string" required:"true"`
4369
4370	// The name that you want to give the query logging configuration
4371	//
4372	// Name is a required field
4373	Name *string `min:"1" type:"string" required:"true"`
4374
4375	// A list of the tag keys and values that you want to associate with the query
4376	// logging configuration.
4377	Tags []*Tag `type:"list"`
4378}
4379
4380// String returns the string representation
4381func (s CreateResolverQueryLogConfigInput) String() string {
4382	return awsutil.Prettify(s)
4383}
4384
4385// GoString returns the string representation
4386func (s CreateResolverQueryLogConfigInput) GoString() string {
4387	return s.String()
4388}
4389
4390// Validate inspects the fields of the type to determine if they are valid.
4391func (s *CreateResolverQueryLogConfigInput) Validate() error {
4392	invalidParams := request.ErrInvalidParams{Context: "CreateResolverQueryLogConfigInput"}
4393	if s.CreatorRequestId != nil && len(*s.CreatorRequestId) < 1 {
4394		invalidParams.Add(request.NewErrParamMinLen("CreatorRequestId", 1))
4395	}
4396	if s.DestinationArn == nil {
4397		invalidParams.Add(request.NewErrParamRequired("DestinationArn"))
4398	}
4399	if s.DestinationArn != nil && len(*s.DestinationArn) < 1 {
4400		invalidParams.Add(request.NewErrParamMinLen("DestinationArn", 1))
4401	}
4402	if s.Name == nil {
4403		invalidParams.Add(request.NewErrParamRequired("Name"))
4404	}
4405	if s.Name != nil && len(*s.Name) < 1 {
4406		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
4407	}
4408	if s.Tags != nil {
4409		for i, v := range s.Tags {
4410			if v == nil {
4411				continue
4412			}
4413			if err := v.Validate(); err != nil {
4414				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
4415			}
4416		}
4417	}
4418
4419	if invalidParams.Len() > 0 {
4420		return invalidParams
4421	}
4422	return nil
4423}
4424
4425// SetCreatorRequestId sets the CreatorRequestId field's value.
4426func (s *CreateResolverQueryLogConfigInput) SetCreatorRequestId(v string) *CreateResolverQueryLogConfigInput {
4427	s.CreatorRequestId = &v
4428	return s
4429}
4430
4431// SetDestinationArn sets the DestinationArn field's value.
4432func (s *CreateResolverQueryLogConfigInput) SetDestinationArn(v string) *CreateResolverQueryLogConfigInput {
4433	s.DestinationArn = &v
4434	return s
4435}
4436
4437// SetName sets the Name field's value.
4438func (s *CreateResolverQueryLogConfigInput) SetName(v string) *CreateResolverQueryLogConfigInput {
4439	s.Name = &v
4440	return s
4441}
4442
4443// SetTags sets the Tags field's value.
4444func (s *CreateResolverQueryLogConfigInput) SetTags(v []*Tag) *CreateResolverQueryLogConfigInput {
4445	s.Tags = v
4446	return s
4447}
4448
4449type CreateResolverQueryLogConfigOutput struct {
4450	_ struct{} `type:"structure"`
4451
4452	// Information about the CreateResolverQueryLogConfig request, including the
4453	// status of the request.
4454	ResolverQueryLogConfig *ResolverQueryLogConfig `type:"structure"`
4455}
4456
4457// String returns the string representation
4458func (s CreateResolverQueryLogConfigOutput) String() string {
4459	return awsutil.Prettify(s)
4460}
4461
4462// GoString returns the string representation
4463func (s CreateResolverQueryLogConfigOutput) GoString() string {
4464	return s.String()
4465}
4466
4467// SetResolverQueryLogConfig sets the ResolverQueryLogConfig field's value.
4468func (s *CreateResolverQueryLogConfigOutput) SetResolverQueryLogConfig(v *ResolverQueryLogConfig) *CreateResolverQueryLogConfigOutput {
4469	s.ResolverQueryLogConfig = v
4470	return s
4471}
4472
4473type CreateResolverRuleInput struct {
4474	_ struct{} `type:"structure"`
4475
4476	// A unique string that identifies the request and that allows failed requests
4477	// to be retried without the risk of executing the operation twice. CreatorRequestId
4478	// can be any unique string, for example, a date/time stamp.
4479	//
4480	// CreatorRequestId is a required field
4481	CreatorRequestId *string `min:"1" type:"string" required:"true"`
4482
4483	// DNS queries for this domain name are forwarded to the IP addresses that you
4484	// specify in TargetIps. If a query matches multiple Resolver rules (example.com
4485	// and www.example.com), outbound DNS queries are routed using the Resolver
4486	// rule that contains the most specific domain name (www.example.com).
4487	//
4488	// DomainName is a required field
4489	DomainName *string `min:"1" type:"string" required:"true"`
4490
4491	// A friendly name that lets you easily find a rule in the Resolver dashboard
4492	// in the Route 53 console.
4493	Name *string `type:"string"`
4494
4495	// The ID of the outbound Resolver endpoint that you want to use to route DNS
4496	// queries to the IP addresses that you specify in TargetIps.
4497	ResolverEndpointId *string `min:"1" type:"string"`
4498
4499	// When you want to forward DNS queries for specified domain name to resolvers
4500	// on your network, specify FORWARD.
4501	//
4502	// When you have a forwarding rule to forward DNS queries for a domain to your
4503	// network and you want Resolver to process queries for a subdomain of that
4504	// domain, specify SYSTEM.
4505	//
4506	// For example, to forward DNS queries for example.com to resolvers on your
4507	// network, you create a rule and specify FORWARD for RuleType. To then have
4508	// Resolver process queries for apex.example.com, you create a rule and specify
4509	// SYSTEM for RuleType.
4510	//
4511	// Currently, only Resolver can create rules that have a value of RECURSIVE
4512	// for RuleType.
4513	//
4514	// RuleType is a required field
4515	RuleType *string `type:"string" required:"true" enum:"RuleTypeOption"`
4516
4517	// A list of the tag keys and values that you want to associate with the endpoint.
4518	Tags []*Tag `type:"list"`
4519
4520	// The IPs that you want Resolver to forward DNS queries to. You can specify
4521	// only IPv4 addresses. Separate IP addresses with a comma.
4522	//
4523	// TargetIps is available only when the value of Rule type is FORWARD.
4524	TargetIps []*TargetAddress `min:"1" type:"list"`
4525}
4526
4527// String returns the string representation
4528func (s CreateResolverRuleInput) String() string {
4529	return awsutil.Prettify(s)
4530}
4531
4532// GoString returns the string representation
4533func (s CreateResolverRuleInput) GoString() string {
4534	return s.String()
4535}
4536
4537// Validate inspects the fields of the type to determine if they are valid.
4538func (s *CreateResolverRuleInput) Validate() error {
4539	invalidParams := request.ErrInvalidParams{Context: "CreateResolverRuleInput"}
4540	if s.CreatorRequestId == nil {
4541		invalidParams.Add(request.NewErrParamRequired("CreatorRequestId"))
4542	}
4543	if s.CreatorRequestId != nil && len(*s.CreatorRequestId) < 1 {
4544		invalidParams.Add(request.NewErrParamMinLen("CreatorRequestId", 1))
4545	}
4546	if s.DomainName == nil {
4547		invalidParams.Add(request.NewErrParamRequired("DomainName"))
4548	}
4549	if s.DomainName != nil && len(*s.DomainName) < 1 {
4550		invalidParams.Add(request.NewErrParamMinLen("DomainName", 1))
4551	}
4552	if s.ResolverEndpointId != nil && len(*s.ResolverEndpointId) < 1 {
4553		invalidParams.Add(request.NewErrParamMinLen("ResolverEndpointId", 1))
4554	}
4555	if s.RuleType == nil {
4556		invalidParams.Add(request.NewErrParamRequired("RuleType"))
4557	}
4558	if s.TargetIps != nil && len(s.TargetIps) < 1 {
4559		invalidParams.Add(request.NewErrParamMinLen("TargetIps", 1))
4560	}
4561	if s.Tags != nil {
4562		for i, v := range s.Tags {
4563			if v == nil {
4564				continue
4565			}
4566			if err := v.Validate(); err != nil {
4567				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
4568			}
4569		}
4570	}
4571	if s.TargetIps != nil {
4572		for i, v := range s.TargetIps {
4573			if v == nil {
4574				continue
4575			}
4576			if err := v.Validate(); err != nil {
4577				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TargetIps", i), err.(request.ErrInvalidParams))
4578			}
4579		}
4580	}
4581
4582	if invalidParams.Len() > 0 {
4583		return invalidParams
4584	}
4585	return nil
4586}
4587
4588// SetCreatorRequestId sets the CreatorRequestId field's value.
4589func (s *CreateResolverRuleInput) SetCreatorRequestId(v string) *CreateResolverRuleInput {
4590	s.CreatorRequestId = &v
4591	return s
4592}
4593
4594// SetDomainName sets the DomainName field's value.
4595func (s *CreateResolverRuleInput) SetDomainName(v string) *CreateResolverRuleInput {
4596	s.DomainName = &v
4597	return s
4598}
4599
4600// SetName sets the Name field's value.
4601func (s *CreateResolverRuleInput) SetName(v string) *CreateResolverRuleInput {
4602	s.Name = &v
4603	return s
4604}
4605
4606// SetResolverEndpointId sets the ResolverEndpointId field's value.
4607func (s *CreateResolverRuleInput) SetResolverEndpointId(v string) *CreateResolverRuleInput {
4608	s.ResolverEndpointId = &v
4609	return s
4610}
4611
4612// SetRuleType sets the RuleType field's value.
4613func (s *CreateResolverRuleInput) SetRuleType(v string) *CreateResolverRuleInput {
4614	s.RuleType = &v
4615	return s
4616}
4617
4618// SetTags sets the Tags field's value.
4619func (s *CreateResolverRuleInput) SetTags(v []*Tag) *CreateResolverRuleInput {
4620	s.Tags = v
4621	return s
4622}
4623
4624// SetTargetIps sets the TargetIps field's value.
4625func (s *CreateResolverRuleInput) SetTargetIps(v []*TargetAddress) *CreateResolverRuleInput {
4626	s.TargetIps = v
4627	return s
4628}
4629
4630type CreateResolverRuleOutput struct {
4631	_ struct{} `type:"structure"`
4632
4633	// Information about the CreateResolverRule request, including the status of
4634	// the request.
4635	ResolverRule *ResolverRule `type:"structure"`
4636}
4637
4638// String returns the string representation
4639func (s CreateResolverRuleOutput) String() string {
4640	return awsutil.Prettify(s)
4641}
4642
4643// GoString returns the string representation
4644func (s CreateResolverRuleOutput) GoString() string {
4645	return s.String()
4646}
4647
4648// SetResolverRule sets the ResolverRule field's value.
4649func (s *CreateResolverRuleOutput) SetResolverRule(v *ResolverRule) *CreateResolverRuleOutput {
4650	s.ResolverRule = v
4651	return s
4652}
4653
4654type DeleteResolverEndpointInput struct {
4655	_ struct{} `type:"structure"`
4656
4657	// The ID of the Resolver endpoint that you want to delete.
4658	//
4659	// ResolverEndpointId is a required field
4660	ResolverEndpointId *string `min:"1" type:"string" required:"true"`
4661}
4662
4663// String returns the string representation
4664func (s DeleteResolverEndpointInput) String() string {
4665	return awsutil.Prettify(s)
4666}
4667
4668// GoString returns the string representation
4669func (s DeleteResolverEndpointInput) GoString() string {
4670	return s.String()
4671}
4672
4673// Validate inspects the fields of the type to determine if they are valid.
4674func (s *DeleteResolverEndpointInput) Validate() error {
4675	invalidParams := request.ErrInvalidParams{Context: "DeleteResolverEndpointInput"}
4676	if s.ResolverEndpointId == nil {
4677		invalidParams.Add(request.NewErrParamRequired("ResolverEndpointId"))
4678	}
4679	if s.ResolverEndpointId != nil && len(*s.ResolverEndpointId) < 1 {
4680		invalidParams.Add(request.NewErrParamMinLen("ResolverEndpointId", 1))
4681	}
4682
4683	if invalidParams.Len() > 0 {
4684		return invalidParams
4685	}
4686	return nil
4687}
4688
4689// SetResolverEndpointId sets the ResolverEndpointId field's value.
4690func (s *DeleteResolverEndpointInput) SetResolverEndpointId(v string) *DeleteResolverEndpointInput {
4691	s.ResolverEndpointId = &v
4692	return s
4693}
4694
4695type DeleteResolverEndpointOutput struct {
4696	_ struct{} `type:"structure"`
4697
4698	// Information about the DeleteResolverEndpoint request, including the status
4699	// of the request.
4700	ResolverEndpoint *ResolverEndpoint `type:"structure"`
4701}
4702
4703// String returns the string representation
4704func (s DeleteResolverEndpointOutput) String() string {
4705	return awsutil.Prettify(s)
4706}
4707
4708// GoString returns the string representation
4709func (s DeleteResolverEndpointOutput) GoString() string {
4710	return s.String()
4711}
4712
4713// SetResolverEndpoint sets the ResolverEndpoint field's value.
4714func (s *DeleteResolverEndpointOutput) SetResolverEndpoint(v *ResolverEndpoint) *DeleteResolverEndpointOutput {
4715	s.ResolverEndpoint = v
4716	return s
4717}
4718
4719type DeleteResolverQueryLogConfigInput struct {
4720	_ struct{} `type:"structure"`
4721
4722	// The ID of the query logging configuration that you want to delete.
4723	//
4724	// ResolverQueryLogConfigId is a required field
4725	ResolverQueryLogConfigId *string `min:"1" type:"string" required:"true"`
4726}
4727
4728// String returns the string representation
4729func (s DeleteResolverQueryLogConfigInput) String() string {
4730	return awsutil.Prettify(s)
4731}
4732
4733// GoString returns the string representation
4734func (s DeleteResolverQueryLogConfigInput) GoString() string {
4735	return s.String()
4736}
4737
4738// Validate inspects the fields of the type to determine if they are valid.
4739func (s *DeleteResolverQueryLogConfigInput) Validate() error {
4740	invalidParams := request.ErrInvalidParams{Context: "DeleteResolverQueryLogConfigInput"}
4741	if s.ResolverQueryLogConfigId == nil {
4742		invalidParams.Add(request.NewErrParamRequired("ResolverQueryLogConfigId"))
4743	}
4744	if s.ResolverQueryLogConfigId != nil && len(*s.ResolverQueryLogConfigId) < 1 {
4745		invalidParams.Add(request.NewErrParamMinLen("ResolverQueryLogConfigId", 1))
4746	}
4747
4748	if invalidParams.Len() > 0 {
4749		return invalidParams
4750	}
4751	return nil
4752}
4753
4754// SetResolverQueryLogConfigId sets the ResolverQueryLogConfigId field's value.
4755func (s *DeleteResolverQueryLogConfigInput) SetResolverQueryLogConfigId(v string) *DeleteResolverQueryLogConfigInput {
4756	s.ResolverQueryLogConfigId = &v
4757	return s
4758}
4759
4760type DeleteResolverQueryLogConfigOutput struct {
4761	_ struct{} `type:"structure"`
4762
4763	// Information about the query logging configuration that you deleted, including
4764	// the status of the request.
4765	ResolverQueryLogConfig *ResolverQueryLogConfig `type:"structure"`
4766}
4767
4768// String returns the string representation
4769func (s DeleteResolverQueryLogConfigOutput) String() string {
4770	return awsutil.Prettify(s)
4771}
4772
4773// GoString returns the string representation
4774func (s DeleteResolverQueryLogConfigOutput) GoString() string {
4775	return s.String()
4776}
4777
4778// SetResolverQueryLogConfig sets the ResolverQueryLogConfig field's value.
4779func (s *DeleteResolverQueryLogConfigOutput) SetResolverQueryLogConfig(v *ResolverQueryLogConfig) *DeleteResolverQueryLogConfigOutput {
4780	s.ResolverQueryLogConfig = v
4781	return s
4782}
4783
4784type DeleteResolverRuleInput struct {
4785	_ struct{} `type:"structure"`
4786
4787	// The ID of the Resolver rule that you want to delete.
4788	//
4789	// ResolverRuleId is a required field
4790	ResolverRuleId *string `min:"1" type:"string" required:"true"`
4791}
4792
4793// String returns the string representation
4794func (s DeleteResolverRuleInput) String() string {
4795	return awsutil.Prettify(s)
4796}
4797
4798// GoString returns the string representation
4799func (s DeleteResolverRuleInput) GoString() string {
4800	return s.String()
4801}
4802
4803// Validate inspects the fields of the type to determine if they are valid.
4804func (s *DeleteResolverRuleInput) Validate() error {
4805	invalidParams := request.ErrInvalidParams{Context: "DeleteResolverRuleInput"}
4806	if s.ResolverRuleId == nil {
4807		invalidParams.Add(request.NewErrParamRequired("ResolverRuleId"))
4808	}
4809	if s.ResolverRuleId != nil && len(*s.ResolverRuleId) < 1 {
4810		invalidParams.Add(request.NewErrParamMinLen("ResolverRuleId", 1))
4811	}
4812
4813	if invalidParams.Len() > 0 {
4814		return invalidParams
4815	}
4816	return nil
4817}
4818
4819// SetResolverRuleId sets the ResolverRuleId field's value.
4820func (s *DeleteResolverRuleInput) SetResolverRuleId(v string) *DeleteResolverRuleInput {
4821	s.ResolverRuleId = &v
4822	return s
4823}
4824
4825type DeleteResolverRuleOutput struct {
4826	_ struct{} `type:"structure"`
4827
4828	// Information about the DeleteResolverRule request, including the status of
4829	// the request.
4830	ResolverRule *ResolverRule `type:"structure"`
4831}
4832
4833// String returns the string representation
4834func (s DeleteResolverRuleOutput) String() string {
4835	return awsutil.Prettify(s)
4836}
4837
4838// GoString returns the string representation
4839func (s DeleteResolverRuleOutput) GoString() string {
4840	return s.String()
4841}
4842
4843// SetResolverRule sets the ResolverRule field's value.
4844func (s *DeleteResolverRuleOutput) SetResolverRule(v *ResolverRule) *DeleteResolverRuleOutput {
4845	s.ResolverRule = v
4846	return s
4847}
4848
4849type DisassociateResolverEndpointIpAddressInput struct {
4850	_ struct{} `type:"structure"`
4851
4852	// The IPv4 address that you want to remove from a Resolver endpoint.
4853	//
4854	// IpAddress is a required field
4855	IpAddress *IpAddressUpdate `type:"structure" required:"true"`
4856
4857	// The ID of the Resolver endpoint that you want to disassociate an IP address
4858	// from.
4859	//
4860	// ResolverEndpointId is a required field
4861	ResolverEndpointId *string `min:"1" type:"string" required:"true"`
4862}
4863
4864// String returns the string representation
4865func (s DisassociateResolverEndpointIpAddressInput) String() string {
4866	return awsutil.Prettify(s)
4867}
4868
4869// GoString returns the string representation
4870func (s DisassociateResolverEndpointIpAddressInput) GoString() string {
4871	return s.String()
4872}
4873
4874// Validate inspects the fields of the type to determine if they are valid.
4875func (s *DisassociateResolverEndpointIpAddressInput) Validate() error {
4876	invalidParams := request.ErrInvalidParams{Context: "DisassociateResolverEndpointIpAddressInput"}
4877	if s.IpAddress == nil {
4878		invalidParams.Add(request.NewErrParamRequired("IpAddress"))
4879	}
4880	if s.ResolverEndpointId == nil {
4881		invalidParams.Add(request.NewErrParamRequired("ResolverEndpointId"))
4882	}
4883	if s.ResolverEndpointId != nil && len(*s.ResolverEndpointId) < 1 {
4884		invalidParams.Add(request.NewErrParamMinLen("ResolverEndpointId", 1))
4885	}
4886	if s.IpAddress != nil {
4887		if err := s.IpAddress.Validate(); err != nil {
4888			invalidParams.AddNested("IpAddress", err.(request.ErrInvalidParams))
4889		}
4890	}
4891
4892	if invalidParams.Len() > 0 {
4893		return invalidParams
4894	}
4895	return nil
4896}
4897
4898// SetIpAddress sets the IpAddress field's value.
4899func (s *DisassociateResolverEndpointIpAddressInput) SetIpAddress(v *IpAddressUpdate) *DisassociateResolverEndpointIpAddressInput {
4900	s.IpAddress = v
4901	return s
4902}
4903
4904// SetResolverEndpointId sets the ResolverEndpointId field's value.
4905func (s *DisassociateResolverEndpointIpAddressInput) SetResolverEndpointId(v string) *DisassociateResolverEndpointIpAddressInput {
4906	s.ResolverEndpointId = &v
4907	return s
4908}
4909
4910type DisassociateResolverEndpointIpAddressOutput struct {
4911	_ struct{} `type:"structure"`
4912
4913	// The response to an DisassociateResolverEndpointIpAddress request.
4914	ResolverEndpoint *ResolverEndpoint `type:"structure"`
4915}
4916
4917// String returns the string representation
4918func (s DisassociateResolverEndpointIpAddressOutput) String() string {
4919	return awsutil.Prettify(s)
4920}
4921
4922// GoString returns the string representation
4923func (s DisassociateResolverEndpointIpAddressOutput) GoString() string {
4924	return s.String()
4925}
4926
4927// SetResolverEndpoint sets the ResolverEndpoint field's value.
4928func (s *DisassociateResolverEndpointIpAddressOutput) SetResolverEndpoint(v *ResolverEndpoint) *DisassociateResolverEndpointIpAddressOutput {
4929	s.ResolverEndpoint = v
4930	return s
4931}
4932
4933type DisassociateResolverQueryLogConfigInput struct {
4934	_ struct{} `type:"structure"`
4935
4936	// The ID of the query logging configuration that you want to disassociate a
4937	// specified VPC from.
4938	//
4939	// ResolverQueryLogConfigId is a required field
4940	ResolverQueryLogConfigId *string `min:"1" type:"string" required:"true"`
4941
4942	// The ID of the Amazon VPC that you want to disassociate from a specified query
4943	// logging configuration.
4944	//
4945	// ResourceId is a required field
4946	ResourceId *string `min:"1" type:"string" required:"true"`
4947}
4948
4949// String returns the string representation
4950func (s DisassociateResolverQueryLogConfigInput) String() string {
4951	return awsutil.Prettify(s)
4952}
4953
4954// GoString returns the string representation
4955func (s DisassociateResolverQueryLogConfigInput) GoString() string {
4956	return s.String()
4957}
4958
4959// Validate inspects the fields of the type to determine if they are valid.
4960func (s *DisassociateResolverQueryLogConfigInput) Validate() error {
4961	invalidParams := request.ErrInvalidParams{Context: "DisassociateResolverQueryLogConfigInput"}
4962	if s.ResolverQueryLogConfigId == nil {
4963		invalidParams.Add(request.NewErrParamRequired("ResolverQueryLogConfigId"))
4964	}
4965	if s.ResolverQueryLogConfigId != nil && len(*s.ResolverQueryLogConfigId) < 1 {
4966		invalidParams.Add(request.NewErrParamMinLen("ResolverQueryLogConfigId", 1))
4967	}
4968	if s.ResourceId == nil {
4969		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
4970	}
4971	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
4972		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
4973	}
4974
4975	if invalidParams.Len() > 0 {
4976		return invalidParams
4977	}
4978	return nil
4979}
4980
4981// SetResolverQueryLogConfigId sets the ResolverQueryLogConfigId field's value.
4982func (s *DisassociateResolverQueryLogConfigInput) SetResolverQueryLogConfigId(v string) *DisassociateResolverQueryLogConfigInput {
4983	s.ResolverQueryLogConfigId = &v
4984	return s
4985}
4986
4987// SetResourceId sets the ResourceId field's value.
4988func (s *DisassociateResolverQueryLogConfigInput) SetResourceId(v string) *DisassociateResolverQueryLogConfigInput {
4989	s.ResourceId = &v
4990	return s
4991}
4992
4993type DisassociateResolverQueryLogConfigOutput struct {
4994	_ struct{} `type:"structure"`
4995
4996	// A complex type that contains settings for the association that you deleted
4997	// between an Amazon VPC and a query logging configuration.
4998	ResolverQueryLogConfigAssociation *ResolverQueryLogConfigAssociation `type:"structure"`
4999}
5000
5001// String returns the string representation
5002func (s DisassociateResolverQueryLogConfigOutput) String() string {
5003	return awsutil.Prettify(s)
5004}
5005
5006// GoString returns the string representation
5007func (s DisassociateResolverQueryLogConfigOutput) GoString() string {
5008	return s.String()
5009}
5010
5011// SetResolverQueryLogConfigAssociation sets the ResolverQueryLogConfigAssociation field's value.
5012func (s *DisassociateResolverQueryLogConfigOutput) SetResolverQueryLogConfigAssociation(v *ResolverQueryLogConfigAssociation) *DisassociateResolverQueryLogConfigOutput {
5013	s.ResolverQueryLogConfigAssociation = v
5014	return s
5015}
5016
5017type DisassociateResolverRuleInput struct {
5018	_ struct{} `type:"structure"`
5019
5020	// The ID of the Resolver rule that you want to disassociate from the specified
5021	// VPC.
5022	//
5023	// ResolverRuleId is a required field
5024	ResolverRuleId *string `min:"1" type:"string" required:"true"`
5025
5026	// The ID of the VPC that you want to disassociate the Resolver rule from.
5027	//
5028	// VPCId is a required field
5029	VPCId *string `min:"1" type:"string" required:"true"`
5030}
5031
5032// String returns the string representation
5033func (s DisassociateResolverRuleInput) String() string {
5034	return awsutil.Prettify(s)
5035}
5036
5037// GoString returns the string representation
5038func (s DisassociateResolverRuleInput) GoString() string {
5039	return s.String()
5040}
5041
5042// Validate inspects the fields of the type to determine if they are valid.
5043func (s *DisassociateResolverRuleInput) Validate() error {
5044	invalidParams := request.ErrInvalidParams{Context: "DisassociateResolverRuleInput"}
5045	if s.ResolverRuleId == nil {
5046		invalidParams.Add(request.NewErrParamRequired("ResolverRuleId"))
5047	}
5048	if s.ResolverRuleId != nil && len(*s.ResolverRuleId) < 1 {
5049		invalidParams.Add(request.NewErrParamMinLen("ResolverRuleId", 1))
5050	}
5051	if s.VPCId == nil {
5052		invalidParams.Add(request.NewErrParamRequired("VPCId"))
5053	}
5054	if s.VPCId != nil && len(*s.VPCId) < 1 {
5055		invalidParams.Add(request.NewErrParamMinLen("VPCId", 1))
5056	}
5057
5058	if invalidParams.Len() > 0 {
5059		return invalidParams
5060	}
5061	return nil
5062}
5063
5064// SetResolverRuleId sets the ResolverRuleId field's value.
5065func (s *DisassociateResolverRuleInput) SetResolverRuleId(v string) *DisassociateResolverRuleInput {
5066	s.ResolverRuleId = &v
5067	return s
5068}
5069
5070// SetVPCId sets the VPCId field's value.
5071func (s *DisassociateResolverRuleInput) SetVPCId(v string) *DisassociateResolverRuleInput {
5072	s.VPCId = &v
5073	return s
5074}
5075
5076type DisassociateResolverRuleOutput struct {
5077	_ struct{} `type:"structure"`
5078
5079	// Information about the DisassociateResolverRule request, including the status
5080	// of the request.
5081	ResolverRuleAssociation *ResolverRuleAssociation `type:"structure"`
5082}
5083
5084// String returns the string representation
5085func (s DisassociateResolverRuleOutput) String() string {
5086	return awsutil.Prettify(s)
5087}
5088
5089// GoString returns the string representation
5090func (s DisassociateResolverRuleOutput) GoString() string {
5091	return s.String()
5092}
5093
5094// SetResolverRuleAssociation sets the ResolverRuleAssociation field's value.
5095func (s *DisassociateResolverRuleOutput) SetResolverRuleAssociation(v *ResolverRuleAssociation) *DisassociateResolverRuleOutput {
5096	s.ResolverRuleAssociation = v
5097	return s
5098}
5099
5100// For Resolver list operations (ListResolverEndpoints (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverEndpoints.html),
5101// ListResolverRules (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverRules.html),
5102// ListResolverRuleAssociations (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverRuleAssociations.html),
5103// ListResolverQueryLogConfigs (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverQueryLogConfigs.html),
5104// ListResolverQueryLogConfigAssociations (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverQueryLogConfigAssociations.html)),
5105// and ListResolverDnssecConfigs (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverDnssecConfigs.html)),
5106// an optional specification to return a subset of objects.
5107//
5108// To filter objects, such as Resolver endpoints or Resolver rules, you specify
5109// Name and Values. For example, to list only inbound Resolver endpoints, specify
5110// Direction for Name and specify INBOUND for Values.
5111type Filter struct {
5112	_ struct{} `type:"structure"`
5113
5114	// The name of the parameter that you want to use to filter objects.
5115	//
5116	// The valid values for Name depend on the action that you're including the
5117	// filter in, ListResolverEndpoints (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverEndpoints.html),
5118	// ListResolverRules (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverRules.html),
5119	// ListResolverRuleAssociations (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverRuleAssociations.html),
5120	// ListResolverQueryLogConfigs (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverQueryLogConfigs.html),
5121	// or ListResolverQueryLogConfigAssociations (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverQueryLogConfigAssociations.html).
5122	//
5123	// In early versions of Resolver, values for Name were listed as uppercase,
5124	// with underscore (_) delimiters. For example, CreatorRequestId was originally
5125	// listed as CREATOR_REQUEST_ID. Uppercase values for Name are still supported.
5126	//
5127	// ListResolverEndpoints
5128	//
5129	// Valid values for Name include the following:
5130	//
5131	//    * CreatorRequestId: The value that you specified when you created the
5132	//    Resolver endpoint.
5133	//
5134	//    * Direction: Whether you want to return inbound or outbound Resolver endpoints.
5135	//    If you specify DIRECTION for Name, specify INBOUND or OUTBOUND for Values.
5136	//
5137	//    * HostVpcId: The ID of the VPC that inbound DNS queries pass through on
5138	//    the way from your network to your VPCs in a region, or the VPC that outbound
5139	//    queries pass through on the way from your VPCs to your network. In a CreateResolverEndpoint
5140	//    (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_CreateResolverEndpoint.html)
5141	//    request, SubnetId indirectly identifies the VPC. In a GetResolverEndpoint
5142	//    (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverEndpoint.html)
5143	//    request, the VPC ID for a Resolver endpoint is returned in the HostVPCId
5144	//    element.
5145	//
5146	//    * IpAddressCount: The number of IP addresses that you have associated
5147	//    with the Resolver endpoint.
5148	//
5149	//    * Name: The name of the Resolver endpoint.
5150	//
5151	//    * SecurityGroupIds: The IDs of the VPC security groups that you specified
5152	//    when you created the Resolver endpoint.
5153	//
5154	//    * Status: The status of the Resolver endpoint. If you specify Status for
5155	//    Name, specify one of the following status codes for Values: CREATING,
5156	//    OPERATIONAL, UPDATING, AUTO_RECOVERING, ACTION_NEEDED, or DELETING. For
5157	//    more information, see Status in ResolverEndpoint (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ResolverEndpoint.html).
5158	//
5159	// ListResolverRules
5160	//
5161	// Valid values for Name include the following:
5162	//
5163	//    * CreatorRequestId: The value that you specified when you created the
5164	//    Resolver rule.
5165	//
5166	//    * DomainName: The domain name for which Resolver is forwarding DNS queries
5167	//    to your network. In the value that you specify for Values, include a trailing
5168	//    dot (.) after the domain name. For example, if the domain name is example.com,
5169	//    specify the following value. Note the "." after com: example.com.
5170	//
5171	//    * Name: The name of the Resolver rule.
5172	//
5173	//    * ResolverEndpointId: The ID of the Resolver endpoint that the Resolver
5174	//    rule is associated with. You can filter on the Resolver endpoint only
5175	//    for rules that have a value of FORWARD for RuleType.
5176	//
5177	//    * Status: The status of the Resolver rule. If you specify Status for Name,
5178	//    specify one of the following status codes for Values: COMPLETE, DELETING,
5179	//    UPDATING, or FAILED.
5180	//
5181	//    * Type: The type of the Resolver rule. If you specify TYPE for Name, specify
5182	//    FORWARD or SYSTEM for Values.
5183	//
5184	// ListResolverRuleAssociations
5185	//
5186	// Valid values for Name include the following:
5187	//
5188	//    * Name: The name of the Resolver rule association.
5189	//
5190	//    * ResolverRuleId: The ID of the Resolver rule that is associated with
5191	//    one or more VPCs.
5192	//
5193	//    * Status: The status of the Resolver rule association. If you specify
5194	//    Status for Name, specify one of the following status codes for Values:
5195	//    CREATING, COMPLETE, DELETING, or FAILED.
5196	//
5197	//    * VPCId: The ID of the VPC that the Resolver rule is associated with.
5198	//
5199	// ListResolverQueryLogConfigs
5200	//
5201	// Valid values for Name include the following:
5202	//
5203	//    * Arn: The ARN for the query logging configuration.
5204	//
5205	//    * AssociationCount: The number of VPCs that are associated with the query
5206	//    logging configuration.
5207	//
5208	//    * CreationTime: The date and time that the query logging configuration
5209	//    was created, in Unix time format and Coordinated Universal Time (UTC).
5210	//
5211	//    * CreatorRequestId: A unique string that identifies the request that created
5212	//    the query logging configuration.
5213	//
5214	//    * Destination: The AWS service that you want to forward query logs to.
5215	//    Valid values include the following: S3 CloudWatchLogs KinesisFirehose
5216	//
5217	//    * DestinationArn: The ARN of the location that Resolver is sending query
5218	//    logs to. This value can be the ARN for an S3 bucket, a CloudWatch Logs
5219	//    log group, or a Kinesis Data Firehose delivery stream.
5220	//
5221	//    * Id: The ID of the query logging configuration
5222	//
5223	//    * Name: The name of the query logging configuration
5224	//
5225	//    * OwnerId: The AWS account ID for the account that created the query logging
5226	//    configuration.
5227	//
5228	//    * ShareStatus: An indication of whether the query logging configuration
5229	//    is shared with other AWS accounts, or was shared with the current account
5230	//    by another AWS account. Valid values include: NOT_SHARED, SHARED_WITH_ME,
5231	//    or SHARED_BY_ME.
5232	//
5233	//    * Status: The status of the query logging configuration. If you specify
5234	//    Status for Name, specify the applicable status code for Values: CREATING,
5235	//    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).
5236	//
5237	// ListResolverQueryLogConfigAssociations
5238	//
5239	// Valid values for Name include the following:
5240	//
5241	//    * CreationTime: The date and time that the VPC was associated with the
5242	//    query logging configuration, in Unix time format and Coordinated Universal
5243	//    Time (UTC).
5244	//
5245	//    * Error: If the value of Status is FAILED, specify the cause: DESTINATION_NOT_FOUND
5246	//    or ACCESS_DENIED.
5247	//
5248	//    * Id: The ID of the query logging association.
5249	//
5250	//    * ResolverQueryLogConfigId: The ID of the query logging configuration
5251	//    that a VPC is associated with.
5252	//
5253	//    * ResourceId: The ID of the Amazon VPC that is associated with the query
5254	//    logging configuration.
5255	//
5256	//    * Status: The status of the query logging association. If you specify
5257	//    Status for Name, specify the applicable status code for Values: CREATING,
5258	//    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).
5259	Name *string `min:"1" type:"string"`
5260
5261	// When you're using a List operation and you want the operation to return a
5262	// subset of objects, such as Resolver endpoints or Resolver rules, the value
5263	// of the parameter that you want to use to filter objects. For example, to
5264	// list only inbound Resolver endpoints, specify Direction for Name and specify
5265	// INBOUND for Values.
5266	Values []*string `type:"list"`
5267}
5268
5269// String returns the string representation
5270func (s Filter) String() string {
5271	return awsutil.Prettify(s)
5272}
5273
5274// GoString returns the string representation
5275func (s Filter) GoString() string {
5276	return s.String()
5277}
5278
5279// Validate inspects the fields of the type to determine if they are valid.
5280func (s *Filter) Validate() error {
5281	invalidParams := request.ErrInvalidParams{Context: "Filter"}
5282	if s.Name != nil && len(*s.Name) < 1 {
5283		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
5284	}
5285
5286	if invalidParams.Len() > 0 {
5287		return invalidParams
5288	}
5289	return nil
5290}
5291
5292// SetName sets the Name field's value.
5293func (s *Filter) SetName(v string) *Filter {
5294	s.Name = &v
5295	return s
5296}
5297
5298// SetValues sets the Values field's value.
5299func (s *Filter) SetValues(v []*string) *Filter {
5300	s.Values = v
5301	return s
5302}
5303
5304type GetResolverDnssecConfigInput struct {
5305	_ struct{} `type:"structure"`
5306
5307	// The ID of the virtual private cloud (VPC) for the DNSSEC validation status.
5308	//
5309	// ResourceId is a required field
5310	ResourceId *string `min:"1" type:"string" required:"true"`
5311}
5312
5313// String returns the string representation
5314func (s GetResolverDnssecConfigInput) String() string {
5315	return awsutil.Prettify(s)
5316}
5317
5318// GoString returns the string representation
5319func (s GetResolverDnssecConfigInput) GoString() string {
5320	return s.String()
5321}
5322
5323// Validate inspects the fields of the type to determine if they are valid.
5324func (s *GetResolverDnssecConfigInput) Validate() error {
5325	invalidParams := request.ErrInvalidParams{Context: "GetResolverDnssecConfigInput"}
5326	if s.ResourceId == nil {
5327		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
5328	}
5329	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
5330		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
5331	}
5332
5333	if invalidParams.Len() > 0 {
5334		return invalidParams
5335	}
5336	return nil
5337}
5338
5339// SetResourceId sets the ResourceId field's value.
5340func (s *GetResolverDnssecConfigInput) SetResourceId(v string) *GetResolverDnssecConfigInput {
5341	s.ResourceId = &v
5342	return s
5343}
5344
5345type GetResolverDnssecConfigOutput struct {
5346	_ struct{} `type:"structure"`
5347
5348	// The information about a configuration for DNSSEC validation.
5349	ResolverDNSSECConfig *ResolverDnssecConfig `type:"structure"`
5350}
5351
5352// String returns the string representation
5353func (s GetResolverDnssecConfigOutput) String() string {
5354	return awsutil.Prettify(s)
5355}
5356
5357// GoString returns the string representation
5358func (s GetResolverDnssecConfigOutput) GoString() string {
5359	return s.String()
5360}
5361
5362// SetResolverDNSSECConfig sets the ResolverDNSSECConfig field's value.
5363func (s *GetResolverDnssecConfigOutput) SetResolverDNSSECConfig(v *ResolverDnssecConfig) *GetResolverDnssecConfigOutput {
5364	s.ResolverDNSSECConfig = v
5365	return s
5366}
5367
5368type GetResolverEndpointInput struct {
5369	_ struct{} `type:"structure"`
5370
5371	// The ID of the Resolver endpoint that you want to get information about.
5372	//
5373	// ResolverEndpointId is a required field
5374	ResolverEndpointId *string `min:"1" type:"string" required:"true"`
5375}
5376
5377// String returns the string representation
5378func (s GetResolverEndpointInput) String() string {
5379	return awsutil.Prettify(s)
5380}
5381
5382// GoString returns the string representation
5383func (s GetResolverEndpointInput) GoString() string {
5384	return s.String()
5385}
5386
5387// Validate inspects the fields of the type to determine if they are valid.
5388func (s *GetResolverEndpointInput) Validate() error {
5389	invalidParams := request.ErrInvalidParams{Context: "GetResolverEndpointInput"}
5390	if s.ResolverEndpointId == nil {
5391		invalidParams.Add(request.NewErrParamRequired("ResolverEndpointId"))
5392	}
5393	if s.ResolverEndpointId != nil && len(*s.ResolverEndpointId) < 1 {
5394		invalidParams.Add(request.NewErrParamMinLen("ResolverEndpointId", 1))
5395	}
5396
5397	if invalidParams.Len() > 0 {
5398		return invalidParams
5399	}
5400	return nil
5401}
5402
5403// SetResolverEndpointId sets the ResolverEndpointId field's value.
5404func (s *GetResolverEndpointInput) SetResolverEndpointId(v string) *GetResolverEndpointInput {
5405	s.ResolverEndpointId = &v
5406	return s
5407}
5408
5409type GetResolverEndpointOutput struct {
5410	_ struct{} `type:"structure"`
5411
5412	// Information about the Resolver endpoint that you specified in a GetResolverEndpoint
5413	// request.
5414	ResolverEndpoint *ResolverEndpoint `type:"structure"`
5415}
5416
5417// String returns the string representation
5418func (s GetResolverEndpointOutput) String() string {
5419	return awsutil.Prettify(s)
5420}
5421
5422// GoString returns the string representation
5423func (s GetResolverEndpointOutput) GoString() string {
5424	return s.String()
5425}
5426
5427// SetResolverEndpoint sets the ResolverEndpoint field's value.
5428func (s *GetResolverEndpointOutput) SetResolverEndpoint(v *ResolverEndpoint) *GetResolverEndpointOutput {
5429	s.ResolverEndpoint = v
5430	return s
5431}
5432
5433type GetResolverQueryLogConfigAssociationInput struct {
5434	_ struct{} `type:"structure"`
5435
5436	// The ID of the Resolver query logging configuration association that you want
5437	// to get information about.
5438	//
5439	// ResolverQueryLogConfigAssociationId is a required field
5440	ResolverQueryLogConfigAssociationId *string `min:"1" type:"string" required:"true"`
5441}
5442
5443// String returns the string representation
5444func (s GetResolverQueryLogConfigAssociationInput) String() string {
5445	return awsutil.Prettify(s)
5446}
5447
5448// GoString returns the string representation
5449func (s GetResolverQueryLogConfigAssociationInput) GoString() string {
5450	return s.String()
5451}
5452
5453// Validate inspects the fields of the type to determine if they are valid.
5454func (s *GetResolverQueryLogConfigAssociationInput) Validate() error {
5455	invalidParams := request.ErrInvalidParams{Context: "GetResolverQueryLogConfigAssociationInput"}
5456	if s.ResolverQueryLogConfigAssociationId == nil {
5457		invalidParams.Add(request.NewErrParamRequired("ResolverQueryLogConfigAssociationId"))
5458	}
5459	if s.ResolverQueryLogConfigAssociationId != nil && len(*s.ResolverQueryLogConfigAssociationId) < 1 {
5460		invalidParams.Add(request.NewErrParamMinLen("ResolverQueryLogConfigAssociationId", 1))
5461	}
5462
5463	if invalidParams.Len() > 0 {
5464		return invalidParams
5465	}
5466	return nil
5467}
5468
5469// SetResolverQueryLogConfigAssociationId sets the ResolverQueryLogConfigAssociationId field's value.
5470func (s *GetResolverQueryLogConfigAssociationInput) SetResolverQueryLogConfigAssociationId(v string) *GetResolverQueryLogConfigAssociationInput {
5471	s.ResolverQueryLogConfigAssociationId = &v
5472	return s
5473}
5474
5475type GetResolverQueryLogConfigAssociationOutput struct {
5476	_ struct{} `type:"structure"`
5477
5478	// Information about the Resolver query logging configuration association that
5479	// you specified in a GetQueryLogConfigAssociation request.
5480	ResolverQueryLogConfigAssociation *ResolverQueryLogConfigAssociation `type:"structure"`
5481}
5482
5483// String returns the string representation
5484func (s GetResolverQueryLogConfigAssociationOutput) String() string {
5485	return awsutil.Prettify(s)
5486}
5487
5488// GoString returns the string representation
5489func (s GetResolverQueryLogConfigAssociationOutput) GoString() string {
5490	return s.String()
5491}
5492
5493// SetResolverQueryLogConfigAssociation sets the ResolverQueryLogConfigAssociation field's value.
5494func (s *GetResolverQueryLogConfigAssociationOutput) SetResolverQueryLogConfigAssociation(v *ResolverQueryLogConfigAssociation) *GetResolverQueryLogConfigAssociationOutput {
5495	s.ResolverQueryLogConfigAssociation = v
5496	return s
5497}
5498
5499type GetResolverQueryLogConfigInput struct {
5500	_ struct{} `type:"structure"`
5501
5502	// The ID of the Resolver query logging configuration that you want to get information
5503	// about.
5504	//
5505	// ResolverQueryLogConfigId is a required field
5506	ResolverQueryLogConfigId *string `min:"1" type:"string" required:"true"`
5507}
5508
5509// String returns the string representation
5510func (s GetResolverQueryLogConfigInput) String() string {
5511	return awsutil.Prettify(s)
5512}
5513
5514// GoString returns the string representation
5515func (s GetResolverQueryLogConfigInput) GoString() string {
5516	return s.String()
5517}
5518
5519// Validate inspects the fields of the type to determine if they are valid.
5520func (s *GetResolverQueryLogConfigInput) Validate() error {
5521	invalidParams := request.ErrInvalidParams{Context: "GetResolverQueryLogConfigInput"}
5522	if s.ResolverQueryLogConfigId == nil {
5523		invalidParams.Add(request.NewErrParamRequired("ResolverQueryLogConfigId"))
5524	}
5525	if s.ResolverQueryLogConfigId != nil && len(*s.ResolverQueryLogConfigId) < 1 {
5526		invalidParams.Add(request.NewErrParamMinLen("ResolverQueryLogConfigId", 1))
5527	}
5528
5529	if invalidParams.Len() > 0 {
5530		return invalidParams
5531	}
5532	return nil
5533}
5534
5535// SetResolverQueryLogConfigId sets the ResolverQueryLogConfigId field's value.
5536func (s *GetResolverQueryLogConfigInput) SetResolverQueryLogConfigId(v string) *GetResolverQueryLogConfigInput {
5537	s.ResolverQueryLogConfigId = &v
5538	return s
5539}
5540
5541type GetResolverQueryLogConfigOutput struct {
5542	_ struct{} `type:"structure"`
5543
5544	// Information about the Resolver query logging configuration that you specified
5545	// in a GetQueryLogConfig request.
5546	ResolverQueryLogConfig *ResolverQueryLogConfig `type:"structure"`
5547}
5548
5549// String returns the string representation
5550func (s GetResolverQueryLogConfigOutput) String() string {
5551	return awsutil.Prettify(s)
5552}
5553
5554// GoString returns the string representation
5555func (s GetResolverQueryLogConfigOutput) GoString() string {
5556	return s.String()
5557}
5558
5559// SetResolverQueryLogConfig sets the ResolverQueryLogConfig field's value.
5560func (s *GetResolverQueryLogConfigOutput) SetResolverQueryLogConfig(v *ResolverQueryLogConfig) *GetResolverQueryLogConfigOutput {
5561	s.ResolverQueryLogConfig = v
5562	return s
5563}
5564
5565type GetResolverQueryLogConfigPolicyInput struct {
5566	_ struct{} `type:"structure"`
5567
5568	// The ARN of the query logging configuration that you want to get the query
5569	// logging policy for.
5570	//
5571	// Arn is a required field
5572	Arn *string `min:"1" type:"string" required:"true"`
5573}
5574
5575// String returns the string representation
5576func (s GetResolverQueryLogConfigPolicyInput) String() string {
5577	return awsutil.Prettify(s)
5578}
5579
5580// GoString returns the string representation
5581func (s GetResolverQueryLogConfigPolicyInput) GoString() string {
5582	return s.String()
5583}
5584
5585// Validate inspects the fields of the type to determine if they are valid.
5586func (s *GetResolverQueryLogConfigPolicyInput) Validate() error {
5587	invalidParams := request.ErrInvalidParams{Context: "GetResolverQueryLogConfigPolicyInput"}
5588	if s.Arn == nil {
5589		invalidParams.Add(request.NewErrParamRequired("Arn"))
5590	}
5591	if s.Arn != nil && len(*s.Arn) < 1 {
5592		invalidParams.Add(request.NewErrParamMinLen("Arn", 1))
5593	}
5594
5595	if invalidParams.Len() > 0 {
5596		return invalidParams
5597	}
5598	return nil
5599}
5600
5601// SetArn sets the Arn field's value.
5602func (s *GetResolverQueryLogConfigPolicyInput) SetArn(v string) *GetResolverQueryLogConfigPolicyInput {
5603	s.Arn = &v
5604	return s
5605}
5606
5607type GetResolverQueryLogConfigPolicyOutput struct {
5608	_ struct{} `type:"structure"`
5609
5610	// Information about the query logging policy for the query logging configuration
5611	// that you specified in a GetResolverQueryLogConfigPolicy request.
5612	ResolverQueryLogConfigPolicy *string `type:"string"`
5613}
5614
5615// String returns the string representation
5616func (s GetResolverQueryLogConfigPolicyOutput) String() string {
5617	return awsutil.Prettify(s)
5618}
5619
5620// GoString returns the string representation
5621func (s GetResolverQueryLogConfigPolicyOutput) GoString() string {
5622	return s.String()
5623}
5624
5625// SetResolverQueryLogConfigPolicy sets the ResolverQueryLogConfigPolicy field's value.
5626func (s *GetResolverQueryLogConfigPolicyOutput) SetResolverQueryLogConfigPolicy(v string) *GetResolverQueryLogConfigPolicyOutput {
5627	s.ResolverQueryLogConfigPolicy = &v
5628	return s
5629}
5630
5631type GetResolverRuleAssociationInput struct {
5632	_ struct{} `type:"structure"`
5633
5634	// The ID of the Resolver rule association that you want to get information
5635	// about.
5636	//
5637	// ResolverRuleAssociationId is a required field
5638	ResolverRuleAssociationId *string `min:"1" type:"string" required:"true"`
5639}
5640
5641// String returns the string representation
5642func (s GetResolverRuleAssociationInput) String() string {
5643	return awsutil.Prettify(s)
5644}
5645
5646// GoString returns the string representation
5647func (s GetResolverRuleAssociationInput) GoString() string {
5648	return s.String()
5649}
5650
5651// Validate inspects the fields of the type to determine if they are valid.
5652func (s *GetResolverRuleAssociationInput) Validate() error {
5653	invalidParams := request.ErrInvalidParams{Context: "GetResolverRuleAssociationInput"}
5654	if s.ResolverRuleAssociationId == nil {
5655		invalidParams.Add(request.NewErrParamRequired("ResolverRuleAssociationId"))
5656	}
5657	if s.ResolverRuleAssociationId != nil && len(*s.ResolverRuleAssociationId) < 1 {
5658		invalidParams.Add(request.NewErrParamMinLen("ResolverRuleAssociationId", 1))
5659	}
5660
5661	if invalidParams.Len() > 0 {
5662		return invalidParams
5663	}
5664	return nil
5665}
5666
5667// SetResolverRuleAssociationId sets the ResolverRuleAssociationId field's value.
5668func (s *GetResolverRuleAssociationInput) SetResolverRuleAssociationId(v string) *GetResolverRuleAssociationInput {
5669	s.ResolverRuleAssociationId = &v
5670	return s
5671}
5672
5673type GetResolverRuleAssociationOutput struct {
5674	_ struct{} `type:"structure"`
5675
5676	// Information about the Resolver rule association that you specified in a GetResolverRuleAssociation
5677	// request.
5678	ResolverRuleAssociation *ResolverRuleAssociation `type:"structure"`
5679}
5680
5681// String returns the string representation
5682func (s GetResolverRuleAssociationOutput) String() string {
5683	return awsutil.Prettify(s)
5684}
5685
5686// GoString returns the string representation
5687func (s GetResolverRuleAssociationOutput) GoString() string {
5688	return s.String()
5689}
5690
5691// SetResolverRuleAssociation sets the ResolverRuleAssociation field's value.
5692func (s *GetResolverRuleAssociationOutput) SetResolverRuleAssociation(v *ResolverRuleAssociation) *GetResolverRuleAssociationOutput {
5693	s.ResolverRuleAssociation = v
5694	return s
5695}
5696
5697type GetResolverRuleInput struct {
5698	_ struct{} `type:"structure"`
5699
5700	// The ID of the Resolver rule that you want to get information about.
5701	//
5702	// ResolverRuleId is a required field
5703	ResolverRuleId *string `min:"1" type:"string" required:"true"`
5704}
5705
5706// String returns the string representation
5707func (s GetResolverRuleInput) String() string {
5708	return awsutil.Prettify(s)
5709}
5710
5711// GoString returns the string representation
5712func (s GetResolverRuleInput) GoString() string {
5713	return s.String()
5714}
5715
5716// Validate inspects the fields of the type to determine if they are valid.
5717func (s *GetResolverRuleInput) Validate() error {
5718	invalidParams := request.ErrInvalidParams{Context: "GetResolverRuleInput"}
5719	if s.ResolverRuleId == nil {
5720		invalidParams.Add(request.NewErrParamRequired("ResolverRuleId"))
5721	}
5722	if s.ResolverRuleId != nil && len(*s.ResolverRuleId) < 1 {
5723		invalidParams.Add(request.NewErrParamMinLen("ResolverRuleId", 1))
5724	}
5725
5726	if invalidParams.Len() > 0 {
5727		return invalidParams
5728	}
5729	return nil
5730}
5731
5732// SetResolverRuleId sets the ResolverRuleId field's value.
5733func (s *GetResolverRuleInput) SetResolverRuleId(v string) *GetResolverRuleInput {
5734	s.ResolverRuleId = &v
5735	return s
5736}
5737
5738type GetResolverRuleOutput struct {
5739	_ struct{} `type:"structure"`
5740
5741	// Information about the Resolver rule that you specified in a GetResolverRule
5742	// request.
5743	ResolverRule *ResolverRule `type:"structure"`
5744}
5745
5746// String returns the string representation
5747func (s GetResolverRuleOutput) String() string {
5748	return awsutil.Prettify(s)
5749}
5750
5751// GoString returns the string representation
5752func (s GetResolverRuleOutput) GoString() string {
5753	return s.String()
5754}
5755
5756// SetResolverRule sets the ResolverRule field's value.
5757func (s *GetResolverRuleOutput) SetResolverRule(v *ResolverRule) *GetResolverRuleOutput {
5758	s.ResolverRule = v
5759	return s
5760}
5761
5762type GetResolverRulePolicyInput struct {
5763	_ struct{} `type:"structure"`
5764
5765	// The ID of the Resolver rule that you want to get the Resolver rule policy
5766	// for.
5767	//
5768	// Arn is a required field
5769	Arn *string `min:"1" type:"string" required:"true"`
5770}
5771
5772// String returns the string representation
5773func (s GetResolverRulePolicyInput) String() string {
5774	return awsutil.Prettify(s)
5775}
5776
5777// GoString returns the string representation
5778func (s GetResolverRulePolicyInput) GoString() string {
5779	return s.String()
5780}
5781
5782// Validate inspects the fields of the type to determine if they are valid.
5783func (s *GetResolverRulePolicyInput) Validate() error {
5784	invalidParams := request.ErrInvalidParams{Context: "GetResolverRulePolicyInput"}
5785	if s.Arn == nil {
5786		invalidParams.Add(request.NewErrParamRequired("Arn"))
5787	}
5788	if s.Arn != nil && len(*s.Arn) < 1 {
5789		invalidParams.Add(request.NewErrParamMinLen("Arn", 1))
5790	}
5791
5792	if invalidParams.Len() > 0 {
5793		return invalidParams
5794	}
5795	return nil
5796}
5797
5798// SetArn sets the Arn field's value.
5799func (s *GetResolverRulePolicyInput) SetArn(v string) *GetResolverRulePolicyInput {
5800	s.Arn = &v
5801	return s
5802}
5803
5804type GetResolverRulePolicyOutput struct {
5805	_ struct{} `type:"structure"`
5806
5807	// The Resolver rule policy for the rule that you specified in a GetResolverRulePolicy
5808	// request.
5809	ResolverRulePolicy *string `type:"string"`
5810}
5811
5812// String returns the string representation
5813func (s GetResolverRulePolicyOutput) String() string {
5814	return awsutil.Prettify(s)
5815}
5816
5817// GoString returns the string representation
5818func (s GetResolverRulePolicyOutput) GoString() string {
5819	return s.String()
5820}
5821
5822// SetResolverRulePolicy sets the ResolverRulePolicy field's value.
5823func (s *GetResolverRulePolicyOutput) SetResolverRulePolicy(v string) *GetResolverRulePolicyOutput {
5824	s.ResolverRulePolicy = &v
5825	return s
5826}
5827
5828// We encountered an unknown error. Try again in a few minutes.
5829type InternalServiceErrorException struct {
5830	_            struct{}                  `type:"structure"`
5831	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5832
5833	Message_ *string `locationName:"Message" type:"string"`
5834}
5835
5836// String returns the string representation
5837func (s InternalServiceErrorException) String() string {
5838	return awsutil.Prettify(s)
5839}
5840
5841// GoString returns the string representation
5842func (s InternalServiceErrorException) GoString() string {
5843	return s.String()
5844}
5845
5846func newErrorInternalServiceErrorException(v protocol.ResponseMetadata) error {
5847	return &InternalServiceErrorException{
5848		RespMetadata: v,
5849	}
5850}
5851
5852// Code returns the exception type name.
5853func (s *InternalServiceErrorException) Code() string {
5854	return "InternalServiceErrorException"
5855}
5856
5857// Message returns the exception's message.
5858func (s *InternalServiceErrorException) Message() string {
5859	if s.Message_ != nil {
5860		return *s.Message_
5861	}
5862	return ""
5863}
5864
5865// OrigErr always returns nil, satisfies awserr.Error interface.
5866func (s *InternalServiceErrorException) OrigErr() error {
5867	return nil
5868}
5869
5870func (s *InternalServiceErrorException) Error() string {
5871	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
5872}
5873
5874// Status code returns the HTTP status code for the request's response error.
5875func (s *InternalServiceErrorException) StatusCode() int {
5876	return s.RespMetadata.StatusCode
5877}
5878
5879// RequestID returns the service's response RequestID for request.
5880func (s *InternalServiceErrorException) RequestID() string {
5881	return s.RespMetadata.RequestID
5882}
5883
5884// The value that you specified for NextToken in a List request isn't valid.
5885type InvalidNextTokenException struct {
5886	_            struct{}                  `type:"structure"`
5887	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5888
5889	Message_ *string `locationName:"Message" type:"string"`
5890}
5891
5892// String returns the string representation
5893func (s InvalidNextTokenException) String() string {
5894	return awsutil.Prettify(s)
5895}
5896
5897// GoString returns the string representation
5898func (s InvalidNextTokenException) GoString() string {
5899	return s.String()
5900}
5901
5902func newErrorInvalidNextTokenException(v protocol.ResponseMetadata) error {
5903	return &InvalidNextTokenException{
5904		RespMetadata: v,
5905	}
5906}
5907
5908// Code returns the exception type name.
5909func (s *InvalidNextTokenException) Code() string {
5910	return "InvalidNextTokenException"
5911}
5912
5913// Message returns the exception's message.
5914func (s *InvalidNextTokenException) Message() string {
5915	if s.Message_ != nil {
5916		return *s.Message_
5917	}
5918	return ""
5919}
5920
5921// OrigErr always returns nil, satisfies awserr.Error interface.
5922func (s *InvalidNextTokenException) OrigErr() error {
5923	return nil
5924}
5925
5926func (s *InvalidNextTokenException) Error() string {
5927	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
5928}
5929
5930// Status code returns the HTTP status code for the request's response error.
5931func (s *InvalidNextTokenException) StatusCode() int {
5932	return s.RespMetadata.StatusCode
5933}
5934
5935// RequestID returns the service's response RequestID for request.
5936func (s *InvalidNextTokenException) RequestID() string {
5937	return s.RespMetadata.RequestID
5938}
5939
5940// One or more parameters in this request are not valid.
5941type InvalidParameterException struct {
5942	_            struct{}                  `type:"structure"`
5943	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5944
5945	// For an InvalidParameterException error, the name of the parameter that's
5946	// invalid.
5947	FieldName *string `type:"string"`
5948
5949	Message_ *string `locationName:"Message" type:"string"`
5950}
5951
5952// String returns the string representation
5953func (s InvalidParameterException) String() string {
5954	return awsutil.Prettify(s)
5955}
5956
5957// GoString returns the string representation
5958func (s InvalidParameterException) GoString() string {
5959	return s.String()
5960}
5961
5962func newErrorInvalidParameterException(v protocol.ResponseMetadata) error {
5963	return &InvalidParameterException{
5964		RespMetadata: v,
5965	}
5966}
5967
5968// Code returns the exception type name.
5969func (s *InvalidParameterException) Code() string {
5970	return "InvalidParameterException"
5971}
5972
5973// Message returns the exception's message.
5974func (s *InvalidParameterException) Message() string {
5975	if s.Message_ != nil {
5976		return *s.Message_
5977	}
5978	return ""
5979}
5980
5981// OrigErr always returns nil, satisfies awserr.Error interface.
5982func (s *InvalidParameterException) OrigErr() error {
5983	return nil
5984}
5985
5986func (s *InvalidParameterException) Error() string {
5987	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
5988}
5989
5990// Status code returns the HTTP status code for the request's response error.
5991func (s *InvalidParameterException) StatusCode() int {
5992	return s.RespMetadata.StatusCode
5993}
5994
5995// RequestID returns the service's response RequestID for request.
5996func (s *InvalidParameterException) RequestID() string {
5997	return s.RespMetadata.RequestID
5998}
5999
6000// The specified Resolver rule policy is invalid.
6001type InvalidPolicyDocument struct {
6002	_            struct{}                  `type:"structure"`
6003	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6004
6005	Message_ *string `locationName:"Message" type:"string"`
6006}
6007
6008// String returns the string representation
6009func (s InvalidPolicyDocument) String() string {
6010	return awsutil.Prettify(s)
6011}
6012
6013// GoString returns the string representation
6014func (s InvalidPolicyDocument) GoString() string {
6015	return s.String()
6016}
6017
6018func newErrorInvalidPolicyDocument(v protocol.ResponseMetadata) error {
6019	return &InvalidPolicyDocument{
6020		RespMetadata: v,
6021	}
6022}
6023
6024// Code returns the exception type name.
6025func (s *InvalidPolicyDocument) Code() string {
6026	return "InvalidPolicyDocument"
6027}
6028
6029// Message returns the exception's message.
6030func (s *InvalidPolicyDocument) Message() string {
6031	if s.Message_ != nil {
6032		return *s.Message_
6033	}
6034	return ""
6035}
6036
6037// OrigErr always returns nil, satisfies awserr.Error interface.
6038func (s *InvalidPolicyDocument) OrigErr() error {
6039	return nil
6040}
6041
6042func (s *InvalidPolicyDocument) Error() string {
6043	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6044}
6045
6046// Status code returns the HTTP status code for the request's response error.
6047func (s *InvalidPolicyDocument) StatusCode() int {
6048	return s.RespMetadata.StatusCode
6049}
6050
6051// RequestID returns the service's response RequestID for request.
6052func (s *InvalidPolicyDocument) RequestID() string {
6053	return s.RespMetadata.RequestID
6054}
6055
6056// The request is invalid.
6057type InvalidRequestException struct {
6058	_            struct{}                  `type:"structure"`
6059	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6060
6061	Message_ *string `locationName:"Message" type:"string"`
6062}
6063
6064// String returns the string representation
6065func (s InvalidRequestException) String() string {
6066	return awsutil.Prettify(s)
6067}
6068
6069// GoString returns the string representation
6070func (s InvalidRequestException) GoString() string {
6071	return s.String()
6072}
6073
6074func newErrorInvalidRequestException(v protocol.ResponseMetadata) error {
6075	return &InvalidRequestException{
6076		RespMetadata: v,
6077	}
6078}
6079
6080// Code returns the exception type name.
6081func (s *InvalidRequestException) Code() string {
6082	return "InvalidRequestException"
6083}
6084
6085// Message returns the exception's message.
6086func (s *InvalidRequestException) Message() string {
6087	if s.Message_ != nil {
6088		return *s.Message_
6089	}
6090	return ""
6091}
6092
6093// OrigErr always returns nil, satisfies awserr.Error interface.
6094func (s *InvalidRequestException) OrigErr() error {
6095	return nil
6096}
6097
6098func (s *InvalidRequestException) Error() string {
6099	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6100}
6101
6102// Status code returns the HTTP status code for the request's response error.
6103func (s *InvalidRequestException) StatusCode() int {
6104	return s.RespMetadata.StatusCode
6105}
6106
6107// RequestID returns the service's response RequestID for request.
6108func (s *InvalidRequestException) RequestID() string {
6109	return s.RespMetadata.RequestID
6110}
6111
6112// The specified tag is invalid.
6113type InvalidTagException struct {
6114	_            struct{}                  `type:"structure"`
6115	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6116
6117	Message_ *string `locationName:"Message" type:"string"`
6118}
6119
6120// String returns the string representation
6121func (s InvalidTagException) String() string {
6122	return awsutil.Prettify(s)
6123}
6124
6125// GoString returns the string representation
6126func (s InvalidTagException) GoString() string {
6127	return s.String()
6128}
6129
6130func newErrorInvalidTagException(v protocol.ResponseMetadata) error {
6131	return &InvalidTagException{
6132		RespMetadata: v,
6133	}
6134}
6135
6136// Code returns the exception type name.
6137func (s *InvalidTagException) Code() string {
6138	return "InvalidTagException"
6139}
6140
6141// Message returns the exception's message.
6142func (s *InvalidTagException) Message() string {
6143	if s.Message_ != nil {
6144		return *s.Message_
6145	}
6146	return ""
6147}
6148
6149// OrigErr always returns nil, satisfies awserr.Error interface.
6150func (s *InvalidTagException) OrigErr() error {
6151	return nil
6152}
6153
6154func (s *InvalidTagException) Error() string {
6155	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6156}
6157
6158// Status code returns the HTTP status code for the request's response error.
6159func (s *InvalidTagException) StatusCode() int {
6160	return s.RespMetadata.StatusCode
6161}
6162
6163// RequestID returns the service's response RequestID for request.
6164func (s *InvalidTagException) RequestID() string {
6165	return s.RespMetadata.RequestID
6166}
6167
6168// In a CreateResolverEndpoint (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_CreateResolverEndpoint.html)
6169// request, the IP address that DNS queries originate from (for outbound endpoints)
6170// or that you forward DNS queries to (for inbound endpoints). IpAddressRequest
6171// also includes the ID of the subnet that contains the IP address.
6172type IpAddressRequest struct {
6173	_ struct{} `type:"structure"`
6174
6175	// The IP address that you want to use for DNS queries.
6176	Ip *string `min:"7" type:"string"`
6177
6178	// The ID of the subnet that contains the IP address.
6179	//
6180	// SubnetId is a required field
6181	SubnetId *string `min:"1" type:"string" required:"true"`
6182}
6183
6184// String returns the string representation
6185func (s IpAddressRequest) String() string {
6186	return awsutil.Prettify(s)
6187}
6188
6189// GoString returns the string representation
6190func (s IpAddressRequest) GoString() string {
6191	return s.String()
6192}
6193
6194// Validate inspects the fields of the type to determine if they are valid.
6195func (s *IpAddressRequest) Validate() error {
6196	invalidParams := request.ErrInvalidParams{Context: "IpAddressRequest"}
6197	if s.Ip != nil && len(*s.Ip) < 7 {
6198		invalidParams.Add(request.NewErrParamMinLen("Ip", 7))
6199	}
6200	if s.SubnetId == nil {
6201		invalidParams.Add(request.NewErrParamRequired("SubnetId"))
6202	}
6203	if s.SubnetId != nil && len(*s.SubnetId) < 1 {
6204		invalidParams.Add(request.NewErrParamMinLen("SubnetId", 1))
6205	}
6206
6207	if invalidParams.Len() > 0 {
6208		return invalidParams
6209	}
6210	return nil
6211}
6212
6213// SetIp sets the Ip field's value.
6214func (s *IpAddressRequest) SetIp(v string) *IpAddressRequest {
6215	s.Ip = &v
6216	return s
6217}
6218
6219// SetSubnetId sets the SubnetId field's value.
6220func (s *IpAddressRequest) SetSubnetId(v string) *IpAddressRequest {
6221	s.SubnetId = &v
6222	return s
6223}
6224
6225// In the response to a GetResolverEndpoint (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverEndpoint.html)
6226// request, information about the IP addresses that the Resolver endpoint uses
6227// for DNS queries.
6228type IpAddressResponse struct {
6229	_ struct{} `type:"structure"`
6230
6231	// The date and time that the IP address was created, in Unix time format and
6232	// Coordinated Universal Time (UTC).
6233	CreationTime *string `min:"20" type:"string"`
6234
6235	// One IP address that the Resolver endpoint uses for DNS queries.
6236	Ip *string `min:"7" type:"string"`
6237
6238	// The ID of one IP address.
6239	IpId *string `min:"1" type:"string"`
6240
6241	// The date and time that the IP address was last modified, in Unix time format
6242	// and Coordinated Universal Time (UTC).
6243	ModificationTime *string `min:"20" type:"string"`
6244
6245	// A status code that gives the current status of the request.
6246	Status *string `type:"string" enum:"IpAddressStatus"`
6247
6248	// A message that provides additional information about the status of the request.
6249	StatusMessage *string `type:"string"`
6250
6251	// The ID of one subnet.
6252	SubnetId *string `min:"1" type:"string"`
6253}
6254
6255// String returns the string representation
6256func (s IpAddressResponse) String() string {
6257	return awsutil.Prettify(s)
6258}
6259
6260// GoString returns the string representation
6261func (s IpAddressResponse) GoString() string {
6262	return s.String()
6263}
6264
6265// SetCreationTime sets the CreationTime field's value.
6266func (s *IpAddressResponse) SetCreationTime(v string) *IpAddressResponse {
6267	s.CreationTime = &v
6268	return s
6269}
6270
6271// SetIp sets the Ip field's value.
6272func (s *IpAddressResponse) SetIp(v string) *IpAddressResponse {
6273	s.Ip = &v
6274	return s
6275}
6276
6277// SetIpId sets the IpId field's value.
6278func (s *IpAddressResponse) SetIpId(v string) *IpAddressResponse {
6279	s.IpId = &v
6280	return s
6281}
6282
6283// SetModificationTime sets the ModificationTime field's value.
6284func (s *IpAddressResponse) SetModificationTime(v string) *IpAddressResponse {
6285	s.ModificationTime = &v
6286	return s
6287}
6288
6289// SetStatus sets the Status field's value.
6290func (s *IpAddressResponse) SetStatus(v string) *IpAddressResponse {
6291	s.Status = &v
6292	return s
6293}
6294
6295// SetStatusMessage sets the StatusMessage field's value.
6296func (s *IpAddressResponse) SetStatusMessage(v string) *IpAddressResponse {
6297	s.StatusMessage = &v
6298	return s
6299}
6300
6301// SetSubnetId sets the SubnetId field's value.
6302func (s *IpAddressResponse) SetSubnetId(v string) *IpAddressResponse {
6303	s.SubnetId = &v
6304	return s
6305}
6306
6307// In an UpdateResolverEndpoint (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_UpdateResolverEndpoint.html)
6308// request, information about an IP address to update.
6309type IpAddressUpdate struct {
6310	_ struct{} `type:"structure"`
6311
6312	// The new IP address.
6313	Ip *string `min:"7" type:"string"`
6314
6315	// Only when removing an IP address from a Resolver endpoint: The ID of the
6316	// IP address that you want to remove. To get this ID, use GetResolverEndpoint
6317	// (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverEndpoint.html).
6318	IpId *string `min:"1" type:"string"`
6319
6320	// The ID of the subnet that includes the IP address that you want to update.
6321	// To get this ID, use GetResolverEndpoint (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverEndpoint.html).
6322	SubnetId *string `min:"1" type:"string"`
6323}
6324
6325// String returns the string representation
6326func (s IpAddressUpdate) String() string {
6327	return awsutil.Prettify(s)
6328}
6329
6330// GoString returns the string representation
6331func (s IpAddressUpdate) GoString() string {
6332	return s.String()
6333}
6334
6335// Validate inspects the fields of the type to determine if they are valid.
6336func (s *IpAddressUpdate) Validate() error {
6337	invalidParams := request.ErrInvalidParams{Context: "IpAddressUpdate"}
6338	if s.Ip != nil && len(*s.Ip) < 7 {
6339		invalidParams.Add(request.NewErrParamMinLen("Ip", 7))
6340	}
6341	if s.IpId != nil && len(*s.IpId) < 1 {
6342		invalidParams.Add(request.NewErrParamMinLen("IpId", 1))
6343	}
6344	if s.SubnetId != nil && len(*s.SubnetId) < 1 {
6345		invalidParams.Add(request.NewErrParamMinLen("SubnetId", 1))
6346	}
6347
6348	if invalidParams.Len() > 0 {
6349		return invalidParams
6350	}
6351	return nil
6352}
6353
6354// SetIp sets the Ip field's value.
6355func (s *IpAddressUpdate) SetIp(v string) *IpAddressUpdate {
6356	s.Ip = &v
6357	return s
6358}
6359
6360// SetIpId sets the IpId field's value.
6361func (s *IpAddressUpdate) SetIpId(v string) *IpAddressUpdate {
6362	s.IpId = &v
6363	return s
6364}
6365
6366// SetSubnetId sets the SubnetId field's value.
6367func (s *IpAddressUpdate) SetSubnetId(v string) *IpAddressUpdate {
6368	s.SubnetId = &v
6369	return s
6370}
6371
6372// The request caused one or more limits to be exceeded.
6373type LimitExceededException struct {
6374	_            struct{}                  `type:"structure"`
6375	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6376
6377	Message_ *string `locationName:"Message" type:"string"`
6378
6379	// For a LimitExceededException error, the type of resource that exceeded the
6380	// current limit.
6381	ResourceType *string `type:"string"`
6382}
6383
6384// String returns the string representation
6385func (s LimitExceededException) String() string {
6386	return awsutil.Prettify(s)
6387}
6388
6389// GoString returns the string representation
6390func (s LimitExceededException) GoString() string {
6391	return s.String()
6392}
6393
6394func newErrorLimitExceededException(v protocol.ResponseMetadata) error {
6395	return &LimitExceededException{
6396		RespMetadata: v,
6397	}
6398}
6399
6400// Code returns the exception type name.
6401func (s *LimitExceededException) Code() string {
6402	return "LimitExceededException"
6403}
6404
6405// Message returns the exception's message.
6406func (s *LimitExceededException) Message() string {
6407	if s.Message_ != nil {
6408		return *s.Message_
6409	}
6410	return ""
6411}
6412
6413// OrigErr always returns nil, satisfies awserr.Error interface.
6414func (s *LimitExceededException) OrigErr() error {
6415	return nil
6416}
6417
6418func (s *LimitExceededException) Error() string {
6419	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
6420}
6421
6422// Status code returns the HTTP status code for the request's response error.
6423func (s *LimitExceededException) StatusCode() int {
6424	return s.RespMetadata.StatusCode
6425}
6426
6427// RequestID returns the service's response RequestID for request.
6428func (s *LimitExceededException) RequestID() string {
6429	return s.RespMetadata.RequestID
6430}
6431
6432type ListResolverDnssecConfigsInput struct {
6433	_ struct{} `type:"structure"`
6434
6435	// An optional specification to return a subset of objects.
6436	Filters []*Filter `type:"list"`
6437
6438	// Optional: An integer that specifies the maximum number of DNSSEC configuration
6439	// results that you want Amazon Route 53 to return. If you don't specify a value
6440	// for MaxResults, Route 53 returns up to 100 configuration per page.
6441	MaxResults *int64 `min:"1" type:"integer"`
6442
6443	// (Optional) If the current AWS account has more than MaxResults DNSSEC configurations,
6444	// use NextToken to get the second and subsequent pages of results.
6445	//
6446	// For the first ListResolverDnssecConfigs request, omit this value.
6447	//
6448	// For the second and subsequent requests, get the value of NextToken from the
6449	// previous response and specify that value for NextToken in the request.
6450	NextToken *string `type:"string"`
6451}
6452
6453// String returns the string representation
6454func (s ListResolverDnssecConfigsInput) String() string {
6455	return awsutil.Prettify(s)
6456}
6457
6458// GoString returns the string representation
6459func (s ListResolverDnssecConfigsInput) GoString() string {
6460	return s.String()
6461}
6462
6463// Validate inspects the fields of the type to determine if they are valid.
6464func (s *ListResolverDnssecConfigsInput) Validate() error {
6465	invalidParams := request.ErrInvalidParams{Context: "ListResolverDnssecConfigsInput"}
6466	if s.MaxResults != nil && *s.MaxResults < 1 {
6467		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
6468	}
6469	if s.Filters != nil {
6470		for i, v := range s.Filters {
6471			if v == nil {
6472				continue
6473			}
6474			if err := v.Validate(); err != nil {
6475				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
6476			}
6477		}
6478	}
6479
6480	if invalidParams.Len() > 0 {
6481		return invalidParams
6482	}
6483	return nil
6484}
6485
6486// SetFilters sets the Filters field's value.
6487func (s *ListResolverDnssecConfigsInput) SetFilters(v []*Filter) *ListResolverDnssecConfigsInput {
6488	s.Filters = v
6489	return s
6490}
6491
6492// SetMaxResults sets the MaxResults field's value.
6493func (s *ListResolverDnssecConfigsInput) SetMaxResults(v int64) *ListResolverDnssecConfigsInput {
6494	s.MaxResults = &v
6495	return s
6496}
6497
6498// SetNextToken sets the NextToken field's value.
6499func (s *ListResolverDnssecConfigsInput) SetNextToken(v string) *ListResolverDnssecConfigsInput {
6500	s.NextToken = &v
6501	return s
6502}
6503
6504type ListResolverDnssecConfigsOutput struct {
6505	_ struct{} `type:"structure"`
6506
6507	// If a response includes the last of the DNSSEC configurations that are associated
6508	// with the current AWS account, NextToken doesn't appear in the response.
6509	//
6510	// If a response doesn't include the last of the configurations, you can get
6511	// more configurations by submitting another ListResolverDnssecConfigs (https://docs.aws.amazon.com/Route53/latest/APIReference/API_ListResolverDnssecConfigs.html)
6512	// request. Get the value of NextToken that Amazon Route 53 returned in the
6513	// previous response and include it in NextToken in the next request.
6514	NextToken *string `type:"string"`
6515
6516	// An array that contains one ResolverDnssecConfig (https://docs.aws.amazon.com/Route53/latest/APIReference/API_ResolverDnssecConfig.html)
6517	// element for each configuration for DNSSEC validation that is associated with
6518	// the current AWS account.
6519	ResolverDnssecConfigs []*ResolverDnssecConfig `type:"list"`
6520}
6521
6522// String returns the string representation
6523func (s ListResolverDnssecConfigsOutput) String() string {
6524	return awsutil.Prettify(s)
6525}
6526
6527// GoString returns the string representation
6528func (s ListResolverDnssecConfigsOutput) GoString() string {
6529	return s.String()
6530}
6531
6532// SetNextToken sets the NextToken field's value.
6533func (s *ListResolverDnssecConfigsOutput) SetNextToken(v string) *ListResolverDnssecConfigsOutput {
6534	s.NextToken = &v
6535	return s
6536}
6537
6538// SetResolverDnssecConfigs sets the ResolverDnssecConfigs field's value.
6539func (s *ListResolverDnssecConfigsOutput) SetResolverDnssecConfigs(v []*ResolverDnssecConfig) *ListResolverDnssecConfigsOutput {
6540	s.ResolverDnssecConfigs = v
6541	return s
6542}
6543
6544type ListResolverEndpointIpAddressesInput struct {
6545	_ struct{} `type:"structure"`
6546
6547	// The maximum number of IP addresses that you want to return in the response
6548	// to a ListResolverEndpointIpAddresses request. If you don't specify a value
6549	// for MaxResults, Resolver returns up to 100 IP addresses.
6550	MaxResults *int64 `min:"1" type:"integer"`
6551
6552	// For the first ListResolverEndpointIpAddresses request, omit this value.
6553	//
6554	// If the specified Resolver endpoint has more than MaxResults IP addresses,
6555	// you can submit another ListResolverEndpointIpAddresses request to get the
6556	// next group of IP addresses. In the next request, specify the value of NextToken
6557	// from the previous response.
6558	NextToken *string `type:"string"`
6559
6560	// The ID of the Resolver endpoint that you want to get IP addresses for.
6561	//
6562	// ResolverEndpointId is a required field
6563	ResolverEndpointId *string `min:"1" type:"string" required:"true"`
6564}
6565
6566// String returns the string representation
6567func (s ListResolverEndpointIpAddressesInput) String() string {
6568	return awsutil.Prettify(s)
6569}
6570
6571// GoString returns the string representation
6572func (s ListResolverEndpointIpAddressesInput) GoString() string {
6573	return s.String()
6574}
6575
6576// Validate inspects the fields of the type to determine if they are valid.
6577func (s *ListResolverEndpointIpAddressesInput) Validate() error {
6578	invalidParams := request.ErrInvalidParams{Context: "ListResolverEndpointIpAddressesInput"}
6579	if s.MaxResults != nil && *s.MaxResults < 1 {
6580		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
6581	}
6582	if s.ResolverEndpointId == nil {
6583		invalidParams.Add(request.NewErrParamRequired("ResolverEndpointId"))
6584	}
6585	if s.ResolverEndpointId != nil && len(*s.ResolverEndpointId) < 1 {
6586		invalidParams.Add(request.NewErrParamMinLen("ResolverEndpointId", 1))
6587	}
6588
6589	if invalidParams.Len() > 0 {
6590		return invalidParams
6591	}
6592	return nil
6593}
6594
6595// SetMaxResults sets the MaxResults field's value.
6596func (s *ListResolverEndpointIpAddressesInput) SetMaxResults(v int64) *ListResolverEndpointIpAddressesInput {
6597	s.MaxResults = &v
6598	return s
6599}
6600
6601// SetNextToken sets the NextToken field's value.
6602func (s *ListResolverEndpointIpAddressesInput) SetNextToken(v string) *ListResolverEndpointIpAddressesInput {
6603	s.NextToken = &v
6604	return s
6605}
6606
6607// SetResolverEndpointId sets the ResolverEndpointId field's value.
6608func (s *ListResolverEndpointIpAddressesInput) SetResolverEndpointId(v string) *ListResolverEndpointIpAddressesInput {
6609	s.ResolverEndpointId = &v
6610	return s
6611}
6612
6613type ListResolverEndpointIpAddressesOutput struct {
6614	_ struct{} `type:"structure"`
6615
6616	// Information about the IP addresses in your VPC that DNS queries originate
6617	// from (for outbound endpoints) or that you forward DNS queries to (for inbound
6618	// endpoints).
6619	IpAddresses []*IpAddressResponse `type:"list"`
6620
6621	// The value that you specified for MaxResults in the request.
6622	MaxResults *int64 `min:"1" type:"integer"`
6623
6624	// If the specified endpoint has more than MaxResults IP addresses, you can
6625	// submit another ListResolverEndpointIpAddresses request to get the next group
6626	// of IP addresses. In the next request, specify the value of NextToken from
6627	// the previous response.
6628	NextToken *string `type:"string"`
6629}
6630
6631// String returns the string representation
6632func (s ListResolverEndpointIpAddressesOutput) String() string {
6633	return awsutil.Prettify(s)
6634}
6635
6636// GoString returns the string representation
6637func (s ListResolverEndpointIpAddressesOutput) GoString() string {
6638	return s.String()
6639}
6640
6641// SetIpAddresses sets the IpAddresses field's value.
6642func (s *ListResolverEndpointIpAddressesOutput) SetIpAddresses(v []*IpAddressResponse) *ListResolverEndpointIpAddressesOutput {
6643	s.IpAddresses = v
6644	return s
6645}
6646
6647// SetMaxResults sets the MaxResults field's value.
6648func (s *ListResolverEndpointIpAddressesOutput) SetMaxResults(v int64) *ListResolverEndpointIpAddressesOutput {
6649	s.MaxResults = &v
6650	return s
6651}
6652
6653// SetNextToken sets the NextToken field's value.
6654func (s *ListResolverEndpointIpAddressesOutput) SetNextToken(v string) *ListResolverEndpointIpAddressesOutput {
6655	s.NextToken = &v
6656	return s
6657}
6658
6659type ListResolverEndpointsInput struct {
6660	_ struct{} `type:"structure"`
6661
6662	// An optional specification to return a subset of Resolver endpoints, such
6663	// as all inbound Resolver endpoints.
6664	//
6665	// If you submit a second or subsequent ListResolverEndpoints request and specify
6666	// the NextToken parameter, you must use the same values for Filters, if any,
6667	// as in the previous request.
6668	Filters []*Filter `type:"list"`
6669
6670	// The maximum number of Resolver endpoints that you want to return in the response
6671	// to a ListResolverEndpoints request. If you don't specify a value for MaxResults,
6672	// Resolver returns up to 100 Resolver endpoints.
6673	MaxResults *int64 `min:"1" type:"integer"`
6674
6675	// For the first ListResolverEndpoints request, omit this value.
6676	//
6677	// If you have more than MaxResults Resolver endpoints, you can submit another
6678	// ListResolverEndpoints request to get the next group of Resolver endpoints.
6679	// In the next request, specify the value of NextToken from the previous response.
6680	NextToken *string `type:"string"`
6681}
6682
6683// String returns the string representation
6684func (s ListResolverEndpointsInput) String() string {
6685	return awsutil.Prettify(s)
6686}
6687
6688// GoString returns the string representation
6689func (s ListResolverEndpointsInput) GoString() string {
6690	return s.String()
6691}
6692
6693// Validate inspects the fields of the type to determine if they are valid.
6694func (s *ListResolverEndpointsInput) Validate() error {
6695	invalidParams := request.ErrInvalidParams{Context: "ListResolverEndpointsInput"}
6696	if s.MaxResults != nil && *s.MaxResults < 1 {
6697		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
6698	}
6699	if s.Filters != nil {
6700		for i, v := range s.Filters {
6701			if v == nil {
6702				continue
6703			}
6704			if err := v.Validate(); err != nil {
6705				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
6706			}
6707		}
6708	}
6709
6710	if invalidParams.Len() > 0 {
6711		return invalidParams
6712	}
6713	return nil
6714}
6715
6716// SetFilters sets the Filters field's value.
6717func (s *ListResolverEndpointsInput) SetFilters(v []*Filter) *ListResolverEndpointsInput {
6718	s.Filters = v
6719	return s
6720}
6721
6722// SetMaxResults sets the MaxResults field's value.
6723func (s *ListResolverEndpointsInput) SetMaxResults(v int64) *ListResolverEndpointsInput {
6724	s.MaxResults = &v
6725	return s
6726}
6727
6728// SetNextToken sets the NextToken field's value.
6729func (s *ListResolverEndpointsInput) SetNextToken(v string) *ListResolverEndpointsInput {
6730	s.NextToken = &v
6731	return s
6732}
6733
6734type ListResolverEndpointsOutput struct {
6735	_ struct{} `type:"structure"`
6736
6737	// The value that you specified for MaxResults in the request.
6738	MaxResults *int64 `min:"1" type:"integer"`
6739
6740	// If more than MaxResults IP addresses match the specified criteria, you can
6741	// submit another ListResolverEndpoint request to get the next group of results.
6742	// In the next request, specify the value of NextToken from the previous response.
6743	NextToken *string `type:"string"`
6744
6745	// The Resolver endpoints that were created by using the current AWS account,
6746	// and that match the specified filters, if any.
6747	ResolverEndpoints []*ResolverEndpoint `type:"list"`
6748}
6749
6750// String returns the string representation
6751func (s ListResolverEndpointsOutput) String() string {
6752	return awsutil.Prettify(s)
6753}
6754
6755// GoString returns the string representation
6756func (s ListResolverEndpointsOutput) GoString() string {
6757	return s.String()
6758}
6759
6760// SetMaxResults sets the MaxResults field's value.
6761func (s *ListResolverEndpointsOutput) SetMaxResults(v int64) *ListResolverEndpointsOutput {
6762	s.MaxResults = &v
6763	return s
6764}
6765
6766// SetNextToken sets the NextToken field's value.
6767func (s *ListResolverEndpointsOutput) SetNextToken(v string) *ListResolverEndpointsOutput {
6768	s.NextToken = &v
6769	return s
6770}
6771
6772// SetResolverEndpoints sets the ResolverEndpoints field's value.
6773func (s *ListResolverEndpointsOutput) SetResolverEndpoints(v []*ResolverEndpoint) *ListResolverEndpointsOutput {
6774	s.ResolverEndpoints = v
6775	return s
6776}
6777
6778type ListResolverQueryLogConfigAssociationsInput struct {
6779	_ struct{} `type:"structure"`
6780
6781	// An optional specification to return a subset of query logging associations.
6782	//
6783	// If you submit a second or subsequent ListResolverQueryLogConfigAssociations
6784	// request and specify the NextToken parameter, you must use the same values
6785	// for Filters, if any, as in the previous request.
6786	Filters []*Filter `type:"list"`
6787
6788	// The maximum number of query logging associations that you want to return
6789	// in the response to a ListResolverQueryLogConfigAssociations request. If you
6790	// don't specify a value for MaxResults, Resolver returns up to 100 query logging
6791	// associations.
6792	MaxResults *int64 `min:"1" type:"integer"`
6793
6794	// For the first ListResolverQueryLogConfigAssociations request, omit this value.
6795	//
6796	// If there are more than MaxResults query logging associations that match the
6797	// values that you specify for Filters, you can submit another ListResolverQueryLogConfigAssociations
6798	// request to get the next group of associations. In the next request, specify
6799	// the value of NextToken from the previous response.
6800	NextToken *string `type:"string"`
6801
6802	// The element that you want Resolver to sort query logging associations by.
6803	//
6804	// If you submit a second or subsequent ListResolverQueryLogConfigAssociations
6805	// request and specify the NextToken parameter, you must use the same value
6806	// for SortBy, if any, as in the previous request.
6807	//
6808	// Valid values include the following elements:
6809	//
6810	//    * CreationTime: The ID of the query logging association.
6811	//
6812	//    * Error: If the value of Status is FAILED, the value of Error indicates
6813	//    the cause: DESTINATION_NOT_FOUND: The specified destination (for example,
6814	//    an Amazon S3 bucket) was deleted. ACCESS_DENIED: Permissions don't allow
6815	//    sending logs to the destination. If Status is a value other than FAILED,
6816	//    ERROR is null.
6817	//
6818	//    * Id: The ID of the query logging association
6819	//
6820	//    * ResolverQueryLogConfigId: The ID of the query logging configuration
6821	//
6822	//    * ResourceId: The ID of the VPC that is associated with the query logging
6823	//    configuration
6824	//
6825	//    * Status: The current status of the configuration. Valid values include
6826	//    the following: CREATING: Resolver is creating an association between an
6827	//    Amazon VPC and a query logging configuration. CREATED: The association
6828	//    between an Amazon VPC and a query logging configuration was successfully
6829	//    created. Resolver is logging queries that originate in the specified VPC.
6830	//    DELETING: Resolver is deleting this query logging association. FAILED:
6831	//    Resolver either couldn't create or couldn't delete the query logging association.
6832	//    Here are two common causes: The specified destination (for example, an
6833	//    Amazon S3 bucket) was deleted. Permissions don't allow sending logs to
6834	//    the destination.
6835	SortBy *string `min:"1" type:"string"`
6836
6837	// If you specified a value for SortBy, the order that you want query logging
6838	// associations to be listed in, ASCENDING or DESCENDING.
6839	//
6840	// If you submit a second or subsequent ListResolverQueryLogConfigAssociations
6841	// request and specify the NextToken parameter, you must use the same value
6842	// for SortOrder, if any, as in the previous request.
6843	SortOrder *string `type:"string" enum:"SortOrder"`
6844}
6845
6846// String returns the string representation
6847func (s ListResolverQueryLogConfigAssociationsInput) String() string {
6848	return awsutil.Prettify(s)
6849}
6850
6851// GoString returns the string representation
6852func (s ListResolverQueryLogConfigAssociationsInput) GoString() string {
6853	return s.String()
6854}
6855
6856// Validate inspects the fields of the type to determine if they are valid.
6857func (s *ListResolverQueryLogConfigAssociationsInput) Validate() error {
6858	invalidParams := request.ErrInvalidParams{Context: "ListResolverQueryLogConfigAssociationsInput"}
6859	if s.MaxResults != nil && *s.MaxResults < 1 {
6860		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
6861	}
6862	if s.SortBy != nil && len(*s.SortBy) < 1 {
6863		invalidParams.Add(request.NewErrParamMinLen("SortBy", 1))
6864	}
6865	if s.Filters != nil {
6866		for i, v := range s.Filters {
6867			if v == nil {
6868				continue
6869			}
6870			if err := v.Validate(); err != nil {
6871				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
6872			}
6873		}
6874	}
6875
6876	if invalidParams.Len() > 0 {
6877		return invalidParams
6878	}
6879	return nil
6880}
6881
6882// SetFilters sets the Filters field's value.
6883func (s *ListResolverQueryLogConfigAssociationsInput) SetFilters(v []*Filter) *ListResolverQueryLogConfigAssociationsInput {
6884	s.Filters = v
6885	return s
6886}
6887
6888// SetMaxResults sets the MaxResults field's value.
6889func (s *ListResolverQueryLogConfigAssociationsInput) SetMaxResults(v int64) *ListResolverQueryLogConfigAssociationsInput {
6890	s.MaxResults = &v
6891	return s
6892}
6893
6894// SetNextToken sets the NextToken field's value.
6895func (s *ListResolverQueryLogConfigAssociationsInput) SetNextToken(v string) *ListResolverQueryLogConfigAssociationsInput {
6896	s.NextToken = &v
6897	return s
6898}
6899
6900// SetSortBy sets the SortBy field's value.
6901func (s *ListResolverQueryLogConfigAssociationsInput) SetSortBy(v string) *ListResolverQueryLogConfigAssociationsInput {
6902	s.SortBy = &v
6903	return s
6904}
6905
6906// SetSortOrder sets the SortOrder field's value.
6907func (s *ListResolverQueryLogConfigAssociationsInput) SetSortOrder(v string) *ListResolverQueryLogConfigAssociationsInput {
6908	s.SortOrder = &v
6909	return s
6910}
6911
6912type ListResolverQueryLogConfigAssociationsOutput struct {
6913	_ struct{} `type:"structure"`
6914
6915	// If there are more than MaxResults query logging associations, you can submit
6916	// another ListResolverQueryLogConfigAssociations request to get the next group
6917	// of associations. In the next request, specify the value of NextToken from
6918	// the previous response.
6919	NextToken *string `type:"string"`
6920
6921	// A list that contains one ResolverQueryLogConfigAssociations element for each
6922	// query logging association that matches the values that you specified for
6923	// Filter.
6924	ResolverQueryLogConfigAssociations []*ResolverQueryLogConfigAssociation `type:"list"`
6925
6926	// The total number of query logging associations that were created by the current
6927	// account in the specified Region. This count can differ from the number of
6928	// associations that are returned in a ListResolverQueryLogConfigAssociations
6929	// response, depending on the values that you specify in the request.
6930	TotalCount *int64 `type:"integer"`
6931
6932	// The total number of query logging associations that were created by the current
6933	// account in the specified Region and that match the filters that were specified
6934	// in the ListResolverQueryLogConfigAssociations request. For the total number
6935	// of associations that were created by the current account in the specified
6936	// Region, see TotalCount.
6937	TotalFilteredCount *int64 `type:"integer"`
6938}
6939
6940// String returns the string representation
6941func (s ListResolverQueryLogConfigAssociationsOutput) String() string {
6942	return awsutil.Prettify(s)
6943}
6944
6945// GoString returns the string representation
6946func (s ListResolverQueryLogConfigAssociationsOutput) GoString() string {
6947	return s.String()
6948}
6949
6950// SetNextToken sets the NextToken field's value.
6951func (s *ListResolverQueryLogConfigAssociationsOutput) SetNextToken(v string) *ListResolverQueryLogConfigAssociationsOutput {
6952	s.NextToken = &v
6953	return s
6954}
6955
6956// SetResolverQueryLogConfigAssociations sets the ResolverQueryLogConfigAssociations field's value.
6957func (s *ListResolverQueryLogConfigAssociationsOutput) SetResolverQueryLogConfigAssociations(v []*ResolverQueryLogConfigAssociation) *ListResolverQueryLogConfigAssociationsOutput {
6958	s.ResolverQueryLogConfigAssociations = v
6959	return s
6960}
6961
6962// SetTotalCount sets the TotalCount field's value.
6963func (s *ListResolverQueryLogConfigAssociationsOutput) SetTotalCount(v int64) *ListResolverQueryLogConfigAssociationsOutput {
6964	s.TotalCount = &v
6965	return s
6966}
6967
6968// SetTotalFilteredCount sets the TotalFilteredCount field's value.
6969func (s *ListResolverQueryLogConfigAssociationsOutput) SetTotalFilteredCount(v int64) *ListResolverQueryLogConfigAssociationsOutput {
6970	s.TotalFilteredCount = &v
6971	return s
6972}
6973
6974type ListResolverQueryLogConfigsInput struct {
6975	_ struct{} `type:"structure"`
6976
6977	// An optional specification to return a subset of query logging configurations.
6978	//
6979	// If you submit a second or subsequent ListResolverQueryLogConfigs request
6980	// and specify the NextToken parameter, you must use the same values for Filters,
6981	// if any, as in the previous request.
6982	Filters []*Filter `type:"list"`
6983
6984	// The maximum number of query logging configurations that you want to return
6985	// in the response to a ListResolverQueryLogConfigs request. If you don't specify
6986	// a value for MaxResults, Resolver returns up to 100 query logging configurations.
6987	MaxResults *int64 `min:"1" type:"integer"`
6988
6989	// For the first ListResolverQueryLogConfigs request, omit this value.
6990	//
6991	// If there are more than MaxResults query logging configurations that match
6992	// the values that you specify for Filters, you can submit another ListResolverQueryLogConfigs
6993	// request to get the next group of configurations. In the next request, specify
6994	// the value of NextToken from the previous response.
6995	NextToken *string `type:"string"`
6996
6997	// The element that you want Resolver to sort query logging configurations by.
6998	//
6999	// If you submit a second or subsequent ListResolverQueryLogConfigs request
7000	// and specify the NextToken parameter, you must use the same value for SortBy,
7001	// if any, as in the previous request.
7002	//
7003	// Valid values include the following elements:
7004	//
7005	//    * Arn: The ARN of the query logging configuration
7006	//
7007	//    * AssociationCount: The number of VPCs that are associated with the specified
7008	//    configuration
7009	//
7010	//    * CreationTime: The date and time that Resolver returned when the configuration
7011	//    was created
7012	//
7013	//    * CreatorRequestId: The value that was specified for CreatorRequestId
7014	//    when the configuration was created
7015	//
7016	//    * DestinationArn: The location that logs are sent to
7017	//
7018	//    * Id: The ID of the configuration
7019	//
7020	//    * Name: The name of the configuration
7021	//
7022	//    * OwnerId: The AWS account number of the account that created the configuration
7023	//
7024	//    * ShareStatus: Whether the configuration is shared with other AWS accounts
7025	//    or shared with the current account by another AWS account. Sharing is
7026	//    configured through AWS Resource Access Manager (AWS RAM).
7027	//
7028	//    * Status: The current status of the configuration. Valid values include
7029	//    the following: CREATING: Resolver is creating the query logging configuration.
7030	//    CREATED: The query logging configuration was successfully created. Resolver
7031	//    is logging queries that originate in the specified VPC. DELETING: Resolver
7032	//    is deleting this query logging configuration. FAILED: Resolver either
7033	//    couldn't create or couldn't delete the query logging configuration. Here
7034	//    are two common causes: The specified destination (for example, an Amazon
7035	//    S3 bucket) was deleted. Permissions don't allow sending logs to the destination.
7036	SortBy *string `min:"1" type:"string"`
7037
7038	// If you specified a value for SortBy, the order that you want query logging
7039	// configurations to be listed in, ASCENDING or DESCENDING.
7040	//
7041	// If you submit a second or subsequent ListResolverQueryLogConfigs request
7042	// and specify the NextToken parameter, you must use the same value for SortOrder,
7043	// if any, as in the previous request.
7044	SortOrder *string `type:"string" enum:"SortOrder"`
7045}
7046
7047// String returns the string representation
7048func (s ListResolverQueryLogConfigsInput) String() string {
7049	return awsutil.Prettify(s)
7050}
7051
7052// GoString returns the string representation
7053func (s ListResolverQueryLogConfigsInput) GoString() string {
7054	return s.String()
7055}
7056
7057// Validate inspects the fields of the type to determine if they are valid.
7058func (s *ListResolverQueryLogConfigsInput) Validate() error {
7059	invalidParams := request.ErrInvalidParams{Context: "ListResolverQueryLogConfigsInput"}
7060	if s.MaxResults != nil && *s.MaxResults < 1 {
7061		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
7062	}
7063	if s.SortBy != nil && len(*s.SortBy) < 1 {
7064		invalidParams.Add(request.NewErrParamMinLen("SortBy", 1))
7065	}
7066	if s.Filters != nil {
7067		for i, v := range s.Filters {
7068			if v == nil {
7069				continue
7070			}
7071			if err := v.Validate(); err != nil {
7072				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
7073			}
7074		}
7075	}
7076
7077	if invalidParams.Len() > 0 {
7078		return invalidParams
7079	}
7080	return nil
7081}
7082
7083// SetFilters sets the Filters field's value.
7084func (s *ListResolverQueryLogConfigsInput) SetFilters(v []*Filter) *ListResolverQueryLogConfigsInput {
7085	s.Filters = v
7086	return s
7087}
7088
7089// SetMaxResults sets the MaxResults field's value.
7090func (s *ListResolverQueryLogConfigsInput) SetMaxResults(v int64) *ListResolverQueryLogConfigsInput {
7091	s.MaxResults = &v
7092	return s
7093}
7094
7095// SetNextToken sets the NextToken field's value.
7096func (s *ListResolverQueryLogConfigsInput) SetNextToken(v string) *ListResolverQueryLogConfigsInput {
7097	s.NextToken = &v
7098	return s
7099}
7100
7101// SetSortBy sets the SortBy field's value.
7102func (s *ListResolverQueryLogConfigsInput) SetSortBy(v string) *ListResolverQueryLogConfigsInput {
7103	s.SortBy = &v
7104	return s
7105}
7106
7107// SetSortOrder sets the SortOrder field's value.
7108func (s *ListResolverQueryLogConfigsInput) SetSortOrder(v string) *ListResolverQueryLogConfigsInput {
7109	s.SortOrder = &v
7110	return s
7111}
7112
7113type ListResolverQueryLogConfigsOutput struct {
7114	_ struct{} `type:"structure"`
7115
7116	// If there are more than MaxResults query logging configurations, you can submit
7117	// another ListResolverQueryLogConfigs request to get the next group of configurations.
7118	// In the next request, specify the value of NextToken from the previous response.
7119	NextToken *string `type:"string"`
7120
7121	// A list that contains one ResolverQueryLogConfig element for each query logging
7122	// configuration that matches the values that you specified for Filter.
7123	ResolverQueryLogConfigs []*ResolverQueryLogConfig `type:"list"`
7124
7125	// The total number of query logging configurations that were created by the
7126	// current account in the specified Region. This count can differ from the number
7127	// of query logging configurations that are returned in a ListResolverQueryLogConfigs
7128	// response, depending on the values that you specify in the request.
7129	TotalCount *int64 `type:"integer"`
7130
7131	// The total number of query logging configurations that were created by the
7132	// current account in the specified Region and that match the filters that were
7133	// specified in the ListResolverQueryLogConfigs request. For the total number
7134	// of query logging configurations that were created by the current account
7135	// in the specified Region, see TotalCount.
7136	TotalFilteredCount *int64 `type:"integer"`
7137}
7138
7139// String returns the string representation
7140func (s ListResolverQueryLogConfigsOutput) String() string {
7141	return awsutil.Prettify(s)
7142}
7143
7144// GoString returns the string representation
7145func (s ListResolverQueryLogConfigsOutput) GoString() string {
7146	return s.String()
7147}
7148
7149// SetNextToken sets the NextToken field's value.
7150func (s *ListResolverQueryLogConfigsOutput) SetNextToken(v string) *ListResolverQueryLogConfigsOutput {
7151	s.NextToken = &v
7152	return s
7153}
7154
7155// SetResolverQueryLogConfigs sets the ResolverQueryLogConfigs field's value.
7156func (s *ListResolverQueryLogConfigsOutput) SetResolverQueryLogConfigs(v []*ResolverQueryLogConfig) *ListResolverQueryLogConfigsOutput {
7157	s.ResolverQueryLogConfigs = v
7158	return s
7159}
7160
7161// SetTotalCount sets the TotalCount field's value.
7162func (s *ListResolverQueryLogConfigsOutput) SetTotalCount(v int64) *ListResolverQueryLogConfigsOutput {
7163	s.TotalCount = &v
7164	return s
7165}
7166
7167// SetTotalFilteredCount sets the TotalFilteredCount field's value.
7168func (s *ListResolverQueryLogConfigsOutput) SetTotalFilteredCount(v int64) *ListResolverQueryLogConfigsOutput {
7169	s.TotalFilteredCount = &v
7170	return s
7171}
7172
7173type ListResolverRuleAssociationsInput struct {
7174	_ struct{} `type:"structure"`
7175
7176	// An optional specification to return a subset of Resolver rules, such as Resolver
7177	// rules that are associated with the same VPC ID.
7178	//
7179	// If you submit a second or subsequent ListResolverRuleAssociations request
7180	// and specify the NextToken parameter, you must use the same values for Filters,
7181	// if any, as in the previous request.
7182	Filters []*Filter `type:"list"`
7183
7184	// The maximum number of rule associations that you want to return in the response
7185	// to a ListResolverRuleAssociations request. If you don't specify a value for
7186	// MaxResults, Resolver returns up to 100 rule associations.
7187	MaxResults *int64 `min:"1" type:"integer"`
7188
7189	// For the first ListResolverRuleAssociation request, omit this value.
7190	//
7191	// If you have more than MaxResults rule associations, you can submit another
7192	// ListResolverRuleAssociation request to get the next group of rule associations.
7193	// In the next request, specify the value of NextToken from the previous response.
7194	NextToken *string `type:"string"`
7195}
7196
7197// String returns the string representation
7198func (s ListResolverRuleAssociationsInput) String() string {
7199	return awsutil.Prettify(s)
7200}
7201
7202// GoString returns the string representation
7203func (s ListResolverRuleAssociationsInput) GoString() string {
7204	return s.String()
7205}
7206
7207// Validate inspects the fields of the type to determine if they are valid.
7208func (s *ListResolverRuleAssociationsInput) Validate() error {
7209	invalidParams := request.ErrInvalidParams{Context: "ListResolverRuleAssociationsInput"}
7210	if s.MaxResults != nil && *s.MaxResults < 1 {
7211		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
7212	}
7213	if s.Filters != nil {
7214		for i, v := range s.Filters {
7215			if v == nil {
7216				continue
7217			}
7218			if err := v.Validate(); err != nil {
7219				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
7220			}
7221		}
7222	}
7223
7224	if invalidParams.Len() > 0 {
7225		return invalidParams
7226	}
7227	return nil
7228}
7229
7230// SetFilters sets the Filters field's value.
7231func (s *ListResolverRuleAssociationsInput) SetFilters(v []*Filter) *ListResolverRuleAssociationsInput {
7232	s.Filters = v
7233	return s
7234}
7235
7236// SetMaxResults sets the MaxResults field's value.
7237func (s *ListResolverRuleAssociationsInput) SetMaxResults(v int64) *ListResolverRuleAssociationsInput {
7238	s.MaxResults = &v
7239	return s
7240}
7241
7242// SetNextToken sets the NextToken field's value.
7243func (s *ListResolverRuleAssociationsInput) SetNextToken(v string) *ListResolverRuleAssociationsInput {
7244	s.NextToken = &v
7245	return s
7246}
7247
7248type ListResolverRuleAssociationsOutput struct {
7249	_ struct{} `type:"structure"`
7250
7251	// The value that you specified for MaxResults in the request.
7252	MaxResults *int64 `min:"1" type:"integer"`
7253
7254	// If more than MaxResults rule associations match the specified criteria, you
7255	// can submit another ListResolverRuleAssociation request to get the next group
7256	// of results. In the next request, specify the value of NextToken from the
7257	// previous response.
7258	NextToken *string `type:"string"`
7259
7260	// The associations that were created between Resolver rules and VPCs using
7261	// the current AWS account, and that match the specified filters, if any.
7262	ResolverRuleAssociations []*ResolverRuleAssociation `type:"list"`
7263}
7264
7265// String returns the string representation
7266func (s ListResolverRuleAssociationsOutput) String() string {
7267	return awsutil.Prettify(s)
7268}
7269
7270// GoString returns the string representation
7271func (s ListResolverRuleAssociationsOutput) GoString() string {
7272	return s.String()
7273}
7274
7275// SetMaxResults sets the MaxResults field's value.
7276func (s *ListResolverRuleAssociationsOutput) SetMaxResults(v int64) *ListResolverRuleAssociationsOutput {
7277	s.MaxResults = &v
7278	return s
7279}
7280
7281// SetNextToken sets the NextToken field's value.
7282func (s *ListResolverRuleAssociationsOutput) SetNextToken(v string) *ListResolverRuleAssociationsOutput {
7283	s.NextToken = &v
7284	return s
7285}
7286
7287// SetResolverRuleAssociations sets the ResolverRuleAssociations field's value.
7288func (s *ListResolverRuleAssociationsOutput) SetResolverRuleAssociations(v []*ResolverRuleAssociation) *ListResolverRuleAssociationsOutput {
7289	s.ResolverRuleAssociations = v
7290	return s
7291}
7292
7293type ListResolverRulesInput struct {
7294	_ struct{} `type:"structure"`
7295
7296	// An optional specification to return a subset of Resolver rules, such as all
7297	// Resolver rules that are associated with the same Resolver endpoint.
7298	//
7299	// If you submit a second or subsequent ListResolverRules request and specify
7300	// the NextToken parameter, you must use the same values for Filters, if any,
7301	// as in the previous request.
7302	Filters []*Filter `type:"list"`
7303
7304	// The maximum number of Resolver rules that you want to return in the response
7305	// to a ListResolverRules request. If you don't specify a value for MaxResults,
7306	// Resolver returns up to 100 Resolver rules.
7307	MaxResults *int64 `min:"1" type:"integer"`
7308
7309	// For the first ListResolverRules request, omit this value.
7310	//
7311	// If you have more than MaxResults Resolver rules, you can submit another ListResolverRules
7312	// request to get the next group of Resolver rules. In the next request, specify
7313	// the value of NextToken from the previous response.
7314	NextToken *string `type:"string"`
7315}
7316
7317// String returns the string representation
7318func (s ListResolverRulesInput) String() string {
7319	return awsutil.Prettify(s)
7320}
7321
7322// GoString returns the string representation
7323func (s ListResolverRulesInput) GoString() string {
7324	return s.String()
7325}
7326
7327// Validate inspects the fields of the type to determine if they are valid.
7328func (s *ListResolverRulesInput) Validate() error {
7329	invalidParams := request.ErrInvalidParams{Context: "ListResolverRulesInput"}
7330	if s.MaxResults != nil && *s.MaxResults < 1 {
7331		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
7332	}
7333	if s.Filters != nil {
7334		for i, v := range s.Filters {
7335			if v == nil {
7336				continue
7337			}
7338			if err := v.Validate(); err != nil {
7339				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams))
7340			}
7341		}
7342	}
7343
7344	if invalidParams.Len() > 0 {
7345		return invalidParams
7346	}
7347	return nil
7348}
7349
7350// SetFilters sets the Filters field's value.
7351func (s *ListResolverRulesInput) SetFilters(v []*Filter) *ListResolverRulesInput {
7352	s.Filters = v
7353	return s
7354}
7355
7356// SetMaxResults sets the MaxResults field's value.
7357func (s *ListResolverRulesInput) SetMaxResults(v int64) *ListResolverRulesInput {
7358	s.MaxResults = &v
7359	return s
7360}
7361
7362// SetNextToken sets the NextToken field's value.
7363func (s *ListResolverRulesInput) SetNextToken(v string) *ListResolverRulesInput {
7364	s.NextToken = &v
7365	return s
7366}
7367
7368type ListResolverRulesOutput struct {
7369	_ struct{} `type:"structure"`
7370
7371	// The value that you specified for MaxResults in the request.
7372	MaxResults *int64 `min:"1" type:"integer"`
7373
7374	// If more than MaxResults Resolver rules match the specified criteria, you
7375	// can submit another ListResolverRules request to get the next group of results.
7376	// In the next request, specify the value of NextToken from the previous response.
7377	NextToken *string `type:"string"`
7378
7379	// The Resolver rules that were created using the current AWS account and that
7380	// match the specified filters, if any.
7381	ResolverRules []*ResolverRule `type:"list"`
7382}
7383
7384// String returns the string representation
7385func (s ListResolverRulesOutput) String() string {
7386	return awsutil.Prettify(s)
7387}
7388
7389// GoString returns the string representation
7390func (s ListResolverRulesOutput) GoString() string {
7391	return s.String()
7392}
7393
7394// SetMaxResults sets the MaxResults field's value.
7395func (s *ListResolverRulesOutput) SetMaxResults(v int64) *ListResolverRulesOutput {
7396	s.MaxResults = &v
7397	return s
7398}
7399
7400// SetNextToken sets the NextToken field's value.
7401func (s *ListResolverRulesOutput) SetNextToken(v string) *ListResolverRulesOutput {
7402	s.NextToken = &v
7403	return s
7404}
7405
7406// SetResolverRules sets the ResolverRules field's value.
7407func (s *ListResolverRulesOutput) SetResolverRules(v []*ResolverRule) *ListResolverRulesOutput {
7408	s.ResolverRules = v
7409	return s
7410}
7411
7412type ListTagsForResourceInput struct {
7413	_ struct{} `type:"structure"`
7414
7415	// The maximum number of tags that you want to return in the response to a ListTagsForResource
7416	// request. If you don't specify a value for MaxResults, Resolver returns up
7417	// to 100 tags.
7418	MaxResults *int64 `min:"1" type:"integer"`
7419
7420	// For the first ListTagsForResource request, omit this value.
7421	//
7422	// If you have more than MaxResults tags, you can submit another ListTagsForResource
7423	// request to get the next group of tags for the resource. In the next request,
7424	// specify the value of NextToken from the previous response.
7425	NextToken *string `type:"string"`
7426
7427	// The Amazon Resource Name (ARN) for the resource that you want to list tags
7428	// for.
7429	//
7430	// ResourceArn is a required field
7431	ResourceArn *string `min:"1" type:"string" required:"true"`
7432}
7433
7434// String returns the string representation
7435func (s ListTagsForResourceInput) String() string {
7436	return awsutil.Prettify(s)
7437}
7438
7439// GoString returns the string representation
7440func (s ListTagsForResourceInput) GoString() string {
7441	return s.String()
7442}
7443
7444// Validate inspects the fields of the type to determine if they are valid.
7445func (s *ListTagsForResourceInput) Validate() error {
7446	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
7447	if s.MaxResults != nil && *s.MaxResults < 1 {
7448		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
7449	}
7450	if s.ResourceArn == nil {
7451		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
7452	}
7453	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
7454		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
7455	}
7456
7457	if invalidParams.Len() > 0 {
7458		return invalidParams
7459	}
7460	return nil
7461}
7462
7463// SetMaxResults sets the MaxResults field's value.
7464func (s *ListTagsForResourceInput) SetMaxResults(v int64) *ListTagsForResourceInput {
7465	s.MaxResults = &v
7466	return s
7467}
7468
7469// SetNextToken sets the NextToken field's value.
7470func (s *ListTagsForResourceInput) SetNextToken(v string) *ListTagsForResourceInput {
7471	s.NextToken = &v
7472	return s
7473}
7474
7475// SetResourceArn sets the ResourceArn field's value.
7476func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
7477	s.ResourceArn = &v
7478	return s
7479}
7480
7481type ListTagsForResourceOutput struct {
7482	_ struct{} `type:"structure"`
7483
7484	// If more than MaxResults tags match the specified criteria, you can submit
7485	// another ListTagsForResource request to get the next group of results. In
7486	// the next request, specify the value of NextToken from the previous response.
7487	NextToken *string `type:"string"`
7488
7489	// The tags that are associated with the resource that you specified in the
7490	// ListTagsForResource request.
7491	Tags []*Tag `type:"list"`
7492}
7493
7494// String returns the string representation
7495func (s ListTagsForResourceOutput) String() string {
7496	return awsutil.Prettify(s)
7497}
7498
7499// GoString returns the string representation
7500func (s ListTagsForResourceOutput) GoString() string {
7501	return s.String()
7502}
7503
7504// SetNextToken sets the NextToken field's value.
7505func (s *ListTagsForResourceOutput) SetNextToken(v string) *ListTagsForResourceOutput {
7506	s.NextToken = &v
7507	return s
7508}
7509
7510// SetTags sets the Tags field's value.
7511func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
7512	s.Tags = v
7513	return s
7514}
7515
7516type PutResolverQueryLogConfigPolicyInput struct {
7517	_ struct{} `type:"structure"`
7518
7519	// The Amazon Resource Name (ARN) of the account that you want to share rules
7520	// with.
7521	//
7522	// Arn is a required field
7523	Arn *string `min:"1" type:"string" required:"true"`
7524
7525	// An AWS Identity and Access Management policy statement that lists the query
7526	// logging configurations that you want to share with another AWS account and
7527	// the operations that you want the account to be able to perform. You can specify
7528	// the following operations in the Actions section of the statement:
7529	//
7530	//    * route53resolver:AssociateResolverQueryLogConfig
7531	//
7532	//    * route53resolver:DisassociateResolverQueryLogConfig
7533	//
7534	//    * route53resolver:ListResolverQueryLogConfigAssociations
7535	//
7536	//    * route53resolver:ListResolverQueryLogConfigs
7537	//
7538	// In the Resource section of the statement, you specify the ARNs for the query
7539	// logging configurations that you want to share with the account that you specified
7540	// in Arn.
7541	//
7542	// ResolverQueryLogConfigPolicy is a required field
7543	ResolverQueryLogConfigPolicy *string `type:"string" required:"true"`
7544}
7545
7546// String returns the string representation
7547func (s PutResolverQueryLogConfigPolicyInput) String() string {
7548	return awsutil.Prettify(s)
7549}
7550
7551// GoString returns the string representation
7552func (s PutResolverQueryLogConfigPolicyInput) GoString() string {
7553	return s.String()
7554}
7555
7556// Validate inspects the fields of the type to determine if they are valid.
7557func (s *PutResolverQueryLogConfigPolicyInput) Validate() error {
7558	invalidParams := request.ErrInvalidParams{Context: "PutResolverQueryLogConfigPolicyInput"}
7559	if s.Arn == nil {
7560		invalidParams.Add(request.NewErrParamRequired("Arn"))
7561	}
7562	if s.Arn != nil && len(*s.Arn) < 1 {
7563		invalidParams.Add(request.NewErrParamMinLen("Arn", 1))
7564	}
7565	if s.ResolverQueryLogConfigPolicy == nil {
7566		invalidParams.Add(request.NewErrParamRequired("ResolverQueryLogConfigPolicy"))
7567	}
7568
7569	if invalidParams.Len() > 0 {
7570		return invalidParams
7571	}
7572	return nil
7573}
7574
7575// SetArn sets the Arn field's value.
7576func (s *PutResolverQueryLogConfigPolicyInput) SetArn(v string) *PutResolverQueryLogConfigPolicyInput {
7577	s.Arn = &v
7578	return s
7579}
7580
7581// SetResolverQueryLogConfigPolicy sets the ResolverQueryLogConfigPolicy field's value.
7582func (s *PutResolverQueryLogConfigPolicyInput) SetResolverQueryLogConfigPolicy(v string) *PutResolverQueryLogConfigPolicyInput {
7583	s.ResolverQueryLogConfigPolicy = &v
7584	return s
7585}
7586
7587// The response to a PutResolverQueryLogConfigPolicy request.
7588type PutResolverQueryLogConfigPolicyOutput struct {
7589	_ struct{} `type:"structure"`
7590
7591	// Whether the PutResolverQueryLogConfigPolicy request was successful.
7592	ReturnValue *bool `type:"boolean"`
7593}
7594
7595// String returns the string representation
7596func (s PutResolverQueryLogConfigPolicyOutput) String() string {
7597	return awsutil.Prettify(s)
7598}
7599
7600// GoString returns the string representation
7601func (s PutResolverQueryLogConfigPolicyOutput) GoString() string {
7602	return s.String()
7603}
7604
7605// SetReturnValue sets the ReturnValue field's value.
7606func (s *PutResolverQueryLogConfigPolicyOutput) SetReturnValue(v bool) *PutResolverQueryLogConfigPolicyOutput {
7607	s.ReturnValue = &v
7608	return s
7609}
7610
7611type PutResolverRulePolicyInput struct {
7612	_ struct{} `type:"structure"`
7613
7614	// The Amazon Resource Name (ARN) of the rule that you want to share with another
7615	// account.
7616	//
7617	// Arn is a required field
7618	Arn *string `min:"1" type:"string" required:"true"`
7619
7620	// An AWS Identity and Access Management policy statement that lists the rules
7621	// that you want to share with another AWS account and the operations that you
7622	// want the account to be able to perform. You can specify the following operations
7623	// in the Action section of the statement:
7624	//
7625	//    * route53resolver:GetResolverRule
7626	//
7627	//    * route53resolver:AssociateResolverRule
7628	//
7629	//    * route53resolver:DisassociateResolverRule
7630	//
7631	//    * route53resolver:ListResolverRules
7632	//
7633	//    * route53resolver:ListResolverRuleAssociations
7634	//
7635	// In the Resource section of the statement, specify the ARN for the rule that
7636	// you want to share with another account. Specify the same ARN that you specified
7637	// in Arn.
7638	//
7639	// ResolverRulePolicy is a required field
7640	ResolverRulePolicy *string `type:"string" required:"true"`
7641}
7642
7643// String returns the string representation
7644func (s PutResolverRulePolicyInput) String() string {
7645	return awsutil.Prettify(s)
7646}
7647
7648// GoString returns the string representation
7649func (s PutResolverRulePolicyInput) GoString() string {
7650	return s.String()
7651}
7652
7653// Validate inspects the fields of the type to determine if they are valid.
7654func (s *PutResolverRulePolicyInput) Validate() error {
7655	invalidParams := request.ErrInvalidParams{Context: "PutResolverRulePolicyInput"}
7656	if s.Arn == nil {
7657		invalidParams.Add(request.NewErrParamRequired("Arn"))
7658	}
7659	if s.Arn != nil && len(*s.Arn) < 1 {
7660		invalidParams.Add(request.NewErrParamMinLen("Arn", 1))
7661	}
7662	if s.ResolverRulePolicy == nil {
7663		invalidParams.Add(request.NewErrParamRequired("ResolverRulePolicy"))
7664	}
7665
7666	if invalidParams.Len() > 0 {
7667		return invalidParams
7668	}
7669	return nil
7670}
7671
7672// SetArn sets the Arn field's value.
7673func (s *PutResolverRulePolicyInput) SetArn(v string) *PutResolverRulePolicyInput {
7674	s.Arn = &v
7675	return s
7676}
7677
7678// SetResolverRulePolicy sets the ResolverRulePolicy field's value.
7679func (s *PutResolverRulePolicyInput) SetResolverRulePolicy(v string) *PutResolverRulePolicyInput {
7680	s.ResolverRulePolicy = &v
7681	return s
7682}
7683
7684// The response to a PutResolverRulePolicy request.
7685type PutResolverRulePolicyOutput struct {
7686	_ struct{} `type:"structure"`
7687
7688	// Whether the PutResolverRulePolicy request was successful.
7689	ReturnValue *bool `type:"boolean"`
7690}
7691
7692// String returns the string representation
7693func (s PutResolverRulePolicyOutput) String() string {
7694	return awsutil.Prettify(s)
7695}
7696
7697// GoString returns the string representation
7698func (s PutResolverRulePolicyOutput) GoString() string {
7699	return s.String()
7700}
7701
7702// SetReturnValue sets the ReturnValue field's value.
7703func (s *PutResolverRulePolicyOutput) SetReturnValue(v bool) *PutResolverRulePolicyOutput {
7704	s.ReturnValue = &v
7705	return s
7706}
7707
7708// A complex type that contains information about a configuration for DNSSEC
7709// validation.
7710type ResolverDnssecConfig struct {
7711	_ struct{} `type:"structure"`
7712
7713	// The ID for a configuration for DNSSEC validation.
7714	Id *string `min:"1" type:"string"`
7715
7716	// The owner account ID of the virtual private cloud (VPC) for a configuration
7717	// for DNSSEC validation.
7718	OwnerId *string `min:"12" type:"string"`
7719
7720	// The ID of the virtual private cloud (VPC) that you're configuring the DNSSEC
7721	// validation status for.
7722	ResourceId *string `min:"1" type:"string"`
7723
7724	// The validation status for a DNSSEC configuration. The status can be one of
7725	// the following:
7726	//
7727	//    * ENABLING: DNSSEC validation is being enabled but is not complete.
7728	//
7729	//    * ENABLED: DNSSEC validation is enabled.
7730	//
7731	//    * DISABLING: DNSSEC validation is being disabled but is not complete.
7732	//
7733	//    * DISABLED DNSSEC validation is disabled.
7734	ValidationStatus *string `type:"string" enum:"ResolverDNSSECValidationStatus"`
7735}
7736
7737// String returns the string representation
7738func (s ResolverDnssecConfig) String() string {
7739	return awsutil.Prettify(s)
7740}
7741
7742// GoString returns the string representation
7743func (s ResolverDnssecConfig) GoString() string {
7744	return s.String()
7745}
7746
7747// SetId sets the Id field's value.
7748func (s *ResolverDnssecConfig) SetId(v string) *ResolverDnssecConfig {
7749	s.Id = &v
7750	return s
7751}
7752
7753// SetOwnerId sets the OwnerId field's value.
7754func (s *ResolverDnssecConfig) SetOwnerId(v string) *ResolverDnssecConfig {
7755	s.OwnerId = &v
7756	return s
7757}
7758
7759// SetResourceId sets the ResourceId field's value.
7760func (s *ResolverDnssecConfig) SetResourceId(v string) *ResolverDnssecConfig {
7761	s.ResourceId = &v
7762	return s
7763}
7764
7765// SetValidationStatus sets the ValidationStatus field's value.
7766func (s *ResolverDnssecConfig) SetValidationStatus(v string) *ResolverDnssecConfig {
7767	s.ValidationStatus = &v
7768	return s
7769}
7770
7771// In the response to a CreateResolverEndpoint (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_CreateResolverEndpoint.html),
7772// DeleteResolverEndpoint (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_DeleteResolverEndpoint.html),
7773// GetResolverEndpoint (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverEndpoint.html),
7774// ListResolverEndpoints (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverEndpoints.html),
7775// or UpdateResolverEndpoint (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_UpdateResolverEndpoint.html)
7776// request, a complex type that contains settings for an existing inbound or
7777// outbound Resolver endpoint.
7778type ResolverEndpoint struct {
7779	_ struct{} `type:"structure"`
7780
7781	// The ARN (Amazon Resource Name) for the Resolver endpoint.
7782	Arn *string `min:"1" type:"string"`
7783
7784	// The date and time that the endpoint was created, in Unix time format and
7785	// Coordinated Universal Time (UTC).
7786	CreationTime *string `min:"20" type:"string"`
7787
7788	// A unique string that identifies the request that created the Resolver endpoint.
7789	// The CreatorRequestId allows failed requests to be retried without the risk
7790	// of executing the operation twice.
7791	CreatorRequestId *string `min:"1" type:"string"`
7792
7793	// Indicates whether the Resolver endpoint allows inbound or outbound DNS queries:
7794	//
7795	//    * INBOUND: allows DNS queries to your VPC from your network
7796	//
7797	//    * OUTBOUND: allows DNS queries from your VPC to your network
7798	Direction *string `type:"string" enum:"ResolverEndpointDirection"`
7799
7800	// The ID of the VPC that you want to create the Resolver endpoint in.
7801	HostVPCId *string `min:"1" type:"string"`
7802
7803	// The ID of the Resolver endpoint.
7804	Id *string `min:"1" type:"string"`
7805
7806	// The number of IP addresses that the Resolver endpoint can use for DNS queries.
7807	IpAddressCount *int64 `type:"integer"`
7808
7809	// The date and time that the endpoint was last modified, in Unix time format
7810	// and Coordinated Universal Time (UTC).
7811	ModificationTime *string `min:"20" type:"string"`
7812
7813	// The name that you assigned to the Resolver endpoint when you submitted a
7814	// CreateResolverEndpoint (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_CreateResolverEndpoint.html)
7815	// request.
7816	Name *string `type:"string"`
7817
7818	// The ID of one or more security groups that control access to this VPC. The
7819	// security group must include one or more inbound rules (for inbound endpoints)
7820	// or outbound rules (for outbound endpoints). Inbound and outbound rules must
7821	// allow TCP and UDP access. For inbound access, open port 53. For outbound
7822	// access, open the port that you're using for DNS queries on your network.
7823	SecurityGroupIds []*string `type:"list"`
7824
7825	// A code that specifies the current status of the Resolver endpoint. Valid
7826	// values include the following:
7827	//
7828	//    * CREATING: Resolver is creating and configuring one or more Amazon VPC
7829	//    network interfaces for this endpoint.
7830	//
7831	//    * OPERATIONAL: The Amazon VPC network interfaces for this endpoint are
7832	//    correctly configured and able to pass inbound or outbound DNS queries
7833	//    between your network and Resolver.
7834	//
7835	//    * UPDATING: Resolver is associating or disassociating one or more network
7836	//    interfaces with this endpoint.
7837	//
7838	//    * AUTO_RECOVERING: Resolver is trying to recover one or more of the network
7839	//    interfaces that are associated with this endpoint. During the recovery
7840	//    process, the endpoint functions with limited capacity because of the limit
7841	//    on the number of DNS queries per IP address (per network interface). For
7842	//    the current limit, see Limits on Route 53 Resolver (https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DNSLimitations.html#limits-api-entities-resolver).
7843	//
7844	//    * ACTION_NEEDED: This endpoint is unhealthy, and Resolver can't automatically
7845	//    recover it. To resolve the problem, we recommend that you check each IP
7846	//    address that you associated with the endpoint. For each IP address that
7847	//    isn't available, add another IP address and then delete the IP address
7848	//    that isn't available. (An endpoint must always include at least two IP
7849	//    addresses.) A status of ACTION_NEEDED can have a variety of causes. Here
7850	//    are two common causes: One or more of the network interfaces that are
7851	//    associated with the endpoint were deleted using Amazon VPC. The network
7852	//    interface couldn't be created for some reason that's outside the control
7853	//    of Resolver.
7854	//
7855	//    * DELETING: Resolver is deleting this endpoint and the associated network
7856	//    interfaces.
7857	Status *string `type:"string" enum:"ResolverEndpointStatus"`
7858
7859	// A detailed description of the status of the Resolver endpoint.
7860	StatusMessage *string `type:"string"`
7861}
7862
7863// String returns the string representation
7864func (s ResolverEndpoint) String() string {
7865	return awsutil.Prettify(s)
7866}
7867
7868// GoString returns the string representation
7869func (s ResolverEndpoint) GoString() string {
7870	return s.String()
7871}
7872
7873// SetArn sets the Arn field's value.
7874func (s *ResolverEndpoint) SetArn(v string) *ResolverEndpoint {
7875	s.Arn = &v
7876	return s
7877}
7878
7879// SetCreationTime sets the CreationTime field's value.
7880func (s *ResolverEndpoint) SetCreationTime(v string) *ResolverEndpoint {
7881	s.CreationTime = &v
7882	return s
7883}
7884
7885// SetCreatorRequestId sets the CreatorRequestId field's value.
7886func (s *ResolverEndpoint) SetCreatorRequestId(v string) *ResolverEndpoint {
7887	s.CreatorRequestId = &v
7888	return s
7889}
7890
7891// SetDirection sets the Direction field's value.
7892func (s *ResolverEndpoint) SetDirection(v string) *ResolverEndpoint {
7893	s.Direction = &v
7894	return s
7895}
7896
7897// SetHostVPCId sets the HostVPCId field's value.
7898func (s *ResolverEndpoint) SetHostVPCId(v string) *ResolverEndpoint {
7899	s.HostVPCId = &v
7900	return s
7901}
7902
7903// SetId sets the Id field's value.
7904func (s *ResolverEndpoint) SetId(v string) *ResolverEndpoint {
7905	s.Id = &v
7906	return s
7907}
7908
7909// SetIpAddressCount sets the IpAddressCount field's value.
7910func (s *ResolverEndpoint) SetIpAddressCount(v int64) *ResolverEndpoint {
7911	s.IpAddressCount = &v
7912	return s
7913}
7914
7915// SetModificationTime sets the ModificationTime field's value.
7916func (s *ResolverEndpoint) SetModificationTime(v string) *ResolverEndpoint {
7917	s.ModificationTime = &v
7918	return s
7919}
7920
7921// SetName sets the Name field's value.
7922func (s *ResolverEndpoint) SetName(v string) *ResolverEndpoint {
7923	s.Name = &v
7924	return s
7925}
7926
7927// SetSecurityGroupIds sets the SecurityGroupIds field's value.
7928func (s *ResolverEndpoint) SetSecurityGroupIds(v []*string) *ResolverEndpoint {
7929	s.SecurityGroupIds = v
7930	return s
7931}
7932
7933// SetStatus sets the Status field's value.
7934func (s *ResolverEndpoint) SetStatus(v string) *ResolverEndpoint {
7935	s.Status = &v
7936	return s
7937}
7938
7939// SetStatusMessage sets the StatusMessage field's value.
7940func (s *ResolverEndpoint) SetStatusMessage(v string) *ResolverEndpoint {
7941	s.StatusMessage = &v
7942	return s
7943}
7944
7945// In the response to a CreateResolverQueryLogConfig (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_CreateResolverQueryLogConfig.html),
7946// DeleteResolverQueryLogConfig (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_DeleteResolverQueryLogConfig.html),
7947// GetResolverQueryLogConfig (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverQueryLogConfig.html),
7948// or ListResolverQueryLogConfigs (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverQueryLogConfigs.html)
7949// request, a complex type that contains settings for one query logging configuration.
7950type ResolverQueryLogConfig struct {
7951	_ struct{} `type:"structure"`
7952
7953	// The ARN for the query logging configuration.
7954	Arn *string `min:"1" type:"string"`
7955
7956	// The number of VPCs that are associated with the query logging configuration.
7957	AssociationCount *int64 `type:"integer"`
7958
7959	// The date and time that the query logging configuration was created, in Unix
7960	// time format and Coordinated Universal Time (UTC).
7961	CreationTime *string `min:"20" type:"string"`
7962
7963	// A unique string that identifies the request that created the query logging
7964	// configuration. The CreatorRequestId allows failed requests to be retried
7965	// without the risk of executing the operation twice.
7966	CreatorRequestId *string `min:"1" type:"string"`
7967
7968	// The ARN of the resource that you want Resolver to send query logs: an Amazon
7969	// S3 bucket, a CloudWatch Logs log group, or a Kinesis Data Firehose delivery
7970	// stream.
7971	DestinationArn *string `min:"1" type:"string"`
7972
7973	// The ID for the query logging configuration.
7974	Id *string `min:"1" type:"string"`
7975
7976	// The name of the query logging configuration.
7977	Name *string `min:"1" type:"string"`
7978
7979	// The AWS account ID for the account that created the query logging configuration.
7980	OwnerId *string `min:"12" type:"string"`
7981
7982	// An indication of whether the query logging configuration is shared with other
7983	// AWS accounts, or was shared with the current account by another AWS account.
7984	// Sharing is configured through AWS Resource Access Manager (AWS RAM).
7985	ShareStatus *string `type:"string" enum:"ShareStatus"`
7986
7987	// The status of the specified query logging configuration. Valid values include
7988	// the following:
7989	//
7990	//    * CREATING: Resolver is creating the query logging configuration.
7991	//
7992	//    * CREATED: The query logging configuration was successfully created. Resolver
7993	//    is logging queries that originate in the specified VPC.
7994	//
7995	//    * DELETING: Resolver is deleting this query logging configuration.
7996	//
7997	//    * FAILED: Resolver can't deliver logs to the location that is specified
7998	//    in the query logging configuration. Here are two common causes: The specified
7999	//    destination (for example, an Amazon S3 bucket) was deleted. Permissions
8000	//    don't allow sending logs to the destination.
8001	Status *string `type:"string" enum:"ResolverQueryLogConfigStatus"`
8002}
8003
8004// String returns the string representation
8005func (s ResolverQueryLogConfig) String() string {
8006	return awsutil.Prettify(s)
8007}
8008
8009// GoString returns the string representation
8010func (s ResolverQueryLogConfig) GoString() string {
8011	return s.String()
8012}
8013
8014// SetArn sets the Arn field's value.
8015func (s *ResolverQueryLogConfig) SetArn(v string) *ResolverQueryLogConfig {
8016	s.Arn = &v
8017	return s
8018}
8019
8020// SetAssociationCount sets the AssociationCount field's value.
8021func (s *ResolverQueryLogConfig) SetAssociationCount(v int64) *ResolverQueryLogConfig {
8022	s.AssociationCount = &v
8023	return s
8024}
8025
8026// SetCreationTime sets the CreationTime field's value.
8027func (s *ResolverQueryLogConfig) SetCreationTime(v string) *ResolverQueryLogConfig {
8028	s.CreationTime = &v
8029	return s
8030}
8031
8032// SetCreatorRequestId sets the CreatorRequestId field's value.
8033func (s *ResolverQueryLogConfig) SetCreatorRequestId(v string) *ResolverQueryLogConfig {
8034	s.CreatorRequestId = &v
8035	return s
8036}
8037
8038// SetDestinationArn sets the DestinationArn field's value.
8039func (s *ResolverQueryLogConfig) SetDestinationArn(v string) *ResolverQueryLogConfig {
8040	s.DestinationArn = &v
8041	return s
8042}
8043
8044// SetId sets the Id field's value.
8045func (s *ResolverQueryLogConfig) SetId(v string) *ResolverQueryLogConfig {
8046	s.Id = &v
8047	return s
8048}
8049
8050// SetName sets the Name field's value.
8051func (s *ResolverQueryLogConfig) SetName(v string) *ResolverQueryLogConfig {
8052	s.Name = &v
8053	return s
8054}
8055
8056// SetOwnerId sets the OwnerId field's value.
8057func (s *ResolverQueryLogConfig) SetOwnerId(v string) *ResolverQueryLogConfig {
8058	s.OwnerId = &v
8059	return s
8060}
8061
8062// SetShareStatus sets the ShareStatus field's value.
8063func (s *ResolverQueryLogConfig) SetShareStatus(v string) *ResolverQueryLogConfig {
8064	s.ShareStatus = &v
8065	return s
8066}
8067
8068// SetStatus sets the Status field's value.
8069func (s *ResolverQueryLogConfig) SetStatus(v string) *ResolverQueryLogConfig {
8070	s.Status = &v
8071	return s
8072}
8073
8074// In the response to an AssociateResolverQueryLogConfig (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_AssociateResolverQueryLogConfig.html),
8075// DisassociateResolverQueryLogConfig (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_DisassociateResolverQueryLogConfig.html),
8076// GetResolverQueryLogConfigAssociation (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverQueryLogConfigAssociation.html),
8077// or ListResolverQueryLogConfigAssociations (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverQueryLogConfigAssociations.html),
8078// request, a complex type that contains settings for a specified association
8079// between an Amazon VPC and a query logging configuration.
8080type ResolverQueryLogConfigAssociation struct {
8081	_ struct{} `type:"structure"`
8082
8083	// The date and time that the VPC was associated with the query logging configuration,
8084	// in Unix time format and Coordinated Universal Time (UTC).
8085	CreationTime *string `min:"20" type:"string"`
8086
8087	// If the value of Status is FAILED, the value of Error indicates the cause:
8088	//
8089	//    * DESTINATION_NOT_FOUND: The specified destination (for example, an Amazon
8090	//    S3 bucket) was deleted.
8091	//
8092	//    * ACCESS_DENIED: Permissions don't allow sending logs to the destination.
8093	//
8094	// If the value of Status is a value other than FAILED, Error is null.
8095	Error *string `type:"string" enum:"ResolverQueryLogConfigAssociationError"`
8096
8097	// Contains additional information about the error. If the value or Error is
8098	// null, the value of ErrorMessage also is null.
8099	ErrorMessage *string `type:"string"`
8100
8101	// The ID of the query logging association.
8102	Id *string `min:"1" type:"string"`
8103
8104	// The ID of the query logging configuration that a VPC is associated with.
8105	ResolverQueryLogConfigId *string `min:"1" type:"string"`
8106
8107	// The ID of the Amazon VPC that is associated with the query logging configuration.
8108	ResourceId *string `min:"1" type:"string"`
8109
8110	// The status of the specified query logging association. Valid values include
8111	// the following:
8112	//
8113	//    * CREATING: Resolver is creating an association between an Amazon VPC
8114	//    and a query logging configuration.
8115	//
8116	//    * CREATED: The association between an Amazon VPC and a query logging configuration
8117	//    was successfully created. Resolver is logging queries that originate in
8118	//    the specified VPC.
8119	//
8120	//    * DELETING: Resolver is deleting this query logging association.
8121	//
8122	//    * FAILED: Resolver either couldn't create or couldn't delete the query
8123	//    logging association.
8124	Status *string `type:"string" enum:"ResolverQueryLogConfigAssociationStatus"`
8125}
8126
8127// String returns the string representation
8128func (s ResolverQueryLogConfigAssociation) String() string {
8129	return awsutil.Prettify(s)
8130}
8131
8132// GoString returns the string representation
8133func (s ResolverQueryLogConfigAssociation) GoString() string {
8134	return s.String()
8135}
8136
8137// SetCreationTime sets the CreationTime field's value.
8138func (s *ResolverQueryLogConfigAssociation) SetCreationTime(v string) *ResolverQueryLogConfigAssociation {
8139	s.CreationTime = &v
8140	return s
8141}
8142
8143// SetError sets the Error field's value.
8144func (s *ResolverQueryLogConfigAssociation) SetError(v string) *ResolverQueryLogConfigAssociation {
8145	s.Error = &v
8146	return s
8147}
8148
8149// SetErrorMessage sets the ErrorMessage field's value.
8150func (s *ResolverQueryLogConfigAssociation) SetErrorMessage(v string) *ResolverQueryLogConfigAssociation {
8151	s.ErrorMessage = &v
8152	return s
8153}
8154
8155// SetId sets the Id field's value.
8156func (s *ResolverQueryLogConfigAssociation) SetId(v string) *ResolverQueryLogConfigAssociation {
8157	s.Id = &v
8158	return s
8159}
8160
8161// SetResolverQueryLogConfigId sets the ResolverQueryLogConfigId field's value.
8162func (s *ResolverQueryLogConfigAssociation) SetResolverQueryLogConfigId(v string) *ResolverQueryLogConfigAssociation {
8163	s.ResolverQueryLogConfigId = &v
8164	return s
8165}
8166
8167// SetResourceId sets the ResourceId field's value.
8168func (s *ResolverQueryLogConfigAssociation) SetResourceId(v string) *ResolverQueryLogConfigAssociation {
8169	s.ResourceId = &v
8170	return s
8171}
8172
8173// SetStatus sets the Status field's value.
8174func (s *ResolverQueryLogConfigAssociation) SetStatus(v string) *ResolverQueryLogConfigAssociation {
8175	s.Status = &v
8176	return s
8177}
8178
8179// For queries that originate in your VPC, detailed information about a Resolver
8180// rule, which specifies how to route DNS queries out of the VPC. The ResolverRule
8181// parameter appears in the response to a CreateResolverRule (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_CreateResolverRule.html),
8182// DeleteResolverRule (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_DeleteResolverRule.html),
8183// GetResolverRule (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverRule.html),
8184// ListResolverRules (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverRules.html),
8185// or UpdateResolverRule (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_UpdateResolverRule.html)
8186// request.
8187type ResolverRule struct {
8188	_ struct{} `type:"structure"`
8189
8190	// The ARN (Amazon Resource Name) for the Resolver rule specified by Id.
8191	Arn *string `min:"1" type:"string"`
8192
8193	// The date and time that the Resolver rule was created, in Unix time format
8194	// and Coordinated Universal Time (UTC).
8195	CreationTime *string `min:"20" type:"string"`
8196
8197	// A unique string that you specified when you created the Resolver rule. CreatorRequestId
8198	// identifies the request and allows failed requests to be retried without the
8199	// risk of executing the operation twice.
8200	CreatorRequestId *string `min:"1" type:"string"`
8201
8202	// DNS queries for this domain name are forwarded to the IP addresses that are
8203	// specified in TargetIps. If a query matches multiple Resolver rules (example.com
8204	// and www.example.com), the query is routed using the Resolver rule that contains
8205	// the most specific domain name (www.example.com).
8206	DomainName *string `min:"1" type:"string"`
8207
8208	// The ID that Resolver assigned to the Resolver rule when you created it.
8209	Id *string `min:"1" type:"string"`
8210
8211	// The date and time that the Resolver rule was last updated, in Unix time format
8212	// and Coordinated Universal Time (UTC).
8213	ModificationTime *string `min:"20" type:"string"`
8214
8215	// The name for the Resolver rule, which you specified when you created the
8216	// Resolver rule.
8217	Name *string `type:"string"`
8218
8219	// When a rule is shared with another AWS account, the account ID of the account
8220	// that the rule is shared with.
8221	OwnerId *string `min:"12" type:"string"`
8222
8223	// The ID of the endpoint that the rule is associated with.
8224	ResolverEndpointId *string `min:"1" type:"string"`
8225
8226	// When you want to forward DNS queries for specified domain name to resolvers
8227	// on your network, specify FORWARD.
8228	//
8229	// When you have a forwarding rule to forward DNS queries for a domain to your
8230	// network and you want Resolver to process queries for a subdomain of that
8231	// domain, specify SYSTEM.
8232	//
8233	// For example, to forward DNS queries for example.com to resolvers on your
8234	// network, you create a rule and specify FORWARD for RuleType. To then have
8235	// Resolver process queries for apex.example.com, you create a rule and specify
8236	// SYSTEM for RuleType.
8237	//
8238	// Currently, only Resolver can create rules that have a value of RECURSIVE
8239	// for RuleType.
8240	RuleType *string `type:"string" enum:"RuleTypeOption"`
8241
8242	// Whether the rules is shared and, if so, whether the current account is sharing
8243	// the rule with another account, or another account is sharing the rule with
8244	// the current account.
8245	ShareStatus *string `type:"string" enum:"ShareStatus"`
8246
8247	// A code that specifies the current status of the Resolver rule.
8248	Status *string `type:"string" enum:"ResolverRuleStatus"`
8249
8250	// A detailed description of the status of a Resolver rule.
8251	StatusMessage *string `type:"string"`
8252
8253	// An array that contains the IP addresses and ports that an outbound endpoint
8254	// forwards DNS queries to. Typically, these are the IP addresses of DNS resolvers
8255	// on your network. Specify IPv4 addresses. IPv6 is not supported.
8256	TargetIps []*TargetAddress `min:"1" type:"list"`
8257}
8258
8259// String returns the string representation
8260func (s ResolverRule) String() string {
8261	return awsutil.Prettify(s)
8262}
8263
8264// GoString returns the string representation
8265func (s ResolverRule) GoString() string {
8266	return s.String()
8267}
8268
8269// SetArn sets the Arn field's value.
8270func (s *ResolverRule) SetArn(v string) *ResolverRule {
8271	s.Arn = &v
8272	return s
8273}
8274
8275// SetCreationTime sets the CreationTime field's value.
8276func (s *ResolverRule) SetCreationTime(v string) *ResolverRule {
8277	s.CreationTime = &v
8278	return s
8279}
8280
8281// SetCreatorRequestId sets the CreatorRequestId field's value.
8282func (s *ResolverRule) SetCreatorRequestId(v string) *ResolverRule {
8283	s.CreatorRequestId = &v
8284	return s
8285}
8286
8287// SetDomainName sets the DomainName field's value.
8288func (s *ResolverRule) SetDomainName(v string) *ResolverRule {
8289	s.DomainName = &v
8290	return s
8291}
8292
8293// SetId sets the Id field's value.
8294func (s *ResolverRule) SetId(v string) *ResolverRule {
8295	s.Id = &v
8296	return s
8297}
8298
8299// SetModificationTime sets the ModificationTime field's value.
8300func (s *ResolverRule) SetModificationTime(v string) *ResolverRule {
8301	s.ModificationTime = &v
8302	return s
8303}
8304
8305// SetName sets the Name field's value.
8306func (s *ResolverRule) SetName(v string) *ResolverRule {
8307	s.Name = &v
8308	return s
8309}
8310
8311// SetOwnerId sets the OwnerId field's value.
8312func (s *ResolverRule) SetOwnerId(v string) *ResolverRule {
8313	s.OwnerId = &v
8314	return s
8315}
8316
8317// SetResolverEndpointId sets the ResolverEndpointId field's value.
8318func (s *ResolverRule) SetResolverEndpointId(v string) *ResolverRule {
8319	s.ResolverEndpointId = &v
8320	return s
8321}
8322
8323// SetRuleType sets the RuleType field's value.
8324func (s *ResolverRule) SetRuleType(v string) *ResolverRule {
8325	s.RuleType = &v
8326	return s
8327}
8328
8329// SetShareStatus sets the ShareStatus field's value.
8330func (s *ResolverRule) SetShareStatus(v string) *ResolverRule {
8331	s.ShareStatus = &v
8332	return s
8333}
8334
8335// SetStatus sets the Status field's value.
8336func (s *ResolverRule) SetStatus(v string) *ResolverRule {
8337	s.Status = &v
8338	return s
8339}
8340
8341// SetStatusMessage sets the StatusMessage field's value.
8342func (s *ResolverRule) SetStatusMessage(v string) *ResolverRule {
8343	s.StatusMessage = &v
8344	return s
8345}
8346
8347// SetTargetIps sets the TargetIps field's value.
8348func (s *ResolverRule) SetTargetIps(v []*TargetAddress) *ResolverRule {
8349	s.TargetIps = v
8350	return s
8351}
8352
8353// In the response to an AssociateResolverRule (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_AssociateResolverRule.html),
8354// DisassociateResolverRule (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_DisassociateResolverRule.html),
8355// or ListResolverRuleAssociations (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverRuleAssociations.html)
8356// request, provides information about an association between a Resolver rule
8357// and a VPC. The association determines which DNS queries that originate in
8358// the VPC are forwarded to your network.
8359type ResolverRuleAssociation struct {
8360	_ struct{} `type:"structure"`
8361
8362	// The ID of the association between a Resolver rule and a VPC. Resolver assigns
8363	// this value when you submit an AssociateResolverRule (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_AssociateResolverRule.html)
8364	// request.
8365	Id *string `min:"1" type:"string"`
8366
8367	// The name of an association between a Resolver rule and a VPC.
8368	Name *string `type:"string"`
8369
8370	// The ID of the Resolver rule that you associated with the VPC that is specified
8371	// by VPCId.
8372	ResolverRuleId *string `min:"1" type:"string"`
8373
8374	// A code that specifies the current status of the association between a Resolver
8375	// rule and a VPC.
8376	Status *string `type:"string" enum:"ResolverRuleAssociationStatus"`
8377
8378	// A detailed description of the status of the association between a Resolver
8379	// rule and a VPC.
8380	StatusMessage *string `type:"string"`
8381
8382	// The ID of the VPC that you associated the Resolver rule with.
8383	VPCId *string `min:"1" type:"string"`
8384}
8385
8386// String returns the string representation
8387func (s ResolverRuleAssociation) String() string {
8388	return awsutil.Prettify(s)
8389}
8390
8391// GoString returns the string representation
8392func (s ResolverRuleAssociation) GoString() string {
8393	return s.String()
8394}
8395
8396// SetId sets the Id field's value.
8397func (s *ResolverRuleAssociation) SetId(v string) *ResolverRuleAssociation {
8398	s.Id = &v
8399	return s
8400}
8401
8402// SetName sets the Name field's value.
8403func (s *ResolverRuleAssociation) SetName(v string) *ResolverRuleAssociation {
8404	s.Name = &v
8405	return s
8406}
8407
8408// SetResolverRuleId sets the ResolverRuleId field's value.
8409func (s *ResolverRuleAssociation) SetResolverRuleId(v string) *ResolverRuleAssociation {
8410	s.ResolverRuleId = &v
8411	return s
8412}
8413
8414// SetStatus sets the Status field's value.
8415func (s *ResolverRuleAssociation) SetStatus(v string) *ResolverRuleAssociation {
8416	s.Status = &v
8417	return s
8418}
8419
8420// SetStatusMessage sets the StatusMessage field's value.
8421func (s *ResolverRuleAssociation) SetStatusMessage(v string) *ResolverRuleAssociation {
8422	s.StatusMessage = &v
8423	return s
8424}
8425
8426// SetVPCId sets the VPCId field's value.
8427func (s *ResolverRuleAssociation) SetVPCId(v string) *ResolverRuleAssociation {
8428	s.VPCId = &v
8429	return s
8430}
8431
8432// In an UpdateResolverRule (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_UpdateResolverRule.html)
8433// request, information about the changes that you want to make.
8434type ResolverRuleConfig struct {
8435	_ struct{} `type:"structure"`
8436
8437	// The new name for the Resolver rule. The name that you specify appears in
8438	// the Resolver dashboard in the Route 53 console.
8439	Name *string `type:"string"`
8440
8441	// The ID of the new outbound Resolver endpoint that you want to use to route
8442	// DNS queries to the IP addresses that you specify in TargetIps.
8443	ResolverEndpointId *string `min:"1" type:"string"`
8444
8445	// For DNS queries that originate in your VPC, the new IP addresses that you
8446	// want to route outbound DNS queries to.
8447	TargetIps []*TargetAddress `min:"1" type:"list"`
8448}
8449
8450// String returns the string representation
8451func (s ResolverRuleConfig) String() string {
8452	return awsutil.Prettify(s)
8453}
8454
8455// GoString returns the string representation
8456func (s ResolverRuleConfig) GoString() string {
8457	return s.String()
8458}
8459
8460// Validate inspects the fields of the type to determine if they are valid.
8461func (s *ResolverRuleConfig) Validate() error {
8462	invalidParams := request.ErrInvalidParams{Context: "ResolverRuleConfig"}
8463	if s.ResolverEndpointId != nil && len(*s.ResolverEndpointId) < 1 {
8464		invalidParams.Add(request.NewErrParamMinLen("ResolverEndpointId", 1))
8465	}
8466	if s.TargetIps != nil && len(s.TargetIps) < 1 {
8467		invalidParams.Add(request.NewErrParamMinLen("TargetIps", 1))
8468	}
8469	if s.TargetIps != nil {
8470		for i, v := range s.TargetIps {
8471			if v == nil {
8472				continue
8473			}
8474			if err := v.Validate(); err != nil {
8475				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TargetIps", i), err.(request.ErrInvalidParams))
8476			}
8477		}
8478	}
8479
8480	if invalidParams.Len() > 0 {
8481		return invalidParams
8482	}
8483	return nil
8484}
8485
8486// SetName sets the Name field's value.
8487func (s *ResolverRuleConfig) SetName(v string) *ResolverRuleConfig {
8488	s.Name = &v
8489	return s
8490}
8491
8492// SetResolverEndpointId sets the ResolverEndpointId field's value.
8493func (s *ResolverRuleConfig) SetResolverEndpointId(v string) *ResolverRuleConfig {
8494	s.ResolverEndpointId = &v
8495	return s
8496}
8497
8498// SetTargetIps sets the TargetIps field's value.
8499func (s *ResolverRuleConfig) SetTargetIps(v []*TargetAddress) *ResolverRuleConfig {
8500	s.TargetIps = v
8501	return s
8502}
8503
8504// The resource that you tried to create already exists.
8505type ResourceExistsException struct {
8506	_            struct{}                  `type:"structure"`
8507	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8508
8509	Message_ *string `locationName:"Message" type:"string"`
8510
8511	// For a ResourceExistsException error, the type of resource that the error
8512	// applies to.
8513	ResourceType *string `type:"string"`
8514}
8515
8516// String returns the string representation
8517func (s ResourceExistsException) String() string {
8518	return awsutil.Prettify(s)
8519}
8520
8521// GoString returns the string representation
8522func (s ResourceExistsException) GoString() string {
8523	return s.String()
8524}
8525
8526func newErrorResourceExistsException(v protocol.ResponseMetadata) error {
8527	return &ResourceExistsException{
8528		RespMetadata: v,
8529	}
8530}
8531
8532// Code returns the exception type name.
8533func (s *ResourceExistsException) Code() string {
8534	return "ResourceExistsException"
8535}
8536
8537// Message returns the exception's message.
8538func (s *ResourceExistsException) Message() string {
8539	if s.Message_ != nil {
8540		return *s.Message_
8541	}
8542	return ""
8543}
8544
8545// OrigErr always returns nil, satisfies awserr.Error interface.
8546func (s *ResourceExistsException) OrigErr() error {
8547	return nil
8548}
8549
8550func (s *ResourceExistsException) Error() string {
8551	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
8552}
8553
8554// Status code returns the HTTP status code for the request's response error.
8555func (s *ResourceExistsException) StatusCode() int {
8556	return s.RespMetadata.StatusCode
8557}
8558
8559// RequestID returns the service's response RequestID for request.
8560func (s *ResourceExistsException) RequestID() string {
8561	return s.RespMetadata.RequestID
8562}
8563
8564// The resource that you tried to update or delete is currently in use.
8565type ResourceInUseException struct {
8566	_            struct{}                  `type:"structure"`
8567	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8568
8569	Message_ *string `locationName:"Message" type:"string"`
8570
8571	// For a ResourceInUseException error, the type of resource that is currently
8572	// in use.
8573	ResourceType *string `type:"string"`
8574}
8575
8576// String returns the string representation
8577func (s ResourceInUseException) String() string {
8578	return awsutil.Prettify(s)
8579}
8580
8581// GoString returns the string representation
8582func (s ResourceInUseException) GoString() string {
8583	return s.String()
8584}
8585
8586func newErrorResourceInUseException(v protocol.ResponseMetadata) error {
8587	return &ResourceInUseException{
8588		RespMetadata: v,
8589	}
8590}
8591
8592// Code returns the exception type name.
8593func (s *ResourceInUseException) Code() string {
8594	return "ResourceInUseException"
8595}
8596
8597// Message returns the exception's message.
8598func (s *ResourceInUseException) Message() string {
8599	if s.Message_ != nil {
8600		return *s.Message_
8601	}
8602	return ""
8603}
8604
8605// OrigErr always returns nil, satisfies awserr.Error interface.
8606func (s *ResourceInUseException) OrigErr() error {
8607	return nil
8608}
8609
8610func (s *ResourceInUseException) Error() string {
8611	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
8612}
8613
8614// Status code returns the HTTP status code for the request's response error.
8615func (s *ResourceInUseException) StatusCode() int {
8616	return s.RespMetadata.StatusCode
8617}
8618
8619// RequestID returns the service's response RequestID for request.
8620func (s *ResourceInUseException) RequestID() string {
8621	return s.RespMetadata.RequestID
8622}
8623
8624// The specified resource doesn't exist.
8625type ResourceNotFoundException struct {
8626	_            struct{}                  `type:"structure"`
8627	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8628
8629	Message_ *string `locationName:"Message" type:"string"`
8630
8631	// For a ResourceNotFoundException error, the type of resource that doesn't
8632	// exist.
8633	ResourceType *string `type:"string"`
8634}
8635
8636// String returns the string representation
8637func (s ResourceNotFoundException) String() string {
8638	return awsutil.Prettify(s)
8639}
8640
8641// GoString returns the string representation
8642func (s ResourceNotFoundException) GoString() string {
8643	return s.String()
8644}
8645
8646func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
8647	return &ResourceNotFoundException{
8648		RespMetadata: v,
8649	}
8650}
8651
8652// Code returns the exception type name.
8653func (s *ResourceNotFoundException) Code() string {
8654	return "ResourceNotFoundException"
8655}
8656
8657// Message returns the exception's message.
8658func (s *ResourceNotFoundException) Message() string {
8659	if s.Message_ != nil {
8660		return *s.Message_
8661	}
8662	return ""
8663}
8664
8665// OrigErr always returns nil, satisfies awserr.Error interface.
8666func (s *ResourceNotFoundException) OrigErr() error {
8667	return nil
8668}
8669
8670func (s *ResourceNotFoundException) Error() string {
8671	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
8672}
8673
8674// Status code returns the HTTP status code for the request's response error.
8675func (s *ResourceNotFoundException) StatusCode() int {
8676	return s.RespMetadata.StatusCode
8677}
8678
8679// RequestID returns the service's response RequestID for request.
8680func (s *ResourceNotFoundException) RequestID() string {
8681	return s.RespMetadata.RequestID
8682}
8683
8684// The specified resource isn't available.
8685type ResourceUnavailableException struct {
8686	_            struct{}                  `type:"structure"`
8687	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8688
8689	Message_ *string `locationName:"Message" type:"string"`
8690
8691	// For a ResourceUnavailableException error, the type of resource that isn't
8692	// available.
8693	ResourceType *string `type:"string"`
8694}
8695
8696// String returns the string representation
8697func (s ResourceUnavailableException) String() string {
8698	return awsutil.Prettify(s)
8699}
8700
8701// GoString returns the string representation
8702func (s ResourceUnavailableException) GoString() string {
8703	return s.String()
8704}
8705
8706func newErrorResourceUnavailableException(v protocol.ResponseMetadata) error {
8707	return &ResourceUnavailableException{
8708		RespMetadata: v,
8709	}
8710}
8711
8712// Code returns the exception type name.
8713func (s *ResourceUnavailableException) Code() string {
8714	return "ResourceUnavailableException"
8715}
8716
8717// Message returns the exception's message.
8718func (s *ResourceUnavailableException) Message() string {
8719	if s.Message_ != nil {
8720		return *s.Message_
8721	}
8722	return ""
8723}
8724
8725// OrigErr always returns nil, satisfies awserr.Error interface.
8726func (s *ResourceUnavailableException) OrigErr() error {
8727	return nil
8728}
8729
8730func (s *ResourceUnavailableException) Error() string {
8731	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
8732}
8733
8734// Status code returns the HTTP status code for the request's response error.
8735func (s *ResourceUnavailableException) StatusCode() int {
8736	return s.RespMetadata.StatusCode
8737}
8738
8739// RequestID returns the service's response RequestID for request.
8740func (s *ResourceUnavailableException) RequestID() string {
8741	return s.RespMetadata.RequestID
8742}
8743
8744// One tag that you want to add to the specified resource. A tag consists of
8745// a Key (a name for the tag) and a Value.
8746type Tag struct {
8747	_ struct{} `type:"structure"`
8748
8749	// The name for the tag. For example, if you want to associate Resolver resources
8750	// with the account IDs of your customers for billing purposes, the value of
8751	// Key might be account-id.
8752	//
8753	// Key is a required field
8754	Key *string `min:"1" type:"string" required:"true"`
8755
8756	// The value for the tag. For example, if Key is account-id, then Value might
8757	// be the ID of the customer account that you're creating the resource for.
8758	//
8759	// Value is a required field
8760	Value *string `type:"string" required:"true"`
8761}
8762
8763// String returns the string representation
8764func (s Tag) String() string {
8765	return awsutil.Prettify(s)
8766}
8767
8768// GoString returns the string representation
8769func (s Tag) GoString() string {
8770	return s.String()
8771}
8772
8773// Validate inspects the fields of the type to determine if they are valid.
8774func (s *Tag) Validate() error {
8775	invalidParams := request.ErrInvalidParams{Context: "Tag"}
8776	if s.Key == nil {
8777		invalidParams.Add(request.NewErrParamRequired("Key"))
8778	}
8779	if s.Key != nil && len(*s.Key) < 1 {
8780		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
8781	}
8782	if s.Value == nil {
8783		invalidParams.Add(request.NewErrParamRequired("Value"))
8784	}
8785
8786	if invalidParams.Len() > 0 {
8787		return invalidParams
8788	}
8789	return nil
8790}
8791
8792// SetKey sets the Key field's value.
8793func (s *Tag) SetKey(v string) *Tag {
8794	s.Key = &v
8795	return s
8796}
8797
8798// SetValue sets the Value field's value.
8799func (s *Tag) SetValue(v string) *Tag {
8800	s.Value = &v
8801	return s
8802}
8803
8804type TagResourceInput struct {
8805	_ struct{} `type:"structure"`
8806
8807	// The Amazon Resource Name (ARN) for the resource that you want to add tags
8808	// to. To get the ARN for a resource, use the applicable Get or List command:
8809	//
8810	//    * GetResolverEndpoint (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverEndpoint.html)
8811	//
8812	//    * GetResolverRule (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverRule.html)
8813	//
8814	//    * GetResolverRuleAssociation (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverRuleAssociation.html)
8815	//
8816	//    * ListResolverEndpoints (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverEndpoints.html)
8817	//
8818	//    * ListResolverRuleAssociations (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverRuleAssociations.html)
8819	//
8820	//    * ListResolverRules (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverRules.html)
8821	//
8822	// ResourceArn is a required field
8823	ResourceArn *string `min:"1" type:"string" required:"true"`
8824
8825	// The tags that you want to add to the specified resource.
8826	//
8827	// Tags is a required field
8828	Tags []*Tag `type:"list" required:"true"`
8829}
8830
8831// String returns the string representation
8832func (s TagResourceInput) String() string {
8833	return awsutil.Prettify(s)
8834}
8835
8836// GoString returns the string representation
8837func (s TagResourceInput) GoString() string {
8838	return s.String()
8839}
8840
8841// Validate inspects the fields of the type to determine if they are valid.
8842func (s *TagResourceInput) Validate() error {
8843	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
8844	if s.ResourceArn == nil {
8845		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
8846	}
8847	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
8848		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
8849	}
8850	if s.Tags == nil {
8851		invalidParams.Add(request.NewErrParamRequired("Tags"))
8852	}
8853	if s.Tags != nil {
8854		for i, v := range s.Tags {
8855			if v == nil {
8856				continue
8857			}
8858			if err := v.Validate(); err != nil {
8859				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
8860			}
8861		}
8862	}
8863
8864	if invalidParams.Len() > 0 {
8865		return invalidParams
8866	}
8867	return nil
8868}
8869
8870// SetResourceArn sets the ResourceArn field's value.
8871func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
8872	s.ResourceArn = &v
8873	return s
8874}
8875
8876// SetTags sets the Tags field's value.
8877func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
8878	s.Tags = v
8879	return s
8880}
8881
8882type TagResourceOutput struct {
8883	_ struct{} `type:"structure"`
8884}
8885
8886// String returns the string representation
8887func (s TagResourceOutput) String() string {
8888	return awsutil.Prettify(s)
8889}
8890
8891// GoString returns the string representation
8892func (s TagResourceOutput) GoString() string {
8893	return s.String()
8894}
8895
8896// In a CreateResolverRule (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_CreateResolverRule.html)
8897// request, an array of the IPs that you want to forward DNS queries to.
8898type TargetAddress struct {
8899	_ struct{} `type:"structure"`
8900
8901	// One IP address that you want to forward DNS queries to. You can specify only
8902	// IPv4 addresses.
8903	//
8904	// Ip is a required field
8905	Ip *string `min:"7" type:"string" required:"true"`
8906
8907	// The port at Ip that you want to forward DNS queries to.
8908	Port *int64 `type:"integer"`
8909}
8910
8911// String returns the string representation
8912func (s TargetAddress) String() string {
8913	return awsutil.Prettify(s)
8914}
8915
8916// GoString returns the string representation
8917func (s TargetAddress) GoString() string {
8918	return s.String()
8919}
8920
8921// Validate inspects the fields of the type to determine if they are valid.
8922func (s *TargetAddress) Validate() error {
8923	invalidParams := request.ErrInvalidParams{Context: "TargetAddress"}
8924	if s.Ip == nil {
8925		invalidParams.Add(request.NewErrParamRequired("Ip"))
8926	}
8927	if s.Ip != nil && len(*s.Ip) < 7 {
8928		invalidParams.Add(request.NewErrParamMinLen("Ip", 7))
8929	}
8930
8931	if invalidParams.Len() > 0 {
8932		return invalidParams
8933	}
8934	return nil
8935}
8936
8937// SetIp sets the Ip field's value.
8938func (s *TargetAddress) SetIp(v string) *TargetAddress {
8939	s.Ip = &v
8940	return s
8941}
8942
8943// SetPort sets the Port field's value.
8944func (s *TargetAddress) SetPort(v int64) *TargetAddress {
8945	s.Port = &v
8946	return s
8947}
8948
8949// The request was throttled. Try again in a few minutes.
8950type ThrottlingException struct {
8951	_            struct{}                  `type:"structure"`
8952	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8953
8954	Message_ *string `locationName:"Message" type:"string"`
8955}
8956
8957// String returns the string representation
8958func (s ThrottlingException) String() string {
8959	return awsutil.Prettify(s)
8960}
8961
8962// GoString returns the string representation
8963func (s ThrottlingException) GoString() string {
8964	return s.String()
8965}
8966
8967func newErrorThrottlingException(v protocol.ResponseMetadata) error {
8968	return &ThrottlingException{
8969		RespMetadata: v,
8970	}
8971}
8972
8973// Code returns the exception type name.
8974func (s *ThrottlingException) Code() string {
8975	return "ThrottlingException"
8976}
8977
8978// Message returns the exception's message.
8979func (s *ThrottlingException) Message() string {
8980	if s.Message_ != nil {
8981		return *s.Message_
8982	}
8983	return ""
8984}
8985
8986// OrigErr always returns nil, satisfies awserr.Error interface.
8987func (s *ThrottlingException) OrigErr() error {
8988	return nil
8989}
8990
8991func (s *ThrottlingException) Error() string {
8992	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
8993}
8994
8995// Status code returns the HTTP status code for the request's response error.
8996func (s *ThrottlingException) StatusCode() int {
8997	return s.RespMetadata.StatusCode
8998}
8999
9000// RequestID returns the service's response RequestID for request.
9001func (s *ThrottlingException) RequestID() string {
9002	return s.RespMetadata.RequestID
9003}
9004
9005// The specified resource doesn't exist.
9006type UnknownResourceException struct {
9007	_            struct{}                  `type:"structure"`
9008	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
9009
9010	Message_ *string `locationName:"Message" type:"string"`
9011}
9012
9013// String returns the string representation
9014func (s UnknownResourceException) String() string {
9015	return awsutil.Prettify(s)
9016}
9017
9018// GoString returns the string representation
9019func (s UnknownResourceException) GoString() string {
9020	return s.String()
9021}
9022
9023func newErrorUnknownResourceException(v protocol.ResponseMetadata) error {
9024	return &UnknownResourceException{
9025		RespMetadata: v,
9026	}
9027}
9028
9029// Code returns the exception type name.
9030func (s *UnknownResourceException) Code() string {
9031	return "UnknownResourceException"
9032}
9033
9034// Message returns the exception's message.
9035func (s *UnknownResourceException) Message() string {
9036	if s.Message_ != nil {
9037		return *s.Message_
9038	}
9039	return ""
9040}
9041
9042// OrigErr always returns nil, satisfies awserr.Error interface.
9043func (s *UnknownResourceException) OrigErr() error {
9044	return nil
9045}
9046
9047func (s *UnknownResourceException) Error() string {
9048	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
9049}
9050
9051// Status code returns the HTTP status code for the request's response error.
9052func (s *UnknownResourceException) StatusCode() int {
9053	return s.RespMetadata.StatusCode
9054}
9055
9056// RequestID returns the service's response RequestID for request.
9057func (s *UnknownResourceException) RequestID() string {
9058	return s.RespMetadata.RequestID
9059}
9060
9061type UntagResourceInput struct {
9062	_ struct{} `type:"structure"`
9063
9064	// The Amazon Resource Name (ARN) for the resource that you want to remove tags
9065	// from. To get the ARN for a resource, use the applicable Get or List command:
9066	//
9067	//    * GetResolverEndpoint (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverEndpoint.html)
9068	//
9069	//    * GetResolverRule (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverRule.html)
9070	//
9071	//    * GetResolverRuleAssociation (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_GetResolverRuleAssociation.html)
9072	//
9073	//    * ListResolverEndpoints (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverEndpoints.html)
9074	//
9075	//    * ListResolverRuleAssociations (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverRuleAssociations.html)
9076	//
9077	//    * ListResolverRules (https://docs.aws.amazon.com/Route53/latest/APIReference/API_route53resolver_ListResolverRules.html)
9078	//
9079	// ResourceArn is a required field
9080	ResourceArn *string `min:"1" type:"string" required:"true"`
9081
9082	// The tags that you want to remove to the specified resource.
9083	//
9084	// TagKeys is a required field
9085	TagKeys []*string `type:"list" required:"true"`
9086}
9087
9088// String returns the string representation
9089func (s UntagResourceInput) String() string {
9090	return awsutil.Prettify(s)
9091}
9092
9093// GoString returns the string representation
9094func (s UntagResourceInput) GoString() string {
9095	return s.String()
9096}
9097
9098// Validate inspects the fields of the type to determine if they are valid.
9099func (s *UntagResourceInput) Validate() error {
9100	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
9101	if s.ResourceArn == nil {
9102		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
9103	}
9104	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
9105		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
9106	}
9107	if s.TagKeys == nil {
9108		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
9109	}
9110
9111	if invalidParams.Len() > 0 {
9112		return invalidParams
9113	}
9114	return nil
9115}
9116
9117// SetResourceArn sets the ResourceArn field's value.
9118func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
9119	s.ResourceArn = &v
9120	return s
9121}
9122
9123// SetTagKeys sets the TagKeys field's value.
9124func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
9125	s.TagKeys = v
9126	return s
9127}
9128
9129type UntagResourceOutput struct {
9130	_ struct{} `type:"structure"`
9131}
9132
9133// String returns the string representation
9134func (s UntagResourceOutput) String() string {
9135	return awsutil.Prettify(s)
9136}
9137
9138// GoString returns the string representation
9139func (s UntagResourceOutput) GoString() string {
9140	return s.String()
9141}
9142
9143type UpdateResolverDnssecConfigInput struct {
9144	_ struct{} `type:"structure"`
9145
9146	// The ID of the virtual private cloud (VPC) that you're updating the DNSSEC
9147	// validation status for.
9148	//
9149	// ResourceId is a required field
9150	ResourceId *string `min:"1" type:"string" required:"true"`
9151
9152	// The new value that you are specifying for DNSSEC validation for the VPC.
9153	// The value can be ENABLE or DISABLE. Be aware that it can take time for a
9154	// validation status change to be completed.
9155	//
9156	// Validation is a required field
9157	Validation *string `type:"string" required:"true" enum:"Validation"`
9158}
9159
9160// String returns the string representation
9161func (s UpdateResolverDnssecConfigInput) String() string {
9162	return awsutil.Prettify(s)
9163}
9164
9165// GoString returns the string representation
9166func (s UpdateResolverDnssecConfigInput) GoString() string {
9167	return s.String()
9168}
9169
9170// Validate inspects the fields of the type to determine if they are valid.
9171func (s *UpdateResolverDnssecConfigInput) Validate() error {
9172	invalidParams := request.ErrInvalidParams{Context: "UpdateResolverDnssecConfigInput"}
9173	if s.ResourceId == nil {
9174		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
9175	}
9176	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
9177		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
9178	}
9179	if s.Validation == nil {
9180		invalidParams.Add(request.NewErrParamRequired("Validation"))
9181	}
9182
9183	if invalidParams.Len() > 0 {
9184		return invalidParams
9185	}
9186	return nil
9187}
9188
9189// SetResourceId sets the ResourceId field's value.
9190func (s *UpdateResolverDnssecConfigInput) SetResourceId(v string) *UpdateResolverDnssecConfigInput {
9191	s.ResourceId = &v
9192	return s
9193}
9194
9195// SetValidation sets the Validation field's value.
9196func (s *UpdateResolverDnssecConfigInput) SetValidation(v string) *UpdateResolverDnssecConfigInput {
9197	s.Validation = &v
9198	return s
9199}
9200
9201type UpdateResolverDnssecConfigOutput struct {
9202	_ struct{} `type:"structure"`
9203
9204	// A complex type that contains settings for the specified DNSSEC configuration.
9205	ResolverDNSSECConfig *ResolverDnssecConfig `type:"structure"`
9206}
9207
9208// String returns the string representation
9209func (s UpdateResolverDnssecConfigOutput) String() string {
9210	return awsutil.Prettify(s)
9211}
9212
9213// GoString returns the string representation
9214func (s UpdateResolverDnssecConfigOutput) GoString() string {
9215	return s.String()
9216}
9217
9218// SetResolverDNSSECConfig sets the ResolverDNSSECConfig field's value.
9219func (s *UpdateResolverDnssecConfigOutput) SetResolverDNSSECConfig(v *ResolverDnssecConfig) *UpdateResolverDnssecConfigOutput {
9220	s.ResolverDNSSECConfig = v
9221	return s
9222}
9223
9224type UpdateResolverEndpointInput struct {
9225	_ struct{} `type:"structure"`
9226
9227	// The name of the Resolver endpoint that you want to update.
9228	Name *string `type:"string"`
9229
9230	// The ID of the Resolver endpoint that you want to update.
9231	//
9232	// ResolverEndpointId is a required field
9233	ResolverEndpointId *string `min:"1" type:"string" required:"true"`
9234}
9235
9236// String returns the string representation
9237func (s UpdateResolverEndpointInput) String() string {
9238	return awsutil.Prettify(s)
9239}
9240
9241// GoString returns the string representation
9242func (s UpdateResolverEndpointInput) GoString() string {
9243	return s.String()
9244}
9245
9246// Validate inspects the fields of the type to determine if they are valid.
9247func (s *UpdateResolverEndpointInput) Validate() error {
9248	invalidParams := request.ErrInvalidParams{Context: "UpdateResolverEndpointInput"}
9249	if s.ResolverEndpointId == nil {
9250		invalidParams.Add(request.NewErrParamRequired("ResolverEndpointId"))
9251	}
9252	if s.ResolverEndpointId != nil && len(*s.ResolverEndpointId) < 1 {
9253		invalidParams.Add(request.NewErrParamMinLen("ResolverEndpointId", 1))
9254	}
9255
9256	if invalidParams.Len() > 0 {
9257		return invalidParams
9258	}
9259	return nil
9260}
9261
9262// SetName sets the Name field's value.
9263func (s *UpdateResolverEndpointInput) SetName(v string) *UpdateResolverEndpointInput {
9264	s.Name = &v
9265	return s
9266}
9267
9268// SetResolverEndpointId sets the ResolverEndpointId field's value.
9269func (s *UpdateResolverEndpointInput) SetResolverEndpointId(v string) *UpdateResolverEndpointInput {
9270	s.ResolverEndpointId = &v
9271	return s
9272}
9273
9274type UpdateResolverEndpointOutput struct {
9275	_ struct{} `type:"structure"`
9276
9277	// The response to an UpdateResolverEndpoint request.
9278	ResolverEndpoint *ResolverEndpoint `type:"structure"`
9279}
9280
9281// String returns the string representation
9282func (s UpdateResolverEndpointOutput) String() string {
9283	return awsutil.Prettify(s)
9284}
9285
9286// GoString returns the string representation
9287func (s UpdateResolverEndpointOutput) GoString() string {
9288	return s.String()
9289}
9290
9291// SetResolverEndpoint sets the ResolverEndpoint field's value.
9292func (s *UpdateResolverEndpointOutput) SetResolverEndpoint(v *ResolverEndpoint) *UpdateResolverEndpointOutput {
9293	s.ResolverEndpoint = v
9294	return s
9295}
9296
9297type UpdateResolverRuleInput struct {
9298	_ struct{} `type:"structure"`
9299
9300	// The new settings for the Resolver rule.
9301	//
9302	// Config is a required field
9303	Config *ResolverRuleConfig `type:"structure" required:"true"`
9304
9305	// The ID of the Resolver rule that you want to update.
9306	//
9307	// ResolverRuleId is a required field
9308	ResolverRuleId *string `min:"1" type:"string" required:"true"`
9309}
9310
9311// String returns the string representation
9312func (s UpdateResolverRuleInput) String() string {
9313	return awsutil.Prettify(s)
9314}
9315
9316// GoString returns the string representation
9317func (s UpdateResolverRuleInput) GoString() string {
9318	return s.String()
9319}
9320
9321// Validate inspects the fields of the type to determine if they are valid.
9322func (s *UpdateResolverRuleInput) Validate() error {
9323	invalidParams := request.ErrInvalidParams{Context: "UpdateResolverRuleInput"}
9324	if s.Config == nil {
9325		invalidParams.Add(request.NewErrParamRequired("Config"))
9326	}
9327	if s.ResolverRuleId == nil {
9328		invalidParams.Add(request.NewErrParamRequired("ResolverRuleId"))
9329	}
9330	if s.ResolverRuleId != nil && len(*s.ResolverRuleId) < 1 {
9331		invalidParams.Add(request.NewErrParamMinLen("ResolverRuleId", 1))
9332	}
9333	if s.Config != nil {
9334		if err := s.Config.Validate(); err != nil {
9335			invalidParams.AddNested("Config", err.(request.ErrInvalidParams))
9336		}
9337	}
9338
9339	if invalidParams.Len() > 0 {
9340		return invalidParams
9341	}
9342	return nil
9343}
9344
9345// SetConfig sets the Config field's value.
9346func (s *UpdateResolverRuleInput) SetConfig(v *ResolverRuleConfig) *UpdateResolverRuleInput {
9347	s.Config = v
9348	return s
9349}
9350
9351// SetResolverRuleId sets the ResolverRuleId field's value.
9352func (s *UpdateResolverRuleInput) SetResolverRuleId(v string) *UpdateResolverRuleInput {
9353	s.ResolverRuleId = &v
9354	return s
9355}
9356
9357type UpdateResolverRuleOutput struct {
9358	_ struct{} `type:"structure"`
9359
9360	// The response to an UpdateResolverRule request.
9361	ResolverRule *ResolverRule `type:"structure"`
9362}
9363
9364// String returns the string representation
9365func (s UpdateResolverRuleOutput) String() string {
9366	return awsutil.Prettify(s)
9367}
9368
9369// GoString returns the string representation
9370func (s UpdateResolverRuleOutput) GoString() string {
9371	return s.String()
9372}
9373
9374// SetResolverRule sets the ResolverRule field's value.
9375func (s *UpdateResolverRuleOutput) SetResolverRule(v *ResolverRule) *UpdateResolverRuleOutput {
9376	s.ResolverRule = v
9377	return s
9378}
9379
9380const (
9381	// IpAddressStatusCreating is a IpAddressStatus enum value
9382	IpAddressStatusCreating = "CREATING"
9383
9384	// IpAddressStatusFailedCreation is a IpAddressStatus enum value
9385	IpAddressStatusFailedCreation = "FAILED_CREATION"
9386
9387	// IpAddressStatusAttaching is a IpAddressStatus enum value
9388	IpAddressStatusAttaching = "ATTACHING"
9389
9390	// IpAddressStatusAttached is a IpAddressStatus enum value
9391	IpAddressStatusAttached = "ATTACHED"
9392
9393	// IpAddressStatusRemapDetaching is a IpAddressStatus enum value
9394	IpAddressStatusRemapDetaching = "REMAP_DETACHING"
9395
9396	// IpAddressStatusRemapAttaching is a IpAddressStatus enum value
9397	IpAddressStatusRemapAttaching = "REMAP_ATTACHING"
9398
9399	// IpAddressStatusDetaching is a IpAddressStatus enum value
9400	IpAddressStatusDetaching = "DETACHING"
9401
9402	// IpAddressStatusFailedResourceGone is a IpAddressStatus enum value
9403	IpAddressStatusFailedResourceGone = "FAILED_RESOURCE_GONE"
9404
9405	// IpAddressStatusDeleting is a IpAddressStatus enum value
9406	IpAddressStatusDeleting = "DELETING"
9407
9408	// IpAddressStatusDeleteFailedFasExpired is a IpAddressStatus enum value
9409	IpAddressStatusDeleteFailedFasExpired = "DELETE_FAILED_FAS_EXPIRED"
9410)
9411
9412// IpAddressStatus_Values returns all elements of the IpAddressStatus enum
9413func IpAddressStatus_Values() []string {
9414	return []string{
9415		IpAddressStatusCreating,
9416		IpAddressStatusFailedCreation,
9417		IpAddressStatusAttaching,
9418		IpAddressStatusAttached,
9419		IpAddressStatusRemapDetaching,
9420		IpAddressStatusRemapAttaching,
9421		IpAddressStatusDetaching,
9422		IpAddressStatusFailedResourceGone,
9423		IpAddressStatusDeleting,
9424		IpAddressStatusDeleteFailedFasExpired,
9425	}
9426}
9427
9428const (
9429	// ResolverDNSSECValidationStatusEnabling is a ResolverDNSSECValidationStatus enum value
9430	ResolverDNSSECValidationStatusEnabling = "ENABLING"
9431
9432	// ResolverDNSSECValidationStatusEnabled is a ResolverDNSSECValidationStatus enum value
9433	ResolverDNSSECValidationStatusEnabled = "ENABLED"
9434
9435	// ResolverDNSSECValidationStatusDisabling is a ResolverDNSSECValidationStatus enum value
9436	ResolverDNSSECValidationStatusDisabling = "DISABLING"
9437
9438	// ResolverDNSSECValidationStatusDisabled is a ResolverDNSSECValidationStatus enum value
9439	ResolverDNSSECValidationStatusDisabled = "DISABLED"
9440)
9441
9442// ResolverDNSSECValidationStatus_Values returns all elements of the ResolverDNSSECValidationStatus enum
9443func ResolverDNSSECValidationStatus_Values() []string {
9444	return []string{
9445		ResolverDNSSECValidationStatusEnabling,
9446		ResolverDNSSECValidationStatusEnabled,
9447		ResolverDNSSECValidationStatusDisabling,
9448		ResolverDNSSECValidationStatusDisabled,
9449	}
9450}
9451
9452const (
9453	// ResolverEndpointDirectionInbound is a ResolverEndpointDirection enum value
9454	ResolverEndpointDirectionInbound = "INBOUND"
9455
9456	// ResolverEndpointDirectionOutbound is a ResolverEndpointDirection enum value
9457	ResolverEndpointDirectionOutbound = "OUTBOUND"
9458)
9459
9460// ResolverEndpointDirection_Values returns all elements of the ResolverEndpointDirection enum
9461func ResolverEndpointDirection_Values() []string {
9462	return []string{
9463		ResolverEndpointDirectionInbound,
9464		ResolverEndpointDirectionOutbound,
9465	}
9466}
9467
9468const (
9469	// ResolverEndpointStatusCreating is a ResolverEndpointStatus enum value
9470	ResolverEndpointStatusCreating = "CREATING"
9471
9472	// ResolverEndpointStatusOperational is a ResolverEndpointStatus enum value
9473	ResolverEndpointStatusOperational = "OPERATIONAL"
9474
9475	// ResolverEndpointStatusUpdating is a ResolverEndpointStatus enum value
9476	ResolverEndpointStatusUpdating = "UPDATING"
9477
9478	// ResolverEndpointStatusAutoRecovering is a ResolverEndpointStatus enum value
9479	ResolverEndpointStatusAutoRecovering = "AUTO_RECOVERING"
9480
9481	// ResolverEndpointStatusActionNeeded is a ResolverEndpointStatus enum value
9482	ResolverEndpointStatusActionNeeded = "ACTION_NEEDED"
9483
9484	// ResolverEndpointStatusDeleting is a ResolverEndpointStatus enum value
9485	ResolverEndpointStatusDeleting = "DELETING"
9486)
9487
9488// ResolverEndpointStatus_Values returns all elements of the ResolverEndpointStatus enum
9489func ResolverEndpointStatus_Values() []string {
9490	return []string{
9491		ResolverEndpointStatusCreating,
9492		ResolverEndpointStatusOperational,
9493		ResolverEndpointStatusUpdating,
9494		ResolverEndpointStatusAutoRecovering,
9495		ResolverEndpointStatusActionNeeded,
9496		ResolverEndpointStatusDeleting,
9497	}
9498}
9499
9500const (
9501	// ResolverQueryLogConfigAssociationErrorNone is a ResolverQueryLogConfigAssociationError enum value
9502	ResolverQueryLogConfigAssociationErrorNone = "NONE"
9503
9504	// ResolverQueryLogConfigAssociationErrorDestinationNotFound is a ResolverQueryLogConfigAssociationError enum value
9505	ResolverQueryLogConfigAssociationErrorDestinationNotFound = "DESTINATION_NOT_FOUND"
9506
9507	// ResolverQueryLogConfigAssociationErrorAccessDenied is a ResolverQueryLogConfigAssociationError enum value
9508	ResolverQueryLogConfigAssociationErrorAccessDenied = "ACCESS_DENIED"
9509
9510	// ResolverQueryLogConfigAssociationErrorInternalServiceError is a ResolverQueryLogConfigAssociationError enum value
9511	ResolverQueryLogConfigAssociationErrorInternalServiceError = "INTERNAL_SERVICE_ERROR"
9512)
9513
9514// ResolverQueryLogConfigAssociationError_Values returns all elements of the ResolverQueryLogConfigAssociationError enum
9515func ResolverQueryLogConfigAssociationError_Values() []string {
9516	return []string{
9517		ResolverQueryLogConfigAssociationErrorNone,
9518		ResolverQueryLogConfigAssociationErrorDestinationNotFound,
9519		ResolverQueryLogConfigAssociationErrorAccessDenied,
9520		ResolverQueryLogConfigAssociationErrorInternalServiceError,
9521	}
9522}
9523
9524const (
9525	// ResolverQueryLogConfigAssociationStatusCreating is a ResolverQueryLogConfigAssociationStatus enum value
9526	ResolverQueryLogConfigAssociationStatusCreating = "CREATING"
9527
9528	// ResolverQueryLogConfigAssociationStatusActive is a ResolverQueryLogConfigAssociationStatus enum value
9529	ResolverQueryLogConfigAssociationStatusActive = "ACTIVE"
9530
9531	// ResolverQueryLogConfigAssociationStatusActionNeeded is a ResolverQueryLogConfigAssociationStatus enum value
9532	ResolverQueryLogConfigAssociationStatusActionNeeded = "ACTION_NEEDED"
9533
9534	// ResolverQueryLogConfigAssociationStatusDeleting is a ResolverQueryLogConfigAssociationStatus enum value
9535	ResolverQueryLogConfigAssociationStatusDeleting = "DELETING"
9536
9537	// ResolverQueryLogConfigAssociationStatusFailed is a ResolverQueryLogConfigAssociationStatus enum value
9538	ResolverQueryLogConfigAssociationStatusFailed = "FAILED"
9539)
9540
9541// ResolverQueryLogConfigAssociationStatus_Values returns all elements of the ResolverQueryLogConfigAssociationStatus enum
9542func ResolverQueryLogConfigAssociationStatus_Values() []string {
9543	return []string{
9544		ResolverQueryLogConfigAssociationStatusCreating,
9545		ResolverQueryLogConfigAssociationStatusActive,
9546		ResolverQueryLogConfigAssociationStatusActionNeeded,
9547		ResolverQueryLogConfigAssociationStatusDeleting,
9548		ResolverQueryLogConfigAssociationStatusFailed,
9549	}
9550}
9551
9552const (
9553	// ResolverQueryLogConfigStatusCreating is a ResolverQueryLogConfigStatus enum value
9554	ResolverQueryLogConfigStatusCreating = "CREATING"
9555
9556	// ResolverQueryLogConfigStatusCreated is a ResolverQueryLogConfigStatus enum value
9557	ResolverQueryLogConfigStatusCreated = "CREATED"
9558
9559	// ResolverQueryLogConfigStatusDeleting is a ResolverQueryLogConfigStatus enum value
9560	ResolverQueryLogConfigStatusDeleting = "DELETING"
9561
9562	// ResolverQueryLogConfigStatusFailed is a ResolverQueryLogConfigStatus enum value
9563	ResolverQueryLogConfigStatusFailed = "FAILED"
9564)
9565
9566// ResolverQueryLogConfigStatus_Values returns all elements of the ResolverQueryLogConfigStatus enum
9567func ResolverQueryLogConfigStatus_Values() []string {
9568	return []string{
9569		ResolverQueryLogConfigStatusCreating,
9570		ResolverQueryLogConfigStatusCreated,
9571		ResolverQueryLogConfigStatusDeleting,
9572		ResolverQueryLogConfigStatusFailed,
9573	}
9574}
9575
9576const (
9577	// ResolverRuleAssociationStatusCreating is a ResolverRuleAssociationStatus enum value
9578	ResolverRuleAssociationStatusCreating = "CREATING"
9579
9580	// ResolverRuleAssociationStatusComplete is a ResolverRuleAssociationStatus enum value
9581	ResolverRuleAssociationStatusComplete = "COMPLETE"
9582
9583	// ResolverRuleAssociationStatusDeleting is a ResolverRuleAssociationStatus enum value
9584	ResolverRuleAssociationStatusDeleting = "DELETING"
9585
9586	// ResolverRuleAssociationStatusFailed is a ResolverRuleAssociationStatus enum value
9587	ResolverRuleAssociationStatusFailed = "FAILED"
9588
9589	// ResolverRuleAssociationStatusOverridden is a ResolverRuleAssociationStatus enum value
9590	ResolverRuleAssociationStatusOverridden = "OVERRIDDEN"
9591)
9592
9593// ResolverRuleAssociationStatus_Values returns all elements of the ResolverRuleAssociationStatus enum
9594func ResolverRuleAssociationStatus_Values() []string {
9595	return []string{
9596		ResolverRuleAssociationStatusCreating,
9597		ResolverRuleAssociationStatusComplete,
9598		ResolverRuleAssociationStatusDeleting,
9599		ResolverRuleAssociationStatusFailed,
9600		ResolverRuleAssociationStatusOverridden,
9601	}
9602}
9603
9604const (
9605	// ResolverRuleStatusComplete is a ResolverRuleStatus enum value
9606	ResolverRuleStatusComplete = "COMPLETE"
9607
9608	// ResolverRuleStatusDeleting is a ResolverRuleStatus enum value
9609	ResolverRuleStatusDeleting = "DELETING"
9610
9611	// ResolverRuleStatusUpdating is a ResolverRuleStatus enum value
9612	ResolverRuleStatusUpdating = "UPDATING"
9613
9614	// ResolverRuleStatusFailed is a ResolverRuleStatus enum value
9615	ResolverRuleStatusFailed = "FAILED"
9616)
9617
9618// ResolverRuleStatus_Values returns all elements of the ResolverRuleStatus enum
9619func ResolverRuleStatus_Values() []string {
9620	return []string{
9621		ResolverRuleStatusComplete,
9622		ResolverRuleStatusDeleting,
9623		ResolverRuleStatusUpdating,
9624		ResolverRuleStatusFailed,
9625	}
9626}
9627
9628const (
9629	// RuleTypeOptionForward is a RuleTypeOption enum value
9630	RuleTypeOptionForward = "FORWARD"
9631
9632	// RuleTypeOptionSystem is a RuleTypeOption enum value
9633	RuleTypeOptionSystem = "SYSTEM"
9634
9635	// RuleTypeOptionRecursive is a RuleTypeOption enum value
9636	RuleTypeOptionRecursive = "RECURSIVE"
9637)
9638
9639// RuleTypeOption_Values returns all elements of the RuleTypeOption enum
9640func RuleTypeOption_Values() []string {
9641	return []string{
9642		RuleTypeOptionForward,
9643		RuleTypeOptionSystem,
9644		RuleTypeOptionRecursive,
9645	}
9646}
9647
9648const (
9649	// ShareStatusNotShared is a ShareStatus enum value
9650	ShareStatusNotShared = "NOT_SHARED"
9651
9652	// ShareStatusSharedWithMe is a ShareStatus enum value
9653	ShareStatusSharedWithMe = "SHARED_WITH_ME"
9654
9655	// ShareStatusSharedByMe is a ShareStatus enum value
9656	ShareStatusSharedByMe = "SHARED_BY_ME"
9657)
9658
9659// ShareStatus_Values returns all elements of the ShareStatus enum
9660func ShareStatus_Values() []string {
9661	return []string{
9662		ShareStatusNotShared,
9663		ShareStatusSharedWithMe,
9664		ShareStatusSharedByMe,
9665	}
9666}
9667
9668const (
9669	// SortOrderAscending is a SortOrder enum value
9670	SortOrderAscending = "ASCENDING"
9671
9672	// SortOrderDescending is a SortOrder enum value
9673	SortOrderDescending = "DESCENDING"
9674)
9675
9676// SortOrder_Values returns all elements of the SortOrder enum
9677func SortOrder_Values() []string {
9678	return []string{
9679		SortOrderAscending,
9680		SortOrderDescending,
9681	}
9682}
9683
9684const (
9685	// ValidationEnable is a Validation enum value
9686	ValidationEnable = "ENABLE"
9687
9688	// ValidationDisable is a Validation enum value
9689	ValidationDisable = "DISABLE"
9690)
9691
9692// Validation_Values returns all elements of the Validation enum
9693func Validation_Values() []string {
9694	return []string{
9695		ValidationEnable,
9696		ValidationDisable,
9697	}
9698}
9699